veloria three 6.25 commit
@ -17,8 +17,8 @@ android {
|
|||||||
applicationId = "com.veloria.now.shortapp"
|
applicationId = "com.veloria.now.shortapp"
|
||||||
minSdk = 24
|
minSdk = 24
|
||||||
targetSdk = 34
|
targetSdk = 34
|
||||||
versionCode = 5
|
versionCode = 8
|
||||||
versionName = "1.0.4"
|
versionName = "1.0.6"
|
||||||
|
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
@ -105,7 +105,7 @@ dependencies {
|
|||||||
// banner
|
// banner
|
||||||
implementation(libs.banner)
|
implementation(libs.banner)
|
||||||
implementation(libs.glide)
|
implementation(libs.glide)
|
||||||
implementation("com.github.zhpanvip:bannerviewpager:3.5.12")
|
implementation(libs.bannerviewpager)
|
||||||
|
|
||||||
//utils
|
//utils
|
||||||
implementation(libs.greenrobot.eventbus)
|
implementation(libs.greenrobot.eventbus)
|
||||||
|
3
app/proguard-rules.pro
vendored
@ -318,3 +318,6 @@
|
|||||||
-keep class com.google.android.gms.ads.** {public *;}
|
-keep class com.google.android.gms.ads.** {public *;}
|
||||||
-keep class com.google.android.gms.appset.** { *; }
|
-keep class com.google.android.gms.appset.** { *; }
|
||||||
-keep class com.google.android.gms.tasks.** { *; }
|
-keep class com.google.android.gms.tasks.** { *; }
|
||||||
|
|
||||||
|
-keep class androidx.recyclerview.widget.**{*;}
|
||||||
|
-keep class androidx.viewpager2.widget.**{*;}
|
@ -93,6 +93,7 @@ object JActivityAdapter {
|
|||||||
const val HOME_USER_REFRESH = "HOME_USER_REFRESH"
|
const val HOME_USER_REFRESH = "HOME_USER_REFRESH"
|
||||||
const val HOME_REFRESH_ME = "HOME_REFRESH_ME"
|
const val HOME_REFRESH_ME = "HOME_REFRESH_ME"
|
||||||
const val HOME_LOGIN = "HOME_LOGIN"
|
const val HOME_LOGIN = "HOME_LOGIN"
|
||||||
|
const val REWARD_LOGIN = "REWARD_LOGIN"
|
||||||
const val HOME_LEAVE_APP = "HOME_LEAVE_APP"
|
const val HOME_LEAVE_APP = "HOME_LEAVE_APP"
|
||||||
const val HOME_ON_LINE = "HOME_ON_LINE"
|
const val HOME_ON_LINE = "HOME_ON_LINE"
|
||||||
const val HOME_DDL_URL = "HOME_DDL_URL"
|
const val HOME_DDL_URL = "HOME_DDL_URL"
|
||||||
@ -110,10 +111,14 @@ object JActivityAdapter {
|
|||||||
const val ACCOUNT_DIALOG_TIME_VIP_SPLASH = "ACCOUNT_DIALOG_TIME_VIP_SPLASH"
|
const val ACCOUNT_DIALOG_TIME_VIP_SPLASH = "ACCOUNT_DIALOG_TIME_VIP_SPLASH"
|
||||||
const val ONE_DAY_IN_MILLIS_VIP = 60 * 60 * 1000L
|
const val ONE_DAY_IN_MILLIS_VIP = 60 * 60 * 1000L
|
||||||
|
|
||||||
|
const val ACCOUNT_VERSION_CONTROL_TIME =
|
||||||
|
"ACCOUNT_VERSION_CONTROL_TIME"
|
||||||
const val ACCOUNT_DIALOG_TIME_NOTIFICATIONS =
|
const val ACCOUNT_DIALOG_TIME_NOTIFICATIONS =
|
||||||
"ACCOUNT_DIALOG_TIME_NOTIFICATIONS"
|
"ACCOUNT_DIALOG_TIME_NOTIFICATIONS"
|
||||||
const val ONE_DAY_IN_MILLIS_DAY = 24 * 60 * 60 * 1000L
|
const val ONE_DAY_IN_MILLIS_DAY = 24 * 60 * 60 * 1000L
|
||||||
|
|
||||||
const val ACCOUNT_FIREBASE_TOKEN_REFRESH = "ACCOUNT_FIREBASE_TOKEN_REFRESH"
|
const val ACCOUNT_FIREBASE_TOKEN_REFRESH = "ACCOUNT_FIREBASE_TOKEN_REFRESH"
|
||||||
|
|
||||||
|
const val ACCOUNT_WEB_NOTIFICATION = "ACCOUNT_WEB_NOTIFICATION"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,7 @@ import android.os.Handler
|
|||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
import android.widget.Toast
|
import android.widget.Toast
|
||||||
import androidx.annotation.RequiresApi
|
import androidx.annotation.RequiresApi
|
||||||
|
import com.veloria.now.shortapp.civil.JActivityAdapter.ONE_DAY_IN_MILLIS_DAY
|
||||||
import com.veloria.now.shortapp.newsletter.XNBackground
|
import com.veloria.now.shortapp.newsletter.XNBackground
|
||||||
import java.text.SimpleDateFormat
|
import java.text.SimpleDateFormat
|
||||||
import java.time.Duration
|
import java.time.Duration
|
||||||
@ -637,3 +638,10 @@ fun setShowNotifications(): Boolean {
|
|||||||
|
|
||||||
return currentTime - lastTime > JActivityAdapter.ONE_DAY_IN_MILLIS_DAY
|
return currentTime - lastTime > JActivityAdapter.ONE_DAY_IN_MILLIS_DAY
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun shouldVersionControl(): Boolean {
|
||||||
|
val lastPopupTime = RYAction.getMMKV().getLong(JActivityAdapter.ACCOUNT_VERSION_CONTROL_TIME, 0)
|
||||||
|
val currentTime = System.currentTimeMillis()
|
||||||
|
|
||||||
|
return currentTime - lastPopupTime > ONE_DAY_IN_MILLIS_DAY
|
||||||
|
}
|
@ -474,7 +474,7 @@ object RYAction {
|
|||||||
|
|
||||||
fun saveOrder(payReq: VePayBean) {
|
fun saveOrder(payReq: VePayBean) {
|
||||||
val list = getOrder()
|
val list = getOrder()
|
||||||
if (!list.contains(payReq)) {
|
if (!list.contains(payReq) && payReq.order_code.isNotEmpty()) {
|
||||||
list.add(payReq)
|
list.add(payReq)
|
||||||
}
|
}
|
||||||
val toJson = Gson().toJson(list)
|
val toJson = Gson().toJson(list)
|
||||||
|
@ -11,23 +11,6 @@ object VeNotificationHelper {
|
|||||||
|
|
||||||
const val VE_NOTIFICATION_REQUEST_CODE: Int = 4001
|
const val VE_NOTIFICATION_REQUEST_CODE: Int = 4001
|
||||||
|
|
||||||
fun setNotification(context: Activity) {
|
|
||||||
val intent = Intent()
|
|
||||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
|
|
||||||
intent.action = "android.settings.APPLICATION_DETAILS_SETTINGS"
|
|
||||||
intent.data =
|
|
||||||
Uri.fromParts("package", YFHome.getPackageName(), null)
|
|
||||||
context.startActivityForResult(intent, VE_NOTIFICATION_REQUEST_CODE)
|
|
||||||
} else {
|
|
||||||
intent.action = "android.settings.APP_NOTIFICATION_SETTINGS"
|
|
||||||
intent.putExtra(
|
|
||||||
"android.provider.extra.APP_PACKAGE",
|
|
||||||
YFHome.getPackageName()
|
|
||||||
)
|
|
||||||
context.startActivity(intent)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fun isNotification(context: Context): Boolean {
|
fun isNotification(context: Context): Boolean {
|
||||||
val manager =
|
val manager =
|
||||||
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
context.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
|
||||||
@ -38,4 +21,21 @@ object VeNotificationHelper {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setNotification(context: Activity) {
|
||||||
|
val intent = Intent()
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
intent.action = "android.settings.APP_NOTIFICATION_SETTINGS"
|
||||||
|
intent.putExtra(
|
||||||
|
"android.provider.extra.APP_PACKAGE",
|
||||||
|
YFHome.getPackageName()
|
||||||
|
)
|
||||||
|
context.startActivityForResult(intent, VE_NOTIFICATION_REQUEST_CODE)
|
||||||
|
} else {
|
||||||
|
intent.action = "android.settings.APPLICATION_DETAILS_SETTINGS"
|
||||||
|
intent.data =
|
||||||
|
Uri.fromParts("package", YFHome.getPackageName(), null)
|
||||||
|
context.startActivityForResult(intent, VE_NOTIFICATION_REQUEST_CODE)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -30,6 +30,7 @@ import com.veloria.now.shortapp.texturedAsink.VeTranslationBean
|
|||||||
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeW2aSelfAttributionBean
|
import com.veloria.now.shortapp.texturedAsink.VeW2aSelfAttributionBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VersionControlBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
||||||
import retrofit2.Call
|
import retrofit2.Call
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.Body
|
||||||
@ -112,7 +113,6 @@ interface BIFBase {
|
|||||||
@GET("customer/info")
|
@GET("customer/info")
|
||||||
fun getUserInfo(): Call<TStore<KFAFavoritesInterceptorBean>>
|
fun getUserInfo(): Call<TStore<KFAFavoritesInterceptorBean>>
|
||||||
|
|
||||||
|
|
||||||
@POST("uploadHistorySeconds")
|
@POST("uploadHistorySeconds")
|
||||||
fun getUploadHistorySeconds(
|
fun getUploadHistorySeconds(
|
||||||
@Body uploadVideoHistoryBean: PURLockBean
|
@Body uploadVideoHistoryBean: PURLockBean
|
||||||
@ -254,4 +254,7 @@ interface BIFBase {
|
|||||||
@Field("title") title: String
|
@Field("title") title: String
|
||||||
): Call<TStore<Any>>
|
): Call<TStore<Any>>
|
||||||
|
|
||||||
|
@GET("customer/versionControl")
|
||||||
|
fun getVersionControl(): Call<TStore<VersionControlBean>>
|
||||||
|
|
||||||
}
|
}
|
@ -8,12 +8,20 @@ import com.veloria.now.shortapp.newsletter.TStore
|
|||||||
import com.veloria.now.shortapp.texturedAsink.DoLoginBean
|
import com.veloria.now.shortapp.texturedAsink.DoLoginBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.LanguageBean
|
import com.veloria.now.shortapp.texturedAsink.LanguageBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.SManifestBean
|
import com.veloria.now.shortapp.texturedAsink.SManifestBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeCustomerBuyRecordsBean
|
import com.veloria.now.shortapp.texturedAsink.VeCustomerBuyRecordsBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeCustomerOrderBean
|
import com.veloria.now.shortapp.texturedAsink.VeCustomerOrderBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeNoticeNumBean
|
import com.veloria.now.shortapp.texturedAsink.VeNoticeNumBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePayBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePayResBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeRewardCoinsBean
|
import com.veloria.now.shortapp.texturedAsink.VeRewardCoinsBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeTranslationBean
|
import com.veloria.now.shortapp.texturedAsink.VeTranslationBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
||||||
|
|
||||||
|
|
||||||
class ANotifications {
|
class ANotifications {
|
||||||
@ -95,4 +103,60 @@ class ANotifications {
|
|||||||
mainService.getData().response()
|
mainService.getData().response()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private suspend fun paySettingsV3(short_play_id: Int, short_play_video_id: Int) =
|
||||||
|
mainService.getPaySettingsV3(short_play_id, short_play_video_id).response()
|
||||||
|
|
||||||
|
fun getPaySettingsV3(
|
||||||
|
short_play_id: Int, short_play_video_id: Int
|
||||||
|
): LiveData<Result<TStore<VePaySettingsBean>>> = handleData {
|
||||||
|
paySettingsV3(short_play_id, short_play_video_id)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setUploadNoticeStatus(veUploadNotificationBean: VeUploadNotificationBean): LiveData<Result<TStore<VeUploadNotificationDataBean>>> =
|
||||||
|
handleData {
|
||||||
|
mainService.setUploadNoticeStatus(veUploadNotificationBean)
|
||||||
|
.response()
|
||||||
|
}
|
||||||
|
|
||||||
|
private suspend fun firebaseToken(fcm_token: String) =
|
||||||
|
mainService.setFirebaseToken(fcm_token).response()
|
||||||
|
|
||||||
|
fun setFirebaseToken(fcm_token: String): LiveData<Result<TStore<Any>>> = handleData {
|
||||||
|
firebaseToken(fcm_token)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setOpenNotify(): LiveData<Result<TStore<Any>>> =
|
||||||
|
handleData {
|
||||||
|
mainService.setOpenNotify().response()
|
||||||
|
}
|
||||||
|
|
||||||
|
private suspend fun createPayOrder(createOrderReq: VeCreatePayOrderReqBean) =
|
||||||
|
mainService.setCreatePayOrder(createOrderReq).response()
|
||||||
|
|
||||||
|
fun setCreatePayOrder(createOrderReq: VeCreatePayOrderReqBean): LiveData<Result<TStore<VeCreatePayOrderBean>>> =
|
||||||
|
handleData {
|
||||||
|
createPayOrder(createOrderReq)
|
||||||
|
}
|
||||||
|
|
||||||
|
private suspend fun googlePaid(vePayBean: VePayBean?) =
|
||||||
|
mainService.setGooglePaid(vePayBean).response()
|
||||||
|
|
||||||
|
fun setGooglePaid(vePayBean: VePayBean?): LiveData<Result<TStore<VePayResBean>>> =
|
||||||
|
handleData {
|
||||||
|
googlePaid(vePayBean)
|
||||||
|
}
|
||||||
|
|
||||||
|
private suspend fun setLogin(loginDataBean: LoginDataBean) =
|
||||||
|
mainService.setLogin(loginDataBean).response()
|
||||||
|
|
||||||
|
fun setDoLogin(loginDataBean: LoginDataBean): LiveData<Result<TStore<DoLoginBean>>> =
|
||||||
|
handleData {
|
||||||
|
setLogin(loginDataBean)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setLeaveApp(
|
||||||
|
): LiveData<Result<TStore<Any>>> =
|
||||||
|
handleData {
|
||||||
|
mainService.setLeaveApp().response()
|
||||||
|
}
|
||||||
}
|
}
|
@ -19,6 +19,7 @@ import com.veloria.now.shortapp.texturedAsink.VePayResBean
|
|||||||
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeW2aSelfAttributionBean
|
import com.veloria.now.shortapp.texturedAsink.VeW2aSelfAttributionBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VersionControlBean
|
||||||
|
|
||||||
|
|
||||||
class NMQRepositoryFfmpeg {
|
class NMQRepositoryFfmpeg {
|
||||||
@ -194,4 +195,9 @@ class NMQRepositoryFfmpeg {
|
|||||||
googlePaid(vePayBean)
|
googlePaid(vePayBean)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getVersionControl(
|
||||||
|
): LiveData<Result<TStore<VersionControlBean>>> =
|
||||||
|
handleData {
|
||||||
|
mainService.getVersionControl().response()
|
||||||
|
}
|
||||||
}
|
}
|
@ -8,7 +8,9 @@ import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
|||||||
import com.veloria.now.shortapp.highbits.QGift
|
import com.veloria.now.shortapp.highbits.QGift
|
||||||
import com.veloria.now.shortapp.highbits.QGift.handleData
|
import com.veloria.now.shortapp.highbits.QGift.handleData
|
||||||
import com.veloria.now.shortapp.highbits.QGift.response
|
import com.veloria.now.shortapp.highbits.QGift.response
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.DoLoginBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeBuyVideoBean
|
import com.veloria.now.shortapp.texturedAsink.VeBuyVideoBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderBean
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
||||||
@ -166,4 +168,17 @@ private var loginAdaptStr: String = "dlta"
|
|||||||
.response()
|
.response()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private suspend fun setLogin(loginDataBean: LoginDataBean) =
|
||||||
|
videoService.setLogin(loginDataBean).response()
|
||||||
|
|
||||||
|
fun setDoLogin(loginDataBean: LoginDataBean): LiveData<Result<TStore<DoLoginBean>>> =
|
||||||
|
handleData {
|
||||||
|
setLogin(loginDataBean)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setLeaveApp(
|
||||||
|
): LiveData<Result<TStore<Any>>> =
|
||||||
|
handleData {
|
||||||
|
videoService.setLeaveApp().response()
|
||||||
|
}
|
||||||
}
|
}
|
@ -35,12 +35,12 @@ class VeRewardJsBridge(private val context: Context) {
|
|||||||
val rootJson = parser.parse(string) as JsonObject
|
val rootJson = parser.parse(string) as JsonObject
|
||||||
when (rootJson.get("type").asString) {
|
when (rootJson.get("type").asString) {
|
||||||
"login" -> {
|
"login" -> {
|
||||||
EventBus.getDefault().post(JActivityAdapter.HOME_LOGIN)
|
EventBus.getDefault().post(JActivityAdapter.REWARD_LOGIN)
|
||||||
}
|
}
|
||||||
|
|
||||||
// "open_notify" -> {
|
"open_notify" -> {
|
||||||
// EventBus.getDefault().post(MsConstants.CONSTANTS_web_notification)
|
EventBus.getDefault().post(JActivityAdapter.ACCOUNT_WEB_NOTIFICATION)
|
||||||
// }
|
}
|
||||||
|
|
||||||
"watch_video" -> {
|
"watch_video" -> {
|
||||||
val fromJson = Gson().fromJson(string, WatchVideoJsonBean::class.java)
|
val fromJson = Gson().fromJson(string, WatchVideoJsonBean::class.java)
|
||||||
|
@ -73,6 +73,18 @@ class BannerPlayerView(context: Context, attrs: AttributeSet?) :
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun play() {
|
||||||
|
if (player != null){
|
||||||
|
player?.play()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun pause() {
|
||||||
|
if (player != null){
|
||||||
|
player?.pause()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun stop() {
|
fun stop() {
|
||||||
if (player != null){
|
if (player != null){
|
||||||
player?.stop()
|
player?.stop()
|
||||||
|
@ -580,8 +580,7 @@ class PUtilsView(context: Context, attrs: AttributeSet?) :
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
tvSeriesPlayer?.text =
|
|
||||||
"EP.".plus(dataRes.video_info.episode)
|
|
||||||
var fragment4t: Long = 8643L
|
var fragment4t: Long = 8643L
|
||||||
if (fragment4t < 77L) {
|
if (fragment4t < 77L) {
|
||||||
}
|
}
|
||||||
@ -593,10 +592,14 @@ class PUtilsView(context: Context, attrs: AttributeSet?) :
|
|||||||
TranslationHelper.getTranslation()?.veloria_all_episodes.toString(),
|
TranslationHelper.getTranslation()?.veloria_all_episodes.toString(),
|
||||||
dataRes.episode_total.toString()
|
dataRes.episode_total.toString()
|
||||||
)
|
)
|
||||||
|
tvSeriesPlayer?.text = TranslationHelper.replace(TranslationHelper.getTranslation()?.mireo_EP.toString(),dataRes.video_info.episode.toString())
|
||||||
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
tvSeriesPlayerAll?.text =
|
tvSeriesPlayerAll?.text =
|
||||||
"All ".plus(dataRes.episode_total).plus(" Episodes")
|
"All ".plus(dataRes.episode_total).plus(" Episodes")
|
||||||
|
tvSeriesPlayer?.text =
|
||||||
|
"EP.".plus(dataRes.video_info.episode)
|
||||||
}
|
}
|
||||||
var stringD: String = "blocksize"
|
var stringD: String = "blocksize"
|
||||||
while (stringD.length > 148) {
|
while (stringD.length > 148) {
|
||||||
|
@ -1175,8 +1175,7 @@ class TOYPlayfairAutoView(context: Context, attrs: AttributeSet?) :
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
tvCollectionNumController?.text =
|
|
||||||
"EP.".plus(episode.episode)
|
|
||||||
var y_widthv: Float = 508.0f
|
var y_widthv: Float = 508.0f
|
||||||
if (y_widthv == 30.0f) {
|
if (y_widthv == 30.0f) {
|
||||||
}
|
}
|
||||||
@ -1190,9 +1189,12 @@ class TOYPlayfairAutoView(context: Context, attrs: AttributeSet?) :
|
|||||||
TranslationHelper.getTranslation()?.veloria_all_episodes.toString(),
|
TranslationHelper.getTranslation()?.veloria_all_episodes.toString(),
|
||||||
shortVideo.episode_total.toString()
|
shortVideo.episode_total.toString()
|
||||||
)
|
)
|
||||||
|
tvCollectionNumController?.text = TranslationHelper.replace(TranslationHelper.getTranslation()?.mireo_EP.toString(),episode.episode.toString())
|
||||||
} else {
|
} else {
|
||||||
ivEpisodePlayerController?.text =
|
ivEpisodePlayerController?.text =
|
||||||
"All ".plus(shortVideo.episode_total).plus(" Episodes")
|
"All ".plus(shortVideo.episode_total).plus(" Episodes")
|
||||||
|
tvCollectionNumController?.text =
|
||||||
|
"EP.".plus(episode.episode)
|
||||||
}
|
}
|
||||||
var splashB: MutableMap<String, Float> = mutableMapOf<String, Float>()
|
var splashB: MutableMap<String, Float> = mutableMapOf<String, Float>()
|
||||||
splashB.put("dividor", 509.0f)
|
splashB.put("dividor", 509.0f)
|
||||||
|
@ -13,8 +13,8 @@ import androidx.annotation.RawRes
|
|||||||
import androidx.annotation.StringRes
|
import androidx.annotation.StringRes
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
import kotlin.math.max
|
|
||||||
|
|
||||||
|
|
||||||
class VSNotificationsDefault @JvmOverloads constructor(
|
class VSNotificationsDefault @JvmOverloads constructor(
|
||||||
@ -22,15 +22,17 @@ class VSNotificationsDefault @JvmOverloads constructor(
|
|||||||
defStyleAttr: Int = 0, defStyleRes: Int = 0
|
defStyleAttr: Int = 0, defStyleRes: Int = 0
|
||||||
) :
|
) :
|
||||||
FrameLayout(context, attrs, defStyleAttr, defStyleRes) {
|
FrameLayout(context, attrs, defStyleAttr, defStyleRes) {
|
||||||
@Volatile
|
@Volatile
|
||||||
var traceTestPadding: Float = 9408.0f
|
var traceTestPadding: Float = 9408.0f
|
||||||
@Volatile
|
|
||||||
private var movePlayfairMeasureArray: MutableList<Float> = mutableListOf<Float>()
|
|
||||||
@Volatile
|
|
||||||
var rewardsRightDelete_p0Index: Long = 2995L
|
|
||||||
@Volatile
|
|
||||||
var scannerBingeListener_idx: Long = 8377L
|
|
||||||
|
|
||||||
|
@Volatile
|
||||||
|
private var movePlayfairMeasureArray: MutableList<Float> = mutableListOf<Float>()
|
||||||
|
|
||||||
|
@Volatile
|
||||||
|
var rewardsRightDelete_p0Index: Long = 2995L
|
||||||
|
|
||||||
|
@Volatile
|
||||||
|
var scannerBingeListener_idx: Long = 8377L
|
||||||
|
|
||||||
|
|
||||||
private var mainLayout: ViewGroup? = null
|
private var mainLayout: ViewGroup? = null
|
||||||
@ -45,77 +47,97 @@ private var movePlayfairMeasureArray: MutableList<Float> = mutableListOf<Float>
|
|||||||
|
|
||||||
private var listener: OnRetryListener? = null
|
private var listener: OnRetryListener? = null
|
||||||
|
|
||||||
private fun cloudyDramaCancelFormatSink(smartNotifications: Long, imgFirst: Float, setupKeyboard: MutableList<Int>) :Long {
|
private fun cloudyDramaCancelFormatSink(
|
||||||
|
smartNotifications: Long,
|
||||||
|
imgFirst: Float,
|
||||||
|
setupKeyboard: MutableList<Int>
|
||||||
|
): Long {
|
||||||
var resJust = 4399L
|
var resJust = 4399L
|
||||||
var priceRetrofit:Int = 5523
|
var priceRetrofit: Int = 5523
|
||||||
println(priceRetrofit)
|
println(priceRetrofit)
|
||||||
var tabRenderers:MutableList<Float> = mutableListOf<Float>()
|
var tabRenderers: MutableList<Float> = mutableListOf<Float>()
|
||||||
var xnasmSchnorr:Long = 5218L
|
var xnasmSchnorr: Long = 5218L
|
||||||
resJust -= 9248L
|
resJust -= 9248L
|
||||||
xnasmSchnorr *= resJust
|
xnasmSchnorr *= resJust
|
||||||
priceRetrofit -= 1846
|
priceRetrofit -= 1846
|
||||||
|
|
||||||
return xnasmSchnorr
|
return xnasmSchnorr
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun surfaceHeightProgressiveBrowseCoreMain() {
|
private fun surfaceHeightProgressiveBrowseCoreMain() {
|
||||||
var hexcharint_z:MutableList<Int> = mutableListOf<Int>()
|
var hexcharint_z: MutableList<Int> = mutableListOf<Int>()
|
||||||
|
|
||||||
var likeInformation:Long = this.cloudyDramaCancelFormatSink(8186L,9572.0f,hexcharint_z)
|
var likeInformation: Long = this.cloudyDramaCancelFormatSink(8186L, 9572.0f, hexcharint_z)
|
||||||
|
|
||||||
if (likeInformation == 51L) {
|
if (likeInformation == 51L) {
|
||||||
println(likeInformation)
|
println(likeInformation)
|
||||||
}
|
}
|
||||||
var job_likeInformation: Int = likeInformation.toInt()
|
var job_likeInformation: Int = likeInformation.toInt()
|
||||||
|
|
||||||
println(likeInformation)
|
println(likeInformation)
|
||||||
|
|
||||||
|
|
||||||
var collect6:Long = 4445L
|
var collect6: Long = 4445L
|
||||||
if (collect6 >= 9L) {}
|
if (collect6 >= 9L) {
|
||||||
|
}
|
||||||
println(collect6)
|
println(collect6)
|
||||||
|
|
||||||
|
|
||||||
mainLayout = LayoutInflater.from(context)
|
mainLayout = LayoutInflater.from(context)
|
||||||
.inflate(R.layout.u_resource, this, false) as ViewGroup
|
.inflate(R.layout.u_resource, this, false) as ViewGroup
|
||||||
var with_aK:Boolean = false
|
var with_aK: Boolean = false
|
||||||
while (!with_aK) { break }
|
while (!with_aK) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
imageView = mainLayout!!.findViewById(R.id.iv_icon)
|
imageView = mainLayout!!.findViewById(R.id.iv_icon)
|
||||||
var networki:MutableList<Double> = mutableListOf<Double>()
|
var networki: MutableList<Double> = mutableListOf<Double>()
|
||||||
networki.add(816.0)
|
networki.add(816.0)
|
||||||
networki.add(936.0)
|
networki.add(936.0)
|
||||||
networki.add(330.0)
|
networki.add(330.0)
|
||||||
networki.add(918.0)
|
networki.add(918.0)
|
||||||
networki.add(406.0)
|
networki.add(406.0)
|
||||||
if (networki.contains(8136.0)) {}
|
if (networki.contains(8136.0)) {
|
||||||
|
}
|
||||||
println(networki)
|
println(networki)
|
||||||
|
|
||||||
|
|
||||||
tvContent = mainLayout!!.findViewById(R.id.tvEmptyTitle)
|
tvContent = mainLayout!!.findViewById(R.id.tvEmptyTitle)
|
||||||
var handleru:Boolean = true
|
var handleru: Boolean = true
|
||||||
while (handleru) { break }
|
while (handleru) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
tvMessage = mainLayout!!.findViewById(R.id.tvEmptyMessage)
|
tvMessage = mainLayout!!.findViewById(R.id.tvEmptyMessage)
|
||||||
var place1:Long = 4101L
|
var place1: Long = 4101L
|
||||||
while (place1 > 147L) { break }
|
while (place1 > 147L) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
retryView = mainLayout!!.findViewById(R.id.btnRetry)
|
retryView = mainLayout!!.findViewById(R.id.btnRetry)
|
||||||
var cloudj:Double = 9036.0
|
var cloudj: Double = 9036.0
|
||||||
while (cloudj < 171.0) { break }
|
while (cloudj < 171.0) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
tvContent?.text = TranslationHelper.getTranslation()?.veloria_no_data
|
||||||
|
tvMessage?.text = TranslationHelper.getTranslation()?.veloria_no_data_add
|
||||||
|
retryView?.text = TranslationHelper.getTranslation()?.veloria_try_again
|
||||||
|
}
|
||||||
|
|
||||||
retryView!!.setOnClickListener {
|
retryView!!.setOnClickListener {
|
||||||
var free6:Boolean = true
|
var free6: Boolean = true
|
||||||
|
|
||||||
|
|
||||||
var statey:Int = 4980
|
var statey: Int = 4980
|
||||||
if (statey < 131) {}
|
if (statey < 131) {
|
||||||
|
}
|
||||||
println(statey)
|
println(statey)
|
||||||
|
|
||||||
|
|
||||||
@ -125,44 +147,46 @@ println(likeInformation)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun needForeverIllegalViewScreen() :String {
|
private fun needForeverIllegalViewScreen(): String {
|
||||||
var needCorrect:MutableMap<String,String> = mutableMapOf<String,String>()
|
var needCorrect: MutableMap<String, String> = mutableMapOf<String, String>()
|
||||||
var userHeight:String = "sendv"
|
var userHeight: String = "sendv"
|
||||||
var visibleFddebcdbeeffcebdf = mutableMapOf<String,Long>()
|
var visibleFddebcdbeeffcebdf = mutableMapOf<String, Long>()
|
||||||
println(visibleFddebcdbeeffcebdf)
|
println(visibleFddebcdbeeffcebdf)
|
||||||
var footerSeconds:Float = 727.0f
|
var footerSeconds: Float = 727.0f
|
||||||
println(footerSeconds)
|
println(footerSeconds)
|
||||||
var n_77Hwdownload:String = "headphone"
|
var n_77Hwdownload: String = "headphone"
|
||||||
if (userHeight == "smart") {
|
if (userHeight == "smart") {
|
||||||
println("userHeight" + userHeight)
|
println("userHeight" + userHeight)
|
||||||
}
|
}
|
||||||
if (null != userHeight) {
|
if (null != userHeight) {
|
||||||
var resource_z:Int = min(1, kotlin.random.Random.nextInt(64)) % userHeight.length
|
var resource_z: Int = min(1, kotlin.random.Random.nextInt(64)) % userHeight.length
|
||||||
var upload_x:Int = min(1, kotlin.random.Random.nextInt(81)) % n_77Hwdownload.length
|
var upload_x: Int = min(1, kotlin.random.Random.nextInt(81)) % n_77Hwdownload.length
|
||||||
n_77Hwdownload += userHeight.get(resource_z)
|
n_77Hwdownload += userHeight.get(resource_z)
|
||||||
}
|
}
|
||||||
if (footerSeconds >= -128 && footerSeconds <= 128){
|
if (footerSeconds >= -128 && footerSeconds <= 128) {
|
||||||
var salt_o = min(1, kotlin.random.Random.nextInt(17)) % n_77Hwdownload.length
|
var salt_o = min(1, kotlin.random.Random.nextInt(17)) % n_77Hwdownload.length
|
||||||
n_77Hwdownload += footerSeconds.toString()
|
n_77Hwdownload += footerSeconds.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
return n_77Hwdownload
|
return n_77Hwdownload
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setTitle(text: CharSequence?) {
|
fun setTitle(text: CharSequence?) {
|
||||||
|
|
||||||
var handshakeEach:String = this.needForeverIllegalViewScreen()
|
var handshakeEach: String = this.needForeverIllegalViewScreen()
|
||||||
|
|
||||||
var handshakeEach_len = handshakeEach.length
|
var handshakeEach_len = handshakeEach.length
|
||||||
println(handshakeEach)
|
println(handshakeEach)
|
||||||
|
|
||||||
println(handshakeEach)
|
println(handshakeEach)
|
||||||
|
|
||||||
|
|
||||||
var draggingb:Double = 154.0
|
var draggingb: Double = 154.0
|
||||||
while (draggingb > 96.0) { break }
|
while (draggingb > 96.0) {
|
||||||
|
break
|
||||||
|
}
|
||||||
println(draggingb)
|
println(draggingb)
|
||||||
|
|
||||||
|
|
||||||
@ -170,38 +194,40 @@ println(handshakeEach)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun prepareFollowCellInnerOff() :Double {
|
private fun prepareFollowCellInnerOff(): Double {
|
||||||
var handlerTrends = "recv"
|
var handlerTrends = "recv"
|
||||||
println(handlerTrends)
|
println(handlerTrends)
|
||||||
var bindingModel:Boolean = false
|
var bindingModel: Boolean = false
|
||||||
println(bindingModel)
|
println(bindingModel)
|
||||||
var videoCorrect:Float = 7731.0f
|
var videoCorrect: Float = 7731.0f
|
||||||
var bootstrapBinkdata:Double = 5230.0
|
var bootstrapBinkdata: Double = 5230.0
|
||||||
bindingModel = false
|
bindingModel = false
|
||||||
bootstrapBinkdata *= if(bindingModel) 53 else 35
|
bootstrapBinkdata *= if (bindingModel) 53 else 35
|
||||||
videoCorrect *= videoCorrect
|
videoCorrect *= videoCorrect
|
||||||
|
|
||||||
return bootstrapBinkdata
|
return bootstrapBinkdata
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun hide() {
|
fun hide() {
|
||||||
|
|
||||||
var transcodeMrz:Double = this.prepareFollowCellInnerOff()
|
var transcodeMrz: Double = this.prepareFollowCellInnerOff()
|
||||||
|
|
||||||
println(transcodeMrz)
|
println(transcodeMrz)
|
||||||
|
|
||||||
println(transcodeMrz)
|
println(transcodeMrz)
|
||||||
|
|
||||||
|
|
||||||
var stylesG:Boolean = false
|
var stylesG: Boolean = false
|
||||||
if (!stylesG) {}
|
if (!stylesG) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (mainLayout == null || !isShow()) {
|
if (mainLayout == null || !isShow()) {
|
||||||
var schemeP:String = "terminate"
|
var schemeP: String = "terminate"
|
||||||
if (schemeP.length > 0) {}
|
if (schemeP.length > 0) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return
|
return
|
||||||
@ -210,41 +236,41 @@ println(transcodeMrz)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun bindCorrectPriceCapability(historyModule: Double) :MutableMap<String,Float> {
|
private fun bindCorrectPriceCapability(historyModule: Double): MutableMap<String, Float> {
|
||||||
var manualItem = mutableListOf<Int>()
|
var manualItem = mutableListOf<Int>()
|
||||||
var agentView:MutableMap<String,Boolean> = mutableMapOf<String,Boolean>()
|
var agentView: MutableMap<String, Boolean> = mutableMapOf<String, Boolean>()
|
||||||
println(agentView)
|
println(agentView)
|
||||||
var trendCover:Float = 9605.0f
|
var trendCover: Float = 9605.0f
|
||||||
println(trendCover)
|
println(trendCover)
|
||||||
var manifestVariable:String = "vmafmotiondsp"
|
var manifestVariable: String = "vmafmotiondsp"
|
||||||
println(manifestVariable)
|
println(manifestVariable)
|
||||||
var failableLatitudeVmhd:MutableMap<String,Float> = mutableMapOf<String,Float>()
|
var failableLatitudeVmhd: MutableMap<String, Float> = mutableMapOf<String, Float>()
|
||||||
failableLatitudeVmhd.put("ffmpeg", 500.0f)
|
failableLatitudeVmhd.put("ffmpeg", 500.0f)
|
||||||
failableLatitudeVmhd.put("mipsfpu", 763.0f)
|
failableLatitudeVmhd.put("mipsfpu", 763.0f)
|
||||||
failableLatitudeVmhd.put("avstring", 716.0f)
|
failableLatitudeVmhd.put("avstring", 716.0f)
|
||||||
for(guessed in manualItem) {
|
for (guessed in manualItem) {
|
||||||
failableLatitudeVmhd.put("impulseEnumvalueComb", guessed.toFloat())
|
failableLatitudeVmhd.put("impulseEnumvalueComb", guessed.toFloat())
|
||||||
|
|
||||||
}
|
}
|
||||||
for(should in 0 .. agentView.keys.toList().size - 1) {
|
for (should in 0..agentView.keys.toList().size - 1) {
|
||||||
failableLatitudeVmhd.put("webpages", 0.0f)
|
failableLatitudeVmhd.put("webpages", 0.0f)
|
||||||
|
|
||||||
}
|
}
|
||||||
trendCover -= 1253.0f
|
trendCover -= 1253.0f
|
||||||
failableLatitudeVmhd.put("crossfadingRngSegwit", trendCover)
|
failableLatitudeVmhd.put("crossfadingRngSegwit", trendCover)
|
||||||
failableLatitudeVmhd.put("cascaded", 973.0f)
|
failableLatitudeVmhd.put("cascaded", 973.0f)
|
||||||
|
|
||||||
return failableLatitudeVmhd
|
return failableLatitudeVmhd
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setIcon(@DrawableRes id: Int) {
|
fun setIcon(@DrawableRes id: Int) {
|
||||||
|
|
||||||
var alsasymboltableAdjectives = this.bindCorrectPriceCapability(5459.0)
|
var alsasymboltableAdjectives = this.bindCorrectPriceCapability(5459.0)
|
||||||
|
|
||||||
val _alsasymboltableAdjectivestemp = alsasymboltableAdjectives.keys.toList()
|
val _alsasymboltableAdjectivestemp = alsasymboltableAdjectives.keys.toList()
|
||||||
for(index_j in 0 .. _alsasymboltableAdjectivestemp.size - 1) {
|
for (index_j in 0.._alsasymboltableAdjectivestemp.size - 1) {
|
||||||
val key_index_j = _alsasymboltableAdjectivestemp.get(index_j)
|
val key_index_j = _alsasymboltableAdjectivestemp.get(index_j)
|
||||||
val value_index_j = alsasymboltableAdjectives.get(key_index_j)
|
val value_index_j = alsasymboltableAdjectives.get(key_index_j)
|
||||||
if (index_j == 99) {
|
if (index_j == 99) {
|
||||||
@ -253,25 +279,27 @@ var alsasymboltableAdjectives = this.bindCorrectPriceCapability(5459.0)
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var alsasymboltableAdjectives_len:Int = alsasymboltableAdjectives.size
|
var alsasymboltableAdjectives_len: Int = alsasymboltableAdjectives.size
|
||||||
|
|
||||||
println(alsasymboltableAdjectives)
|
println(alsasymboltableAdjectives)
|
||||||
|
|
||||||
|
|
||||||
var edit4:Double = 3986.0
|
var edit4: Double = 3986.0
|
||||||
while (edit4 < 76.0) { break }
|
while (edit4 < 76.0) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
setIcon(ContextCompat.getDrawable(context, id))
|
setIcon(ContextCompat.getDrawable(context, id))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun beginPortArePlatform() :Boolean {
|
private fun beginPortArePlatform(): Boolean {
|
||||||
var downPager = "clli"
|
var downPager = "clli"
|
||||||
var cutPath:Int = 210
|
var cutPath: Int = 210
|
||||||
var time_hRetry:Boolean = false
|
var time_hRetry: Boolean = false
|
||||||
var headerDefault_60 = "cronos"
|
var headerDefault_60 = "cronos"
|
||||||
var prodMbufsHints:Boolean = false
|
var prodMbufsHints: Boolean = false
|
||||||
cutPath -= 7075
|
cutPath -= 7075
|
||||||
prodMbufsHints = cutPath > 4
|
prodMbufsHints = cutPath > 4
|
||||||
time_hRetry = true
|
time_hRetry = true
|
||||||
@ -279,68 +307,75 @@ private fun beginPortArePlatform() :Boolean {
|
|||||||
|
|
||||||
return prodMbufsHints
|
return prodMbufsHints
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun isShow(): Boolean {
|
fun isShow(): Boolean {
|
||||||
|
|
||||||
var rlottiecommonAwait = this.beginPortArePlatform()
|
var rlottiecommonAwait = this.beginPortArePlatform()
|
||||||
|
|
||||||
if (!rlottiecommonAwait) {
|
if (!rlottiecommonAwait) {
|
||||||
println("keyword")
|
println("keyword")
|
||||||
}
|
}
|
||||||
|
|
||||||
println(rlottiecommonAwait)
|
println(rlottiecommonAwait)
|
||||||
|
|
||||||
|
|
||||||
var transparentc:String = "movepage"
|
var transparentc: String = "movepage"
|
||||||
while (transparentc.length > 194) { break }
|
while (transparentc.length > 194) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return mainLayout != null && mainLayout?.visibility == VISIBLE
|
return mainLayout != null && mainLayout?.visibility == VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun hailTopDispatchZoomAlsoLaunch(cloudDisplay: MutableMap<String,Boolean>) :MutableMap<String,Int> {
|
private fun hailTopDispatchZoomAlsoLaunch(cloudDisplay: MutableMap<String, Boolean>): MutableMap<String, Int> {
|
||||||
var managerHeader:String = "max"
|
var managerHeader: String = "max"
|
||||||
println(managerHeader)
|
println(managerHeader)
|
||||||
var seekIndex = 640.0f
|
var seekIndex = 640.0f
|
||||||
println(seekIndex)
|
println(seekIndex)
|
||||||
var androidCharacter:MutableMap<String,String> = mutableMapOf<String,String>()
|
var androidCharacter: MutableMap<String, String> = mutableMapOf<String, String>()
|
||||||
var requestVideo = mutableListOf<Long>()
|
var requestVideo = mutableListOf<Long>()
|
||||||
var ffprobeOwnersCreating = mutableMapOf<String,Int>()
|
var ffprobeOwnersCreating = mutableMapOf<String, Int>()
|
||||||
ffprobeOwnersCreating.put("overlay", managerHeader.length)
|
ffprobeOwnersCreating.put("overlay", managerHeader.length)
|
||||||
seekIndex = 840.0f
|
seekIndex = 840.0f
|
||||||
ffprobeOwnersCreating.put("cacheNcomingAaaa", 4562)
|
ffprobeOwnersCreating.put("cacheNcomingAaaa", 4562)
|
||||||
for(pixfmts in androidCharacter) {
|
for (pixfmts in androidCharacter) {
|
||||||
ffprobeOwnersCreating.put("mafq", if (pixfmts.value.matches(Regex("(-)?(^[0-9]+$)"))) pixfmts.value.toInt() else 27)
|
ffprobeOwnersCreating.put(
|
||||||
|
"mafq",
|
||||||
|
if (pixfmts.value.matches(Regex("(-)?(^[0-9]+$)"))) pixfmts.value.toInt() else 27
|
||||||
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
for(cert in 0 .. requestVideo.size - 1) {
|
for (cert in 0..requestVideo.size - 1) {
|
||||||
ffprobeOwnersCreating.put("actuallyVmslGsmdec", requestVideo.get(cert).toInt())
|
ffprobeOwnersCreating.put("actuallyVmslGsmdec", requestVideo.get(cert).toInt())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return ffprobeOwnersCreating
|
return ffprobeOwnersCreating
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setAnimResource(@RawRes id: Int) {
|
fun setAnimResource(@RawRes id: Int) {
|
||||||
|
|
||||||
var handleBadge:MutableMap<String,Int> = this.hailTopDispatchZoomAlsoLaunch(mutableMapOf<String,Boolean>())
|
var handleBadge: MutableMap<String, Int> =
|
||||||
|
this.hailTopDispatchZoomAlsoLaunch(mutableMapOf<String, Boolean>())
|
||||||
|
|
||||||
var handleBadge_len:Int = handleBadge.size
|
var handleBadge_len: Int = handleBadge.size
|
||||||
for(obj_u in handleBadge) {
|
for (obj_u in handleBadge) {
|
||||||
println(obj_u.key)
|
println(obj_u.key)
|
||||||
println(obj_u.value)
|
println(obj_u.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
println(handleBadge)
|
println(handleBadge)
|
||||||
|
|
||||||
|
|
||||||
var postY:Double = 547.0
|
var postY: Double = 547.0
|
||||||
if (postY < 93.0) {}
|
if (postY < 93.0) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
imageView?.apply {
|
imageView?.apply {
|
||||||
@ -348,160 +383,171 @@ println(handleBadge)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun queryAccessLight(placeBuy: Int, againDashboard: Boolean) :Float {
|
private fun queryAccessLight(placeBuy: Int, againDashboard: Boolean): Float {
|
||||||
var deteleAttrs = 9391L
|
var deteleAttrs = 9391L
|
||||||
var bingeBanner = 2600
|
var bingeBanner = 2600
|
||||||
println(bingeBanner)
|
println(bingeBanner)
|
||||||
var emptyAvailable:Boolean = true
|
var emptyAvailable: Boolean = true
|
||||||
var launcherCheckbox = 7949L
|
var launcherCheckbox = 7949L
|
||||||
var visualizationEdia:Float = 9168.0f
|
var visualizationEdia: Float = 9168.0f
|
||||||
deteleAttrs += 5878L
|
deteleAttrs += 5878L
|
||||||
bingeBanner -= 7264
|
bingeBanner -= 7264
|
||||||
emptyAvailable = false
|
emptyAvailable = false
|
||||||
visualizationEdia += if(emptyAvailable) 7 else 10
|
visualizationEdia += if (emptyAvailable) 7 else 10
|
||||||
launcherCheckbox -= deteleAttrs
|
launcherCheckbox -= deteleAttrs
|
||||||
launcherCheckbox += launcherCheckbox
|
launcherCheckbox += launcherCheckbox
|
||||||
|
|
||||||
return visualizationEdia
|
return visualizationEdia
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun show() {
|
fun show() {
|
||||||
|
|
||||||
var exportIfaddrs:Float = this.queryAccessLight(2332,false)
|
var exportIfaddrs: Float = this.queryAccessLight(2332, false)
|
||||||
|
|
||||||
println(exportIfaddrs)
|
println(exportIfaddrs)
|
||||||
var exportIfaddrs_collections: Double = exportIfaddrs.toDouble()
|
var exportIfaddrs_collections: Double = exportIfaddrs.toDouble()
|
||||||
|
|
||||||
println(exportIfaddrs)
|
println(exportIfaddrs)
|
||||||
|
|
||||||
|
|
||||||
var min_l_:Double = 630.0
|
var min_l_: Double = 630.0
|
||||||
if (min_l_ >= 94.0) {}
|
if (min_l_ >= 94.0) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (mainLayout == null) {
|
if (mainLayout == null) {
|
||||||
var closel:Float = 3076.0f
|
var closel: Float = 3076.0f
|
||||||
while (closel >= 36.0f) { break }
|
while (closel >= 36.0f) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
surfaceHeightProgressiveBrowseCoreMain()
|
surfaceHeightProgressiveBrowseCoreMain()
|
||||||
}
|
}
|
||||||
if (isShow()) {
|
if (isShow()) {
|
||||||
var roundy:Float = 6748.0f
|
var roundy: Float = 6748.0f
|
||||||
if (roundy < 100.0f) {}
|
if (roundy < 100.0f) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
retryView!!.visibility = INVISIBLE
|
retryView!!.visibility = INVISIBLE
|
||||||
var cut2:Int = 4701
|
var cut2: Int = 4701
|
||||||
if (cut2 <= 68) {}
|
if (cut2 <= 68) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
mainLayout!!.visibility = VISIBLE
|
mainLayout!!.visibility = VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun takeCollectBannerLevel() :String {
|
private fun takeCollectBannerLevel(): String {
|
||||||
var launchMove:Boolean = true
|
var launchMove: Boolean = true
|
||||||
var standName = 1785.0
|
var standName = 1785.0
|
||||||
println(standName)
|
println(standName)
|
||||||
var playingHeight:Float = 9620.0f
|
var playingHeight: Float = 9620.0f
|
||||||
var surfaceTrends:Double = 6023.0
|
var surfaceTrends: Double = 6023.0
|
||||||
var sbcdecMixinOptable:String = "realtime"
|
var sbcdecMixinOptable: String = "realtime"
|
||||||
if (false == launchMove){
|
if (false == launchMove) {
|
||||||
println("click")
|
println("click")
|
||||||
}
|
}
|
||||||
if (standName >= -128 && standName <= 128){
|
if (standName >= -128 && standName <= 128) {
|
||||||
var current_w = min(1, kotlin.random.Random.nextInt(11)) % sbcdecMixinOptable.length
|
var current_w = min(1, kotlin.random.Random.nextInt(11)) % sbcdecMixinOptable.length
|
||||||
sbcdecMixinOptable += standName.toString()
|
sbcdecMixinOptable += standName.toString()
|
||||||
}
|
}
|
||||||
if (playingHeight <= 128 && playingHeight >= -128){
|
if (playingHeight <= 128 && playingHeight >= -128) {
|
||||||
var format_i:Int = min(1, kotlin.random.Random.nextInt(79)) % sbcdecMixinOptable.length
|
var format_i: Int = min(1, kotlin.random.Random.nextInt(79)) % sbcdecMixinOptable.length
|
||||||
sbcdecMixinOptable += playingHeight.toString()
|
sbcdecMixinOptable += playingHeight.toString()
|
||||||
}
|
}
|
||||||
if (surfaceTrends <= 128 && surfaceTrends >= -128){
|
if (surfaceTrends <= 128 && surfaceTrends >= -128) {
|
||||||
var keyword_n = min(1, kotlin.random.Random.nextInt(100)) % sbcdecMixinOptable.length
|
var keyword_n = min(1, kotlin.random.Random.nextInt(100)) % sbcdecMixinOptable.length
|
||||||
sbcdecMixinOptable += surfaceTrends.toString()
|
sbcdecMixinOptable += surfaceTrends.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
return sbcdecMixinOptable
|
return sbcdecMixinOptable
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setHint(text: CharSequence?) {
|
fun setHint(text: CharSequence?) {
|
||||||
|
|
||||||
var stormbirdWidefelem:String = this.takeCollectBannerLevel()
|
var stormbirdWidefelem: String = this.takeCollectBannerLevel()
|
||||||
|
|
||||||
if (stormbirdWidefelem == "user") {
|
if (stormbirdWidefelem == "user") {
|
||||||
println(stormbirdWidefelem)
|
println(stormbirdWidefelem)
|
||||||
}
|
}
|
||||||
var stormbirdWidefelem_len:Int = stormbirdWidefelem.length
|
var stormbirdWidefelem_len: Int = stormbirdWidefelem.length
|
||||||
|
|
||||||
println(stormbirdWidefelem)
|
println(stormbirdWidefelem)
|
||||||
|
|
||||||
|
|
||||||
var watchingX:Boolean = false
|
var watchingX: Boolean = false
|
||||||
|
|
||||||
|
|
||||||
tvMessage?.text = text ?: ""
|
tvMessage?.text = text ?: ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun showHistoryAgo() :String {
|
private fun showHistoryAgo(): String {
|
||||||
var builderRewards = true
|
var builderRewards = true
|
||||||
var cameraBinge:MutableList<Boolean> = mutableListOf<Boolean>()
|
var cameraBinge: MutableList<Boolean> = mutableListOf<Boolean>()
|
||||||
println(cameraBinge)
|
println(cameraBinge)
|
||||||
var closeType_tk:Boolean = false
|
var closeType_tk: Boolean = false
|
||||||
var default_gxVisit = 1581L
|
var default_gxVisit = 1581L
|
||||||
var capsHevmask = "user"
|
var capsHevmask = "user"
|
||||||
if (builderRewards == false){
|
if (builderRewards == false) {
|
||||||
println("remove")
|
println("remove")
|
||||||
}
|
}
|
||||||
if (closeType_tk){
|
if (closeType_tk) {
|
||||||
println("banner")
|
println("banner")
|
||||||
}
|
}
|
||||||
if (default_gxVisit >= -128 && default_gxVisit <= 128){
|
if (default_gxVisit >= -128 && default_gxVisit <= 128) {
|
||||||
var again_u = min(1, kotlin.random.Random.nextInt(75)) % capsHevmask.length
|
var again_u = min(1, kotlin.random.Random.nextInt(75)) % capsHevmask.length
|
||||||
capsHevmask += default_gxVisit.toString()
|
capsHevmask += default_gxVisit.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
return capsHevmask
|
return capsHevmask
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setOnRetryListener(listener: OnRetryListener?) {
|
fun setOnRetryListener(listener: OnRetryListener?) {
|
||||||
|
|
||||||
var allpassSerialize = this.showHistoryAgo()
|
var allpassSerialize = this.showHistoryAgo()
|
||||||
|
|
||||||
println(allpassSerialize)
|
println(allpassSerialize)
|
||||||
var allpassSerialize_len = allpassSerialize.length
|
var allpassSerialize_len = allpassSerialize.length
|
||||||
|
|
||||||
println(allpassSerialize)
|
println(allpassSerialize)
|
||||||
|
|
||||||
|
|
||||||
var utilsb:MutableList<Boolean> = mutableListOf<Boolean>()
|
var utilsb: MutableList<Boolean> = mutableListOf<Boolean>()
|
||||||
utilsb.add(false)
|
utilsb.add(false)
|
||||||
utilsb.add(false)
|
utilsb.add(false)
|
||||||
utilsb.add(true)
|
utilsb.add(true)
|
||||||
utilsb.add(false)
|
utilsb.add(false)
|
||||||
utilsb.add(true)
|
utilsb.add(true)
|
||||||
while (utilsb.size > 199) { break }
|
while (utilsb.size > 199) {
|
||||||
|
break
|
||||||
|
}
|
||||||
println(utilsb)
|
println(utilsb)
|
||||||
|
|
||||||
|
|
||||||
this.listener = listener
|
this.listener = listener
|
||||||
var explorem:Int = 6157
|
var explorem: Int = 6157
|
||||||
while (explorem > 200) { break }
|
while (explorem > 200) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (isShow()) {
|
if (isShow()) {
|
||||||
var clipG:Double = 7440.0
|
var clipG: Double = 7440.0
|
||||||
while (clipG > 58.0) { break }
|
while (clipG > 58.0) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
retryView!!.visibility = if (this.listener == null) INVISIBLE else VISIBLE
|
retryView!!.visibility = if (this.listener == null) INVISIBLE else VISIBLE
|
||||||
@ -509,13 +555,13 @@ println(allpassSerialize)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun requireMathAgentBody(animatorKeyword: Boolean) :Long {
|
private fun requireMathAgentBody(animatorKeyword: Boolean): Long {
|
||||||
var handlerFooter:MutableMap<String,Float> = mutableMapOf<String,Float>()
|
var handlerFooter: MutableMap<String, Float> = mutableMapOf<String, Float>()
|
||||||
var collectAnimator:Double = 1861.0
|
var collectAnimator: Double = 1861.0
|
||||||
var logoName = 7849L
|
var logoName = 7849L
|
||||||
println(logoName)
|
println(logoName)
|
||||||
var paintModel:Long = 5558L
|
var paintModel: Long = 5558L
|
||||||
var devpollAutocapitalization:Long = 7487L
|
var devpollAutocapitalization: Long = 7487L
|
||||||
collectAnimator -= collectAnimator
|
collectAnimator -= collectAnimator
|
||||||
logoName = logoName * paintModel
|
logoName = logoName * paintModel
|
||||||
devpollAutocapitalization *= logoName
|
devpollAutocapitalization *= logoName
|
||||||
@ -524,33 +570,36 @@ private fun requireMathAgentBody(animatorKeyword: Boolean) :Long {
|
|||||||
|
|
||||||
return devpollAutocapitalization
|
return devpollAutocapitalization
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setIcon(drawable: Drawable?) {
|
fun setIcon(drawable: Drawable?) {
|
||||||
|
|
||||||
var modmContaining = this.requireMathAgentBody(false)
|
var modmContaining = this.requireMathAgentBody(false)
|
||||||
|
|
||||||
var local_d6_modmContaining: Int = modmContaining.toInt()
|
var local_d6_modmContaining: Int = modmContaining.toInt()
|
||||||
println(modmContaining)
|
println(modmContaining)
|
||||||
|
|
||||||
println(modmContaining)
|
println(modmContaining)
|
||||||
|
|
||||||
|
|
||||||
var adapterX:MutableMap<String,Boolean> = mutableMapOf<String,Boolean>()
|
var adapterX: MutableMap<String, Boolean> = mutableMapOf<String, Boolean>()
|
||||||
adapterX.put("sea", false)
|
adapterX.put("sea", false)
|
||||||
adapterX.put("srp", false)
|
adapterX.put("srp", false)
|
||||||
adapterX.put("jobq", true)
|
adapterX.put("jobq", true)
|
||||||
if (adapterX.get("g") != null) {}
|
if (adapterX.get("g") != null) {
|
||||||
|
}
|
||||||
println(adapterX)
|
println(adapterX)
|
||||||
|
|
||||||
|
|
||||||
imageView?.apply {
|
imageView?.apply {
|
||||||
var window_o7:MutableList<Long> = mutableListOf<Long>()
|
var window_o7: MutableList<Long> = mutableListOf<Long>()
|
||||||
window_o7.add(919L)
|
window_o7.add(919L)
|
||||||
window_o7.add(651L)
|
window_o7.add(651L)
|
||||||
window_o7.add(874L)
|
window_o7.add(874L)
|
||||||
while (window_o7.size > 67) { break }
|
while (window_o7.size > 67) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
setImageDrawable(drawable)
|
setImageDrawable(drawable)
|
||||||
@ -558,44 +607,53 @@ println(modmContaining)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun commitDriverBottom(bindingProfile: MutableMap<String,Long>, userHelp: Int, handlerBottom: MutableMap<String,Long>) :String {
|
private fun commitDriverBottom(
|
||||||
|
bindingProfile: MutableMap<String, Long>,
|
||||||
|
userHelp: Int,
|
||||||
|
handlerBottom: MutableMap<String, Long>
|
||||||
|
): String {
|
||||||
var latestDisplay = 4878L
|
var latestDisplay = 4878L
|
||||||
var uploadHome = 1707.0f
|
var uploadHome = 1707.0f
|
||||||
println(uploadHome)
|
println(uploadHome)
|
||||||
var giftBackground = true
|
var giftBackground = true
|
||||||
var navigationbarHqdspIntle:String = "twopoint"
|
var navigationbarHqdspIntle: String = "twopoint"
|
||||||
if (latestDisplay >= -128 && latestDisplay <= 128){
|
if (latestDisplay >= -128 && latestDisplay <= 128) {
|
||||||
var active_i:Int = min(1, kotlin.random.Random.nextInt(41)) % navigationbarHqdspIntle.length
|
var active_i: Int =
|
||||||
|
min(1, kotlin.random.Random.nextInt(41)) % navigationbarHqdspIntle.length
|
||||||
navigationbarHqdspIntle += latestDisplay.toString()
|
navigationbarHqdspIntle += latestDisplay.toString()
|
||||||
}
|
}
|
||||||
if (uploadHome >= -128 && uploadHome <= 128){
|
if (uploadHome >= -128 && uploadHome <= 128) {
|
||||||
var point_s:Int = min(1, kotlin.random.Random.nextInt(57)) % navigationbarHqdspIntle.length
|
var point_s: Int =
|
||||||
|
min(1, kotlin.random.Random.nextInt(57)) % navigationbarHqdspIntle.length
|
||||||
navigationbarHqdspIntle += uploadHome.toString()
|
navigationbarHqdspIntle += uploadHome.toString()
|
||||||
}
|
}
|
||||||
if (giftBackground){
|
if (giftBackground) {
|
||||||
println("binge")
|
println("binge")
|
||||||
}
|
}
|
||||||
|
|
||||||
return navigationbarHqdspIntle
|
return navigationbarHqdspIntle
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun netWorkShow() {
|
fun netWorkShow() {
|
||||||
|
|
||||||
var contextRingtone = this.commitDriverBottom(mutableMapOf<String,Long>(),834,mutableMapOf<String,Long>())
|
var contextRingtone =
|
||||||
|
this.commitDriverBottom(mutableMapOf<String, Long>(), 834, mutableMapOf<String, Long>())
|
||||||
|
|
||||||
var contextRingtone_len:Int = contextRingtone.length
|
var contextRingtone_len: Int = contextRingtone.length
|
||||||
println(contextRingtone)
|
println(contextRingtone)
|
||||||
|
|
||||||
println(contextRingtone)
|
println(contextRingtone)
|
||||||
|
|
||||||
|
|
||||||
var renderersP:String = "tweaks"
|
var renderersP: String = "tweaks"
|
||||||
while (renderersP.length > 166) { break }
|
while (renderersP.length > 166) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
this.traceTestPadding = 640.0f
|
this.traceTestPadding = 640.0f
|
||||||
|
|
||||||
this.movePlayfairMeasureArray = mutableListOf<Float>()
|
this.movePlayfairMeasureArray = mutableListOf<Float>()
|
||||||
|
|
||||||
@ -605,27 +663,33 @@ this.traceTestPadding = 640.0f
|
|||||||
|
|
||||||
|
|
||||||
if (mainLayout == null) {
|
if (mainLayout == null) {
|
||||||
var c_managerf:Float = 5448.0f
|
var c_managerf: Float = 5448.0f
|
||||||
while (c_managerf == 116.0f) { break }
|
while (c_managerf == 116.0f) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
surfaceHeightProgressiveBrowseCoreMain()
|
surfaceHeightProgressiveBrowseCoreMain()
|
||||||
}
|
}
|
||||||
if (isShow()) {
|
if (isShow()) {
|
||||||
var closeS:Int = 9872
|
var closeS: Int = 9872
|
||||||
while (closeS <= 115) { break }
|
while (closeS <= 115) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
setIcon(R.mipmap.button_banner)
|
setIcon(R.mipmap.button_banner)
|
||||||
var giftA:Double = 7976.0
|
var giftA: Double = 7976.0
|
||||||
if (giftA > 120.0) {}
|
if (giftA > 120.0) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
setHint("Network anomaly")
|
setHint("Network anomaly")
|
||||||
var saltE:Boolean = true
|
var saltE: Boolean = true
|
||||||
if (saltE) {}
|
if (saltE) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
retryView!!.visibility = if (listener == null) INVISIBLE else VISIBLE
|
retryView!!.visibility = if (listener == null) INVISIBLE else VISIBLE
|
||||||
@ -633,9 +697,9 @@ this.traceTestPadding = 640.0f
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun seekClickSetupCheckNothing() :String {
|
private fun seekClickSetupCheckNothing(): String {
|
||||||
var bodyloadLoading:String = "steps"
|
var bodyloadLoading: String = "steps"
|
||||||
var coinsRecord:Long = 4784L
|
var coinsRecord: Long = 4784L
|
||||||
println(coinsRecord)
|
println(coinsRecord)
|
||||||
var eventFfmpeg = 596.0
|
var eventFfmpeg = 596.0
|
||||||
println(eventFfmpeg)
|
println(eventFfmpeg)
|
||||||
@ -644,40 +708,43 @@ private fun seekClickSetupCheckNothing() :String {
|
|||||||
if (bodyloadLoading == "price") {
|
if (bodyloadLoading == "price") {
|
||||||
println("bodyloadLoading" + bodyloadLoading)
|
println("bodyloadLoading" + bodyloadLoading)
|
||||||
}
|
}
|
||||||
if(bodyloadLoading.length > 0 && mismatchesSerializableLookup.length > 0) {
|
if (bodyloadLoading.length > 0 && mismatchesSerializableLookup.length > 0) {
|
||||||
mismatchesSerializableLookup += bodyloadLoading.get(0)
|
mismatchesSerializableLookup += bodyloadLoading.get(0)
|
||||||
}
|
}
|
||||||
if (coinsRecord <= 128 && coinsRecord >= -128){
|
if (coinsRecord <= 128 && coinsRecord >= -128) {
|
||||||
var free_w = min(1, kotlin.random.Random.nextInt(52)) % mismatchesSerializableLookup.length
|
var free_w =
|
||||||
|
min(1, kotlin.random.Random.nextInt(52)) % mismatchesSerializableLookup.length
|
||||||
mismatchesSerializableLookup += coinsRecord.toString()
|
mismatchesSerializableLookup += coinsRecord.toString()
|
||||||
}
|
}
|
||||||
if (eventFfmpeg >= -128 && eventFfmpeg <= 128){
|
if (eventFfmpeg >= -128 && eventFfmpeg <= 128) {
|
||||||
var select_r:Int = min(1, kotlin.random.Random.nextInt(60)) % mismatchesSerializableLookup.length
|
var select_r: Int =
|
||||||
|
min(1, kotlin.random.Random.nextInt(60)) % mismatchesSerializableLookup.length
|
||||||
mismatchesSerializableLookup += eventFfmpeg.toString()
|
mismatchesSerializableLookup += eventFfmpeg.toString()
|
||||||
}
|
}
|
||||||
if (profileCamera >= -128 && profileCamera <= 128){
|
if (profileCamera >= -128 && profileCamera <= 128) {
|
||||||
var ffmpeg_q = min(1, kotlin.random.Random.nextInt(18)) % mismatchesSerializableLookup.length
|
var ffmpeg_q =
|
||||||
|
min(1, kotlin.random.Random.nextInt(18)) % mismatchesSerializableLookup.length
|
||||||
mismatchesSerializableLookup += profileCamera.toString()
|
mismatchesSerializableLookup += profileCamera.toString()
|
||||||
}
|
}
|
||||||
|
|
||||||
return mismatchesSerializableLookup
|
return mismatchesSerializableLookup
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
fun setHint(@StringRes id: Int) {
|
fun setHint(@StringRes id: Int) {
|
||||||
|
|
||||||
var accuratePolls:String = this.seekClickSetupCheckNothing()
|
var accuratePolls: String = this.seekClickSetupCheckNothing()
|
||||||
|
|
||||||
if (accuratePolls == "num") {
|
if (accuratePolls == "num") {
|
||||||
println(accuratePolls)
|
println(accuratePolls)
|
||||||
}
|
}
|
||||||
var accuratePolls_len:Int = accuratePolls.length
|
var accuratePolls_len: Int = accuratePolls.length
|
||||||
|
|
||||||
println(accuratePolls)
|
println(accuratePolls)
|
||||||
|
|
||||||
|
|
||||||
var recommendsk:Long = 7632L
|
var recommendsk: Long = 7632L
|
||||||
|
|
||||||
|
|
||||||
setHint(resources.getString(id))
|
setHint(resources.getString(id))
|
||||||
|
@ -325,6 +325,8 @@ class GColorsFragment : JItemServiceFragment<VpnInterceptorBinding, PWidthClient
|
|||||||
|
|
||||||
|
|
||||||
isQualityRefresh = true
|
isQualityRefresh = true
|
||||||
|
|
||||||
|
restoreRightKeyboardFirstProfileActivity()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -371,6 +373,17 @@ class GColorsFragment : JItemServiceFragment<VpnInterceptorBinding, PWidthClient
|
|||||||
|
|
||||||
showComplete()
|
showComplete()
|
||||||
binding.viewPagerRecommend.visibility = View.VISIBLE
|
binding.viewPagerRecommend.visibility = View.VISIBLE
|
||||||
|
// if (revolution == "1080" && !RYAction.isVipTo()) {
|
||||||
|
// if (RYAction.isTouristTo()){
|
||||||
|
// RYAction.getMMKV()
|
||||||
|
// .putInt(JActivityAdapter.CONSTANTS_QUALITY, 540)
|
||||||
|
// }else {
|
||||||
|
// RYAction.getMMKV()
|
||||||
|
// .putInt(JActivityAdapter.CONSTANTS_QUALITY, 720)
|
||||||
|
// }
|
||||||
|
// revolution = RYAction.getMMKV().getInt(JActivityAdapter.CONSTANTS_QUALITY, 540).toString()
|
||||||
|
// }
|
||||||
|
|
||||||
viewModel.getExploreRecommends(currentPage, revolution)
|
viewModel.getExploreRecommends(currentPage, revolution)
|
||||||
} else {
|
} else {
|
||||||
var listv: MutableMap<String, String> = mutableMapOf<String, String>()
|
var listv: MutableMap<String, String> = mutableMapOf<String, String>()
|
||||||
|
@ -18,6 +18,7 @@ import com.scwang.smart.refresh.layout.api.RefreshLayout
|
|||||||
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
|
import com.veloria.now.shortapp.civil.JActivityAdapter.CONSTANTS_QUALITY_REFRESH
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter.VIDEO_SHORT_PLAY_ID
|
import com.veloria.now.shortapp.civil.JActivityAdapter.VIDEO_SHORT_PLAY_ID
|
||||||
import com.veloria.now.shortapp.civil.NOFfmpeg
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
@ -544,7 +545,7 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
binding.constraint.visibility = View.GONE
|
binding.clRoot.visibility = View.GONE
|
||||||
var bolda: Int = 5532
|
var bolda: Int = 5532
|
||||||
if (bolda == 91) {
|
if (bolda == 91) {
|
||||||
}
|
}
|
||||||
@ -586,6 +587,7 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
showComplete()
|
||||||
EventBus.getDefault().register(this)
|
EventBus.getDefault().register(this)
|
||||||
var bbfdebaffdk: Boolean = true
|
var bbfdebaffdk: Boolean = true
|
||||||
if (!bbfdebaffdk) {
|
if (!bbfdebaffdk) {
|
||||||
@ -594,7 +596,6 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
binding.textHome.text =
|
binding.textHome.text =
|
||||||
TranslationHelper.getTranslation()?.veloria_addictive_short_await
|
TranslationHelper.getTranslation()?.veloria_addictive_short_await
|
||||||
binding.tvMenuBinge.text = TranslationHelper.getTranslation()?.veloria_worthy_picks
|
|
||||||
binding.tvMenuDrama.text = TranslationHelper.getTranslation()?.veloria_drama_champions
|
binding.tvMenuDrama.text = TranslationHelper.getTranslation()?.veloria_drama_champions
|
||||||
binding.tvMenuCategories.text =
|
binding.tvMenuCategories.text =
|
||||||
TranslationHelper.getTranslation()?.veloria_select_categories
|
TranslationHelper.getTranslation()?.veloria_select_categories
|
||||||
@ -608,7 +609,6 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
binding.textHome.text = getString(R.string.home_addictive_shorts_await)
|
binding.textHome.text = getString(R.string.home_addictive_shorts_await)
|
||||||
binding.tvMenuBinge.text = getString(R.string.binge_worthy_picks)
|
|
||||||
binding.tvMenuDrama.text = getString(R.string.drama_champions)
|
binding.tvMenuDrama.text = getString(R.string.drama_champions)
|
||||||
binding.tvMenuCategories.text = getString(R.string.select_categories)
|
binding.tvMenuCategories.text = getString(R.string.select_categories)
|
||||||
binding.tvMenuCategories1.text = getString(R.string.select_categories)
|
binding.tvMenuCategories1.text = getString(R.string.select_categories)
|
||||||
@ -627,7 +627,7 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
println(message6)
|
println(message6)
|
||||||
|
|
||||||
|
|
||||||
binding.constraint.visibility = View.VISIBLE
|
binding.clRoot.visibility = View.VISIBLE
|
||||||
var viewsL: Long = 2629L
|
var viewsL: Long = 2629L
|
||||||
while (viewsL > 95L) {
|
while (viewsL > 95L) {
|
||||||
break
|
break
|
||||||
@ -1242,6 +1242,17 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
viewModel.userInfo.observe(this){
|
viewModel.userInfo.observe(this){
|
||||||
if (it?.data != null) {
|
if (it?.data != null) {
|
||||||
RYAction.saveUserInfoBean(it.data)
|
RYAction.saveUserInfoBean(it.data)
|
||||||
|
|
||||||
|
if (!RYAction.isVipTo()) {
|
||||||
|
if (RYAction.isTouristTo()){
|
||||||
|
RYAction.getMMKV()
|
||||||
|
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 540)
|
||||||
|
}else {
|
||||||
|
RYAction.getMMKV()
|
||||||
|
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 720)
|
||||||
|
}
|
||||||
|
EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1477,7 +1488,7 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
}
|
}
|
||||||
println(infoO)
|
println(infoO)
|
||||||
|
|
||||||
|
binding.tvMenuBinge.text = homeTotal.title
|
||||||
homeBingeAdapter?.submitList(homeTotal.list)
|
homeBingeAdapter?.submitList(homeTotal.list)
|
||||||
} else {
|
} else {
|
||||||
var register__9: Double = 7713.0
|
var register__9: Double = 7713.0
|
||||||
@ -1656,9 +1667,10 @@ class NOEditRegisterFragment : JItemServiceFragment<QfAutoBinding, VDLRenderers>
|
|||||||
while (helpqb >= 138) {
|
while (helpqb >= 138) {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
val maxSize = appearanceBase.size - (appearanceBase.size % 3)
|
||||||
|
val dramaList = appearanceBase.take(maxSize)
|
||||||
|
|
||||||
|
homeDramaAdapter?.submitList(dramaList)
|
||||||
homeDramaAdapter?.submitList(appearanceBase)
|
|
||||||
} else {
|
} else {
|
||||||
var loginm: String = "downmix"
|
var loginm: String = "downmix"
|
||||||
while (loginm.length > 104) {
|
while (loginm.length > 104) {
|
||||||
|
@ -7,6 +7,17 @@ import android.view.View
|
|||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import androidx.fragment.app.activityViewModels
|
import androidx.fragment.app.activityViewModels
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
|
import androidx.lifecycle.lifecycleScope
|
||||||
|
import com.android.billingclient.api.AcknowledgePurchaseParams
|
||||||
|
import com.android.billingclient.api.BillingClient
|
||||||
|
import com.android.billingclient.api.BillingClientStateListener
|
||||||
|
import com.android.billingclient.api.BillingFlowParams
|
||||||
|
import com.android.billingclient.api.BillingResult
|
||||||
|
import com.android.billingclient.api.ProductDetails
|
||||||
|
import com.android.billingclient.api.ProductDetailsResponseListener
|
||||||
|
import com.android.billingclient.api.Purchase
|
||||||
|
import com.android.billingclient.api.PurchasesUpdatedListener
|
||||||
|
import com.android.billingclient.api.QueryProductDetailsParams
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||||
import com.bumptech.glide.load.resource.bitmap.CircleCrop
|
import com.bumptech.glide.load.resource.bitmap.CircleCrop
|
||||||
@ -16,8 +27,10 @@ import com.scwang.smart.refresh.layout.api.RefreshLayout
|
|||||||
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
|
import com.veloria.now.shortapp.civil.JActivityAdapter.CONSTANTS_QUALITY_REFRESH
|
||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
|
import com.veloria.now.shortapp.civil.YFHome
|
||||||
import com.veloria.now.shortapp.civil.setShowVIPSlash
|
import com.veloria.now.shortapp.civil.setShowVIPSlash
|
||||||
import com.veloria.now.shortapp.civil.singleOnClick
|
import com.veloria.now.shortapp.civil.singleOnClick
|
||||||
import com.veloria.now.shortapp.civil.timeToString
|
import com.veloria.now.shortapp.civil.timeToString
|
||||||
@ -36,6 +49,10 @@ import com.veloria.now.shortapp.subtractionCroll.bidirectional.VeMyWalletActivit
|
|||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.VeRewardsActivity
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.VeRewardsActivity
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.VeStoreActivity
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.VeStoreActivity
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.JService
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.JService
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePayBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
@ -215,7 +232,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
}
|
}
|
||||||
|
|
||||||
setPushUI()
|
setPushUI()
|
||||||
|
setShowVipSlashDialog()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -239,7 +256,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
binding.tvName.text =
|
binding.tvName.text =
|
||||||
RYAction.getUserInfoBean()?.family_name.plus(RYAction.getUserInfoBean()?.giving_name)
|
RYAction.getUserInfoBean()?.family_name
|
||||||
|
|
||||||
binding.tvLogin.text = TranslationHelper.getTranslation()
|
binding.tvLogin.text = TranslationHelper.getTranslation()
|
||||||
?.let { TranslationHelper.getTranslation()?.veloria_log_out } ?: "Log out"
|
?.let { TranslationHelper.getTranslation()?.veloria_log_out } ?: "Log out"
|
||||||
@ -294,6 +311,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
binding.tvVipName.text = "Join VIP"
|
binding.tvVipName.text = "Join VIP"
|
||||||
binding.tvVipDes.text = getString(R.string.pagerCategoies)
|
binding.tvVipDes.text = getString(R.string.pagerCategoies)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -401,6 +419,17 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
|
|
||||||
|
|
||||||
setPushUI()
|
setPushUI()
|
||||||
|
|
||||||
|
if (!RYAction.isVipTo()) {
|
||||||
|
if (RYAction.isTouristTo()) {
|
||||||
|
RYAction.getMMKV()
|
||||||
|
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 540)
|
||||||
|
} else {
|
||||||
|
RYAction.getMMKV()
|
||||||
|
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 720)
|
||||||
|
}
|
||||||
|
EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hideLoading()
|
hideLoading()
|
||||||
@ -415,21 +444,63 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
LoginManager.getInstance().logOut()
|
LoginManager.getInstance().logOut()
|
||||||
RYAction.getMMKV()
|
RYAction.getMMKV()
|
||||||
.putString(JActivityAdapter.ACCOUNT_TOKEN, it.data.token)
|
.putString(JActivityAdapter.ACCOUNT_TOKEN, it.data.token)
|
||||||
EventBus.getDefault()
|
|
||||||
.post(JActivityAdapter.HOME_LEAVE_APP)
|
|
||||||
EventBus.getDefault()
|
EventBus.getDefault()
|
||||||
.post(JActivityAdapter.HOME_ENTER_THE_APP)
|
.post(JActivityAdapter.HOME_ENTER_THE_APP)
|
||||||
EventBus.getDefault()
|
EventBus.getDefault()
|
||||||
.post(JActivityAdapter.HOME_USER_REFRESH)
|
.post(JActivityAdapter.HOME_USER_REFRESH)
|
||||||
RYAction.getMMKV()
|
// RYAction.getMMKV()
|
||||||
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 540)
|
// .putInt(JActivityAdapter.CONSTANTS_QUALITY, 540)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.CONSTANTS_QUALITY_REFRESH)
|
||||||
EventBus.getDefault()
|
EventBus.getDefault()
|
||||||
.post(JActivityAdapter.HOME_NAVIGATE_TO_HOME)
|
.post(JActivityAdapter.HOME_NAVIGATE_TO_HOME)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_ON_LINE)
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
viewModel.PaySettingsV3.observe(this) {
|
||||||
|
if (it?.data != null) {
|
||||||
|
if (it.data.list_sub_vip.isNotEmpty()) {
|
||||||
|
setVipSlashDialog(it.data.list_sub_vip)
|
||||||
|
|
||||||
|
it.data.list_sub_vip.let { it1 -> querySubVipProductDetails(it1) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
viewModel.createPayOrderData.observe(this) {
|
||||||
|
if (it?.data != null) {
|
||||||
|
order_code = it.data.order_code.toString()
|
||||||
|
vipData?.android_template_id?.let { it1 -> getProduct(it1) }
|
||||||
|
} else {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.shapeSelected))
|
||||||
|
}
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
viewModel.googlePaidData.observe(this) {
|
||||||
|
if (it?.data != null) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_success.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_success))
|
||||||
|
}
|
||||||
|
viewModel.getUserInfo()
|
||||||
|
vipSplashDialog?.dismiss()
|
||||||
|
} else {
|
||||||
|
payBeanReq?.let { it1 -> RYAction.saveOrder(it1) }
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.shapeSelected))
|
||||||
|
}
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
binding.tvUserAgreement.setOnClickListener {
|
binding.tvUserAgreement.setOnClickListener {
|
||||||
var fragmentsP: Long = 2747L
|
var fragmentsP: Long = 2747L
|
||||||
if (fragmentsP == 197L) {
|
if (fragmentsP == 197L) {
|
||||||
@ -655,6 +726,8 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
val dialog = LogoutDialog(requireContext()).apply {
|
val dialog = LogoutDialog(requireContext()).apply {
|
||||||
setOnLogoutClickListener(object : LogoutDialog.LogoutOnClick {
|
setOnLogoutClickListener(object : LogoutDialog.LogoutOnClick {
|
||||||
override fun onLogoutAction() {
|
override fun onLogoutAction() {
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_LEAVE_APP)
|
||||||
viewModel.setLogout()
|
viewModel.setLogout()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@ -757,21 +830,37 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
|
|
||||||
showLoading()
|
showLoading()
|
||||||
viewModel.getUserInfo()
|
viewModel.getUserInfo()
|
||||||
|
setShowVipSlashDialog()
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private var isVipSplash = false
|
private var isVipSplash = false
|
||||||
override fun onResume() {
|
fun setShowVipSlashDialog() {
|
||||||
super.onResume()
|
// Fragment 可见
|
||||||
binding.root.postDelayed({
|
binding.root.postDelayed({
|
||||||
|
// if (!RYAction.isVipTo() && !isVipSplash) {
|
||||||
if (setShowVIPSlash() && !RYAction.isVipTo() && !isVipSplash) {
|
if (setShowVIPSlash() && !RYAction.isVipTo() && !isVipSplash) {
|
||||||
setVipSlashDialog()
|
initPayData()
|
||||||
|
viewModel.getPaySettingsV3(0, 0)
|
||||||
}
|
}
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setVipSlashDialog() {
|
var vipSplashDialog: VipSplashDialog? = null
|
||||||
val dialog = VipSplashDialog(requireContext()).apply {
|
|
||||||
|
fun isFragmentVisible(): Boolean {
|
||||||
|
return isAdded &&
|
||||||
|
isResumed &&
|
||||||
|
!isHidden &&
|
||||||
|
view?.visibility == View.VISIBLE
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setVipSlashDialog(vipBeans: List<VePaySettingsBean.VipBean>) {
|
||||||
|
if (!isFragmentVisible()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
vipSplashDialog = VipSplashDialog(requireContext(), vipBeans).apply {
|
||||||
setOnVipSplashOnClickListener(object :
|
setOnVipSplashOnClickListener(object :
|
||||||
VipSplashDialog.SetVipSplashOnClick {
|
VipSplashDialog.SetVipSplashOnClick {
|
||||||
override fun onVipSplash() {
|
override fun onVipSplash() {
|
||||||
@ -781,27 +870,54 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
VeStoreActivity::class.java
|
VeStoreActivity::class.java
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
RYAction.getMMKV().putLong(
|
|
||||||
JActivityAdapter.ACCOUNT_DIALOG_TIME_VIP_SPLASH,
|
|
||||||
System.currentTimeMillis()
|
|
||||||
)
|
|
||||||
isVipSplash = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onVipDismiss() {
|
override fun onVipOnAdapterBuy(vipBean: VePaySettingsBean.VipBean) {
|
||||||
RYAction.getMMKV().putLong(
|
if (!isConnect) {
|
||||||
JActivityAdapter.ACCOUNT_DIALOG_TIME_VIP_SPLASH,
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
System.currentTimeMillis()
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_error.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_error))
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
vipData = vipBean
|
||||||
|
showLoading()
|
||||||
|
viewModel.setCreatePayOrder(
|
||||||
|
VeCreatePayOrderReqBean(
|
||||||
|
vipData?.id.toString(),
|
||||||
|
"google",
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
)
|
||||||
)
|
)
|
||||||
isVipSplash = false
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
dialog.show()
|
vipSplashDialog?.setOnDismissListener {
|
||||||
dialog.setVipSplashOnClick
|
RYAction.getMMKV().putLong(
|
||||||
|
JActivityAdapter.ACCOUNT_DIALOG_TIME_VIP_SPLASH,
|
||||||
|
System.currentTimeMillis()
|
||||||
|
)
|
||||||
|
isVipSplash = false
|
||||||
|
billingClientMe?.endConnection()
|
||||||
|
billingClientMe = null
|
||||||
|
System.gc()
|
||||||
|
}
|
||||||
|
vipSplashDialog?.show()
|
||||||
|
vipSplashDialog?.setVipSplashOnClick
|
||||||
isVipSplash = true
|
isVipSplash = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onDestroy() {
|
||||||
|
super.onDestroy()
|
||||||
|
payBeanReq = null
|
||||||
|
if (billingClientMe != null) {
|
||||||
|
billingClientMe?.endConnection()
|
||||||
|
billingClientMe = null
|
||||||
|
}
|
||||||
|
System.gc()
|
||||||
|
}
|
||||||
|
|
||||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||||
fun onEvent(event: String) {
|
fun onEvent(event: String) {
|
||||||
@ -811,4 +927,240 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private var billingClientMe: BillingClient? = null
|
||||||
|
private var connectNum = 0
|
||||||
|
private var isConnect = false
|
||||||
|
private var vipData: VePaySettingsBean.VipBean? = null
|
||||||
|
private var order_code = ""
|
||||||
|
private var payBeanReq: VePayBean? = null
|
||||||
|
|
||||||
|
private fun initPayData() {
|
||||||
|
val purchasesUpdatedMeListener =
|
||||||
|
PurchasesUpdatedListener { billingResult, purchases ->
|
||||||
|
when (billingResult.responseCode) {
|
||||||
|
BillingClient.BillingResponseCode.OK -> {
|
||||||
|
for (purchase in purchases!!) {
|
||||||
|
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
|
||||||
|
consumePurchaseSubMe(purchase)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED -> {
|
||||||
|
queryAndConsumePurchases()
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
|
||||||
|
BillingClient.BillingResponseCode.USER_CANCELED -> {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_canceled.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_canceled))
|
||||||
|
}
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
|
||||||
|
else -> {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_error.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_error))
|
||||||
|
}
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
billingClientMe = BillingClient.newBuilder(requireContext())
|
||||||
|
.setListener(purchasesUpdatedMeListener)
|
||||||
|
.enablePendingPurchases()
|
||||||
|
.build()
|
||||||
|
|
||||||
|
|
||||||
|
val stateMeListener: BillingClientStateListener = object : BillingClientStateListener {
|
||||||
|
override fun onBillingSetupFinished(billingResult: BillingResult) {
|
||||||
|
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
|
isConnect = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onBillingServiceDisconnected() {
|
||||||
|
if (connectNum < 5) {
|
||||||
|
connectNum++
|
||||||
|
isConnect = false
|
||||||
|
billingClientMe?.startConnection(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
billingClientMe?.startConnection(stateMeListener)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun consumePurchaseSubMe(
|
||||||
|
purchase: Purchase
|
||||||
|
) {
|
||||||
|
if (billingClientMe?.isReady == true) {
|
||||||
|
if (!purchase.isAcknowledged) {
|
||||||
|
val acknowledgePurchaseParams =
|
||||||
|
AcknowledgePurchaseParams.newBuilder()
|
||||||
|
.setPurchaseToken(purchase.purchaseToken)
|
||||||
|
.build()
|
||||||
|
billingClientMe?.acknowledgePurchase(
|
||||||
|
acknowledgePurchaseParams
|
||||||
|
) {
|
||||||
|
val vePayBean = VePayBean(
|
||||||
|
order_code,
|
||||||
|
vipData?.id.toString(),
|
||||||
|
YFHome.getPackageName(),
|
||||||
|
vipData?.android_template_id.toString(),
|
||||||
|
purchase.purchaseToken,
|
||||||
|
purchase.orderId.toString(),
|
||||||
|
vipData?.price.toString()
|
||||||
|
)
|
||||||
|
payBeanReq = vePayBean
|
||||||
|
if (it.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
|
lifecycleScope.launch {
|
||||||
|
viewModel.setGooglePaid(vePayBean)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
RYAction.saveOrder(vePayBean)
|
||||||
|
lifecycleScope.launch {
|
||||||
|
toast(it.toString())
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_error.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_error))
|
||||||
|
}
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_error.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_error))
|
||||||
|
}
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun querySubVipProductDetails(listSubVip: List<VePaySettingsBean.VipBean>) {
|
||||||
|
val productDetailsResponseListener =
|
||||||
|
ProductDetailsResponseListener { billingResult, productDetailsList ->
|
||||||
|
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
|
val priceInfo = productDetailsList.mapNotNull { productDetails ->
|
||||||
|
productDetails.subscriptionOfferDetails?.get(0)?.pricingPhases?.pricingPhaseList?.get(
|
||||||
|
0
|
||||||
|
)?.let {
|
||||||
|
productDetails.productId to (it.formattedPrice to it.priceCurrencyCode)
|
||||||
|
}
|
||||||
|
}.toMap()
|
||||||
|
|
||||||
|
// 更新VIP列表的价格和货币代码
|
||||||
|
val updatedVipList = listSubVip.map { vip ->
|
||||||
|
priceInfo[vip.android_template_id]?.let { (price, currency) ->
|
||||||
|
vip.copy(price_google = price, currency_goolge = currency)
|
||||||
|
} ?: vip
|
||||||
|
}
|
||||||
|
|
||||||
|
binding.root.postDelayed({
|
||||||
|
vipSplashDialog?.setAdapterSubmitList(updatedVipList)
|
||||||
|
hideLoading()
|
||||||
|
}, 500)
|
||||||
|
} else {
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val productType: String = BillingClient.ProductType.SUBS
|
||||||
|
|
||||||
|
val inAppProductInfo = listSubVip.map {
|
||||||
|
QueryProductDetailsParams.Product.newBuilder()
|
||||||
|
.setProductId(it.android_template_id)
|
||||||
|
.setProductType(productType)
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
if (inAppProductInfo.isNotEmpty()) {
|
||||||
|
val productDetailsParams = QueryProductDetailsParams.newBuilder()
|
||||||
|
.setProductList(inAppProductInfo)
|
||||||
|
.build()
|
||||||
|
billingClientMe?.queryProductDetailsAsync(
|
||||||
|
productDetailsParams,
|
||||||
|
productDetailsResponseListener
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getProduct(productId: String) {
|
||||||
|
val productDetailsResponseListener =
|
||||||
|
ProductDetailsResponseListener { billingResult, productDetailsList ->
|
||||||
|
if (productDetailsList.isNotEmpty()) {
|
||||||
|
setPay(productDetailsList[0])
|
||||||
|
} else {
|
||||||
|
lifecycleScope.launch {
|
||||||
|
toast(billingResult.toString())
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val productType: String =
|
||||||
|
BillingClient.ProductType.SUBS
|
||||||
|
|
||||||
|
val inAppProductInfo = ArrayList<QueryProductDetailsParams.Product>()
|
||||||
|
inAppProductInfo.add(
|
||||||
|
QueryProductDetailsParams.Product.newBuilder()
|
||||||
|
.setProductId(productId)
|
||||||
|
.setProductType(productType)
|
||||||
|
.build()
|
||||||
|
)
|
||||||
|
val productDetailsParams = QueryProductDetailsParams.newBuilder()
|
||||||
|
.setProductList(inAppProductInfo)
|
||||||
|
.build()
|
||||||
|
billingClientMe?.queryProductDetailsAsync(
|
||||||
|
productDetailsParams,
|
||||||
|
productDetailsResponseListener
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setPay(productDetailInfo: ProductDetails) {
|
||||||
|
if (productDetailInfo.subscriptionOfferDetails?.isNotEmpty() == true) {
|
||||||
|
val params = ArrayList<BillingFlowParams.ProductDetailsParams>()
|
||||||
|
productDetailInfo.subscriptionOfferDetails?.get(0)?.offerToken?.let {
|
||||||
|
BillingFlowParams.ProductDetailsParams.newBuilder()
|
||||||
|
.setProductDetails(productDetailInfo)
|
||||||
|
.setOfferToken(it)
|
||||||
|
.build()
|
||||||
|
}?.let {
|
||||||
|
params.add(
|
||||||
|
it
|
||||||
|
)
|
||||||
|
}
|
||||||
|
val billingFlowParams = BillingFlowParams.newBuilder()
|
||||||
|
.setObfuscatedProfileId(order_code)
|
||||||
|
.setObfuscatedAccountId(RYAction.getCustomId())
|
||||||
|
.setProductDetailsParamsList(params)
|
||||||
|
.build()
|
||||||
|
|
||||||
|
billingClientMe?.launchBillingFlow(requireActivity(), billingFlowParams)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun queryAndConsumePurchases() {
|
||||||
|
// 查询所有未消费的购买记录
|
||||||
|
billingClientMe?.queryPurchasesAsync(BillingClient.ProductType.INAPP) { billingResult, purchaseList ->
|
||||||
|
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
|
for (purchase in purchaseList) {
|
||||||
|
// consumePurchase(purchase)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -398,6 +398,7 @@ class ZEpisodeFragment : JItemServiceFragment<QHeaderBinding, NNAndroid>(), NOFf
|
|||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
showComplete()
|
||||||
EventBus.getDefault().register(this)
|
EventBus.getDefault().register(this)
|
||||||
var s_heightN: String = "uplink"
|
var s_heightN: String = "uplink"
|
||||||
|
|
||||||
|
@ -6,6 +6,11 @@ import com.veloria.now.shortapp.newsletter.SStringsHelp
|
|||||||
import com.veloria.now.shortapp.newsletter.TStore
|
import com.veloria.now.shortapp.newsletter.TStore
|
||||||
import com.veloria.now.shortapp.texturedAsink.DoLoginBean
|
import com.veloria.now.shortapp.texturedAsink.DoLoginBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePayBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePayResBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
|
|
||||||
|
|
||||||
class OMNormalInstrumented : SStringsHelp() {
|
class OMNormalInstrumented : SStringsHelp() {
|
||||||
@ -35,4 +40,29 @@ class OMNormalInstrumented : SStringsHelp() {
|
|||||||
repository.setLogout().observeForever { result ->
|
repository.setLogout().observeForever { result ->
|
||||||
_logoutLiveData.value = result.getOrNull()
|
_logoutLiveData.value = result.getOrNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val _paySettingsV3 = MutableLiveData<TStore<VePaySettingsBean>?>()
|
||||||
|
val PaySettingsV3: MutableLiveData<TStore<VePaySettingsBean>?> get() = _paySettingsV3
|
||||||
|
fun getPaySettingsV3(short_play_id: Int, short_play_video_id: Int) =
|
||||||
|
repository.getPaySettingsV3(short_play_id,short_play_video_id).observeForever { result ->
|
||||||
|
_paySettingsV3.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private val createPayOrderLiveData = MutableLiveData<TStore<VeCreatePayOrderBean>?>()
|
||||||
|
val createPayOrderData: MutableLiveData<TStore<VeCreatePayOrderBean>?> get() = createPayOrderLiveData
|
||||||
|
fun setCreatePayOrder(createOrderReq: VeCreatePayOrderReqBean) {
|
||||||
|
repository.setCreatePayOrder(createOrderReq).observeForever { result ->
|
||||||
|
createPayOrderLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val googlePaidLiveData = MutableLiveData<TStore<VePayResBean>?>()
|
||||||
|
val googlePaidData: MutableLiveData<TStore<VePayResBean>?> get() = googlePaidLiveData
|
||||||
|
fun setGooglePaid(vePayBean: VePayBean?) {
|
||||||
|
repository.setGooglePaid(vePayBean).observeForever { result ->
|
||||||
|
googlePaidLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -33,16 +33,17 @@ import com.veloria.now.shortapp.civil.JActivityAdapter
|
|||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.YFHome
|
import com.veloria.now.shortapp.civil.YFHome
|
||||||
|
import com.veloria.now.shortapp.civil.singleOnClick
|
||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
import com.veloria.now.shortapp.databinding.LayoutVePlayerBuyDialogBinding
|
import com.veloria.now.shortapp.databinding.LayoutVePlayerBuyDialogBinding
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeStoreViewModel
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeStoreViewModel
|
||||||
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeBannerVipPayAdapter
|
|
||||||
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreCoinAdapter
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreCoinAdapter
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreCoinBigAdapter
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreVipAdapter
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VePayBean
|
import com.veloria.now.shortapp.texturedAsink.VePayBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
||||||
import com.youth.banner.listener.OnPageChangeListener
|
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
|
|
||||||
@ -53,7 +54,8 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
private val viewModel by lazy { ViewModelProvider(this)[VeStoreViewModel::class.java] }
|
private val viewModel by lazy { ViewModelProvider(this)[VeStoreViewModel::class.java] }
|
||||||
|
|
||||||
private var coinAdapter: VeStoreCoinAdapter? = null
|
private var coinAdapter: VeStoreCoinAdapter? = null
|
||||||
private var bannerAdapter: VeBannerVipPayAdapter? = null
|
private var coinBigAdapter: VeStoreCoinBigAdapter? = null
|
||||||
|
private var vipAdapter: VeStoreVipAdapter? = null
|
||||||
private var promise_view_ad: Int? = -1
|
private var promise_view_ad: Int? = -1
|
||||||
private var connectNum = 0
|
private var connectNum = 0
|
||||||
private var short_play_id: Int? = 0
|
private var short_play_id: Int? = 0
|
||||||
@ -66,6 +68,7 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
private var order_code = ""
|
private var order_code = ""
|
||||||
private var vipData: VePaySettingsBean.VipBean? = null
|
private var vipData: VePaySettingsBean.VipBean? = null
|
||||||
private var coinsData: VePaySettingsBean.CoinsBean? = null
|
private var coinsData: VePaySettingsBean.CoinsBean? = null
|
||||||
|
private var coinsBigData: VePaySettingsBean.CoinsBean? = null
|
||||||
|
|
||||||
private var isBuy = false
|
private var isBuy = false
|
||||||
private var purchaseData: Purchase? = null
|
private var purchaseData: Purchase? = null
|
||||||
@ -91,7 +94,8 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
|
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
binding?.tvCoinsText?.text = TranslationHelper.getTranslation()?.veloria_your_coins
|
binding?.tvCoinsText?.text = TranslationHelper.getTranslation()?.veloria_your_coins
|
||||||
|
binding?.tvCoinTitle?.text = TranslationHelper.getTranslation()?.veloria_coin_buy_title
|
||||||
|
binding?.tvUnlockText?.text = TranslationHelper.getTranslation()?.veloria_unlock
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
binding?.tvTips?.text = Html.fromHtml(
|
binding?.tvTips?.text = Html.fromHtml(
|
||||||
TranslationHelper.getTranslation()?.veloria_store_tips
|
TranslationHelper.getTranslation()?.veloria_store_tips
|
||||||
@ -104,18 +108,23 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
?: getString(R.string.ve_store_tips_br)
|
?: getString(R.string.ve_store_tips_br)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
initLoading()
|
initLoading()
|
||||||
binding?.tvCoins?.text = RYAction.getAllCoinTotal().toString()
|
binding?.tvCoins?.text = RYAction.getAllCoinTotal().toString()
|
||||||
|
binding?.tvUnlock?.text = parcelable?.coins?.toString()
|
||||||
|
|
||||||
binding?.ivCloseDialog?.setOnClickListener {
|
binding?.ivCloseDialog?.setOnClickListener {
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vipAdapter = VeStoreVipAdapter()
|
||||||
|
binding?.recyclerVip?.layoutManager = LinearLayoutManager(requireContext())
|
||||||
|
binding?.recyclerVip?.adapter = vipAdapter
|
||||||
|
|
||||||
coinAdapter = VeStoreCoinAdapter()
|
coinAdapter = VeStoreCoinAdapter()
|
||||||
binding?.recyclerCoin?.layoutManager =
|
binding?.recyclerCoin?.layoutManager = GridLayoutManager(requireContext(), 3)
|
||||||
LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)
|
|
||||||
binding?.recyclerCoin?.adapter = coinAdapter
|
binding?.recyclerCoin?.adapter = coinAdapter
|
||||||
binding?.recyclerCoin?.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
binding?.recyclerCoin?.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
||||||
override fun getItemOffsets(
|
override fun getItemOffsets(
|
||||||
@ -124,43 +133,70 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
parent: RecyclerView,
|
parent: RecyclerView,
|
||||||
state: RecyclerView.State
|
state: RecyclerView.State
|
||||||
) {
|
) {
|
||||||
outRect.right = resources.getDimension(R.dimen.dp_10).toInt()
|
outRect.left = resources.getDimension(R.dimen.dp_5).toInt()
|
||||||
|
outRect.right = resources.getDimension(R.dimen.dp_5).toInt()
|
||||||
outRect.bottom = resources.getDimension(R.dimen.dp_10).toInt()
|
outRect.bottom = resources.getDimension(R.dimen.dp_10).toInt()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
coinBigAdapter = VeStoreCoinBigAdapter()
|
||||||
|
binding?.recyclerCoinBig?.layoutManager = GridLayoutManager(requireContext(), 2)
|
||||||
|
binding?.recyclerCoinBig?.adapter = coinBigAdapter
|
||||||
|
binding?.recyclerCoinBig?.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
||||||
|
override fun getItemOffsets(
|
||||||
|
outRect: Rect,
|
||||||
|
view: View,
|
||||||
|
parent: RecyclerView,
|
||||||
|
state: RecyclerView.State
|
||||||
|
) {
|
||||||
|
outRect.left = resources.getDimension(R.dimen.dp_5).toInt()
|
||||||
|
outRect.right = resources.getDimension(R.dimen.dp_5).toInt()
|
||||||
|
outRect.bottom = resources.getDimension(R.dimen.dp_10).toInt()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
showLoading()
|
showLoading()
|
||||||
viewModel.getPaySettingsV3(0, 0)
|
viewModel.getPaySettingsV3(0, 0)
|
||||||
|
|
||||||
coinAdapter?.setOnItemClickListener { adapter, view, position ->
|
vipAdapter?.setOnItemClickListener { adapter, view, position ->
|
||||||
if (typeOnClick == 1) {
|
if (typeOnClick != 1) {
|
||||||
if (bannerAdapter?.currentPosition!! >= 0) {
|
coinAdapter?.currentPosition = -1
|
||||||
bannerAdapter?.notifyItemChanged(bannerAdapter?.currentPosition!!)
|
coinAdapter?.notifyDataSetChanged()
|
||||||
|
coinBigAdapter?.currentPosition = -1
|
||||||
|
coinBigAdapter?.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
bannerAdapter?.oldPosition = -1
|
typeOnClick = 1
|
||||||
bannerAdapter?.currentPosition = -1
|
vipAdapter?.currentPosition = position
|
||||||
|
vipAdapter?.notifyDataSetChanged()
|
||||||
|
|
||||||
|
setOnPayNowClick()
|
||||||
|
}
|
||||||
|
coinAdapter?.setOnItemClickListener { adapter, view, position ->
|
||||||
|
if (typeOnClick != 0) {
|
||||||
|
vipAdapter?.currentPosition = -1
|
||||||
|
vipAdapter?.notifyDataSetChanged()
|
||||||
|
coinBigAdapter?.currentPosition = -1
|
||||||
|
coinBigAdapter?.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
typeOnClick = 0
|
typeOnClick = 0
|
||||||
coinAdapter?.currentPosition = position
|
coinAdapter?.currentPosition = position
|
||||||
coinAdapter?.notifyDataSetChanged()
|
coinAdapter?.notifyDataSetChanged()
|
||||||
|
|
||||||
coinsData =
|
setOnPayNowClick()
|
||||||
coinAdapter!!.getItem(position) as VePaySettingsBean.CoinsBean
|
|
||||||
showLoading()
|
|
||||||
if (parcelable != null) {
|
|
||||||
short_play_id?.let {
|
|
||||||
VeCreatePayOrderReqBean(
|
|
||||||
coinsData?.id.toString(),
|
|
||||||
"google",
|
|
||||||
it,
|
|
||||||
parcelable!!.short_play_video_id
|
|
||||||
)
|
|
||||||
}?.let {
|
|
||||||
viewModel.setCreatePayOrder(
|
|
||||||
it
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
coinBigAdapter?.setOnItemClickListener { adapter, view, position ->
|
||||||
|
if (typeOnClick != 2) {
|
||||||
|
vipAdapter?.currentPosition = -1
|
||||||
|
vipAdapter?.notifyDataSetChanged()
|
||||||
|
coinAdapter?.currentPosition = -1
|
||||||
|
coinAdapter?.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
|
typeOnClick = 2
|
||||||
|
coinBigAdapter?.currentPosition = position
|
||||||
|
coinBigAdapter?.notifyDataSetChanged()
|
||||||
|
|
||||||
|
setOnPayNowClick()
|
||||||
}
|
}
|
||||||
|
|
||||||
observeData()
|
observeData()
|
||||||
@ -175,34 +211,45 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
window?.setGravity(Gravity.BOTTOM)
|
window?.setGravity(Gravity.BOTTOM)
|
||||||
val layoutParams = window?.attributes
|
val layoutParams = window?.attributes
|
||||||
layoutParams?.width = WindowManager.LayoutParams.MATCH_PARENT
|
layoutParams?.width = WindowManager.LayoutParams.MATCH_PARENT
|
||||||
layoutParams?.height = resources.getDimensionPixelSize(R.dimen.dp_600)
|
layoutParams?.height = (requireActivity().resources.displayMetrics.heightPixels - requireActivity().resources.getDimension(R.dimen.dp_90)).toInt()
|
||||||
window?.attributes = layoutParams
|
window?.attributes = layoutParams
|
||||||
return dialog
|
return dialog
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setBannerListener() {
|
|
||||||
binding?.bannerVip?.setOnBannerListener { data, position ->
|
|
||||||
if (typeOnClick == 0) {
|
|
||||||
coinAdapter?.currentPosition = -1
|
|
||||||
coinAdapter?.notifyDataSetChanged()
|
|
||||||
}
|
|
||||||
if (bannerAdapter?.currentPosition!! >= 0) {
|
|
||||||
bannerAdapter?.oldPosition = bannerAdapter?.currentPosition!!
|
|
||||||
}
|
|
||||||
typeOnClick = 1
|
|
||||||
bannerAdapter?.currentPosition = position
|
|
||||||
bannerAdapter?.notifyItemChanged(position)
|
|
||||||
if (bannerAdapter?.oldPosition!! >= 0) {
|
|
||||||
bannerAdapter?.notifyItemChanged(bannerAdapter?.oldPosition!!)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
fun setOnPayNowClick() {
|
||||||
|
singleOnClick {
|
||||||
|
if (!isConnect) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_error.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_error))
|
||||||
|
}
|
||||||
|
return@singleOnClick
|
||||||
|
}
|
||||||
|
if (typeOnClick == 0) {
|
||||||
|
coinsData =
|
||||||
|
coinAdapter?.getItem(coinAdapter!!.currentPosition) as VePaySettingsBean.CoinsBean
|
||||||
|
} else if (typeOnClick == 1) {
|
||||||
vipData =
|
vipData =
|
||||||
bannerAdapter?.getData(bannerAdapter!!.currentPosition) as VePaySettingsBean.VipBean
|
vipAdapter?.getItem(vipAdapter!!.currentPosition) as VePaySettingsBean.VipBean
|
||||||
|
} else {
|
||||||
|
coinsBigData =
|
||||||
|
coinBigAdapter?.getItem(coinBigAdapter!!.currentPosition) as VePaySettingsBean.CoinsBean
|
||||||
|
}
|
||||||
showLoading()
|
showLoading()
|
||||||
|
var idStr = ""
|
||||||
|
if (typeOnClick == 0) {
|
||||||
|
idStr = coinsData?.id.toString()
|
||||||
|
} else if (typeOnClick == 1) {
|
||||||
|
idStr = vipData?.id.toString()
|
||||||
|
} else {
|
||||||
|
idStr = coinsBigData?.id.toString()
|
||||||
|
}
|
||||||
if (parcelable != null) {
|
if (parcelable != null) {
|
||||||
short_play_id?.let {
|
short_play_id?.let {
|
||||||
VeCreatePayOrderReqBean(
|
VeCreatePayOrderReqBean(
|
||||||
vipData?.id.toString(),
|
idStr,
|
||||||
"google",
|
"google",
|
||||||
it,
|
it,
|
||||||
parcelable!!.short_play_video_id
|
parcelable!!.short_play_video_id
|
||||||
@ -213,84 +260,48 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
binding?.bannerVip?.addOnPageChangeListener(object : OnPageChangeListener {
|
|
||||||
override fun onPageScrolled(
|
|
||||||
position: Int,
|
|
||||||
positionOffset: Float,
|
|
||||||
positionOffsetPixels: Int
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPageSelected(position: Int) {
|
|
||||||
val data = bannerAdapter?.getData(position)
|
|
||||||
data?.let { setVipContentText(it) }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPageScrollStateChanged(state: Int) {
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
val itemData = bannerAdapter?.getData(0)
|
|
||||||
itemData?.let { setVipContentText(it) }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun setVipContentText(data: VePaySettingsBean.VipBean){
|
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
|
||||||
var oneDate = ""
|
|
||||||
when (data?.vip_type_key) {
|
|
||||||
"week" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_week.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
"month" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_month.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
"quarter" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_quarter.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
"year" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_year.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val vipContent1 = TranslationHelper.replaces(
|
|
||||||
TranslationHelper.getTranslation()?.veloria_unlimited_access_to.toString(),
|
|
||||||
oneDate,data.send_coin_ttl.toString()
|
|
||||||
)
|
|
||||||
binding?.tvBuyHint?.text =
|
|
||||||
Html.fromHtml(vipContent1, Html.FROM_HTML_MODE_LEGACY)
|
|
||||||
|
|
||||||
} else {
|
|
||||||
val vipContent1 = TranslationHelper.replaces(getString(R.string.unlimited_access_to_all_series_for_1_br),data?.vip_type_key.toString(),data.send_coin_ttl.toString())
|
|
||||||
binding?.tvBuyHint?.text =
|
|
||||||
Html.fromHtml(vipContent1, Html.FROM_HTML_MODE_LEGACY)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun observeData() {
|
fun observeData() {
|
||||||
viewModel.PaySettingsV3.observe(this) {
|
viewModel.PaySettingsV3.observe(this) {
|
||||||
if (it?.data != null) {
|
if (it?.data != null) {
|
||||||
coinAdapter?.submitList(it.data.list_coins)
|
if (it.data.list_sub_vip.isNotEmpty()) {
|
||||||
bannerAdapter =
|
vipAdapter?.submitList(it.data.list_sub_vip)
|
||||||
VeBannerVipPayAdapter(it.data.list_sub_vip)
|
binding?.recyclerVip?.visibility = View.VISIBLE
|
||||||
binding?.bannerVip?.setBannerGalleryEffect(
|
|
||||||
resources.getDimension(R.dimen.dp_5).toInt(),
|
|
||||||
resources.getDimension(R.dimen.dp_5).toInt()
|
|
||||||
)
|
|
||||||
binding?.bannerVip?.setAdapter(bannerAdapter)
|
|
||||||
setBannerListener()
|
|
||||||
|
|
||||||
it.data.list_sub_vip.let { it1 -> querySubVipProductDetails(it1) }
|
it.data.list_sub_vip.let { it1 -> querySubVipProductDetails(it1) }
|
||||||
it.data.list_coins.let { it1 -> queryInAppCoinsProductDetails(it1) }
|
|
||||||
|
} else {
|
||||||
|
binding?.recyclerVip?.visibility = View.GONE
|
||||||
|
}
|
||||||
|
if (it.data.list_coins.isNotEmpty()) {
|
||||||
|
val small = it.data.list_coins.filter { coins -> coins.size == "small" }
|
||||||
|
val big = it.data.list_coins.filter { coins -> coins.size == "big" }
|
||||||
|
if (small.isNotEmpty()) {
|
||||||
|
coinAdapter?.submitList(small)
|
||||||
|
binding?.recyclerCoin?.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
binding?.recyclerCoin?.visibility = View.GONE
|
||||||
|
}
|
||||||
|
if (big.isNotEmpty()) {
|
||||||
|
coinBigAdapter?.submitList(big)
|
||||||
|
binding?.recyclerCoinBig?.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
binding?.recyclerCoinBig?.visibility = View.GONE
|
||||||
|
}
|
||||||
|
if (small?.isNotEmpty() == true) {
|
||||||
|
small?.let { it1 -> queryInAppCoinsProductDetails(it1, "small") }
|
||||||
|
}
|
||||||
|
if (big?.isNotEmpty() == true) {
|
||||||
|
big?.let { it1 -> queryInAppCoinsProductDetails(it1, "big") }
|
||||||
|
}
|
||||||
|
binding?.tvCoinTitle?.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
binding?.recyclerCoin?.visibility = View.GONE
|
||||||
|
binding?.recyclerCoinBig?.visibility = View.GONE
|
||||||
|
binding?.tvCoinTitle?.visibility = View.GONE
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
binding?.root?.postDelayed({
|
binding?.root?.postDelayed({
|
||||||
@ -303,8 +314,10 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
order_code = it.data.order_code.toString()
|
order_code = it.data.order_code.toString()
|
||||||
if (typeOnClick == 0) {
|
if (typeOnClick == 0) {
|
||||||
coinsData?.android_template_id?.let { it1 -> getProduct(it1) }
|
coinsData?.android_template_id?.let { it1 -> getProduct(it1) }
|
||||||
} else {
|
} else if (typeOnClick == 1) {
|
||||||
vipData?.android_template_id?.let { it1 -> getProduct(it1) }
|
vipData?.android_template_id?.let { it1 -> getProduct(it1) }
|
||||||
|
} else {
|
||||||
|
coinsBigData?.android_template_id?.let { it1 -> getProduct(it1) }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
@ -335,7 +348,6 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
hideLoading()
|
hideLoading()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -347,15 +359,20 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
BillingClient.BillingResponseCode.OK -> {
|
BillingClient.BillingResponseCode.OK -> {
|
||||||
for (purchase in purchases!!) {
|
for (purchase in purchases!!) {
|
||||||
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
|
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
|
||||||
if (typeOnClick == 0) {
|
if (typeOnClick == 1) {
|
||||||
consumePurchase(purchase)
|
|
||||||
} else {
|
|
||||||
consumePurchaseSub(purchase)
|
consumePurchaseSub(purchase)
|
||||||
|
} else {
|
||||||
|
consumePurchase(purchase)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED -> {
|
||||||
|
queryAndConsumePurchases()
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
|
||||||
BillingClient.BillingResponseCode.USER_CANCELED -> {
|
BillingClient.BillingResponseCode.USER_CANCELED -> {
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
toast(TranslationHelper.getTranslation()?.veloria_google_pay_canceled.toString())
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_canceled.toString())
|
||||||
@ -459,7 +476,7 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
binding?.root?.postDelayed({
|
binding?.root?.postDelayed({
|
||||||
bannerAdapter?.setDatas(updatedVipList)
|
vipAdapter?.submitList(updatedVipList)
|
||||||
hideLoading()
|
hideLoading()
|
||||||
}, 500)
|
}, 500)
|
||||||
} else {
|
} else {
|
||||||
@ -489,7 +506,8 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun queryInAppCoinsProductDetails(
|
private fun queryInAppCoinsProductDetails(
|
||||||
coinsList: List<VePaySettingsBean.CoinsBean>
|
coinsList: List<VePaySettingsBean.CoinsBean>,
|
||||||
|
type: String
|
||||||
) {
|
) {
|
||||||
val productDetailsResponseListener =
|
val productDetailsResponseListener =
|
||||||
ProductDetailsResponseListener { billingResult, productDetailsList ->
|
ProductDetailsResponseListener { billingResult, productDetailsList ->
|
||||||
@ -508,7 +526,11 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
coinAdapter?.recyclerView?.postDelayed({
|
coinAdapter?.recyclerView?.postDelayed({
|
||||||
|
if (type == "small") {
|
||||||
coinAdapter?.submitList(updatedCoinsList)
|
coinAdapter?.submitList(updatedCoinsList)
|
||||||
|
} else {
|
||||||
|
coinBigAdapter?.submitList(updatedCoinsList)
|
||||||
|
}
|
||||||
}, 500)
|
}, 500)
|
||||||
} else {
|
} else {
|
||||||
hideLoading()
|
hideLoading()
|
||||||
@ -549,10 +571,10 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val productType: String = if (typeOnClick == 0) {
|
val productType: String = if (typeOnClick == 1) {
|
||||||
BillingClient.ProductType.INAPP
|
|
||||||
} else {
|
|
||||||
BillingClient.ProductType.SUBS
|
BillingClient.ProductType.SUBS
|
||||||
|
} else {
|
||||||
|
BillingClient.ProductType.INAPP
|
||||||
}
|
}
|
||||||
|
|
||||||
val inAppProductInfo = ArrayList<QueryProductDetailsParams.Product>()
|
val inAppProductInfo = ArrayList<QueryProductDetailsParams.Product>()
|
||||||
@ -613,12 +635,12 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
ConsumeResponseListener { billingResult, purchaseToken ->
|
ConsumeResponseListener { billingResult, purchaseToken ->
|
||||||
val vePayBean = VePayBean(
|
val vePayBean = VePayBean(
|
||||||
order_code,
|
order_code,
|
||||||
if (typeOnClick == 0) coinsData?.id.toString() else vipData?.id.toString(),
|
if (typeOnClick == 0) coinsData?.id.toString() else coinsBigData?.id.toString(),
|
||||||
YFHome.getPackageName(),
|
YFHome.getPackageName(),
|
||||||
if (typeOnClick == 0) coinsData?.android_template_id.toString() else vipData?.android_template_id.toString(),
|
if (typeOnClick == 0) coinsData?.android_template_id.toString() else coinsBigData?.android_template_id.toString(),
|
||||||
purchaseToken,
|
purchaseToken,
|
||||||
purchaseData?.orderId.toString(),
|
purchaseData?.orderId.toString(),
|
||||||
if (typeOnClick == 0) coinsData?.price.toString() else vipData?.price.toString()
|
if (typeOnClick == 0) coinsData?.price.toString() else coinsBigData?.price.toString()
|
||||||
)
|
)
|
||||||
payBeanReq = vePayBean
|
payBeanReq = vePayBean
|
||||||
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
@ -652,6 +674,16 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun queryAndConsumePurchases() {
|
||||||
|
// 查询所有未消费的购买记录
|
||||||
|
billingClientData?.queryPurchasesAsync(BillingClient.ProductType.INAPP) { billingResult, purchaseList ->
|
||||||
|
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
|
for (purchase in purchaseList) {
|
||||||
|
consumePurchase(purchase)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDismiss(dialog: DialogInterface) {
|
override fun onDismiss(dialog: DialogInterface) {
|
||||||
payBeanReq = null
|
payBeanReq = null
|
||||||
|
@ -0,0 +1,95 @@
|
|||||||
|
package com.veloria.now.shortapp.subtractionCroll.avcintraRelock
|
||||||
|
|
||||||
|
import android.app.Dialog
|
||||||
|
import android.content.Context
|
||||||
|
import android.content.Intent
|
||||||
|
import android.graphics.Color
|
||||||
|
import android.graphics.drawable.ColorDrawable
|
||||||
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
|
import android.text.Html
|
||||||
|
import android.view.Gravity
|
||||||
|
import android.view.Window
|
||||||
|
import android.view.WindowManager
|
||||||
|
import androidx.appcompat.widget.AppCompatImageView
|
||||||
|
import androidx.appcompat.widget.AppCompatTextView
|
||||||
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
|
import com.veloria.now.shortapp.civil.YFHome
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VersionControlBean
|
||||||
|
|
||||||
|
class VersionControlDialog(context: Context, versionControlBean: VersionControlBean) :
|
||||||
|
Dialog(context) {
|
||||||
|
|
||||||
|
init {
|
||||||
|
requestWindowFeature(Window.FEATURE_NO_TITLE)
|
||||||
|
setContentView(R.layout.dialog_version_control)
|
||||||
|
|
||||||
|
window?.apply {
|
||||||
|
setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
||||||
|
setLayout(
|
||||||
|
(context.resources.displayMetrics.widthPixels * 0.8).toInt(),
|
||||||
|
WindowManager.LayoutParams.WRAP_CONTENT
|
||||||
|
)
|
||||||
|
setGravity(Gravity.CENTER)
|
||||||
|
}
|
||||||
|
setCancelable(false)
|
||||||
|
|
||||||
|
val ivClose = findViewById<AppCompatImageView>(R.id.iv_close)
|
||||||
|
val tvVersion = findViewById<AppCompatTextView>(R.id.tv_version)
|
||||||
|
val tvNow = findViewById<AppCompatTextView>(R.id.tv_now)
|
||||||
|
val tvContent = findViewById<AppCompatTextView>(R.id.tv_content)
|
||||||
|
val tvTitle = findViewById<AppCompatTextView>(R.id.tv_title)
|
||||||
|
|
||||||
|
tvVersion.text = "v".plus(versionControlBean.version_name)
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
|
tvContent?.text = Html.fromHtml(
|
||||||
|
versionControlBean.description, Html.FROM_HTML_MODE_COMPACT
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
tvContent?.text = Html.fromHtml(
|
||||||
|
versionControlBean.description
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
tvTitle.text = TranslationHelper.getTranslation()?.veloria_update_title
|
||||||
|
tvNow.text = TranslationHelper.getTranslation()?.veloria_update_now
|
||||||
|
}
|
||||||
|
|
||||||
|
ivClose.setOnClickListener {
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
tvNow.setOnClickListener {
|
||||||
|
setOpenGooglePlayStore(YFHome.getPackageName())
|
||||||
|
dismiss()
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setOnDismissListener {
|
||||||
|
RYAction.getMMKV().putLong(
|
||||||
|
JActivityAdapter.ACCOUNT_VERSION_CONTROL_TIME,
|
||||||
|
System.currentTimeMillis()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun setOpenGooglePlayStore(packageName: String) {
|
||||||
|
try {
|
||||||
|
val intent = Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=$packageName"))
|
||||||
|
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
|
context.startActivity(intent)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
val intent = Intent(
|
||||||
|
Intent.ACTION_VIEW,
|
||||||
|
Uri.parse("https://play.google.com/store/apps/details?id=$packageName")
|
||||||
|
)
|
||||||
|
intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK
|
||||||
|
context.startActivity(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -25,6 +25,7 @@ class VipQualityDialog(context: Context, revolutionsBean: VeRevolutionsBean) : D
|
|||||||
|
|
||||||
interface SetQualityBackOnClick {
|
interface SetQualityBackOnClick {
|
||||||
fun qualityBackOnClick(quality: Int)
|
fun qualityBackOnClick(quality: Int)
|
||||||
|
fun loginOnClick()
|
||||||
fun showActivateOnClick()
|
fun showActivateOnClick()
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -98,13 +99,8 @@ class VipQualityDialog(context: Context, revolutionsBean: VeRevolutionsBean) : D
|
|||||||
tvQuality720.setTextColor(Color.parseColor("#8B8B8B"))
|
tvQuality720.setTextColor(Color.parseColor("#8B8B8B"))
|
||||||
tvQuality720.setBackgroundResource(R.mipmap.iv_quality_bg_off)
|
tvQuality720.setBackgroundResource(R.mipmap.iv_quality_bg_off)
|
||||||
tvQuality720.setOnClickListener {
|
tvQuality720.setOnClickListener {
|
||||||
context.startActivity(
|
// EventBus.getDefault().post(JActivityAdapter.VIDEO_PAUSE_PLAY)
|
||||||
Intent(
|
setQualityBackOnClick?.loginOnClick()
|
||||||
context,
|
|
||||||
PSVHomeSearchActivity::class.java
|
|
||||||
)
|
|
||||||
)
|
|
||||||
EventBus.getDefault().post(JActivityAdapter.HOME_LOGIN)
|
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,21 +6,29 @@ import android.content.Context
|
|||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
import android.graphics.drawable.ColorDrawable
|
import android.graphics.drawable.ColorDrawable
|
||||||
import android.view.Gravity
|
import android.view.Gravity
|
||||||
|
import android.view.View
|
||||||
import android.view.Window
|
import android.view.Window
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
|
import android.widget.TextView
|
||||||
import androidx.appcompat.widget.AppCompatImageView
|
import androidx.appcompat.widget.AppCompatImageView
|
||||||
import androidx.appcompat.widget.AppCompatTextView
|
import androidx.appcompat.widget.AppCompatTextView
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.singleOnClick
|
import com.veloria.now.shortapp.civil.singleOnClick
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreCoinAdapter
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeVipSplashAdapter
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
|
|
||||||
@SuppressLint("MissingInflatedId")
|
@SuppressLint("MissingInflatedId")
|
||||||
class VipSplashDialog(context: Context) : Dialog(context) {
|
class VipSplashDialog(context: Context,vipBeans: List<VePaySettingsBean.VipBean>) : Dialog(context) {
|
||||||
var setVipSplashOnClick: SetVipSplashOnClick? = null
|
var setVipSplashOnClick: SetVipSplashOnClick? = null
|
||||||
|
private var vipAdapter: VeVipSplashAdapter? = null
|
||||||
|
|
||||||
interface SetVipSplashOnClick {
|
interface SetVipSplashOnClick {
|
||||||
fun onVipSplash()
|
fun onVipSplash()
|
||||||
fun onVipDismiss()
|
fun onVipOnAdapterBuy(vipBean: VePaySettingsBean.VipBean)
|
||||||
}
|
}
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@ -33,43 +41,59 @@ class VipSplashDialog(context: Context) : Dialog(context) {
|
|||||||
(context.resources.displayMetrics.widthPixels * 0.8).toInt(),
|
(context.resources.displayMetrics.widthPixels * 0.8).toInt(),
|
||||||
WindowManager.LayoutParams.WRAP_CONTENT
|
WindowManager.LayoutParams.WRAP_CONTENT
|
||||||
)
|
)
|
||||||
setGravity(Gravity.CENTER)
|
setGravity(Gravity.TOP or Gravity.CENTER_HORIZONTAL)
|
||||||
}
|
}
|
||||||
setCancelable(true)
|
setCancelable(true)
|
||||||
|
|
||||||
val ivClose = findViewById<AppCompatImageView>(R.id.iv_close)
|
val ivClose = findViewById<AppCompatImageView>(R.id.iv_close)
|
||||||
val tvToStore = findViewById<AppCompatTextView>(R.id.tv_to_store)
|
|
||||||
val tvContent = findViewById<AppCompatTextView>(R.id.tv_content)
|
val tvContent = findViewById<AppCompatTextView>(R.id.tv_content)
|
||||||
val tvTitle = findViewById<AppCompatTextView>(R.id.tv_title)
|
val tvTitle = findViewById<AppCompatTextView>(R.id.tv_title)
|
||||||
|
val recyclerView = findViewById<RecyclerView>(R.id.recyclerView)
|
||||||
|
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
tvTitle.text = TranslationHelper.getTranslation()?.veloria_vip_splash_title
|
tvTitle.text = TranslationHelper.getTranslation()?.veloria_vip_splash_title
|
||||||
tvContent.text = TranslationHelper.getTranslation()?.veloria_vip_splash_content
|
tvContent.text = TranslationHelper.getTranslation()?.veloria_vip_splash_content
|
||||||
tvToStore.text = TranslationHelper.getTranslation()?.veloria_vip_splash_onclick
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
tvTitle.text = "Unlock VIP Privileges!"
|
tvTitle.text = "Unlock VIP Privileges!"
|
||||||
tvContent.text = "Enjoy ad-free streaming, early access, and exclusive content!"
|
tvContent.text = "Enjoy ad-free streaming, early access, and exclusive content!"
|
||||||
tvToStore.text = "Unlock VIP Benefits"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
recyclerView.layoutManager = LinearLayoutManager(context)
|
||||||
|
vipAdapter = VeVipSplashAdapter()
|
||||||
|
recyclerView.adapter = vipAdapter
|
||||||
|
vipAdapter?.submitList(vipBeans)
|
||||||
|
|
||||||
|
|
||||||
ivClose.setOnClickListener {
|
ivClose.setOnClickListener {
|
||||||
singleOnClick {
|
singleOnClick {
|
||||||
setVipSplashOnClick?.onVipDismiss()
|
|
||||||
dismiss()
|
dismiss()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
tvToStore.setOnClickListener {
|
|
||||||
|
vipAdapter?.setOnItemClickListener { adapter, view, position ->
|
||||||
singleOnClick {
|
singleOnClick {
|
||||||
setVipSplashOnClick?.onVipSplash()
|
|
||||||
dismiss()
|
val data = adapter.getItem(position)
|
||||||
|
|
||||||
|
vipAdapter?.currentPosition = position
|
||||||
|
vipAdapter?.notifyDataSetChanged()
|
||||||
|
|
||||||
|
if (data != null) {
|
||||||
|
setVipSplashOnClick?.onVipOnAdapterBuy(data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
fun setOnVipSplashOnClickListener(listener: SetVipSplashOnClick) {
|
fun setOnVipSplashOnClickListener(listener: SetVipSplashOnClick) {
|
||||||
this.setVipSplashOnClick = listener
|
this.setVipSplashOnClick = listener
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setAdapterSubmitList(data: List<VePaySettingsBean.VipBean>){
|
||||||
|
vipAdapter?.submitList(data)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -151,6 +151,26 @@ class HLanguageActivity : AIXTextActivity<MqInstrumentedBinding, YCFddebcdbeeffc
|
|||||||
|
|
||||||
this.testDetails_list = mutableListOf<Float>()
|
this.testDetails_list = mutableListOf<Float>()
|
||||||
|
|
||||||
|
binding.ivBack.setOnClickListener {
|
||||||
|
var complete9: Long = 6360L
|
||||||
|
if (complete9 == 49L) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var system2: Float = 1503.0f
|
||||||
|
|
||||||
|
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
if (TranslationHelper.getTranslation() != null){
|
||||||
|
binding.etSearch.hint = TranslationHelper.getTranslation()?.veloria_recersal_of_fate
|
||||||
|
binding.tvTitleRecent.text = TranslationHelper.getTranslation()?.veloria_recent_searches
|
||||||
|
binding.tvTitleRecommended.text = TranslationHelper.getTranslation()?.veloria_recommended
|
||||||
|
binding.tvTrendingTop.text = TranslationHelper.getTranslation()?.veloria_trending_top
|
||||||
|
binding.tvLatestTrends.text = TranslationHelper.getTranslation()?.veloria_latest_trends
|
||||||
|
binding.tvResultTitle.text = TranslationHelper.getTranslation()?.veloria_search_results
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (!NetworkUtils.isConnected()) {
|
if (!NetworkUtils.isConnected()) {
|
||||||
var langR: Float = 4492.0f
|
var langR: Float = 4492.0f
|
||||||
@ -213,7 +233,7 @@ class HLanguageActivity : AIXTextActivity<MqInstrumentedBinding, YCFddebcdbeeffc
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
showComplete()
|
||||||
binding.clOne.visibility = View.VISIBLE
|
binding.clOne.visibility = View.VISIBLE
|
||||||
var displaye: Double = 49.0
|
var displaye: Double = 49.0
|
||||||
if (displaye > 179.0) {
|
if (displaye > 179.0) {
|
||||||
@ -223,15 +243,6 @@ class HLanguageActivity : AIXTextActivity<MqInstrumentedBinding, YCFddebcdbeeffc
|
|||||||
binding.stateLayout.visibility = View.GONE
|
binding.stateLayout.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TranslationHelper.getTranslation() != null){
|
|
||||||
binding.etSearch.hint = TranslationHelper.getTranslation()?.veloria_recersal_of_fate
|
|
||||||
binding.tvTitleRecent.text = TranslationHelper.getTranslation()?.veloria_recent_searches
|
|
||||||
binding.tvTitleRecommended.text = TranslationHelper.getTranslation()?.veloria_recommended
|
|
||||||
binding.tvTrendingTop.text = TranslationHelper.getTranslation()?.veloria_trending_top
|
|
||||||
binding.tvLatestTrends.text = TranslationHelper.getTranslation()?.veloria_latest_trends
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
searchTrendAdapter = VXAgreement()
|
searchTrendAdapter = VXAgreement()
|
||||||
var buttonu: Int = 3389
|
var buttonu: Int = 3389
|
||||||
if (buttonu < 189) {
|
if (buttonu < 189) {
|
||||||
@ -419,17 +430,6 @@ class HLanguageActivity : AIXTextActivity<MqInstrumentedBinding, YCFddebcdbeeffc
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
binding.ivBack.setOnClickListener {
|
|
||||||
var complete9: Long = 6360L
|
|
||||||
if (complete9 == 49L) {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
var system2: Float = 1503.0f
|
|
||||||
|
|
||||||
|
|
||||||
finish()
|
|
||||||
}
|
|
||||||
binding.ivDelete.setOnClickListener {
|
binding.ivDelete.setOnClickListener {
|
||||||
var selectZ: Float = 4767.0f
|
var selectZ: Float = 4767.0f
|
||||||
while (selectZ < 108.0f) {
|
while (selectZ < 108.0f) {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
package com.veloria.now.shortapp.subtractionCroll.bidirectional
|
package com.veloria.now.shortapp.subtractionCroll.bidirectional
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Intent
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.View
|
import android.view.View
|
||||||
@ -10,14 +11,9 @@ import androidx.activity.viewModels
|
|||||||
import androidx.appcompat.widget.AppCompatImageView
|
import androidx.appcompat.widget.AppCompatImageView
|
||||||
import androidx.appcompat.widget.AppCompatTextView
|
import androidx.appcompat.widget.AppCompatTextView
|
||||||
import androidx.fragment.app.DialogFragment.STYLE_NO_FRAME
|
import androidx.fragment.app.DialogFragment.STYLE_NO_FRAME
|
||||||
import androidx.lifecycle.lifecycleScope
|
|
||||||
import androidx.media3.common.MediaItem
|
import androidx.media3.common.MediaItem
|
||||||
import androidx.media3.common.PlaybackException
|
|
||||||
import androidx.media3.common.Player
|
|
||||||
import androidx.media3.datasource.DataSource
|
import androidx.media3.datasource.DataSource
|
||||||
import androidx.media3.datasource.DefaultDataSourceFactory
|
import androidx.media3.datasource.DefaultDataSourceFactory
|
||||||
import androidx.media3.exoplayer.DefaultRenderersFactory
|
|
||||||
import androidx.media3.exoplayer.ExoPlayer
|
|
||||||
import androidx.media3.exoplayer.hls.HlsMediaSource
|
import androidx.media3.exoplayer.hls.HlsMediaSource
|
||||||
import androidx.media3.exoplayer.source.MediaSource
|
import androidx.media3.exoplayer.source.MediaSource
|
||||||
import androidx.media3.exoplayer.source.ProgressiveMediaSource
|
import androidx.media3.exoplayer.source.ProgressiveMediaSource
|
||||||
@ -25,9 +21,16 @@ import androidx.recyclerview.widget.RecyclerView
|
|||||||
import androidx.viewpager2.widget.ViewPager2
|
import androidx.viewpager2.widget.ViewPager2
|
||||||
import com.blankj.utilcode.util.NetworkUtils
|
import com.blankj.utilcode.util.NetworkUtils
|
||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
|
import com.facebook.AccessToken
|
||||||
|
import com.facebook.CallbackManager
|
||||||
|
import com.facebook.CallbackManager.Factory.create
|
||||||
|
import com.facebook.FacebookCallback
|
||||||
|
import com.facebook.FacebookException
|
||||||
|
import com.facebook.GraphRequest
|
||||||
|
import com.facebook.login.LoginManager
|
||||||
|
import com.facebook.login.LoginResult
|
||||||
import com.google.gson.Gson
|
import com.google.gson.Gson
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.BImage
|
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter.CONSTANTS_QUALITY_REFRESH
|
import com.veloria.now.shortapp.civil.JActivityAdapter.CONSTANTS_QUALITY_REFRESH
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter.PLAYER_DETAILS_CAN_PLAY
|
import com.veloria.now.shortapp.civil.JActivityAdapter.PLAYER_DETAILS_CAN_PLAY
|
||||||
@ -41,10 +44,12 @@ import com.veloria.now.shortapp.civil.singleOnClick
|
|||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
import com.veloria.now.shortapp.databinding.JDetailsLayoutBinding
|
import com.veloria.now.shortapp.databinding.JDetailsLayoutBinding
|
||||||
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
||||||
|
import com.veloria.now.shortapp.newsletter.XNBackground
|
||||||
import com.veloria.now.shortapp.rewards.TOYPlayfairAutoView
|
import com.veloria.now.shortapp.rewards.TOYPlayfairAutoView
|
||||||
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.DSPUnitVideoFragment
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.DSPUnitVideoFragment
|
||||||
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.FYStatusAppveloria
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.FYStatusAppveloria
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.LoginDialog
|
||||||
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.PlayerBuyDialogFragment
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.PlayerBuyDialogFragment
|
||||||
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.VipActivateDialog
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.VipActivateDialog
|
||||||
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.VipQualityDialog
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.VipQualityDialog
|
||||||
@ -52,6 +57,7 @@ import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.UKBott
|
|||||||
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.SUJustSmart
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.SUJustSmart
|
||||||
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeBannerRecommendAdapter
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeBannerRecommendAdapter
|
||||||
import com.veloria.now.shortapp.texturedAsink.LServiceBean
|
import com.veloria.now.shortapp.texturedAsink.LServiceBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.NBECenterBean
|
import com.veloria.now.shortapp.texturedAsink.NBECenterBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.PURLockBean
|
import com.veloria.now.shortapp.texturedAsink.PURLockBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeDetailsRecommendBean
|
import com.veloria.now.shortapp.texturedAsink.VeDetailsRecommendBean
|
||||||
@ -59,10 +65,10 @@ import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
|||||||
import com.veloria.now.shortapp.texturedAsink.VeRevolutionsBean
|
import com.veloria.now.shortapp.texturedAsink.VeRevolutionsBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
||||||
import com.zhpan.bannerview.constants.PageStyle.MULTI_PAGE_OVERLAP
|
import com.zhpan.bannerview.constants.PageStyle.MULTI_PAGE_OVERLAP
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
|
import org.json.JSONObject
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
@ -242,6 +248,9 @@ class MQVAutoWidthActivity :
|
|||||||
}
|
}
|
||||||
|
|
||||||
manifestAnyBuildGravityView()?.pause()
|
manifestAnyBuildGravityView()?.pause()
|
||||||
|
if (binding.layoutRecommend.root.visibility == View.VISIBLE) {
|
||||||
|
bannerAdapter?.getCurrentPlayerView()?.pause()
|
||||||
|
}
|
||||||
}, 300)
|
}, 300)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -467,7 +476,7 @@ class MQVAutoWidthActivity :
|
|||||||
setPlayerBuyDialog(it)
|
setPlayerBuyDialog(it)
|
||||||
}
|
}
|
||||||
binding.root.postDelayed({
|
binding.root.postDelayed({
|
||||||
manifestAnyBuildGravityView()?.play()
|
manifestAnyBuildGravityView()?.stop()
|
||||||
}, 500)
|
}, 500)
|
||||||
}
|
}
|
||||||
if (JActivityAdapter.CONSTANTS_QUALITY == event) {
|
if (JActivityAdapter.CONSTANTS_QUALITY == event) {
|
||||||
@ -523,8 +532,6 @@ class MQVAutoWidthActivity :
|
|||||||
if (h_viewf < 96) {
|
if (h_viewf < 96) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
EventBus.getDefault().register(this)
|
|
||||||
var watchingB: Float = 8505.0f
|
var watchingB: Float = 8505.0f
|
||||||
if (watchingB > 46.0f) {
|
if (watchingB > 46.0f) {
|
||||||
}
|
}
|
||||||
@ -554,12 +561,12 @@ class MQVAutoWidthActivity :
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.ivBack.setOnClickListener { finish() }
|
||||||
|
|
||||||
if (!NetworkUtils.isConnected()) {
|
if (!NetworkUtils.isConnected()) {
|
||||||
var lightf: Long = 4156L
|
var lightf: Long = 4156L
|
||||||
|
|
||||||
|
binding.ivBack.visibility = View.VISIBLE
|
||||||
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
public fun spanLoveWhatBinge(): Boolean {
|
public fun spanLoveWhatBinge(): Boolean {
|
||||||
@ -591,6 +598,7 @@ class MQVAutoWidthActivity :
|
|||||||
initView()
|
initView()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
return
|
return
|
||||||
} else {
|
} else {
|
||||||
var playh: MutableList<Double> = mutableListOf<Double>()
|
var playh: MutableList<Double> = mutableListOf<Double>()
|
||||||
@ -599,17 +607,29 @@ class MQVAutoWidthActivity :
|
|||||||
playh.add(941.0)
|
playh.add(941.0)
|
||||||
if (playh.size > 20) {
|
if (playh.size > 20) {
|
||||||
}
|
}
|
||||||
|
binding.ivBack.visibility = View.GONE
|
||||||
|
|
||||||
showComplete()
|
showComplete()
|
||||||
var marqueeo: Float = 1740.0f
|
var marqueeo: Float = 1740.0f
|
||||||
if (marqueeo < 162.0f) {
|
if (marqueeo < 162.0f) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if (revolution == "1080" && !RYAction.isVipTo()) {
|
||||||
|
// if (RYAction.isTouristTo()) {
|
||||||
|
// RYAction.getMMKV()
|
||||||
|
// .putInt(JActivityAdapter.CONSTANTS_QUALITY, 540)
|
||||||
|
// } else {
|
||||||
|
// RYAction.getMMKV()
|
||||||
|
// .putInt(JActivityAdapter.CONSTANTS_QUALITY, 720)
|
||||||
|
// }
|
||||||
|
// EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH)
|
||||||
|
// revolution =
|
||||||
|
// RYAction.getMMKV().getInt(JActivityAdapter.CONSTANTS_QUALITY, 540).toString()
|
||||||
|
// }
|
||||||
|
|
||||||
viewModel.getVideoPlayDetails(shortPlayId, 0, activityId, revolution)
|
viewModel.getVideoPlayDetails(shortPlayId, 0, activityId, revolution)
|
||||||
}
|
}
|
||||||
|
EventBus.getDefault().register(this)
|
||||||
|
|
||||||
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
|
onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
|
||||||
override fun handleOnBackPressed() {
|
override fun handleOnBackPressed() {
|
||||||
@ -932,6 +952,10 @@ class MQVAutoWidthActivity :
|
|||||||
|
|
||||||
|
|
||||||
manifestAnyBuildGravityView()?.play()
|
manifestAnyBuildGravityView()?.play()
|
||||||
|
|
||||||
|
if (binding.layoutRecommend.root.visibility == View.VISIBLE) {
|
||||||
|
bannerAdapter?.getCurrentPlayerView()?.play()
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var listso: String = "agate"
|
var listso: String = "agate"
|
||||||
|
|
||||||
@ -1371,9 +1395,10 @@ class MQVAutoWidthActivity :
|
|||||||
|
|
||||||
|
|
||||||
manifestAnyBuildGravityView()?.release()
|
manifestAnyBuildGravityView()?.release()
|
||||||
|
if (::bannerAdapter.isInitialized) {
|
||||||
bannerAdapter.getCurrentPlayerView()?.stop()
|
bannerAdapter?.getCurrentPlayerView()?.stop()
|
||||||
bannerAdapter.getCurrentPlayerView()?.release()
|
bannerAdapter?.getCurrentPlayerView()?.release()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
recommendAdapter?.shortVideo = null
|
recommendAdapter?.shortVideo = null
|
||||||
@ -1618,7 +1643,7 @@ class MQVAutoWidthActivity :
|
|||||||
}
|
}
|
||||||
println(startA)
|
println(startA)
|
||||||
|
|
||||||
|
binding.ivBack.visibility = View.GONE
|
||||||
showComplete()
|
showComplete()
|
||||||
var rights: Long = 9660L
|
var rights: Long = 9660L
|
||||||
if (rights > 16L) {
|
if (rights > 16L) {
|
||||||
@ -1670,7 +1695,7 @@ class MQVAutoWidthActivity :
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
|
binding.ivBack.visibility = View.VISIBLE
|
||||||
showEmptyData()
|
showEmptyData()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1913,15 +1938,23 @@ class MQVAutoWidthActivity :
|
|||||||
it?.data?.let {
|
it?.data?.let {
|
||||||
RYAction.saveUserInfoBean(it)
|
RYAction.saveUserInfoBean(it)
|
||||||
if (needRestart) {
|
if (needRestart) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
binding.layoutLock.tvBalance.text =
|
||||||
|
TranslationHelper.getTranslation()?.veloria_balance.plus(": ")
|
||||||
|
.plus(RYAction.getUserInfoBean()?.coin_left_total.toString())
|
||||||
|
.plus(TranslationHelper.getTranslation()?.veloria_coins)
|
||||||
|
.plus(" | ")
|
||||||
|
.plus(RYAction.getUserInfoBean()?.send_coin_left_total.toString())
|
||||||
|
.plus(" ")
|
||||||
|
.plus(TranslationHelper.getTranslation()?.veloria_bonus)
|
||||||
|
} else {
|
||||||
binding.layoutLock.tvBalance.text =
|
binding.layoutLock.tvBalance.text =
|
||||||
"Balance: ".plus(RYAction.getUserInfoBean()?.coin_left_total.toString())
|
"Balance: ".plus(RYAction.getUserInfoBean()?.coin_left_total.toString())
|
||||||
.plus(" Coins | ")
|
.plus(" Coins | ")
|
||||||
.plus(RYAction.getUserInfoBean()?.send_coin_left_total.toString())
|
.plus(RYAction.getUserInfoBean()?.send_coin_left_total.toString())
|
||||||
.plus(" Bonus")
|
.plus(" Bonus")
|
||||||
if (RYAction.isVipTo()) {
|
|
||||||
revolution = "1080"
|
|
||||||
RYAction.getMMKV().putInt(JActivityAdapter.CONSTANTS_QUALITY, 1080)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
detailRefresh()
|
detailRefresh()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1979,6 +2012,89 @@ class MQVAutoWidthActivity :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
callbackManager = create()
|
||||||
|
LoginManager.getInstance().registerCallback(callbackManager,
|
||||||
|
object : FacebookCallback<LoginResult> {
|
||||||
|
override fun onSuccess(loginResult: LoginResult) {
|
||||||
|
val enableButtons = AccessToken.getCurrentAccessToken() != null
|
||||||
|
if (enableButtons) {
|
||||||
|
val mGraphRequest = GraphRequest.newMeRequest(
|
||||||
|
loginResult.accessToken
|
||||||
|
) { jsonObject, response ->
|
||||||
|
if (response!!.error != null) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(
|
||||||
|
"Facebook ".plus(TranslationHelper.getTranslation()?.veloria_login_exception)
|
||||||
|
.plus(".${response.error?.exception.toString()}")
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
toast("Facebook Error")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
val id = jsonObject?.optString("id")
|
||||||
|
val name = jsonObject?.optString("name")
|
||||||
|
val object_pic: JSONObject? = jsonObject!!.optJSONObject("picture")
|
||||||
|
val object_data = object_pic?.optJSONObject("data")
|
||||||
|
val photo = object_data?.optString("url")
|
||||||
|
viewModel.setLeaveApp()
|
||||||
|
viewModel.setDoLogin(
|
||||||
|
LoginDataBean(
|
||||||
|
photo.toString(),
|
||||||
|
"",
|
||||||
|
name.toString(),
|
||||||
|
"",
|
||||||
|
"facebook",
|
||||||
|
id.toString()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val parameters = Bundle()
|
||||||
|
parameters.putString("fields", "id,name,email,picture")
|
||||||
|
mGraphRequest.parameters = parameters
|
||||||
|
mGraphRequest.executeAsync()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCancel() {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast("Facebook ".plus(TranslationHelper.getTranslation()?.veloria_login_cancel))
|
||||||
|
} else {
|
||||||
|
toast("Facebook Cancel")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onError(exception: FacebookException) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(
|
||||||
|
"Facebook ".plus(TranslationHelper.getTranslation()?.veloria_login_exception)
|
||||||
|
.plus("n.$exception")
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
toast("Facebook Error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
viewModel.loginLiveData.observe(this) {
|
||||||
|
if (it?.data != null) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_succeed.toString())
|
||||||
|
}
|
||||||
|
RYAction.getMMKV()
|
||||||
|
.putString(JActivityAdapter.ACCOUNT_TOKEN, it.data.token)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_ENTER_THE_APP)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_ON_LINE)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_USER_REFRESH)
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -2008,6 +2124,14 @@ class MQVAutoWidthActivity :
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun showGoldShortageDialog(episode1: XAboutBean.Episode) {
|
private fun showGoldShortageDialog(episode1: XAboutBean.Episode) {
|
||||||
|
if (!NetworkUtils.isConnected()) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
||||||
|
} else {
|
||||||
|
toast(XNBackground.instance.getString(R.string.shapeSelected))
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
val allCoin = RYAction.getAllCoinTotal()
|
val allCoin = RYAction.getAllCoinTotal()
|
||||||
if (allCoin >= episode1.coins) {
|
if (allCoin >= episode1.coins) {
|
||||||
if (currentPosition > 0) {
|
if (currentPosition > 0) {
|
||||||
@ -2090,6 +2214,13 @@ class MQVAutoWidthActivity :
|
|||||||
@SuppressLint("UnsafeOptInUsageError")
|
@SuppressLint("UnsafeOptInUsageError")
|
||||||
private fun setDetailsRecommendation(data: VeDetailsRecommendBean) {
|
private fun setDetailsRecommendation(data: VeDetailsRecommendBean) {
|
||||||
if (data.list.isNotEmpty()) {
|
if (data.list.isNotEmpty()) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
binding.layoutRecommend.tvTitle.text =
|
||||||
|
TranslationHelper.getTranslation()?.veloria_detail_recommand_title
|
||||||
|
binding.layoutRecommend.tvWatchNow.text =
|
||||||
|
TranslationHelper.getTranslation()?.veloria_watch_now
|
||||||
|
}
|
||||||
|
|
||||||
PLAYER_DETAILS_CAN_PLAY = false
|
PLAYER_DETAILS_CAN_PLAY = false
|
||||||
binding.layoutRecommend.root.visibility = View.VISIBLE
|
binding.layoutRecommend.root.visibility = View.VISIBLE
|
||||||
bannerAdapter =
|
bannerAdapter =
|
||||||
@ -2137,7 +2268,8 @@ class MQVAutoWidthActivity :
|
|||||||
})
|
})
|
||||||
|
|
||||||
binding.layoutRecommend.tvWatchNow.setOnClickListener {
|
binding.layoutRecommend.tvWatchNow.setOnClickListener {
|
||||||
val data = binding.layoutRecommend.bannerRecommend.getData()[bannerPosition] as VeDetailsRecommendBean.ItemDaraBean
|
val data =
|
||||||
|
binding.layoutRecommend.bannerRecommend.getData()[bannerPosition] as VeDetailsRecommendBean.ItemDaraBean
|
||||||
watchNow(data, data?.short_play_id)
|
watchNow(data, data?.short_play_id)
|
||||||
}
|
}
|
||||||
val data = data.list[0]
|
val data = data.list[0]
|
||||||
@ -2196,6 +2328,10 @@ class MQVAutoWidthActivity :
|
|||||||
setVipActivateDialog()
|
setVipActivateDialog()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun loginOnClick() {
|
||||||
|
setLogin()
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
dialog.show()
|
dialog.show()
|
||||||
@ -2207,4 +2343,32 @@ class MQVAutoWidthActivity :
|
|||||||
dialog.show()
|
dialog.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private var callbackManager: CallbackManager? = null
|
||||||
|
fun setLogin() {
|
||||||
|
val dialog = LoginDialog(this).apply {
|
||||||
|
setOnLoginOnclickListener(object : LoginDialog.LoginOnClick {
|
||||||
|
override fun onLoginFacebook() {
|
||||||
|
onFacebook()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
dialog.show()
|
||||||
|
dialog.loginOnclick
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun onFacebook() {
|
||||||
|
singleOnClick {
|
||||||
|
LoginManager.getInstance()
|
||||||
|
.logInWithReadPermissions(this, arrayListOf("public_profile", "email"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Deprecated("Deprecated in Java")
|
||||||
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data)
|
||||||
|
callbackManager?.onActivityResult(requestCode, resultCode, data)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -38,7 +38,9 @@ import com.veloria.now.shortapp.civil.JActivityAdapter.VIDEO_SHORT_PLAY_ID
|
|||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.VeNotificationHelper
|
import com.veloria.now.shortapp.civil.VeNotificationHelper
|
||||||
|
import com.veloria.now.shortapp.civil.YFHome.getPackageVersionCode
|
||||||
import com.veloria.now.shortapp.civil.setShowNotifications
|
import com.veloria.now.shortapp.civil.setShowNotifications
|
||||||
|
import com.veloria.now.shortapp.civil.shouldVersionControl
|
||||||
import com.veloria.now.shortapp.civil.singleOnClick
|
import com.veloria.now.shortapp.civil.singleOnClick
|
||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
import com.veloria.now.shortapp.databinding.JsDramaFragmentBinding
|
import com.veloria.now.shortapp.databinding.JsDramaFragmentBinding
|
||||||
@ -50,10 +52,12 @@ import com.veloria.now.shortapp.subtractionCroll.adminSourceid.UColorsAvatarFrag
|
|||||||
import com.veloria.now.shortapp.subtractionCroll.adminSourceid.YYLoginHistoryFragment
|
import com.veloria.now.shortapp.subtractionCroll.adminSourceid.YYLoginHistoryFragment
|
||||||
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.LoginDialog
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.LoginDialog
|
||||||
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.NotificationsDialog
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.NotificationsDialog
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.VersionControlDialog
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.JService
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.JService
|
||||||
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeHomeWatchBean
|
import com.veloria.now.shortapp.texturedAsink.VeHomeWatchBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VersionControlBean
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.flow.debounce
|
import kotlinx.coroutines.flow.debounce
|
||||||
@ -217,7 +221,7 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
|
|
||||||
it.data?.token?.let { it1 ->
|
it.data?.token?.let { it1 ->
|
||||||
RYAction.saveToken(it1)
|
RYAction.saveToken(it1)
|
||||||
EventBus.getDefault().post(JActivityAdapter.REFRESH_HOME)
|
EventBus.getDefault().post(JActivityAdapter.HOME_REFRESH_ME)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -249,12 +253,6 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
EventBus.getDefault()
|
EventBus.getDefault()
|
||||||
.post(JActivityAdapter.HOME_USER_REFRESH)
|
.post(JActivityAdapter.HOME_USER_REFRESH)
|
||||||
|
|
||||||
val revolution =
|
|
||||||
RYAction.getMMKV().getInt(JActivityAdapter.CONSTANTS_QUALITY, 540).toString()
|
|
||||||
if (revolution == "540") {
|
|
||||||
RYAction.getMMKV()
|
|
||||||
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 720)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -272,6 +270,23 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
viewModel.versionControlData.observe(this) {
|
||||||
|
if (it != null) {
|
||||||
|
if (it.data?.version_code?.isNotEmpty() == true) {
|
||||||
|
val toInt = it.data.version_code.toInt()
|
||||||
|
if (shouldVersionControl() && toInt > getPackageVersionCode(this)) {
|
||||||
|
setVersionControlDialog(it.data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setVersionControlDialog(versionControlBean: VersionControlBean) {
|
||||||
|
val dialog = VersionControlDialog(this, versionControlBean)
|
||||||
|
dialog.show()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val items = listOf(
|
private val items = listOf(
|
||||||
@ -573,7 +588,12 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
JActivityAdapter.IS_HOME_SET_NOTIFICATIONS = VeNotificationHelper.isNotification(this)
|
||||||
|
viewModel.setUploadNoticeStatus(
|
||||||
|
VeUploadNotificationBean(
|
||||||
|
if (JActivityAdapter.IS_HOME_SET_NOTIFICATIONS) "1" else "0"
|
||||||
|
)
|
||||||
|
)
|
||||||
GoogleApiAvailability.getInstance().makeGooglePlayServicesAvailable(this)
|
GoogleApiAvailability.getInstance().makeGooglePlayServicesAvailable(this)
|
||||||
.addOnCompleteListener {
|
.addOnCompleteListener {
|
||||||
if (it.isSuccessful) {
|
if (it.isSuccessful) {
|
||||||
@ -598,6 +618,8 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
}
|
}
|
||||||
}, 3000)
|
}, 3000)
|
||||||
|
|
||||||
|
viewModel.getVersionControl()
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun stayPrimaryRecommendSearchToast(
|
private fun stayPrimaryRecommendSearchToast(
|
||||||
@ -808,6 +830,15 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
if (JActivityAdapter.ACCOUNT_FIREBASE_TOKEN_REFRESH == event) {
|
if (JActivityAdapter.ACCOUNT_FIREBASE_TOKEN_REFRESH == event) {
|
||||||
getFirebaseMessaging()
|
getFirebaseMessaging()
|
||||||
}
|
}
|
||||||
|
if (JActivityAdapter.ACCOUNT_OUT_LOGIN == event) {
|
||||||
|
viewModel.loadData()
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(
|
||||||
|
TranslationHelper.getTranslation()?.veloria_network_error_1
|
||||||
|
?: getString(R.string.veloria_network_error_1)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun restartApplication(context: Context) {
|
private fun restartApplication(context: Context) {
|
||||||
@ -1078,6 +1109,9 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
) {
|
) {
|
||||||
getFirebaseMessaging()
|
getFirebaseMessaging()
|
||||||
viewModel.setOpenNotify()
|
viewModel.setOpenNotify()
|
||||||
|
viewModel.setUploadNoticeStatus(
|
||||||
|
VeUploadNotificationBean("1")
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
if (setShowNotifications()) {
|
if (setShowNotifications()) {
|
||||||
setNotifications()
|
setNotifications()
|
||||||
@ -1087,6 +1121,9 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
if (VeNotificationHelper.isNotification(this)) {
|
if (VeNotificationHelper.isNotification(this)) {
|
||||||
getFirebaseMessaging()
|
getFirebaseMessaging()
|
||||||
viewModel.setOpenNotify()
|
viewModel.setOpenNotify()
|
||||||
|
viewModel.setUploadNoticeStatus(
|
||||||
|
VeUploadNotificationBean("1")
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
if (setShowNotifications()) {
|
if (setShowNotifications()) {
|
||||||
setNotifications()
|
setNotifications()
|
||||||
@ -1129,6 +1166,9 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
|
|||||||
if (isGranted) {
|
if (isGranted) {
|
||||||
getFirebaseMessaging()
|
getFirebaseMessaging()
|
||||||
viewModel.setOpenNotify()
|
viewModel.setOpenNotify()
|
||||||
|
viewModel.setUploadNoticeStatus(
|
||||||
|
VeUploadNotificationBean("1")
|
||||||
|
)
|
||||||
} else {
|
} else {
|
||||||
VeNotificationHelper.setNotification(this)
|
VeNotificationHelper.setNotification(this)
|
||||||
}
|
}
|
||||||
|
@ -2,24 +2,28 @@ package com.veloria.now.shortapp.subtractionCroll.bidirectional
|
|||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
|
import android.view.View
|
||||||
import android.webkit.WebChromeClient
|
import android.webkit.WebChromeClient
|
||||||
import android.webkit.WebResourceError
|
import android.webkit.WebResourceError
|
||||||
import android.webkit.WebResourceRequest
|
import android.webkit.WebResourceRequest
|
||||||
import android.webkit.WebSettings
|
import android.webkit.WebSettings
|
||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
|
import com.blankj.utilcode.util.NetworkUtils
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
import com.veloria.now.shortapp.databinding.IPlaceBinding
|
import com.veloria.now.shortapp.databinding.IPlaceBinding
|
||||||
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
||||||
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.LXMService
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.LXMService
|
||||||
import kotlin.math.max
|
import kotlin.math.max
|
||||||
import kotlin.math.min
|
import kotlin.math.min
|
||||||
|
|
||||||
|
|
||||||
class RBZLatestDeteleActivity : AIXTextActivity<IPlaceBinding, LXMService>() {
|
class RBZLatestDeteleActivity : AIXTextActivity<IPlaceBinding, LXMService>(), NOFfmpeg {
|
||||||
@Volatile
|
@Volatile
|
||||||
var centerTrendPaint_min: Double = 5869.0
|
var centerTrendPaint_min: Double = 5869.0
|
||||||
|
|
||||||
@ -168,7 +172,6 @@ class RBZLatestDeteleActivity : AIXTextActivity<IPlaceBinding, LXMService>() {
|
|||||||
println(messageL)
|
println(messageL)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
when (urlString) {
|
when (urlString) {
|
||||||
JActivityAdapter.WEB_VIEW_USER_AGREEMENT -> {
|
JActivityAdapter.WEB_VIEW_USER_AGREEMENT -> {
|
||||||
var modelE: Float = 6376.0f
|
var modelE: Float = 6376.0f
|
||||||
@ -206,6 +209,20 @@ class RBZLatestDeteleActivity : AIXTextActivity<IPlaceBinding, LXMService>() {
|
|||||||
binding.tvTitle.text = "Veloria"
|
binding.tvTitle.text = "Veloria"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!NetworkUtils.isConnected()) {
|
||||||
|
binding.webView.visibility = View.GONE
|
||||||
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
|
override fun onRetry(layout: VSNotificationsDefault) {
|
||||||
|
initView()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
binding.webView.visibility = View.VISIBLE
|
||||||
|
showComplete()
|
||||||
showLoading()
|
showLoading()
|
||||||
var helpF: MutableMap<String, Long> = mutableMapOf<String, Long>()
|
var helpF: MutableMap<String, Long> = mutableMapOf<String, Long>()
|
||||||
helpF.put("texturedspenc", 528L)
|
helpF.put("texturedspenc", 528L)
|
||||||
@ -502,4 +519,7 @@ class RBZLatestDeteleActivity : AIXTextActivity<IPlaceBinding, LXMService>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun getViewBinding() = IPlaceBinding.inflate(layoutInflater)
|
override fun getViewBinding() = IPlaceBinding.inflate(layoutInflater)
|
||||||
|
override fun getStatusLayout(): VSNotificationsDefault? {
|
||||||
|
return binding.stateLayout
|
||||||
|
}
|
||||||
}
|
}
|
@ -27,13 +27,14 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import com.blankj.utilcode.util.PermissionUtils
|
import com.blankj.utilcode.util.PermissionUtils
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.singleOnClick
|
import com.veloria.now.shortapp.civil.singleOnClick
|
||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
import com.veloria.now.shortapp.databinding.ActivityVeFeedbackBinding
|
import com.veloria.now.shortapp.databinding.ActivityVeFeedbackBinding
|
||||||
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
||||||
import com.veloria.now.shortapp.newsletter.XNBackground
|
|
||||||
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
||||||
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@ -44,7 +45,8 @@ import org.greenrobot.eventbus.ThreadMode
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
class VeFeedbackActivity : AIXTextActivity<ActivityVeFeedbackBinding, VeFeedbackViewModel>() {
|
class VeFeedbackActivity : AIXTextActivity<ActivityVeFeedbackBinding, VeFeedbackViewModel>(),
|
||||||
|
NOFfmpeg {
|
||||||
|
|
||||||
val viewModel: VeFeedbackViewModel by viewModels()
|
val viewModel: VeFeedbackViewModel by viewModels()
|
||||||
|
|
||||||
@ -55,7 +57,7 @@ class VeFeedbackActivity : AIXTextActivity<ActivityVeFeedbackBinding, VeFeedback
|
|||||||
override fun initView() {
|
override fun initView() {
|
||||||
EventBus.getDefault().register(this)
|
EventBus.getDefault().register(this)
|
||||||
|
|
||||||
if (TranslationHelper.getTranslation() != null){
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
binding.tvTitle.text = TranslationHelper.getTranslation()?.veloria_my_feedback
|
binding.tvTitle.text = TranslationHelper.getTranslation()?.veloria_my_feedback
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +140,8 @@ class VeFeedbackActivity : AIXTextActivity<ActivityVeFeedbackBinding, VeFeedback
|
|||||||
binding.webFeedback.webViewClient = object : WebViewClient() {
|
binding.webFeedback.webViewClient = object : WebViewClient() {
|
||||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||||
super.onPageStarted(view, url, favicon)
|
super.onPageStarted(view, url, favicon)
|
||||||
|
showComplete()
|
||||||
|
binding.webFeedback.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPageFinished(view: WebView?, url: String?) {
|
override fun onPageFinished(view: WebView?, url: String?) {
|
||||||
@ -152,9 +155,17 @@ class VeFeedbackActivity : AIXTextActivity<ActivityVeFeedbackBinding, VeFeedback
|
|||||||
error: WebResourceError?
|
error: WebResourceError?
|
||||||
) {
|
) {
|
||||||
super.onReceivedError(view, request, error)
|
super.onReceivedError(view, request, error)
|
||||||
if (TranslationHelper.getTranslation() != null){
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
|
override fun onRetry(layout: VSNotificationsDefault) {
|
||||||
|
showLoading()
|
||||||
|
loadPageUrl(JActivityAdapter.FEEDBACK_URL_INDEX)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
binding.webFeedback.visibility = View.INVISIBLE
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
||||||
}else {
|
} else {
|
||||||
toast(getString(R.string.shapeSelected))
|
toast(getString(R.string.shapeSelected))
|
||||||
}
|
}
|
||||||
hideLoading()
|
hideLoading()
|
||||||
@ -303,4 +314,8 @@ class VeFeedbackActivity : AIXTextActivity<ActivityVeFeedbackBinding, VeFeedback
|
|||||||
EventBus.getDefault().unregister(this)
|
EventBus.getDefault().unregister(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getStatusLayout(): VSNotificationsDefault? {
|
||||||
|
return binding.stateLayout
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -12,6 +12,7 @@ import android.net.Uri
|
|||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import android.view.View
|
||||||
import android.webkit.JsPromptResult
|
import android.webkit.JsPromptResult
|
||||||
import android.webkit.JsResult
|
import android.webkit.JsResult
|
||||||
import android.webkit.WebChromeClient
|
import android.webkit.WebChromeClient
|
||||||
@ -27,6 +28,7 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import com.blankj.utilcode.util.PermissionUtils
|
import com.blankj.utilcode.util.PermissionUtils
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
@ -38,6 +40,7 @@ import com.veloria.now.shortapp.newsletter.XNBackground
|
|||||||
import com.veloria.now.shortapp.other.BaseEventBusBean
|
import com.veloria.now.shortapp.other.BaseEventBusBean
|
||||||
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
||||||
import com.veloria.now.shortapp.other.FeedbackJsBridgeDetail
|
import com.veloria.now.shortapp.other.FeedbackJsBridgeDetail
|
||||||
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
@ -48,7 +51,8 @@ import org.greenrobot.eventbus.ThreadMode
|
|||||||
import java.io.ByteArrayOutputStream
|
import java.io.ByteArrayOutputStream
|
||||||
import java.io.InputStream
|
import java.io.InputStream
|
||||||
|
|
||||||
class VeFeedbackDetailActivity : AIXTextActivity<ActivityVeFeedbackDetailBinding, VeFeedbackViewModel>() {
|
class VeFeedbackDetailActivity : AIXTextActivity<ActivityVeFeedbackDetailBinding, VeFeedbackViewModel>() ,
|
||||||
|
NOFfmpeg {
|
||||||
|
|
||||||
val viewModel: VeFeedbackViewModel by viewModels()
|
val viewModel: VeFeedbackViewModel by viewModels()
|
||||||
|
|
||||||
@ -91,7 +95,8 @@ class VeFeedbackDetailActivity : AIXTextActivity<ActivityVeFeedbackDetailBinding
|
|||||||
binding.webFeedbackDetail.webViewClient = object : WebViewClient() {
|
binding.webFeedbackDetail.webViewClient = object : WebViewClient() {
|
||||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||||
super.onPageStarted(view, url, favicon)
|
super.onPageStarted(view, url, favicon)
|
||||||
|
showComplete()
|
||||||
|
binding.webFeedbackDetail.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPageFinished(view: WebView?, url: String?) {
|
override fun onPageFinished(view: WebView?, url: String?) {
|
||||||
@ -106,6 +111,14 @@ class VeFeedbackDetailActivity : AIXTextActivity<ActivityVeFeedbackDetailBinding
|
|||||||
error: WebResourceError?
|
error: WebResourceError?
|
||||||
) {
|
) {
|
||||||
super.onReceivedError(view, request, error)
|
super.onReceivedError(view, request, error)
|
||||||
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
|
override fun onRetry(layout: VSNotificationsDefault) {
|
||||||
|
showLoading()
|
||||||
|
loadPageUrl(JActivityAdapter.FEEDBACK_URL_DETAIL)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
binding.webFeedbackDetail.visibility = View.INVISIBLE
|
||||||
if (TranslationHelper.getTranslation() != null){
|
if (TranslationHelper.getTranslation() != null){
|
||||||
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
||||||
}else {
|
}else {
|
||||||
@ -251,4 +264,8 @@ class VeFeedbackDetailActivity : AIXTextActivity<ActivityVeFeedbackDetailBinding
|
|||||||
EventBus.getDefault().unregister(this)
|
EventBus.getDefault().unregister(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getStatusLayout(): VSNotificationsDefault? {
|
||||||
|
return binding.stateLayout
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -4,6 +4,7 @@ import android.annotation.SuppressLint
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
|
import android.view.View
|
||||||
import android.webkit.WebChromeClient
|
import android.webkit.WebChromeClient
|
||||||
import android.webkit.WebResourceError
|
import android.webkit.WebResourceError
|
||||||
import android.webkit.WebResourceRequest
|
import android.webkit.WebResourceRequest
|
||||||
@ -13,6 +14,7 @@ import android.webkit.WebViewClient
|
|||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
@ -21,13 +23,14 @@ import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
|||||||
import com.veloria.now.shortapp.newsletter.XNBackground
|
import com.veloria.now.shortapp.newsletter.XNBackground
|
||||||
import com.veloria.now.shortapp.other.BaseEventBusBean
|
import com.veloria.now.shortapp.other.BaseEventBusBean
|
||||||
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
||||||
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
|
|
||||||
class VeFeedbackListActivity :
|
class VeFeedbackListActivity :
|
||||||
AIXTextActivity<ActivityVeFeedbackListBinding, VeFeedbackViewModel>() {
|
AIXTextActivity<ActivityVeFeedbackListBinding, VeFeedbackViewModel>() , NOFfmpeg {
|
||||||
|
|
||||||
val viewModel: VeFeedbackViewModel by viewModels()
|
val viewModel: VeFeedbackViewModel by viewModels()
|
||||||
|
|
||||||
@ -67,7 +70,8 @@ class VeFeedbackListActivity :
|
|||||||
binding.webFeedbackList.webViewClient = object : WebViewClient() {
|
binding.webFeedbackList.webViewClient = object : WebViewClient() {
|
||||||
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
override fun onPageStarted(view: WebView?, url: String?, favicon: Bitmap?) {
|
||||||
super.onPageStarted(view, url, favicon)
|
super.onPageStarted(view, url, favicon)
|
||||||
|
showComplete()
|
||||||
|
binding.webFeedbackList.visibility = View.VISIBLE
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPageFinished(view: WebView?, url: String?) {
|
override fun onPageFinished(view: WebView?, url: String?) {
|
||||||
@ -82,6 +86,14 @@ class VeFeedbackListActivity :
|
|||||||
error: WebResourceError?
|
error: WebResourceError?
|
||||||
) {
|
) {
|
||||||
super.onReceivedError(view, request, error)
|
super.onReceivedError(view, request, error)
|
||||||
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
|
override fun onRetry(layout: VSNotificationsDefault) {
|
||||||
|
showLoading()
|
||||||
|
loadPageUrl(JActivityAdapter.FEEDBACK_URL_LIST)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
binding.webFeedbackList.visibility = View.INVISIBLE
|
||||||
if (TranslationHelper.getTranslation() != null){
|
if (TranslationHelper.getTranslation() != null){
|
||||||
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
||||||
}else {
|
}else {
|
||||||
@ -123,4 +135,8 @@ class VeFeedbackListActivity :
|
|||||||
EventBus.getDefault().unregister(this)
|
EventBus.getDefault().unregister(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getStatusLayout(): VSNotificationsDefault? {
|
||||||
|
return binding.stateLayout
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -6,6 +6,7 @@ import androidx.appcompat.app.AppCompatDelegate
|
|||||||
import androidx.core.os.LocaleListCompat
|
import androidx.core.os.LocaleListCompat
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
|
import com.blankj.utilcode.util.NetworkUtils
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
import com.veloria.now.shortapp.civil.NOFfmpeg
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
@ -33,16 +34,28 @@ class VeLanguageActivity : AIXTextActivity<ActivityVeLanguageBinding, LanguageVi
|
|||||||
override fun getViewBinding() = ActivityVeLanguageBinding.inflate(layoutInflater)
|
override fun getViewBinding() = ActivityVeLanguageBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
override fun initView() {
|
override fun initView() {
|
||||||
|
if (TranslationHelper.getTranslation() != null){
|
||||||
|
binding.tvTitle.text = TranslationHelper.getTranslation()?.veloria_language
|
||||||
|
}
|
||||||
|
binding.ivBack.setOnClickListener {
|
||||||
|
finish()
|
||||||
|
}
|
||||||
|
if (!NetworkUtils.isConnected()) {
|
||||||
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
|
override fun onRetry(layout: VSNotificationsDefault) {
|
||||||
|
initView()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
showComplete()
|
||||||
val layoutManager =
|
val layoutManager =
|
||||||
LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
|
LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)
|
||||||
binding.recyclerView.layoutManager = layoutManager
|
binding.recyclerView.layoutManager = layoutManager
|
||||||
mAdapter = LanguageAdapter()
|
mAdapter = LanguageAdapter()
|
||||||
binding.recyclerView.adapter = mAdapter
|
binding.recyclerView.adapter = mAdapter
|
||||||
|
|
||||||
if (TranslationHelper.getTranslation() != null){
|
|
||||||
binding.tvTitle.text = TranslationHelper.getTranslation()?.veloria_language
|
|
||||||
}
|
|
||||||
|
|
||||||
showLoading()
|
showLoading()
|
||||||
viewModel.getLanguages()
|
viewModel.getLanguages()
|
||||||
|
|
||||||
@ -61,6 +74,7 @@ class VeLanguageActivity : AIXTextActivity<ActivityVeLanguageBinding, LanguageVi
|
|||||||
viewModel.getTranslates(langKey)
|
viewModel.getTranslates(langKey)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun observeData() {
|
override fun observeData() {
|
||||||
@ -85,8 +99,8 @@ class VeLanguageActivity : AIXTextActivity<ActivityVeLanguageBinding, LanguageVi
|
|||||||
|
|
||||||
viewModel.translatesDataBean.observe(this) {
|
viewModel.translatesDataBean.observe(this) {
|
||||||
if (it?.data != null) {
|
if (it?.data != null) {
|
||||||
RYAction.getMMKV()
|
// RYAction.getMMKV()
|
||||||
.putString(JActivityAdapter.HOME_MAIN_VIDEO_INFO, "")
|
// .putString(JActivityAdapter.HOME_MAIN_VIDEO_INFO, "")
|
||||||
lifecycleScope.launch {
|
lifecycleScope.launch {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
TranslationHelper.saveTranslation(it.data.translates)
|
TranslationHelper.saveTranslation(it.data.translates)
|
||||||
|
@ -7,21 +7,24 @@ import android.widget.TextView
|
|||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.viewpager2.widget.ViewPager2
|
import androidx.viewpager2.widget.ViewPager2
|
||||||
|
import com.blankj.utilcode.util.NetworkUtils
|
||||||
import com.google.android.material.tabs.TabLayout
|
import com.google.android.material.tabs.TabLayout
|
||||||
import com.google.android.material.tabs.TabLayoutMediator
|
import com.google.android.material.tabs.TabLayoutMediator
|
||||||
import com.scwang.smart.refresh.layout.api.RefreshLayout
|
import com.scwang.smart.refresh.layout.api.RefreshLayout
|
||||||
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.databinding.ActivityVeMyWalletBinding
|
import com.veloria.now.shortapp.databinding.ActivityVeMyWalletBinding
|
||||||
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
||||||
import com.veloria.now.shortapp.other.NestedScrollHelper
|
import com.veloria.now.shortapp.other.NestedScrollHelper
|
||||||
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeMyWalletViewModel
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeMyWalletViewModel
|
||||||
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeMyWalletViewPagerAdapter
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeMyWalletViewPagerAdapter
|
||||||
|
|
||||||
class VeMyWalletActivity : AIXTextActivity<ActivityVeMyWalletBinding, VeMyWalletViewModel>(),
|
class VeMyWalletActivity : AIXTextActivity<ActivityVeMyWalletBinding, VeMyWalletViewModel>(),
|
||||||
OnRefreshLoadMoreListener {
|
OnRefreshLoadMoreListener , NOFfmpeg {
|
||||||
|
|
||||||
val viewModel: VeMyWalletViewModel by viewModels()
|
val viewModel: VeMyWalletViewModel by viewModels()
|
||||||
|
|
||||||
@ -41,9 +44,20 @@ class VeMyWalletActivity : AIXTextActivity<ActivityVeMyWalletBinding, VeMyWallet
|
|||||||
binding.tvRechargeText.text = TranslationHelper.getTranslation()?.veloria_recharge
|
binding.tvRechargeText.text = TranslationHelper.getTranslation()?.veloria_recharge
|
||||||
binding.tvDonateText.text = TranslationHelper.getTranslation()?.veloria_bonus
|
binding.tvDonateText.text = TranslationHelper.getTranslation()?.veloria_bonus
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!NetworkUtils.isConnected()) {
|
||||||
|
binding.scrollView.visibility = View.GONE
|
||||||
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
|
override fun onRetry(layout: VSNotificationsDefault) {
|
||||||
|
initView()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
showComplete()
|
||||||
|
binding.scrollView.visibility = View.VISIBLE
|
||||||
binding.tvTotal.text =
|
binding.tvTotal.text =
|
||||||
RYAction.getAllCoinTotal().toString()
|
RYAction.getAllCoinTotal().toString()
|
||||||
binding.tvRecharge.text =
|
binding.tvRecharge.text =
|
||||||
@ -175,5 +189,9 @@ class VeMyWalletActivity : AIXTextActivity<ActivityVeMyWalletBinding, VeMyWallet
|
|||||||
viewModel.setLoadMoreAction(binding.viewPager.currentItem)
|
viewModel.setLoadMoreAction(binding.viewPager.currentItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getStatusLayout(): VSNotificationsDefault? {
|
||||||
|
return binding.stateLayout
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,8 +1,15 @@
|
|||||||
package com.veloria.now.shortapp.subtractionCroll.bidirectional
|
package com.veloria.now.shortapp.subtractionCroll.bidirectional
|
||||||
|
|
||||||
|
import android.Manifest
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.Color
|
import android.graphics.Color
|
||||||
|
import android.net.Uri
|
||||||
|
import android.os.Build
|
||||||
|
import android.os.Bundle
|
||||||
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.webkit.WebChromeClient
|
import android.webkit.WebChromeClient
|
||||||
@ -11,14 +18,30 @@ import android.webkit.WebResourceRequest
|
|||||||
import android.webkit.WebSettings
|
import android.webkit.WebSettings
|
||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import com.blankj.utilcode.util.NetworkUtils
|
import com.blankj.utilcode.util.NetworkUtils
|
||||||
|
import com.blankj.utilcode.util.NotificationUtils
|
||||||
|
import com.facebook.AccessToken
|
||||||
|
import com.facebook.CallbackManager
|
||||||
|
import com.facebook.CallbackManager.Factory.create
|
||||||
|
import com.facebook.FacebookCallback
|
||||||
|
import com.facebook.FacebookException
|
||||||
|
import com.facebook.GraphRequest
|
||||||
|
import com.facebook.login.LoginManager
|
||||||
|
import com.facebook.login.LoginResult
|
||||||
|
import com.google.android.gms.tasks.OnCompleteListener
|
||||||
|
import com.google.firebase.messaging.FirebaseMessaging
|
||||||
import com.scwang.smart.refresh.layout.api.RefreshLayout
|
import com.scwang.smart.refresh.layout.api.RefreshLayout
|
||||||
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
import com.veloria.now.shortapp.civil.JActivityAdapter
|
import com.veloria.now.shortapp.civil.JActivityAdapter
|
||||||
import com.veloria.now.shortapp.civil.NOFfmpeg
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
|
import com.veloria.now.shortapp.civil.VeNotificationHelper
|
||||||
|
import com.veloria.now.shortapp.civil.YFHome
|
||||||
import com.veloria.now.shortapp.civil.singleOnClick
|
import com.veloria.now.shortapp.civil.singleOnClick
|
||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
import com.veloria.now.shortapp.databinding.ActivityVeRewardsBinding
|
import com.veloria.now.shortapp.databinding.ActivityVeRewardsBinding
|
||||||
@ -27,10 +50,18 @@ import com.veloria.now.shortapp.newsletter.XNBackground
|
|||||||
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
import com.veloria.now.shortapp.other.FeedbackJsBridge
|
||||||
import com.veloria.now.shortapp.other.VeRewardJsBridge
|
import com.veloria.now.shortapp.other.VeRewardJsBridge
|
||||||
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.avcintraRelock.LoginDialog
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeFeedbackViewModel
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
||||||
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
import org.greenrobot.eventbus.EventBus
|
import org.greenrobot.eventbus.EventBus
|
||||||
import org.greenrobot.eventbus.Subscribe
|
import org.greenrobot.eventbus.Subscribe
|
||||||
import org.greenrobot.eventbus.ThreadMode
|
import org.greenrobot.eventbus.ThreadMode
|
||||||
|
import org.json.JSONObject
|
||||||
|
import java.util.concurrent.Executors
|
||||||
|
import java.util.concurrent.ScheduledExecutorService
|
||||||
|
|
||||||
class VeRewardsActivity : AIXTextActivity<ActivityVeRewardsBinding, VeFeedbackViewModel>(),
|
class VeRewardsActivity : AIXTextActivity<ActivityVeRewardsBinding, VeFeedbackViewModel>(),
|
||||||
OnRefreshLoadMoreListener, NOFfmpeg {
|
OnRefreshLoadMoreListener, NOFfmpeg {
|
||||||
@ -53,6 +84,7 @@ class VeRewardsActivity : AIXTextActivity<ActivityVeRewardsBinding, VeFeedbackVi
|
|||||||
|
|
||||||
setWebView()
|
setWebView()
|
||||||
loadingData()
|
loadingData()
|
||||||
|
initLogin()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun loadingData() {
|
fun loadingData() {
|
||||||
@ -80,6 +112,31 @@ class VeRewardsActivity : AIXTextActivity<ActivityVeRewardsBinding, VeFeedbackVi
|
|||||||
|
|
||||||
override fun observeData() {
|
override fun observeData() {
|
||||||
|
|
||||||
|
viewModel.loginLiveData.observe(this) {
|
||||||
|
if (it?.data != null) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_succeed.toString())
|
||||||
|
}else {
|
||||||
|
toast("Succeed")
|
||||||
|
}
|
||||||
|
RYAction.getMMKV()
|
||||||
|
.putString(JActivityAdapter.ACCOUNT_TOKEN, it.data.token)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_ENTER_THE_APP)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_ON_LINE)
|
||||||
|
EventBus.getDefault()
|
||||||
|
.post(JActivityAdapter.HOME_USER_REFRESH)
|
||||||
|
|
||||||
|
loadingData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
viewModel.openNotifyLiveData.observe(this){
|
||||||
|
if (it?.data != null) {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -140,6 +197,12 @@ class VeRewardsActivity : AIXTextActivity<ActivityVeRewardsBinding, VeFeedbackVi
|
|||||||
if (JActivityAdapter.HOME_LOGIN == event) {
|
if (JActivityAdapter.HOME_LOGIN == event) {
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
if (JActivityAdapter.ACCOUNT_WEB_NOTIFICATION == event) {
|
||||||
|
askNotificationPermission()
|
||||||
|
}
|
||||||
|
if (JActivityAdapter.REWARD_LOGIN == event) {
|
||||||
|
setLogin()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
@ -161,4 +224,177 @@ class VeRewardsActivity : AIXTextActivity<ActivityVeRewardsBinding, VeFeedbackVi
|
|||||||
return binding.stateLayout
|
return binding.stateLayout
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun askNotificationPermission() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
if (ContextCompat.checkSelfPermission(
|
||||||
|
this, Manifest.permission.POST_NOTIFICATIONS
|
||||||
|
) == PackageManager.PERMISSION_GRANTED
|
||||||
|
) {
|
||||||
|
getFirebaseMessaging()
|
||||||
|
viewModel.setOpenNotify()
|
||||||
|
loadingData()
|
||||||
|
} else {
|
||||||
|
requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (VeNotificationHelper.isNotification(this)) {
|
||||||
|
getFirebaseMessaging()
|
||||||
|
viewModel.setOpenNotify()
|
||||||
|
loadingData()
|
||||||
|
} else {
|
||||||
|
VeNotificationHelper.setNotification(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data)
|
||||||
|
if (requestCode == VeNotificationHelper.VE_NOTIFICATION_REQUEST_CODE) {
|
||||||
|
JActivityAdapter.IS_HOME_SET_NOTIFICATIONS = VeNotificationHelper.isNotification(this)
|
||||||
|
if (JActivityAdapter.IS_HOME_SET_NOTIFICATIONS) {
|
||||||
|
getFirebaseMessaging()
|
||||||
|
viewModel.setOpenNotify()
|
||||||
|
}
|
||||||
|
loadingData()
|
||||||
|
}else {
|
||||||
|
callbackManager?.onActivityResult(requestCode, resultCode, data)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private val requestPermissionLauncher = registerForActivityResult(
|
||||||
|
ActivityResultContracts.RequestPermission(),
|
||||||
|
) { isGranted: Boolean ->
|
||||||
|
JActivityAdapter.IS_HOME_SET_NOTIFICATIONS = isGranted
|
||||||
|
if (isGranted) {
|
||||||
|
getFirebaseMessaging()
|
||||||
|
viewModel.setOpenNotify()
|
||||||
|
loadingData()
|
||||||
|
} else {
|
||||||
|
openAppNotificationSettings()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun openAppNotificationSettings() {
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
|
||||||
|
val intent = Intent()
|
||||||
|
intent.action = "android.settings.APP_NOTIFICATION_SETTINGS"
|
||||||
|
intent.putExtra(
|
||||||
|
"android.provider.extra.APP_PACKAGE",
|
||||||
|
YFHome.getPackageName()
|
||||||
|
)
|
||||||
|
startActivity(intent)
|
||||||
|
} else {
|
||||||
|
val intent = Intent()
|
||||||
|
intent.action = "android.settings.APPLICATION_DETAILS_SETTINGS"
|
||||||
|
intent.data =
|
||||||
|
Uri.fromParts("package", YFHome.getPackageName(), null)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun getFirebaseMessaging() {
|
||||||
|
FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
|
||||||
|
if (!task.isSuccessful) {
|
||||||
|
return@OnCompleteListener
|
||||||
|
}
|
||||||
|
// Get new FCM registration token
|
||||||
|
val token = task.result
|
||||||
|
// Log and toast
|
||||||
|
Log.d("LOG_TAG", token)
|
||||||
|
viewModel.setFirebaseToken(token)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
private var callbackManager: CallbackManager? = null
|
||||||
|
|
||||||
|
fun setLogin() {
|
||||||
|
val dialog = LoginDialog(this).apply {
|
||||||
|
setOnLoginOnclickListener(object : LoginDialog.LoginOnClick {
|
||||||
|
override fun onLoginFacebook() {
|
||||||
|
onFacebook()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
dialog.show()
|
||||||
|
dialog.loginOnclick
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun onFacebook() {
|
||||||
|
singleOnClick {
|
||||||
|
LoginManager.getInstance()
|
||||||
|
.logInWithReadPermissions(this, arrayListOf("public_profile", "email"))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fun initLogin(){
|
||||||
|
callbackManager = create()
|
||||||
|
LoginManager.getInstance().registerCallback(callbackManager,
|
||||||
|
object : FacebookCallback<LoginResult> {
|
||||||
|
override fun onSuccess(loginResult: LoginResult) {
|
||||||
|
val enableButtons = AccessToken.getCurrentAccessToken() != null
|
||||||
|
if (enableButtons) {
|
||||||
|
val mGraphRequest = GraphRequest.newMeRequest(
|
||||||
|
loginResult.accessToken
|
||||||
|
) { jsonObject, response ->
|
||||||
|
if (response!!.error != null) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(
|
||||||
|
"Facebook ".plus(TranslationHelper.getTranslation()?.veloria_login_exception)
|
||||||
|
.plus(".${response.error?.exception.toString()}")
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
toast("Facebook Error")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
val id = jsonObject?.optString("id")
|
||||||
|
val name = jsonObject?.optString("name")
|
||||||
|
val object_pic: JSONObject? = jsonObject!!.optJSONObject("picture")
|
||||||
|
val object_data = object_pic?.optJSONObject("data")
|
||||||
|
val photo = object_data?.optString("url")
|
||||||
|
viewModel.setLeaveApp()
|
||||||
|
viewModel.setDoLogin(
|
||||||
|
LoginDataBean(
|
||||||
|
photo.toString(),
|
||||||
|
"",
|
||||||
|
name.toString(),
|
||||||
|
"",
|
||||||
|
"facebook",
|
||||||
|
id.toString()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
val parameters = Bundle()
|
||||||
|
parameters.putString("fields", "id,name,email,picture")
|
||||||
|
mGraphRequest.parameters = parameters
|
||||||
|
mGraphRequest.executeAsync()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onCancel() {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast("Facebook ".plus(TranslationHelper.getTranslation()?.veloria_login_cancel))
|
||||||
|
} else {
|
||||||
|
toast("Facebook Cancel")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onError(exception: FacebookException) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(
|
||||||
|
"Facebook ".plus(TranslationHelper.getTranslation()?.veloria_login_exception)
|
||||||
|
.plus("n.$exception")
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
toast("Facebook Error")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -7,6 +7,7 @@ import android.view.View
|
|||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.lifecycle.lifecycleScope
|
import androidx.lifecycle.lifecycleScope
|
||||||
import androidx.recyclerview.widget.GridLayoutManager
|
import androidx.recyclerview.widget.GridLayoutManager
|
||||||
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.android.billingclient.api.AcknowledgePurchaseParams
|
import com.android.billingclient.api.AcknowledgePurchaseParams
|
||||||
import com.android.billingclient.api.BillingClient
|
import com.android.billingclient.api.BillingClient
|
||||||
@ -20,7 +21,9 @@ import com.android.billingclient.api.ProductDetailsResponseListener
|
|||||||
import com.android.billingclient.api.Purchase
|
import com.android.billingclient.api.Purchase
|
||||||
import com.android.billingclient.api.PurchasesUpdatedListener
|
import com.android.billingclient.api.PurchasesUpdatedListener
|
||||||
import com.android.billingclient.api.QueryProductDetailsParams
|
import com.android.billingclient.api.QueryProductDetailsParams
|
||||||
|
import com.blankj.utilcode.util.NetworkUtils
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.NOFfmpeg
|
||||||
import com.veloria.now.shortapp.civil.RYAction
|
import com.veloria.now.shortapp.civil.RYAction
|
||||||
import com.veloria.now.shortapp.civil.TranslationHelper
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.civil.YFHome
|
import com.veloria.now.shortapp.civil.YFHome
|
||||||
@ -28,27 +31,35 @@ import com.veloria.now.shortapp.civil.singleOnClick
|
|||||||
import com.veloria.now.shortapp.civil.toast
|
import com.veloria.now.shortapp.civil.toast
|
||||||
import com.veloria.now.shortapp.databinding.ActivityVeStoreBinding
|
import com.veloria.now.shortapp.databinding.ActivityVeStoreBinding
|
||||||
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
import com.veloria.now.shortapp.newsletter.AIXTextActivity
|
||||||
|
import com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeStoreViewModel
|
import com.veloria.now.shortapp.subtractionCroll.bidirectional.coordinate.VeStoreViewModel
|
||||||
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeBannerVipPayAdapter
|
|
||||||
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreCoinAdapter
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreCoinAdapter
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreCoinBigAdapter
|
||||||
|
import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeStoreVipAdapter
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
import com.veloria.now.shortapp.texturedAsink.VeCreatePayOrderReqBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VePayBean
|
import com.veloria.now.shortapp.texturedAsink.VePayBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
import com.youth.banner.listener.OnPageChangeListener
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
|
import kotlinx.coroutines.flow.debounce
|
||||||
|
import kotlinx.coroutines.flow.flow
|
||||||
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel>() {
|
class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel>() , NOFfmpeg {
|
||||||
|
|
||||||
val viewModel: VeStoreViewModel by viewModels()
|
val viewModel: VeStoreViewModel by viewModels()
|
||||||
|
|
||||||
override fun getViewBinding() = ActivityVeStoreBinding.inflate(layoutInflater)
|
override fun getViewBinding() = ActivityVeStoreBinding.inflate(layoutInflater)
|
||||||
|
|
||||||
private var coinAdapter: VeStoreCoinAdapter? = null
|
private var coinAdapter: VeStoreCoinAdapter? = null
|
||||||
private var bannerAdapter: VeBannerVipPayAdapter? = null
|
private var coinBigAdapter: VeStoreCoinBigAdapter? = null
|
||||||
|
private var vipAdapter: VeStoreVipAdapter? = null
|
||||||
private var typeOnClick = 0
|
private var typeOnClick = 0
|
||||||
private var isConnect = false
|
private var isConnect = false
|
||||||
private var vipData: VePaySettingsBean.VipBean? = null
|
private var vipData: VePaySettingsBean.VipBean? = null
|
||||||
private var coinsData: VePaySettingsBean.CoinsBean? = null
|
private var coinsData: VePaySettingsBean.CoinsBean? = null
|
||||||
|
private var coinsBigData: VePaySettingsBean.CoinsBean? = null
|
||||||
private var payBeanReq: VePayBean? = null
|
private var payBeanReq: VePayBean? = null
|
||||||
|
|
||||||
private var billingClientData: BillingClient? = null
|
private var billingClientData: BillingClient? = null
|
||||||
@ -57,21 +68,14 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
|
|
||||||
private var isBuy = false
|
private var isBuy = false
|
||||||
private var purchaseData: Purchase? = null
|
private var purchaseData: Purchase? = null
|
||||||
|
private val scope = CoroutineScope(Dispatchers.Main)
|
||||||
|
|
||||||
override fun initView() {
|
override fun initView() {
|
||||||
|
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
binding.tvTitle1.text = TranslationHelper.getTranslation()?.veloria_limited_time_offer
|
binding.tvTitle.text = TranslationHelper.getTranslation()?.veloria_store
|
||||||
binding.tvTitle2.text = TranslationHelper.getTranslation()?.veloria_recharge_unlock_more
|
binding.tvCoinTitle.text = TranslationHelper.getTranslation()?.veloria_coin_buy_title
|
||||||
binding.tvTab2.text = TranslationHelper.getTranslation()?.veloria_coins
|
binding.tvRestore.text = TranslationHelper.getTranslation()?.veloria_restore
|
||||||
binding.tvVipText.text = TranslationHelper.getTranslation()?.veloria_membership_benefits
|
|
||||||
binding.tvVipContent1.text = TranslationHelper.getTranslation()?.veloria_store_no_ads
|
|
||||||
binding.tvVipContent2.text =
|
|
||||||
TranslationHelper.getTranslation()?.veloria_store_donate_coins
|
|
||||||
binding.tvVipContent3.text =
|
|
||||||
TranslationHelper.getTranslation()?.veloria_store_auto_renew
|
|
||||||
binding.tvMoreCoin.text = TranslationHelper.getTranslation()?.veloria_get_more_coins
|
|
||||||
binding.tvCoinText.text = TranslationHelper.getTranslation()?.veloria_your_coins
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||||
binding.tvTips.text = Html.fromHtml(
|
binding.tvTips.text = Html.fromHtml(
|
||||||
TranslationHelper.getTranslation()?.veloria_store_tips
|
TranslationHelper.getTranslation()?.veloria_store_tips
|
||||||
@ -85,27 +89,27 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
showLoading()
|
|
||||||
|
|
||||||
binding.tvCoin.text = RYAction.getAllCoinTotal().toString()
|
|
||||||
|
|
||||||
binding.ivBack.setOnClickListener {
|
binding.ivBack.setOnClickListener {
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
binding.tvTab1.setOnClickListener {
|
|
||||||
binding.tvTab1.setBackgroundResource(R.mipmap.iv_store_tab_left)
|
|
||||||
binding.tvTab2.setBackgroundResource(R.drawable.bg_transparent)
|
|
||||||
binding.clOne.visibility = View.GONE
|
|
||||||
binding.clTwo.visibility = View.VISIBLE
|
|
||||||
}
|
|
||||||
binding.tvTab2.setOnClickListener {
|
|
||||||
binding.tvTab1.setBackgroundResource(R.drawable.bg_transparent)
|
|
||||||
binding.tvTab2.setBackgroundResource(R.mipmap.iv_store_tab_right)
|
|
||||||
binding.clOne.visibility = View.VISIBLE
|
|
||||||
binding.clTwo.visibility = View.GONE
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if (!NetworkUtils.isConnected()) {
|
||||||
|
binding.scrollView.visibility = View.GONE
|
||||||
|
showErrorData(object : VSNotificationsDefault.OnRetryListener {
|
||||||
|
|
||||||
|
override fun onRetry(layout: VSNotificationsDefault) {
|
||||||
|
initView()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
showComplete()
|
||||||
|
binding.scrollView.visibility = View.VISIBLE
|
||||||
|
showLoading()
|
||||||
|
|
||||||
|
vipAdapter = VeStoreVipAdapter()
|
||||||
|
binding.recyclerVip.layoutManager = LinearLayoutManager(this)
|
||||||
|
binding.recyclerVip.adapter = vipAdapter
|
||||||
|
|
||||||
coinAdapter = VeStoreCoinAdapter()
|
coinAdapter = VeStoreCoinAdapter()
|
||||||
binding.recyclerCoin.layoutManager = GridLayoutManager(this, 3)
|
binding.recyclerCoin.layoutManager = GridLayoutManager(this, 3)
|
||||||
@ -122,16 +126,43 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
outRect.bottom = resources.getDimension(R.dimen.dp_10).toInt()
|
outRect.bottom = resources.getDimension(R.dimen.dp_10).toInt()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
coinBigAdapter = VeStoreCoinBigAdapter()
|
||||||
|
binding.recyclerCoinBig.layoutManager = GridLayoutManager(this, 2)
|
||||||
|
binding.recyclerCoinBig.adapter = coinBigAdapter
|
||||||
|
binding.recyclerCoinBig.addItemDecoration(object : RecyclerView.ItemDecoration() {
|
||||||
|
override fun getItemOffsets(
|
||||||
|
outRect: Rect,
|
||||||
|
view: View,
|
||||||
|
parent: RecyclerView,
|
||||||
|
state: RecyclerView.State
|
||||||
|
) {
|
||||||
|
outRect.left = resources.getDimension(R.dimen.dp_5).toInt()
|
||||||
|
outRect.right = resources.getDimension(R.dimen.dp_5).toInt()
|
||||||
|
outRect.bottom = resources.getDimension(R.dimen.dp_10).toInt()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
viewModel.getPaySettingsV3(0, 0)
|
viewModel.getPaySettingsV3(0, 0)
|
||||||
|
|
||||||
coinAdapter?.setOnItemClickListener { adapter, view, position ->
|
vipAdapter?.setOnItemClickListener { adapter, view, position ->
|
||||||
if (typeOnClick == 1) {
|
if (typeOnClick != 1) {
|
||||||
if (bannerAdapter?.currentPosition!! >= 0) {
|
coinAdapter?.currentPosition = -1
|
||||||
bannerAdapter?.notifyItemChanged(bannerAdapter?.currentPosition!!)
|
coinAdapter?.notifyDataSetChanged()
|
||||||
|
coinBigAdapter?.currentPosition = -1
|
||||||
|
coinBigAdapter?.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
bannerAdapter?.oldPosition = -1
|
typeOnClick = 1
|
||||||
bannerAdapter?.currentPosition = -1
|
vipAdapter?.currentPosition = position
|
||||||
|
vipAdapter?.notifyDataSetChanged()
|
||||||
|
|
||||||
|
setOnPayNowClick()
|
||||||
|
}
|
||||||
|
coinAdapter?.setOnItemClickListener { adapter, view, position ->
|
||||||
|
if (typeOnClick != 0) {
|
||||||
|
vipAdapter?.currentPosition = -1
|
||||||
|
vipAdapter?.notifyDataSetChanged()
|
||||||
|
coinBigAdapter?.currentPosition = -1
|
||||||
|
coinBigAdapter?.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
typeOnClick = 0
|
typeOnClick = 0
|
||||||
coinAdapter?.currentPosition = position
|
coinAdapter?.currentPosition = position
|
||||||
@ -139,50 +170,48 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
|
|
||||||
setOnPayNowClick()
|
setOnPayNowClick()
|
||||||
}
|
}
|
||||||
|
coinBigAdapter?.setOnItemClickListener { adapter, view, position ->
|
||||||
initPayData()
|
if (typeOnClick != 2) {
|
||||||
}
|
vipAdapter?.currentPosition = -1
|
||||||
|
vipAdapter?.notifyDataSetChanged()
|
||||||
private fun setBannerListener() {
|
|
||||||
binding.bannerVip.setOnBannerListener { data, position ->
|
|
||||||
if (typeOnClick == 0) {
|
|
||||||
coinAdapter?.currentPosition = -1
|
coinAdapter?.currentPosition = -1
|
||||||
coinAdapter?.notifyDataSetChanged()
|
coinAdapter?.notifyDataSetChanged()
|
||||||
}
|
}
|
||||||
if (bannerAdapter?.currentPosition!! >= 0) {
|
typeOnClick = 2
|
||||||
bannerAdapter?.oldPosition = bannerAdapter?.currentPosition!!
|
coinBigAdapter?.currentPosition = position
|
||||||
}
|
coinBigAdapter?.notifyDataSetChanged()
|
||||||
typeOnClick = 1
|
|
||||||
bannerAdapter?.currentPosition = position
|
|
||||||
bannerAdapter?.notifyItemChanged(position)
|
|
||||||
if (bannerAdapter?.oldPosition!! >= 0) {
|
|
||||||
bannerAdapter?.notifyItemChanged(bannerAdapter?.oldPosition!!)
|
|
||||||
}
|
|
||||||
setOnPayNowClick()
|
setOnPayNowClick()
|
||||||
}
|
}
|
||||||
|
binding.tvRestore.setOnClickListener{
|
||||||
binding.bannerVip.addOnPageChangeListener(object : OnPageChangeListener {
|
singleOnClick {
|
||||||
override fun onPageScrolled(
|
if (RYAction.getOrder().isNotEmpty()
|
||||||
position: Int,
|
|
||||||
positionOffset: Float,
|
|
||||||
positionOffsetPixels: Int
|
|
||||||
) {
|
) {
|
||||||
|
showLoading()
|
||||||
|
val string = RYAction.getOrder()
|
||||||
|
scope.launch {
|
||||||
|
flow {
|
||||||
|
for (item in string) {
|
||||||
|
emit(item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.onEach { item ->
|
||||||
|
viewModel.setRestorePaid(item)
|
||||||
|
}
|
||||||
|
.debounce(500)
|
||||||
|
.collect {}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (TranslationHelper.getTranslation() != null){
|
||||||
|
TranslationHelper.getTranslation()?.veloria_no_restore?.let { it1 -> toast(it1) }
|
||||||
|
}else {
|
||||||
|
toast("No orders to restore")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPageSelected(position: Int) {
|
initPayData()
|
||||||
val data = bannerAdapter?.getData(position)
|
|
||||||
data?.let { setVipContentText(it) }
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun onPageScrollStateChanged(state: Int) {
|
|
||||||
}
|
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
val itemData = bannerAdapter?.getData(0)
|
|
||||||
itemData?.let { setVipContentText(it) }
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setOnPayNowClick() {
|
fun setOnPayNowClick() {
|
||||||
@ -197,15 +226,26 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
}
|
}
|
||||||
if (typeOnClick == 0) {
|
if (typeOnClick == 0) {
|
||||||
coinsData =
|
coinsData =
|
||||||
coinAdapter!!.getItem(coinAdapter!!.currentPosition) as VePaySettingsBean.CoinsBean
|
coinAdapter?.getItem(coinAdapter!!.currentPosition) as VePaySettingsBean.CoinsBean
|
||||||
} else {
|
} else if (typeOnClick == 1) {
|
||||||
vipData =
|
vipData =
|
||||||
bannerAdapter?.getData(bannerAdapter!!.currentPosition) as VePaySettingsBean.VipBean
|
vipAdapter?.getItem(vipAdapter!!.currentPosition) as VePaySettingsBean.VipBean
|
||||||
|
} else {
|
||||||
|
coinsBigData =
|
||||||
|
coinBigAdapter?.getItem(coinBigAdapter!!.currentPosition) as VePaySettingsBean.CoinsBean
|
||||||
}
|
}
|
||||||
showLoading()
|
showLoading()
|
||||||
|
var idStr = ""
|
||||||
|
if (typeOnClick == 0) {
|
||||||
|
idStr = coinsData?.id.toString()
|
||||||
|
} else if (typeOnClick == 1) {
|
||||||
|
idStr = vipData?.id.toString()
|
||||||
|
} else {
|
||||||
|
idStr = coinsBigData?.id.toString()
|
||||||
|
}
|
||||||
viewModel.setCreatePayOrder(
|
viewModel.setCreatePayOrder(
|
||||||
VeCreatePayOrderReqBean(
|
VeCreatePayOrderReqBean(
|
||||||
if (typeOnClick == 0) coinsData?.id.toString() else vipData?.id.toString(),
|
idStr,
|
||||||
"google",
|
"google",
|
||||||
0,
|
0,
|
||||||
0
|
0
|
||||||
@ -218,21 +258,43 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
override fun observeData() {
|
override fun observeData() {
|
||||||
viewModel.PaySettingsV3.observe(this) {
|
viewModel.PaySettingsV3.observe(this) {
|
||||||
if (it?.data != null) {
|
if (it?.data != null) {
|
||||||
coinAdapter?.submitList(it.data.list_coins)
|
if (it.data.list_sub_vip.isNotEmpty()) {
|
||||||
|
vipAdapter?.submitList(it.data.list_sub_vip)
|
||||||
bannerAdapter =
|
binding.recyclerVip.visibility = View.VISIBLE
|
||||||
VeBannerVipPayAdapter(it.data.list_sub_vip)
|
|
||||||
binding.bannerVip.setBannerGalleryEffect(
|
|
||||||
resources.getDimension(R.dimen.dp_5).toInt(),
|
|
||||||
resources.getDimension(R.dimen.dp_5).toInt()
|
|
||||||
)
|
|
||||||
binding.bannerVip.setAdapter(bannerAdapter)
|
|
||||||
setBannerListener()
|
|
||||||
|
|
||||||
it.data.list_sub_vip.let { it1 -> querySubVipProductDetails(it1) }
|
it.data.list_sub_vip.let { it1 -> querySubVipProductDetails(it1) }
|
||||||
it.data.list_coins.let { it1 -> queryInAppCoinsProductDetails(it1) }
|
|
||||||
}
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
binding.recyclerVip.visibility = View.GONE
|
||||||
|
}
|
||||||
|
if (it.data.list_coins.isNotEmpty()) {
|
||||||
|
val small = it.data.list_coins.filter { coins -> coins.size == "small" }
|
||||||
|
val big = it.data.list_coins.filter { coins -> coins.size == "big" }
|
||||||
|
if (small.isNotEmpty()) {
|
||||||
|
coinAdapter?.submitList(small)
|
||||||
|
binding.recyclerCoin.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
binding.recyclerCoin.visibility = View.GONE
|
||||||
|
}
|
||||||
|
if (big.isNotEmpty()) {
|
||||||
|
coinBigAdapter?.submitList(big)
|
||||||
|
binding.recyclerCoinBig.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
binding.recyclerCoinBig.visibility = View.GONE
|
||||||
|
}
|
||||||
|
if (small?.isNotEmpty() == true) {
|
||||||
|
small?.let { it1 -> queryInAppCoinsProductDetails(it1, "small") }
|
||||||
|
}
|
||||||
|
if (big?.isNotEmpty() == true) {
|
||||||
|
big?.let { it1 -> queryInAppCoinsProductDetails(it1, "big") }
|
||||||
|
}
|
||||||
|
binding.tvCoinTitle.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
binding.recyclerCoin.visibility = View.GONE
|
||||||
|
binding.recyclerCoinBig.visibility = View.GONE
|
||||||
|
binding.tvCoinTitle.visibility = View.GONE
|
||||||
|
}
|
||||||
|
}
|
||||||
hideLoading()
|
hideLoading()
|
||||||
}
|
}
|
||||||
viewModel.createPayOrderData.observe(this) {
|
viewModel.createPayOrderData.observe(this) {
|
||||||
@ -240,8 +302,10 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
order_code = it.data.order_code.toString()
|
order_code = it.data.order_code.toString()
|
||||||
if (typeOnClick == 0) {
|
if (typeOnClick == 0) {
|
||||||
coinsData?.android_template_id?.let { it1 -> getProduct(it1) }
|
coinsData?.android_template_id?.let { it1 -> getProduct(it1) }
|
||||||
} else {
|
} else if (typeOnClick == 1) {
|
||||||
vipData?.android_template_id?.let { it1 -> getProduct(it1) }
|
vipData?.android_template_id?.let { it1 -> getProduct(it1) }
|
||||||
|
} else {
|
||||||
|
coinsBigData?.android_template_id?.let { it1 -> getProduct(it1) }
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
@ -271,66 +335,37 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
}
|
}
|
||||||
hideLoading()
|
hideLoading()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
viewModel.userInfo.observe(this) {
|
viewModel.userInfo.observe(this) {
|
||||||
if (it?.data != null) {
|
if (it?.data != null) {
|
||||||
RYAction.saveUserInfoBean(it.data)
|
RYAction.saveUserInfoBean(it.data)
|
||||||
binding.tvCoin.text = RYAction.getAllCoinTotal().toString()
|
}
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
viewModel.restorePaidData.observe(this){
|
||||||
|
if (it != null) {
|
||||||
|
it.data?.order_code?.let { it1 -> RYAction.removeOrderString(it1) }
|
||||||
|
if (RYAction.getOrder().size == 0) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_success.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.ve_google_pay_success))
|
||||||
|
}
|
||||||
|
viewModel.getUserInfo()
|
||||||
|
isBuy = true
|
||||||
|
}
|
||||||
|
}else {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
toast(TranslationHelper.getTranslation()?.veloria_network.toString())
|
||||||
|
} else {
|
||||||
|
toast(getString(R.string.shapeSelected))
|
||||||
}
|
}
|
||||||
hideLoading()
|
hideLoading()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setVipContentText(data: VePaySettingsBean.VipBean) {
|
|
||||||
|
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
|
||||||
var oneDate = ""
|
|
||||||
when (data?.vip_type_key) {
|
|
||||||
"week" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_week.toString()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
"month" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_month.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
"quarter" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_quarter.toString()
|
|
||||||
}
|
|
||||||
|
|
||||||
"year" -> {
|
|
||||||
oneDate = TranslationHelper.getTranslation()?.veloria_year.toString()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val vipContent1 = TranslationHelper.replace(
|
|
||||||
TranslationHelper.getTranslation()?.veloria_store_no_ads.toString(),
|
|
||||||
"<font color='#05CEA0'>".plus(oneDate).plus("</font>")
|
|
||||||
)
|
|
||||||
binding.tvVipContent1.text =
|
|
||||||
Html.fromHtml(vipContent1, Html.FROM_HTML_MODE_LEGACY)
|
|
||||||
val vipContent2 = TranslationHelper.replace(
|
|
||||||
TranslationHelper.getTranslation()?.veloria_store_donate_coins.toString(),
|
|
||||||
data.send_coin_ttl.toString()
|
|
||||||
)
|
|
||||||
binding.tvVipContent2.text =
|
|
||||||
Html.fromHtml(vipContent2, Html.FROM_HTML_MODE_LEGACY)
|
|
||||||
|
|
||||||
} else {
|
|
||||||
val vipContent1 =
|
|
||||||
"Unlimited access to all series for <font color='#05CEA0'>1 ".plus(data?.vip_type_key)
|
|
||||||
.plus("</font> (No Ads)")
|
|
||||||
binding.tvVipContent1.text =
|
|
||||||
Html.fromHtml(vipContent1, Html.FROM_HTML_MODE_LEGACY)
|
|
||||||
val vipContent2 =
|
|
||||||
"The donate coins will expire in <font color='#05CEA0'>".plus(data.send_coin_ttl.toString())
|
|
||||||
.plus(" days</font>")
|
|
||||||
binding.tvVipContent2.text =
|
|
||||||
Html.fromHtml(vipContent2, Html.FROM_HTML_MODE_LEGACY)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun initPayData() {
|
private fun initPayData() {
|
||||||
val purchasesUpdatedListener =
|
val purchasesUpdatedListener =
|
||||||
@ -339,15 +374,20 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
BillingClient.BillingResponseCode.OK -> {
|
BillingClient.BillingResponseCode.OK -> {
|
||||||
for (purchase in purchases!!) {
|
for (purchase in purchases!!) {
|
||||||
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
|
if (purchase.purchaseState == Purchase.PurchaseState.PURCHASED) {
|
||||||
if (typeOnClick == 0) {
|
if (typeOnClick == 1) {
|
||||||
consumePurchase(purchase)
|
|
||||||
} else {
|
|
||||||
consumePurchaseSub(purchase)
|
consumePurchaseSub(purchase)
|
||||||
|
} else {
|
||||||
|
consumePurchase(purchase)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED -> {
|
||||||
|
queryAndConsumePurchases()
|
||||||
|
hideLoading()
|
||||||
|
}
|
||||||
|
|
||||||
BillingClient.BillingResponseCode.USER_CANCELED -> {
|
BillingClient.BillingResponseCode.USER_CANCELED -> {
|
||||||
if (TranslationHelper.getTranslation() != null) {
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
toast(TranslationHelper.getTranslation()?.veloria_google_pay_canceled.toString())
|
toast(TranslationHelper.getTranslation()?.veloria_google_pay_canceled.toString())
|
||||||
@ -451,7 +491,7 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
binding.root.postDelayed({
|
binding.root.postDelayed({
|
||||||
bannerAdapter?.setDatas(updatedVipList)
|
vipAdapter?.submitList(updatedVipList)
|
||||||
hideLoading()
|
hideLoading()
|
||||||
}, 500)
|
}, 500)
|
||||||
} else {
|
} else {
|
||||||
@ -481,7 +521,8 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun queryInAppCoinsProductDetails(
|
private fun queryInAppCoinsProductDetails(
|
||||||
coinsList: List<VePaySettingsBean.CoinsBean>
|
coinsList: List<VePaySettingsBean.CoinsBean>,
|
||||||
|
type: String
|
||||||
) {
|
) {
|
||||||
val productDetailsResponseListener =
|
val productDetailsResponseListener =
|
||||||
ProductDetailsResponseListener { billingResult, productDetailsList ->
|
ProductDetailsResponseListener { billingResult, productDetailsList ->
|
||||||
@ -500,7 +541,11 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
}
|
}
|
||||||
|
|
||||||
coinAdapter?.recyclerView?.postDelayed({
|
coinAdapter?.recyclerView?.postDelayed({
|
||||||
|
if (type == "small") {
|
||||||
coinAdapter?.submitList(updatedCoinsList)
|
coinAdapter?.submitList(updatedCoinsList)
|
||||||
|
} else {
|
||||||
|
coinBigAdapter?.submitList(updatedCoinsList)
|
||||||
|
}
|
||||||
}, 500)
|
}, 500)
|
||||||
} else {
|
} else {
|
||||||
hideLoading()
|
hideLoading()
|
||||||
@ -541,10 +586,10 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val productType: String = if (typeOnClick == 0) {
|
val productType: String = if (typeOnClick == 1) {
|
||||||
BillingClient.ProductType.INAPP
|
|
||||||
} else {
|
|
||||||
BillingClient.ProductType.SUBS
|
BillingClient.ProductType.SUBS
|
||||||
|
} else {
|
||||||
|
BillingClient.ProductType.INAPP
|
||||||
}
|
}
|
||||||
|
|
||||||
val inAppProductInfo = ArrayList<QueryProductDetailsParams.Product>()
|
val inAppProductInfo = ArrayList<QueryProductDetailsParams.Product>()
|
||||||
@ -623,12 +668,12 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
ConsumeResponseListener { billingResult, purchaseToken ->
|
ConsumeResponseListener { billingResult, purchaseToken ->
|
||||||
val vePayBean = VePayBean(
|
val vePayBean = VePayBean(
|
||||||
order_code,
|
order_code,
|
||||||
if (typeOnClick == 0) coinsData?.id.toString() else vipData?.id.toString(),
|
if (typeOnClick == 0) coinsData?.id.toString() else coinsBigData?.id.toString(),
|
||||||
YFHome.getPackageName(),
|
YFHome.getPackageName(),
|
||||||
if (typeOnClick == 0) coinsData?.android_template_id.toString() else vipData?.android_template_id.toString(),
|
if (typeOnClick == 0) coinsData?.android_template_id.toString() else coinsBigData?.android_template_id.toString(),
|
||||||
purchaseToken,
|
purchaseToken,
|
||||||
purchaseData?.orderId.toString(),
|
purchaseData?.orderId.toString(),
|
||||||
if (typeOnClick == 0) coinsData?.price.toString() else vipData?.price.toString()
|
if (typeOnClick == 0) coinsData?.price.toString() else coinsBigData?.price.toString()
|
||||||
)
|
)
|
||||||
payBeanReq = vePayBean
|
payBeanReq = vePayBean
|
||||||
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
@ -644,6 +689,18 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun queryAndConsumePurchases() {
|
||||||
|
// 查询所有未消费的购买记录
|
||||||
|
billingClientData?.queryPurchasesAsync(BillingClient.ProductType.INAPP) { billingResult, purchaseList ->
|
||||||
|
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) {
|
||||||
|
for (purchase in purchaseList) {
|
||||||
|
consumePurchase(purchase)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
payBeanReq = null
|
payBeanReq = null
|
||||||
@ -652,4 +709,8 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
|
|||||||
System.gc()
|
System.gc()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun getStatusLayout(): VSNotificationsDefault? {
|
||||||
|
return binding.stateLayout
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -13,6 +13,7 @@ import com.veloria.now.shortapp.texturedAsink.VePayResBean
|
|||||||
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeW2aSelfAttributionBean
|
import com.veloria.now.shortapp.texturedAsink.VeW2aSelfAttributionBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VersionControlBean
|
||||||
|
|
||||||
|
|
||||||
class JService : SStringsHelp() {
|
class JService : SStringsHelp() {
|
||||||
@ -147,4 +148,13 @@ class JService : SStringsHelp() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val _versionControlLiveData = MutableLiveData<TStore<VersionControlBean>?>()
|
||||||
|
val versionControlData: MutableLiveData<TStore<VersionControlBean>?> get() = _versionControlLiveData
|
||||||
|
|
||||||
|
fun getVersionControl() {
|
||||||
|
repository.getVersionControl().observeForever { result ->
|
||||||
|
_versionControlLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -6,7 +6,9 @@ import com.veloria.now.shortapp.newsletter.SStringsHelp
|
|||||||
import com.veloria.now.shortapp.texturedAsink.PURLockBean
|
import com.veloria.now.shortapp.texturedAsink.PURLockBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
import com.veloria.now.shortapp.texturedAsink.XAboutBean
|
||||||
import com.veloria.now.shortapp.highbits.qscaleqlog.PDeteleResource
|
import com.veloria.now.shortapp.highbits.qscaleqlog.PDeteleResource
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.DoLoginBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
import com.veloria.now.shortapp.texturedAsink.KFAFavoritesInterceptorBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeBuyVideoBean
|
import com.veloria.now.shortapp.texturedAsink.VeBuyVideoBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeDetailsRecommendBean
|
import com.veloria.now.shortapp.texturedAsink.VeDetailsRecommendBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeRevolutionsBean
|
import com.veloria.now.shortapp.texturedAsink.VeRevolutionsBean
|
||||||
@ -109,4 +111,16 @@ private var moreSecond_sum: Int = 6970
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setLeaveApp() {
|
||||||
|
repository.setLeaveApp().observeForever {}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val _loginLiveData = MutableLiveData<TStore<DoLoginBean>?>()
|
||||||
|
val loginLiveData: MutableLiveData<TStore<DoLoginBean>?> get() = _loginLiveData
|
||||||
|
fun setDoLogin(loginDataBean: LoginDataBean) {
|
||||||
|
repository.setDoLogin(loginDataBean).observeForever { result ->
|
||||||
|
_loginLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,11 @@ import androidx.lifecycle.MutableLiveData
|
|||||||
import com.veloria.now.shortapp.highbits.qscaleqlog.ANotifications
|
import com.veloria.now.shortapp.highbits.qscaleqlog.ANotifications
|
||||||
import com.veloria.now.shortapp.newsletter.SStringsHelp
|
import com.veloria.now.shortapp.newsletter.SStringsHelp
|
||||||
import com.veloria.now.shortapp.newsletter.TStore
|
import com.veloria.now.shortapp.newsletter.TStore
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.DoLoginBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.LoginDataBean
|
||||||
import com.veloria.now.shortapp.texturedAsink.VeNoticeNumBean
|
import com.veloria.now.shortapp.texturedAsink.VeNoticeNumBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationBean
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VeUploadNotificationDataBean
|
||||||
|
|
||||||
|
|
||||||
class VeFeedbackViewModel : SStringsHelp() {
|
class VeFeedbackViewModel : SStringsHelp() {
|
||||||
@ -19,4 +23,42 @@ class VeFeedbackViewModel : SStringsHelp() {
|
|||||||
_noticeNumLiveData.value = result.getOrNull()
|
_noticeNumLiveData.value = result.getOrNull()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private val _notificationLiveData = MutableLiveData<TStore<VeUploadNotificationDataBean>?>()
|
||||||
|
val notificationLiveData: MutableLiveData<TStore<VeUploadNotificationDataBean>?> get() = _notificationLiveData
|
||||||
|
fun setUploadNoticeStatus(veUploadNotificationBean: VeUploadNotificationBean) {
|
||||||
|
repository.setUploadNoticeStatus(veUploadNotificationBean)
|
||||||
|
.observeForever { result ->
|
||||||
|
_notificationLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val firebaseTokenLiveData = MutableLiveData<TStore<Any>?>()
|
||||||
|
fun setFirebaseToken(
|
||||||
|
fcm_token: String
|
||||||
|
) {
|
||||||
|
repository.setFirebaseToken(fcm_token).observeForever { result ->
|
||||||
|
firebaseTokenLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private val _openNotifyLiveData = MutableLiveData<TStore<Any>?>()
|
||||||
|
val openNotifyLiveData: MutableLiveData<TStore<Any>?> get() = _openNotifyLiveData
|
||||||
|
fun setOpenNotify() {
|
||||||
|
repository.setOpenNotify().observeForever { result ->
|
||||||
|
_openNotifyLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun setLeaveApp() {
|
||||||
|
repository.setLeaveApp().observeForever {}
|
||||||
|
}
|
||||||
|
private val _loginLiveData = MutableLiveData<TStore<DoLoginBean>?>()
|
||||||
|
val loginLiveData: MutableLiveData<TStore<DoLoginBean>?> get() = _loginLiveData
|
||||||
|
fun setDoLogin(loginDataBean: LoginDataBean) {
|
||||||
|
repository.setDoLogin(loginDataBean).observeForever { result ->
|
||||||
|
_loginLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -63,4 +63,13 @@ class VeStoreViewModel : SStringsHelp() {
|
|||||||
repository.getUserInfo().observeForever { result ->
|
repository.getUserInfo().observeForever { result ->
|
||||||
_userInfo.value = result.getOrNull()
|
_userInfo.value = result.getOrNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val restorePaidLiveData = MutableLiveData<TStore<VePayResBean>?>()
|
||||||
|
val restorePaidData: MutableLiveData<TStore<VePayResBean>?> get() = restorePaidLiveData
|
||||||
|
fun setRestorePaid(vePayBean: VePayBean?) {
|
||||||
|
repository.setGooglePaid(vePayBean).observeForever { result ->
|
||||||
|
restorePaidLiveData.value = result.getOrNull()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -7,21 +7,20 @@ import androidx.recyclerview.widget.RecyclerView
|
|||||||
import com.bumptech.glide.Glide
|
import com.bumptech.glide.Glide
|
||||||
import com.chad.library.adapter4.BaseQuickAdapter
|
import com.chad.library.adapter4.BaseQuickAdapter
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
|
import com.veloria.now.shortapp.civil.getTimeAgoDetailed
|
||||||
|
import com.veloria.now.shortapp.databinding.IDisplayTrendsBinding
|
||||||
import com.veloria.now.shortapp.newsletter.XNBackground
|
import com.veloria.now.shortapp.newsletter.XNBackground
|
||||||
import com.veloria.now.shortapp.texturedAsink.TMainExtractionBean
|
import com.veloria.now.shortapp.texturedAsink.TMainExtractionBean
|
||||||
import com.veloria.now.shortapp.databinding.IDisplayTrendsBinding
|
|
||||||
import com.veloria.now.shortapp.civil.getTimeAgoDetailed
|
|
||||||
import kotlin.math.min
|
|
||||||
import kotlin.math.max
|
|
||||||
|
|
||||||
|
|
||||||
class GFFavorites :
|
class GFFavorites :
|
||||||
BaseQuickAdapter<TMainExtractionBean.DataListBean, GFFavorites.VH>() {
|
BaseQuickAdapter<TMainExtractionBean.DataListBean, GFFavorites.VH>() {
|
||||||
@Volatile
|
@Volatile
|
||||||
var default_0mTabBingeSum: Long = 3471L
|
var default_0mTabBingeSum: Long = 3471L
|
||||||
@Volatile
|
|
||||||
var freeRetrofitMark: Int = 5934
|
|
||||||
|
|
||||||
|
@Volatile
|
||||||
|
var freeRetrofitMark: Int = 5934
|
||||||
|
|
||||||
|
|
||||||
var collectionOnClick: CollectionOnClick? = null
|
var collectionOnClick: CollectionOnClick? = null
|
||||||
@ -39,38 +38,43 @@ class GFFavorites :
|
|||||||
) : RecyclerView.ViewHolder(binding.root)
|
) : RecyclerView.ViewHolder(binding.root)
|
||||||
|
|
||||||
|
|
||||||
private fun playDramaAppendModeForeverTest(lifecycleHttp: MutableList<Long>, secondsStarted: MutableMap<String,Double>) :MutableMap<String,Float> {
|
private fun playDramaAppendModeForeverTest(
|
||||||
var durationFailure:MutableList<Boolean> = mutableListOf<Boolean>()
|
lifecycleHttp: MutableList<Long>,
|
||||||
var setupMin__6:MutableList<Long> = mutableListOf<Long>()
|
secondsStarted: MutableMap<String, Double>
|
||||||
var toastCurrent:MutableMap<String,Boolean> = mutableMapOf<String,Boolean>()
|
): MutableMap<String, Float> {
|
||||||
|
var durationFailure: MutableList<Boolean> = mutableListOf<Boolean>()
|
||||||
|
var setupMin__6: MutableList<Long> = mutableListOf<Long>()
|
||||||
|
var toastCurrent: MutableMap<String, Boolean> = mutableMapOf<String, Boolean>()
|
||||||
println(toastCurrent)
|
println(toastCurrent)
|
||||||
var correspondentsTableinit:MutableMap<String,Float> = mutableMapOf<String,Float>()
|
var correspondentsTableinit: MutableMap<String, Float> = mutableMapOf<String, Float>()
|
||||||
for(clips in toastCurrent) {
|
for (clips in toastCurrent) {
|
||||||
correspondentsTableinit.put("multiframe", 0.0f)
|
correspondentsTableinit.put("multiframe", 0.0f)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return correspondentsTableinit
|
return correspondentsTableinit
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
|
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
|
||||||
var scheduling_r = mutableListOf<Long>()
|
var scheduling_r = mutableListOf<Long>()
|
||||||
|
|
||||||
var elisionUnhighlight = this.playDramaAppendModeForeverTest(scheduling_r,mutableMapOf<String,Double>())
|
var elisionUnhighlight =
|
||||||
|
this.playDramaAppendModeForeverTest(scheduling_r, mutableMapOf<String, Double>())
|
||||||
|
|
||||||
var elisionUnhighlight_len:Int = elisionUnhighlight.size
|
var elisionUnhighlight_len: Int = elisionUnhighlight.size
|
||||||
for(object_i in elisionUnhighlight) {
|
for (object_i in elisionUnhighlight) {
|
||||||
println(object_i.key)
|
println(object_i.key)
|
||||||
println(object_i.value)
|
println(object_i.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
println(elisionUnhighlight)
|
println(elisionUnhighlight)
|
||||||
|
|
||||||
|
|
||||||
var dashboardI:String = "rscc"
|
var dashboardI: String = "rscc"
|
||||||
if (dashboardI.length > 171) {}
|
if (dashboardI.length > 171) {
|
||||||
|
}
|
||||||
println(dashboardI)
|
println(dashboardI)
|
||||||
|
|
||||||
|
|
||||||
@ -78,50 +82,51 @@ println(elisionUnhighlight)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun liveOutputCallAnyEpisodeApplication(chooseSeries: Long) :Long {
|
private fun liveOutputCallAnyEpisodeApplication(chooseSeries: Long): Long {
|
||||||
var responseSeekbar = mutableListOf<Float>()
|
var responseSeekbar = mutableListOf<Float>()
|
||||||
println(responseSeekbar)
|
println(responseSeekbar)
|
||||||
var eventFree:Double = 1094.0
|
var eventFree: Double = 1094.0
|
||||||
var seekbarHttp:String = "kanna"
|
var seekbarHttp: String = "kanna"
|
||||||
println(seekbarHttp)
|
println(seekbarHttp)
|
||||||
var iconSkewed:Int = 9958
|
var iconSkewed: Int = 9958
|
||||||
println(iconSkewed)
|
println(iconSkewed)
|
||||||
var armthFreadSqrt:Long = 5210L
|
var armthFreadSqrt: Long = 5210L
|
||||||
eventFree = eventFree
|
eventFree = eventFree
|
||||||
iconSkewed -= iconSkewed
|
iconSkewed -= iconSkewed
|
||||||
|
|
||||||
return armthFreadSqrt
|
return armthFreadSqrt
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
override fun onBindViewHolder(
|
override fun onBindViewHolder(
|
||||||
holder: VH,
|
holder: VH,
|
||||||
position: Int,
|
position: Int,
|
||||||
item: TMainExtractionBean.DataListBean?
|
item: TMainExtractionBean.DataListBean?
|
||||||
) {
|
) {
|
||||||
|
|
||||||
var splittingSigning:Long = this.liveOutputCallAnyEpisodeApplication(1455L)
|
var splittingSigning: Long = this.liveOutputCallAnyEpisodeApplication(1455L)
|
||||||
|
|
||||||
var interpolator_splittingSigning: Int = splittingSigning.toInt()
|
var interpolator_splittingSigning: Int = splittingSigning.toInt()
|
||||||
if (splittingSigning >= 2L) {
|
if (splittingSigning >= 2L) {
|
||||||
println(splittingSigning)
|
println(splittingSigning)
|
||||||
}
|
}
|
||||||
|
|
||||||
println(splittingSigning)
|
println(splittingSigning)
|
||||||
|
|
||||||
|
|
||||||
var loading6:Int = 1947
|
var loading6: Int = 1947
|
||||||
if (loading6 > 87) {}
|
if (loading6 > 87) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
this.default_0mTabBingeSum = 9956L
|
this.default_0mTabBingeSum = 9956L
|
||||||
|
|
||||||
this.freeRetrofitMark = 4850
|
this.freeRetrofitMark = 4850
|
||||||
|
|
||||||
|
|
||||||
if (null != item) {
|
if (null != item) {
|
||||||
var transparent1:Boolean = true
|
var transparent1: Boolean = true
|
||||||
|
|
||||||
|
|
||||||
Glide.with(XNBackground.instance)
|
Glide.with(XNBackground.instance)
|
||||||
@ -129,53 +134,74 @@ this.default_0mTabBingeSum = 9956L
|
|||||||
.placeholder(R.mipmap.collection_trending_recommend)
|
.placeholder(R.mipmap.collection_trending_recommend)
|
||||||
.error(R.mipmap.collection_trending_recommend)
|
.error(R.mipmap.collection_trending_recommend)
|
||||||
.into(holder.binding.ivImage2)
|
.into(holder.binding.ivImage2)
|
||||||
var factoryu:Int = 4239
|
var factoryu: Int = 4239
|
||||||
if (factoryu > 62) {}
|
if (factoryu > 62) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
holder.binding.tvName2.text = item.name
|
holder.binding.tvName2.text = item.name
|
||||||
var progressJ:Long = 3354L
|
var progressJ: Long = 3354L
|
||||||
while (progressJ >= 27L) { break }
|
while (progressJ >= 27L) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
holder.binding.tvSeries.text = TranslationHelper.replace(
|
||||||
|
TranslationHelper.getTranslation()?.mireo_EP.toString(),
|
||||||
|
item.current_episode
|
||||||
|
)
|
||||||
|
holder.binding.tvSeriesAll.text = "/".plus(
|
||||||
|
TranslationHelper.replace(
|
||||||
|
TranslationHelper.getTranslation()?.veloria_all_episodes.toString(),
|
||||||
|
item.episode_total.toString()
|
||||||
|
)
|
||||||
|
)
|
||||||
|
} else {
|
||||||
holder.binding.tvSeries.text =
|
holder.binding.tvSeries.text =
|
||||||
"EP.".plus(item.current_episode)
|
"EP.".plus(item.current_episode)
|
||||||
var uploadp:Int = 6616
|
|
||||||
while (uploadp >= 157) { break }
|
|
||||||
|
|
||||||
|
|
||||||
holder.binding.tvSeriesAll.text = "/EP.".plus(item.episode_total)
|
holder.binding.tvSeriesAll.text = "/EP.".plus(item.episode_total)
|
||||||
var indexJ:Long = 6061L
|
}
|
||||||
if (indexJ > 169L) {}
|
var uploadp: Int = 6616
|
||||||
|
while (uploadp >= 157) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
var indexJ: Long = 6061L
|
||||||
|
if (indexJ > 169L) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (item.is_collect == 1) {
|
if (item.is_collect == 1) {
|
||||||
var login_:Float = 4781.0f
|
var login_: Float = 4781.0f
|
||||||
while (login_ >= 30.0f) { break }
|
while (login_ >= 30.0f) {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
holder.binding.ivCollection.setImageResource(R.mipmap.detele_rewards_episode)
|
holder.binding.ivCollection.setImageResource(R.mipmap.detele_rewards_episode)
|
||||||
} else {
|
} else {
|
||||||
var tabA:Float = 2603.0f
|
var tabA: Float = 2603.0f
|
||||||
if (tabA <= 39.0f) {}
|
if (tabA <= 39.0f) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
holder.binding.ivCollection.setImageResource(R.mipmap.episode_utils)
|
holder.binding.ivCollection.setImageResource(R.mipmap.episode_utils)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!item.updated_at.isNullOrEmpty()) {
|
if (!item.updated_at.isNullOrEmpty()) {
|
||||||
var outV:Float = 6386.0f
|
var outV: Float = 6386.0f
|
||||||
if (outV == 10.0f) {}
|
if (outV == 10.0f) {
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
holder.binding.tvTime.text = getTimeAgoDetailed(item.updated_at)
|
holder.binding.tvTime.text = item.updated_at
|
||||||
}
|
}
|
||||||
|
|
||||||
holder.binding.ivCollection.setOnClickListener {
|
holder.binding.ivCollection.setOnClickListener {
|
||||||
var processa:Boolean = false
|
var processa: Boolean = false
|
||||||
println(processa)
|
println(processa)
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,7 +30,11 @@ class VeCustomerBuyRecordAdapter :
|
|||||||
item: VeCustomerBuyRecordsBean.DataBean?
|
item: VeCustomerBuyRecordsBean.DataBean?
|
||||||
) {
|
) {
|
||||||
if (null != item) {
|
if (null != item) {
|
||||||
|
if (TranslationHelper.getTranslation()!=null){
|
||||||
|
holder.binding.tvBalance.text = TranslationHelper.replace(TranslationHelper.getTranslation()?.mireo_EP.toString(),item.episode.toString()).plus(" ").plus(item.name)
|
||||||
|
}else{
|
||||||
holder.binding.tvBalance.text = "EP.".plus(item.episode).plus(" ").plus(item.name)
|
holder.binding.tvBalance.text = "EP.".plus(item.episode).plus(" ").plus(item.name)
|
||||||
|
}
|
||||||
holder.binding.tvName.text = TranslationHelper.getTranslation()
|
holder.binding.tvName.text = TranslationHelper.getTranslation()
|
||||||
?.let { TranslationHelper.getTranslation()?.veloria_purchase_single_episode }
|
?.let { TranslationHelper.getTranslation()?.veloria_purchase_single_episode }
|
||||||
?: "Purchase Single Episode"
|
?: "Purchase Single Episode"
|
||||||
|
@ -7,6 +7,7 @@ import android.view.ViewGroup
|
|||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.chad.library.adapter4.BaseQuickAdapter
|
import com.chad.library.adapter4.BaseQuickAdapter
|
||||||
import com.veloria.now.shortapp.R
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
import com.veloria.now.shortapp.databinding.ItemVeStoreCoinBinding
|
import com.veloria.now.shortapp.databinding.ItemVeStoreCoinBinding
|
||||||
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
import kotlin.math.floor
|
import kotlin.math.floor
|
||||||
@ -36,7 +37,15 @@ class VeStoreCoinAdapter :
|
|||||||
holder.binding.tvCoins.text = "+".plus(item.coins.toString())
|
holder.binding.tvCoins.text = "+".plus(item.coins.toString())
|
||||||
holder.binding.tvPrice.text = item.price_google
|
holder.binding.tvPrice.text = item.price_google
|
||||||
if (item.send_coins > 0) {
|
if (item.send_coins > 0) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
holder.binding.tvBonus.text = TranslationHelper.replace(
|
||||||
|
TranslationHelper.getTranslation()?.veloria_bonus_count_text.toString(),
|
||||||
|
item.send_coins.toString()
|
||||||
|
)
|
||||||
|
|
||||||
|
} else {
|
||||||
holder.binding.tvBonus.text = "+".plus(item.send_coins).plus(" Bonus")
|
holder.binding.tvBonus.text = "+".plus(item.send_coins).plus(" Bonus")
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
holder.binding.tvBonus.text = ""
|
holder.binding.tvBonus.text = ""
|
||||||
}
|
}
|
||||||
@ -53,7 +62,7 @@ class VeStoreCoinAdapter :
|
|||||||
} else {
|
} else {
|
||||||
holder.binding.tvSelect.visibility = View.GONE
|
holder.binding.tvSelect.visibility = View.GONE
|
||||||
|
|
||||||
holder.binding.root.setBackgroundResource(R.drawable.bg_store_coin_bg)
|
holder.binding.root.setBackgroundResource(R.mipmap.bg_store_coin_bg)
|
||||||
}
|
}
|
||||||
val sendCoins = item?.send_coins?.toDouble()
|
val sendCoins = item?.send_coins?.toDouble()
|
||||||
if (sendCoins != null) {
|
if (sendCoins != null) {
|
||||||
|
@ -0,0 +1,82 @@
|
|||||||
|
package com.veloria.now.shortapp.subtractionCroll.modificationsPretch
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.chad.library.adapter4.BaseQuickAdapter
|
||||||
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
|
import com.veloria.now.shortapp.databinding.ItemVeStoreCoinBigBinding
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
|
import kotlin.math.floor
|
||||||
|
|
||||||
|
class VeStoreCoinBigAdapter :
|
||||||
|
BaseQuickAdapter<VePaySettingsBean.CoinsBean, VeStoreCoinBigAdapter.VH>() {
|
||||||
|
|
||||||
|
var currentPosition = -1
|
||||||
|
|
||||||
|
class VH(
|
||||||
|
parent: ViewGroup,
|
||||||
|
val binding: ItemVeStoreCoinBigBinding = ItemVeStoreCoinBigBinding.inflate(
|
||||||
|
LayoutInflater.from(parent.context), parent, false
|
||||||
|
),
|
||||||
|
) : RecyclerView.ViewHolder(binding.root)
|
||||||
|
|
||||||
|
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
|
||||||
|
return VH(parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onBindViewHolder(
|
||||||
|
holder: VH,
|
||||||
|
position: Int,
|
||||||
|
item: VePaySettingsBean.CoinsBean?
|
||||||
|
) {
|
||||||
|
if (null != item) {
|
||||||
|
holder.binding.tvCoins.text = "+".plus(item.coins.toString())
|
||||||
|
holder.binding.tvPrice.text = item.price_google
|
||||||
|
if (item.send_coins > 0) {
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
holder.binding.tvBonus.text = TranslationHelper.replace(
|
||||||
|
TranslationHelper.getTranslation()?.veloria_bonus_count_text.toString(),
|
||||||
|
item.send_coins.toString()
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
holder.binding.tvBonus.text = "+".plus(item.send_coins).plus(" Bonus")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
holder.binding.tvBonus.text = ""
|
||||||
|
}
|
||||||
|
if (item.corner_marker.isNotEmpty()) {
|
||||||
|
holder.binding.tvHot.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
holder.binding.tvHot.visibility = View.INVISIBLE
|
||||||
|
}
|
||||||
|
if (currentPosition == position) {
|
||||||
|
holder.binding.tvSelect.visibility = View.VISIBLE
|
||||||
|
holder.binding.root.setBackgroundResource(R.drawable.bg_store_coin_on)
|
||||||
|
} else {
|
||||||
|
holder.binding.tvSelect.visibility = View.GONE
|
||||||
|
holder.binding.root.setBackgroundResource(R.drawable.bg_store_coin_off)
|
||||||
|
}
|
||||||
|
val sendCoins = item?.send_coins?.toDouble()
|
||||||
|
if (sendCoins != null) {
|
||||||
|
if (sendCoins > 0) {
|
||||||
|
val coins = item?.coins?.toDouble()
|
||||||
|
val let = coins?.let { sendCoins?.div(it) }
|
||||||
|
val times = let?.times(100)
|
||||||
|
if (times != null) {
|
||||||
|
val floor = floor(times).toInt()
|
||||||
|
holder.binding.tvCorner.text = "+".plus(floor).plus("%")
|
||||||
|
holder.binding.tvCorner.visibility = View.VISIBLE
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
holder.binding.tvCorner.visibility = View.INVISIBLE
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -36,15 +36,39 @@ class VeStoreVipAdapter :
|
|||||||
if (null != item) {
|
if (null != item) {
|
||||||
holder.binding.tvDay.text = item.brief
|
holder.binding.tvDay.text = item.brief
|
||||||
holder.binding.tvMoney.text = item.price_google
|
holder.binding.tvMoney.text = item.price_google
|
||||||
holder.binding.tvMoneyDay.text = "/".plus(item.vip_type_key)
|
holder.binding.tvMoneyDay.text = "/".plus(item.short_type)
|
||||||
|
holder.binding.tvDescription.text = item.description
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
holder.binding.tvInfo.text = TranslationHelper.getTranslation()?.veloria_store_auto_renew
|
||||||
|
}
|
||||||
if ((item.send_coins ?: 0) > 0) {
|
if ((item.send_coins ?: 0) > 0) {
|
||||||
holder.binding.tvExtra.text =
|
holder.binding.tvExtra.text =
|
||||||
"+".plus(TranslationHelper.getTranslation()?.let { TranslationHelper.getTranslation()?.veloria_extra } ?: "Extra").plus(" ").plus(item.send_coins)
|
"+".plus(
|
||||||
|
TranslationHelper.getTranslation()
|
||||||
|
?.let { TranslationHelper.getTranslation()?.veloria_extra } ?: "Extra")
|
||||||
|
.plus(" ").plus(item.send_coins)
|
||||||
|
|
||||||
|
if (TranslationHelper.getTranslation() != null) {
|
||||||
|
holder.binding.tvExpire.text =
|
||||||
|
TranslationHelper.getTranslation()?.veloria_store_donate_coins_ios?.let {
|
||||||
|
TranslationHelper.replace(
|
||||||
|
it,
|
||||||
|
item.send_coin_ttl.toString()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
holder.binding.tvExpire.text =
|
||||||
|
"The donate coins will expire in ".plus(item.send_coin_ttl.toString())
|
||||||
|
.plus(" days")
|
||||||
|
}
|
||||||
holder.binding.tvExtra.visibility = View.VISIBLE
|
holder.binding.tvExtra.visibility = View.VISIBLE
|
||||||
|
holder.binding.tvExpire.visibility = View.VISIBLE
|
||||||
} else {
|
} else {
|
||||||
holder.binding.tvExtra.visibility = View.GONE
|
holder.binding.tvExtra.visibility = View.GONE
|
||||||
|
holder.binding.tvExpire.visibility = View.GONE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (currentPosition == position) {
|
if (currentPosition == position) {
|
||||||
holder.binding.tvSelect.visibility = View.VISIBLE
|
holder.binding.tvSelect.visibility = View.VISIBLE
|
||||||
} else {
|
} else {
|
||||||
@ -53,40 +77,56 @@ class VeStoreVipAdapter :
|
|||||||
|
|
||||||
|
|
||||||
when (item.vip_type_key) {
|
when (item.vip_type_key) {
|
||||||
"week" -> {
|
"month" -> {
|
||||||
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_1)
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_1)
|
||||||
|
holder.binding.tvDay.setTextColor(Color.parseColor("#647DA7"))
|
||||||
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#647DA7"))
|
||||||
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#647DA7"))
|
||||||
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#214170"))
|
||||||
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_1)
|
||||||
|
holder.binding.tvDescription.setTextColor(Color.parseColor("#303962"))
|
||||||
|
holder.binding.tvDescription.setBackgroundResource(R.drawable.bg_store_vip_text_1)
|
||||||
|
holder.binding.tvInfo.setTextColor(Color.parseColor("#8790B7"))
|
||||||
|
holder.binding.tvExpire.setTextColor(Color.parseColor("#8790B7"))
|
||||||
|
}
|
||||||
|
|
||||||
|
"week" -> {
|
||||||
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_2)
|
||||||
holder.binding.tvDay.setTextColor(Color.parseColor("#64A3A7"))
|
holder.binding.tvDay.setTextColor(Color.parseColor("#64A3A7"))
|
||||||
holder.binding.tvMoney.setTextColor(Color.parseColor("#64A3A7"))
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#64A3A7"))
|
||||||
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#64A3A7"))
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#64A3A7"))
|
||||||
holder.binding.tvExtra.setTextColor(Color.parseColor("#416767"))
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#16706A"))
|
||||||
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_1)
|
|
||||||
}
|
|
||||||
|
|
||||||
"month" -> {
|
|
||||||
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_2)
|
|
||||||
holder.binding.tvDay.setTextColor(Color.parseColor("#9C7565"))
|
|
||||||
holder.binding.tvMoney.setTextColor(Color.parseColor("#9C7565"))
|
|
||||||
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#9C7565"))
|
|
||||||
holder.binding.tvExtra.setTextColor(Color.parseColor("#573D31"))
|
|
||||||
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_2)
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_2)
|
||||||
|
holder.binding.tvDescription.setTextColor(Color.parseColor("#416767"))
|
||||||
|
holder.binding.tvDescription.setBackgroundResource(R.drawable.bg_store_vip_text_2)
|
||||||
|
holder.binding.tvInfo.setTextColor(Color.parseColor("#8AAEA6"))
|
||||||
|
holder.binding.tvExpire.setTextColor(Color.parseColor("#8AAEA6"))
|
||||||
}
|
}
|
||||||
|
|
||||||
"quarter" -> {
|
"quarter" -> {
|
||||||
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_3)
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_3)
|
||||||
holder.binding.tvDay.setTextColor(Color.parseColor("#647DA7"))
|
holder.binding.tvDay.setTextColor(Color.parseColor("#7869FF"))
|
||||||
holder.binding.tvMoney.setTextColor(Color.parseColor("#647DA7"))
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#7869FF"))
|
||||||
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#647DA7"))
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#7869FF"))
|
||||||
holder.binding.tvExtra.setTextColor(Color.parseColor("#303962"))
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#510087"))
|
||||||
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_3)
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_3)
|
||||||
|
holder.binding.tvDescription.setTextColor(Color.parseColor("#5F1EB9"))
|
||||||
|
holder.binding.tvDescription.setBackgroundResource(R.drawable.bg_store_vip_text_3)
|
||||||
|
holder.binding.tvInfo.setTextColor(Color.parseColor("#A395D9"))
|
||||||
|
holder.binding.tvExpire.setTextColor(Color.parseColor("#A395D9"))
|
||||||
}
|
}
|
||||||
|
|
||||||
"year" -> {
|
"year" -> {
|
||||||
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_4)
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_store_vip_bg_4)
|
||||||
holder.binding.tvDay.setTextColor(Color.parseColor("#9C6586"))
|
holder.binding.tvDay.setTextColor(Color.parseColor("#573D31"))
|
||||||
holder.binding.tvMoney.setTextColor(Color.parseColor("#9C6586"))
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#573D31"))
|
||||||
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#9C6586"))
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#573D31"))
|
||||||
holder.binding.tvExtra.setTextColor(Color.parseColor("#674162"))
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#683D00"))
|
||||||
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_4)
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_4)
|
||||||
|
holder.binding.tvDescription.setTextColor(Color.parseColor("#573D31"))
|
||||||
|
holder.binding.tvDescription.setBackgroundResource(R.drawable.bg_store_vip_text_4)
|
||||||
|
holder.binding.tvInfo.setTextColor(Color.parseColor("#AC978D"))
|
||||||
|
holder.binding.tvExpire.setTextColor(Color.parseColor("#AC978D"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,100 @@
|
|||||||
|
package com.veloria.now.shortapp.subtractionCroll.modificationsPretch
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.graphics.Color
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.view.ViewGroup
|
||||||
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
|
import com.chad.library.adapter4.BaseQuickAdapter
|
||||||
|
import com.veloria.now.shortapp.R
|
||||||
|
import com.veloria.now.shortapp.civil.TranslationHelper
|
||||||
|
import com.veloria.now.shortapp.databinding.ItemVeStoreVipBinding
|
||||||
|
import com.veloria.now.shortapp.databinding.ItemVeVipSplashBinding
|
||||||
|
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
|
||||||
|
|
||||||
|
class VeVipSplashAdapter :
|
||||||
|
BaseQuickAdapter<VePaySettingsBean.VipBean, VeVipSplashAdapter.VH>() {
|
||||||
|
|
||||||
|
var currentPosition = -1
|
||||||
|
|
||||||
|
class VH(
|
||||||
|
parent: ViewGroup,
|
||||||
|
val binding: ItemVeVipSplashBinding = ItemVeVipSplashBinding.inflate(
|
||||||
|
LayoutInflater.from(parent.context), parent, false
|
||||||
|
),
|
||||||
|
) : RecyclerView.ViewHolder(binding.root)
|
||||||
|
|
||||||
|
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): VH {
|
||||||
|
return VH(parent)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onBindViewHolder(
|
||||||
|
holder: VH,
|
||||||
|
position: Int,
|
||||||
|
item: VePaySettingsBean.VipBean?
|
||||||
|
) {
|
||||||
|
if (null != item) {
|
||||||
|
holder.binding.tvMoney.text = item.price_google
|
||||||
|
holder.binding.tvMoneyDay.text = "/".plus(item.short_type)
|
||||||
|
if ((item.send_coins ?: 0) > 0) {
|
||||||
|
holder.binding.tvExtra.text =
|
||||||
|
"+".plus(
|
||||||
|
TranslationHelper.getTranslation()
|
||||||
|
?.let { TranslationHelper.getTranslation()?.veloria_extra } ?: "Extra")
|
||||||
|
.plus(" ").plus(item.send_coins)
|
||||||
|
|
||||||
|
holder.binding.tvExtra.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
holder.binding.tvExtra.visibility = View.GONE
|
||||||
|
}
|
||||||
|
if (position == 0){
|
||||||
|
holder.binding.tvHot.visibility = View.VISIBLE
|
||||||
|
}else {
|
||||||
|
holder.binding.tvHot.visibility = View.GONE
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentPosition == position) {
|
||||||
|
holder.binding.tvSelect.visibility = View.VISIBLE
|
||||||
|
} else {
|
||||||
|
holder.binding.tvSelect.visibility = View.GONE
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
when (item.vip_type_key) {
|
||||||
|
"month" -> {
|
||||||
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_dialog_vip_splash_vip_1)
|
||||||
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#414867"))
|
||||||
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#414867"))
|
||||||
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#303962"))
|
||||||
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_text_1)
|
||||||
|
}
|
||||||
|
|
||||||
|
"week" -> {
|
||||||
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_dialog_vip_splash_vip_2)
|
||||||
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#416767"))
|
||||||
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#416767"))
|
||||||
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#416767"))
|
||||||
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_text_2)
|
||||||
|
}
|
||||||
|
|
||||||
|
"quarter" -> {
|
||||||
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_dialog_vip_splash_vip_3)
|
||||||
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#5F1EB9"))
|
||||||
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#5F1EB9"))
|
||||||
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#5F1EB9"))
|
||||||
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_text_3)
|
||||||
|
}
|
||||||
|
|
||||||
|
"year" -> {
|
||||||
|
holder.binding.root.setBackgroundResource(R.mipmap.iv_dialog_vip_splash_vip_4)
|
||||||
|
holder.binding.tvMoney.setTextColor(Color.parseColor("#573D31"))
|
||||||
|
holder.binding.tvMoneyDay.setTextColor(Color.parseColor("#573D31"))
|
||||||
|
holder.binding.tvExtra.setTextColor(Color.parseColor("#573D31"))
|
||||||
|
holder.binding.tvExtra.setBackgroundResource(R.drawable.bg_store_vip_text_4)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -16,6 +16,19 @@ class VeTranslationBean(
|
|||||||
)
|
)
|
||||||
|
|
||||||
data class Translation(
|
data class Translation(
|
||||||
|
val veloria_update_title : String,
|
||||||
|
val veloria_update_now : String,
|
||||||
|
val veloria_no_restore : String,
|
||||||
|
val veloria_store_donate_coins_ios : String,
|
||||||
|
val veloria_coin_buy_title : String,
|
||||||
|
val mireo_EP : String,
|
||||||
|
val veloria_try_again : String,
|
||||||
|
val veloria_network_error_1 : String,
|
||||||
|
val veloria_search_results : String,
|
||||||
|
val veloria_watch_now : String,
|
||||||
|
val veloria_detail_recommand_title : String,
|
||||||
|
val veloria_bonus_count_text : String,
|
||||||
|
val veloria_donate_expire : String,
|
||||||
val veloria_open_notice_at_watch_video : String,
|
val veloria_open_notice_at_watch_video : String,
|
||||||
val veloria_allow : String,
|
val veloria_allow : String,
|
||||||
val veloria_open_notice_alert_text : String,
|
val veloria_open_notice_alert_text : String,
|
||||||
@ -80,6 +93,7 @@ class VeTranslationBean(
|
|||||||
val veloria_recersal_of_fate : String,
|
val veloria_recersal_of_fate : String,
|
||||||
val veloria_extra : String,
|
val veloria_extra : String,
|
||||||
val veloria_store_tips : String,
|
val veloria_store_tips : String,
|
||||||
|
val veloria_unlock : String,
|
||||||
val veloria_your_coins : String,
|
val veloria_your_coins : String,
|
||||||
val veloria_get_more_coins : String,
|
val veloria_get_more_coins : String,
|
||||||
val veloria_buy_now : String,
|
val veloria_buy_now : String,
|
||||||
@ -115,6 +129,7 @@ class VeTranslationBean(
|
|||||||
val veloria_order_record : String,
|
val veloria_order_record : String,
|
||||||
val veloria_rewards : String,
|
val veloria_rewards : String,
|
||||||
val veloria_store : String,
|
val veloria_store : String,
|
||||||
|
val veloria_restore : String,
|
||||||
val veloria_wallet : String,
|
val veloria_wallet : String,
|
||||||
val veloria_bonus : String,
|
val veloria_bonus : String,
|
||||||
val veloria_coins : String,
|
val veloria_coins : String,
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.veloria.now.shortapp.texturedAsink
|
||||||
|
|
||||||
|
class VersionControlBean (
|
||||||
|
val description: String,
|
||||||
|
val version_code: String,
|
||||||
|
val version_name: String
|
||||||
|
)
|
5
app/src/main/res/drawable/bg_coin_big_right.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="#FF9500" />
|
||||||
|
<corners android:topRightRadius="@dimen/dp_8" android:bottomLeftRadius="@dimen/dp_8" />
|
||||||
|
</shape>
|
5
app/src/main/res/drawable/bg_coin_left_big.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="#FFBE55" />
|
||||||
|
<corners android:topLeftRadius="@dimen/dp_8" android:bottomRightRadius="@dimen/dp_8" />
|
||||||
|
</shape>
|
@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<solid android:color="#05CEA0" />
|
<solid android:color="#8005CEA0" />
|
||||||
<corners android:topRightRadius="@dimen/dp_8" android:bottomLeftRadius="@dimen/dp_8" />
|
<corners android:topRightRadius="@dimen/dp_8" android:bottomLeftRadius="@dimen/dp_8" />
|
||||||
</shape>
|
</shape>
|
5
app/src/main/res/drawable/bg_coin_right_hot.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="#BE0069" />
|
||||||
|
<corners android:topRightRadius="@dimen/dp_10" android:bottomLeftRadius="@dimen/dp_10" />
|
||||||
|
</shape>
|
5
app/src/main/res/drawable/bg_store_coin_money_bottom.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="#3D05CEA0" />
|
||||||
|
<corners android:bottomRightRadius="@dimen/dp_8" android:bottomLeftRadius="@dimen/dp_8" />
|
||||||
|
</shape>
|
11
app/src/main/res/drawable/bg_store_coin_money_bottom_big.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:endColor="#E6A87A46" android:startColor="#E6FBF2C7" android:type="linear" />
|
||||||
|
<corners android:bottomLeftRadius="@dimen/dp_8"
|
||||||
|
android:bottomRightRadius="@dimen/dp_8"
|
||||||
|
/>
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
9
app/src/main/res/drawable/bg_store_coin_off.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:endColor="#80A87A46" android:startColor="#80FBF2C7" android:type="linear" />
|
||||||
|
<corners android:radius="@dimen/dp_8" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
11
app/src/main/res/drawable/bg_store_coin_on.xml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:endColor="#80A87A46" android:startColor="#80FBF2C7" android:type="linear" />
|
||||||
|
<corners android:radius="@dimen/dp_8" />
|
||||||
|
<stroke android:width="@dimen/dp_1" android:color="#FFBE55" />
|
||||||
|
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
@ -2,8 +2,10 @@
|
|||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item>
|
<item>
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
<gradient android:endColor="@color/transparent" android:startColor="#B2E7EA" android:type="linear" />
|
<gradient android:endColor="#7CA1D7" android:startColor="#ADCFFF" android:type="linear" />
|
||||||
<corners android:radius="@dimen/dp_6" />
|
<corners android:topLeftRadius="@dimen/dp_10"
|
||||||
|
android:bottomRightRadius="@dimen/dp_10"
|
||||||
|
/>
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
</selector>
|
</selector>
|
@ -2,8 +2,10 @@
|
|||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item>
|
<item>
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
<gradient android:endColor="@color/transparent" android:startColor="#FFE6CE" android:type="linear" />
|
<gradient android:endColor="#7AD9D4" android:startColor="#BDFFFB" android:type="linear" />
|
||||||
<corners android:radius="@dimen/dp_6" />
|
<corners android:topLeftRadius="@dimen/dp_10"
|
||||||
|
android:bottomRightRadius="@dimen/dp_10"
|
||||||
|
/>
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
</selector>
|
</selector>
|
@ -2,8 +2,10 @@
|
|||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item>
|
<item>
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
<gradient android:endColor="@color/transparent" android:startColor="#D6E5F9" android:type="linear" />
|
<gradient android:endColor="#975DFF" android:startColor="#DBC7FF" android:type="linear" />
|
||||||
<corners android:radius="@dimen/dp_6" />
|
<corners android:topLeftRadius="@dimen/dp_10"
|
||||||
|
android:bottomRightRadius="@dimen/dp_10"
|
||||||
|
/>
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
</selector>
|
</selector>
|
@ -2,8 +2,10 @@
|
|||||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<item>
|
<item>
|
||||||
<shape android:shape="rectangle">
|
<shape android:shape="rectangle">
|
||||||
<gradient android:endColor="@color/transparent" android:startColor="#FFD8F5" android:type="linear" />
|
<gradient android:endColor="#A87A46" android:startColor="#FBF2C7" android:type="linear" />
|
||||||
<corners android:radius="@dimen/dp_6" />
|
<corners android:topLeftRadius="@dimen/dp_10"
|
||||||
|
android:bottomRightRadius="@dimen/dp_10"
|
||||||
|
/>
|
||||||
</shape>
|
</shape>
|
||||||
</item>
|
</item>
|
||||||
</selector>
|
</selector>
|
9
app/src/main/res/drawable/bg_store_vip_text_1.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:endColor="@color/transparent" android:startColor="#D6E5F9" android:type="linear" />
|
||||||
|
<corners android:radius="@dimen/dp_10" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
9
app/src/main/res/drawable/bg_store_vip_text_2.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:endColor="@color/transparent" android:startColor="#B2E7EA" android:type="linear" />
|
||||||
|
<corners android:radius="@dimen/dp_10" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
9
app/src/main/res/drawable/bg_store_vip_text_3.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:endColor="@color/transparent" android:startColor="#CABCFF" android:type="linear" />
|
||||||
|
<corners android:radius="@dimen/dp_10" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
9
app/src/main/res/drawable/bg_store_vip_text_4.xml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<shape android:shape="rectangle">
|
||||||
|
<gradient android:endColor="@color/transparent" android:startColor="#FFE6CE" android:type="linear" />
|
||||||
|
<corners android:radius="@dimen/dp_10" />
|
||||||
|
</shape>
|
||||||
|
</item>
|
||||||
|
</selector>
|
5
app/src/main/res/drawable/bg_upload_version.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<solid android:color="#A3F0DE" />
|
||||||
|
<corners android:radius="@dimen/dp_15"/>
|
||||||
|
</shape>
|
@ -57,13 +57,23 @@
|
|||||||
tools:text="1" />
|
tools:text="1" />
|
||||||
|
|
||||||
|
|
||||||
<WebView
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
android:id="@+id/web_feedback"
|
android:id="@+id/stateLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/iv_back" />
|
app:layout_constraintTop_toBottomOf="@+id/iv_back"
|
||||||
|
>
|
||||||
|
<WebView
|
||||||
|
android:id="@+id/web_feedback"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
/>
|
||||||
|
|
||||||
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -39,11 +39,18 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@+id/iv_back"
|
app:layout_constraintTop_toBottomOf="@+id/iv_back"
|
||||||
app:srlEnablePreviewInEditMode="false">
|
app:srlEnablePreviewInEditMode="false">
|
||||||
|
|
||||||
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
|
android:id="@+id/stateLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<WebView
|
<WebView
|
||||||
android:id="@+id/web_feedback_detail"
|
android:id="@+id/web_feedback_detail"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
|
||||||
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
|
|
||||||
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -39,10 +39,18 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@+id/iv_back"
|
app:layout_constraintTop_toBottomOf="@+id/iv_back"
|
||||||
app:srlEnablePreviewInEditMode="false">
|
app:srlEnablePreviewInEditMode="false">
|
||||||
|
|
||||||
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
|
android:id="@+id/stateLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
>
|
||||||
|
|
||||||
<WebView
|
<WebView
|
||||||
android:id="@+id/web_feedback_list"
|
android:id="@+id/web_feedback_list"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent" />
|
android:layout_height="match_parent" />
|
||||||
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
|
|
||||||
|
|
||||||
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
||||||
|
|
||||||
|
@ -29,15 +29,21 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@+id/iv_back" />
|
app:layout_constraintTop_toTopOf="@+id/iv_back" />
|
||||||
|
|
||||||
<com.scwang.smart.refresh.layout.SmartRefreshLayout
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
android:id="@+id/refresh"
|
android:id="@+id/stateLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="0dp"
|
||||||
android:layout_marginBottom="@dimen/dp_10"
|
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/iv_back">
|
app:layout_constraintTop_toBottomOf="@+id/iv_back">
|
||||||
|
|
||||||
|
<com.scwang.smart.refresh.layout.SmartRefreshLayout
|
||||||
|
android:id="@+id/refresh"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
android:layout_marginBottom="@dimen/dp_10"
|
||||||
|
>
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
android:id="@+id/scrollView"
|
android:id="@+id/scrollView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -63,7 +69,7 @@
|
|||||||
android:id="@+id/tv_total_text"
|
android:id="@+id/tv_total_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
android:layout_marginStart="@dimen/dp_10"
|
||||||
android:layout_marginTop="@dimen/dp_5"
|
android:layout_marginTop="@dimen/dp_5"
|
||||||
android:text="Total Coins"
|
android:text="Total Coins"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
@ -75,7 +81,7 @@
|
|||||||
android:id="@+id/tv_total"
|
android:id="@+id/tv_total"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
android:layout_marginStart="@dimen/dp_10"
|
||||||
android:layout_marginTop="@dimen/dp_8"
|
android:layout_marginTop="@dimen/dp_8"
|
||||||
android:drawableStart="@mipmap/iv_coins"
|
android:drawableStart="@mipmap/iv_coins"
|
||||||
android:drawablePadding="@dimen/dp_5"
|
android:drawablePadding="@dimen/dp_5"
|
||||||
@ -100,7 +106,7 @@
|
|||||||
android:id="@+id/tv_recharge_text"
|
android:id="@+id/tv_recharge_text"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
android:layout_marginStart="@dimen/dp_10"
|
||||||
android:layout_marginTop="@dimen/dp_18"
|
android:layout_marginTop="@dimen/dp_18"
|
||||||
android:text="Recharge"
|
android:text="Recharge"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
@ -112,7 +118,7 @@
|
|||||||
android:id="@+id/tv_recharge"
|
android:id="@+id/tv_recharge"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
android:layout_marginStart="@dimen/dp_10"
|
||||||
android:layout_marginTop="@dimen/dp_5"
|
android:layout_marginTop="@dimen/dp_5"
|
||||||
android:layout_marginBottom="@dimen/dp_5"
|
android:layout_marginBottom="@dimen/dp_5"
|
||||||
android:text="0"
|
android:text="0"
|
||||||
@ -205,4 +211,7 @@
|
|||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
||||||
|
|
||||||
|
|
||||||
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -5,286 +5,115 @@
|
|||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@mipmap/playfair_selected_gradle">
|
android:background="@mipmap/playfair_selected_gradle">
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/iv_back"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_35"
|
||||||
|
android:padding="@dimen/dp_15"
|
||||||
|
android:src="@mipmap/right_dimens" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignTop="@+id/iv_back"
|
||||||
|
android:layout_alignBottom="@+id/iv_back"
|
||||||
|
android:layout_centerHorizontal="true"
|
||||||
|
android:gravity="center"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:text="Store"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_16" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_restore"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignTop="@+id/iv_back"
|
||||||
|
android:layout_alignBottom="@+id/iv_back"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginEnd="@dimen/dp_15"
|
||||||
|
android:gravity="center"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:text="Restore"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_14" />
|
||||||
|
|
||||||
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
|
android:id="@+id/stateLayout"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
>
|
android:layout_below="@+id/iv_back">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.core.widget.NestedScrollView
|
||||||
|
android:id="@+id/scrollView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:scaleType="centerCrop"
|
|
||||||
android:src="@mipmap/iv_store_top"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_title_1"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="@dimen/dp_160"
|
|
||||||
android:text="Limited Time Offer"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/sp_16"
|
|
||||||
android:textStyle="bold"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_title_2"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
|
||||||
android:text="Recharge & Unlock More"
|
|
||||||
android:textColor="#CC05CEA0"
|
|
||||||
android:textSize="@dimen/sp_22"
|
|
||||||
android:textStyle="bold"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_title_1" />
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_marginTop="@dimen/dp_20"
|
|
||||||
android:background="@drawable/bg_store_bottom"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_title_2">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.LinearLayoutCompat
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
android:id="@+id/ll_tab"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/dp_45"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_tab_1"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:layout_weight="1"
|
android:orientation="vertical">
|
||||||
android:background="@mipmap/iv_store_tab_left"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="VIP"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/sp_15"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/tv_tab_2"
|
android:id="@+id/recycler_vip"
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:layout_weight="1"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="Coins"
|
|
||||||
android:textColor="@color/utilsUtils"
|
|
||||||
android:textSize="@dimen/sp_15" />
|
|
||||||
|
|
||||||
|
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
|
||||||
|
|
||||||
<FrameLayout
|
|
||||||
android:id="@+id/fl_tab"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/ll_tab">
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:id="@+id/cl_one"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:paddingHorizontal="@dimen/dp_10"
|
|
||||||
android:paddingVertical="@dimen/dp_15"
|
|
||||||
android:visibility="gone">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_more_coin"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
|
||||||
android:drawableStart="@mipmap/start_text"
|
|
||||||
android:drawablePadding="@dimen/dp_5"
|
|
||||||
android:text="Get More Coins"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/sp_15"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_coin"
|
android:id="@+id/tv_coin_title"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginEnd="@dimen/dp_5"
|
android:layout_marginStart="@dimen/dp_15"
|
||||||
android:text="0"
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
android:textColor="@color/ve_be0069"
|
android:text="Top Up | Indefinitely use"
|
||||||
android:textSize="@dimen/sp_13"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_coin_text"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="@dimen/dp_5"
|
|
||||||
android:text="Your Coins:"
|
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/sp_13"
|
android:textSize="@dimen/sp_13"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/tv_coin"
|
app:layout_constraintBottom_toTopOf="@+id/recycler_coin_big"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/recycler_vip" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recycler_coin_big"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_10"
|
||||||
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tv_coin_title" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/recycler_coin"
|
android:id="@+id/recycler_coin"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/dp_12"
|
android:layout_marginHorizontal="@dimen/dp_10"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_more_coin" />
|
|
||||||
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
|
||||||
android:id="@+id/cl_two"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:paddingVertical="@dimen/dp_15"
|
|
||||||
android:visibility="visible">
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_vip_text"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
|
||||||
android:drawableStart="@mipmap/iv_store_vip"
|
|
||||||
android:drawablePadding="@dimen/dp_5"
|
|
||||||
android:paddingHorizontal="@dimen/dp_10"
|
|
||||||
android:text="Membership Benefits"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/sp_15"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_vip_content1"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginStart="@dimen/dp_15"
|
|
||||||
android:layout_marginEnd="@dimen/dp_5"
|
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
android:layout_marginBottom="@dimen/dp_12"
|
|
||||||
android:background="@mipmap/iv_store_benefits_bg"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:gravity="center"
|
|
||||||
android:lineSpacingExtra="@dimen/dp_2"
|
|
||||||
android:maxLines="3"
|
|
||||||
android:minLines="3"
|
|
||||||
android:paddingHorizontal="@dimen/dp_5"
|
|
||||||
android:paddingBottom="@dimen/dp_15"
|
|
||||||
android:text="Unlimited access to all series for 1 week (No Ads)"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/sp_12"
|
|
||||||
app:drawableTopCompat="@mipmap/vertical_selected"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/tv_vip_content2"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_vip_text" />
|
app:layout_constraintTop_toBottomOf="@+id/recycler_coin_big" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_vip_content2"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginHorizontal="@dimen/dp_5"
|
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
|
||||||
android:layout_marginBottom="@dimen/dp_12"
|
|
||||||
android:background="@mipmap/iv_store_benefits_bg"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:gravity="center"
|
|
||||||
android:lineSpacingExtra="@dimen/dp_2"
|
|
||||||
android:maxLines="3"
|
|
||||||
android:minLines="3"
|
|
||||||
android:paddingHorizontal="@dimen/dp_5"
|
|
||||||
android:paddingBottom="@dimen/dp_15"
|
|
||||||
android:text="The donate coins will expire in 8 days"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/sp_12"
|
|
||||||
app:drawableTopCompat="@mipmap/register___bbfdebaffd_coins"
|
|
||||||
app:layout_constraintEnd_toStartOf="@+id/tv_vip_content3"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/tv_vip_content1"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_vip_text" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_vip_content3"
|
|
||||||
android:layout_width="0dp"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_marginEnd="@dimen/dp_15"
|
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
|
||||||
android:layout_marginBottom="@dimen/dp_12"
|
|
||||||
android:background="@mipmap/iv_store_benefits_bg"
|
|
||||||
android:ellipsize="end"
|
|
||||||
android:gravity="center"
|
|
||||||
android:lineSpacingExtra="@dimen/dp_2"
|
|
||||||
android:maxLines="3"
|
|
||||||
android:minLines="3"
|
|
||||||
android:paddingHorizontal="@dimen/dp_5"
|
|
||||||
android:paddingBottom="@dimen/dp_15"
|
|
||||||
android:text="Auto renew, cancel anytime"
|
|
||||||
android:textColor="@color/white"
|
|
||||||
android:textSize="@dimen/sp_12"
|
|
||||||
app:drawableTopCompat="@mipmap/styles_system"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintStart_toEndOf="@+id/tv_vip_content2"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_vip_text" />
|
|
||||||
|
|
||||||
<com.youth.banner.Banner
|
|
||||||
android:id="@+id/banner_vip"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="@dimen/dp_135"
|
|
||||||
android:layout_marginTop="@dimen/dp_12"
|
|
||||||
app:banner_auto_loop="false"
|
|
||||||
app:banner_infinite_loop="false"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_vip_content1"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
</FrameLayout>
|
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_tips"
|
android:id="@+id/tv_tips"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="@dimen/dp_15"
|
android:layout_marginHorizontal="@dimen/dp_15"
|
||||||
android:paddingBottom="@dimen/dp_15"
|
android:layout_marginTop="@dimen/dp_12"
|
||||||
|
android:layout_marginBottom="@dimen/dp_15"
|
||||||
android:lineSpacingExtra="@dimen/dp_2"
|
android:lineSpacingExtra="@dimen/dp_2"
|
||||||
android:text="@string/ve_store_tips"
|
android:text="@string/ve_store_tips"
|
||||||
android:textColor="@color/white50"
|
android:textColor="@color/white50"
|
||||||
android:textSize="@dimen/sp_12"
|
android:textSize="@dimen/sp_12"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/fl_tab" />
|
app:layout_constraintTop_toBottomOf="@+id/recycler_coin" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
android:id="@+id/iv_back"
|
|
||||||
android:layout_width="@dimen/dp_35"
|
|
||||||
android:layout_height="@dimen/dp_35"
|
|
||||||
android:layout_marginStart="@dimen/dp_10"
|
|
||||||
android:layout_marginTop="@dimen/dp_40"
|
|
||||||
android:padding="@dimen/dp_10"
|
|
||||||
android:src="@mipmap/right_dimens"
|
|
||||||
/>
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
125
app/src/main/res/layout/dialog_version_control.xml
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent"
|
||||||
|
tools:background="@mipmap/playfair_selected_gradle">
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
android:background="@drawable/ppi_auto_renderers"
|
||||||
|
app:layout_constraintBottom_toBottomOf="@+id/cl_one"
|
||||||
|
app:layout_constraintEnd_toEndOf="@+id/cl_one"
|
||||||
|
app:layout_constraintStart_toStartOf="@+id/cl_one"
|
||||||
|
app:layout_constraintTop_toTopOf="@+id/cl_one" />
|
||||||
|
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/cl_one"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@mipmap/checkbox_layout"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/dp_10"
|
||||||
|
android:layout_marginTop="@dimen/dp_30"
|
||||||
|
android:src="@mipmap/iv_dialog_text_top"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_title"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/dp_23"
|
||||||
|
android:layout_marginTop="@dimen/dp_36"
|
||||||
|
android:layout_marginEnd="@dimen/dp_135"
|
||||||
|
android:fontFamily="sans-serif-medium"
|
||||||
|
android:lineSpacingExtra="@dimen/dp_2"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:text="Discover a new version"
|
||||||
|
android:textColor="@color/avatarAdvert"
|
||||||
|
android:textSize="@dimen/sp_20"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_version"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/dp_23"
|
||||||
|
android:layout_marginTop="@dimen/sp_12"
|
||||||
|
android:background="@drawable/bg_upload_version"
|
||||||
|
android:paddingHorizontal="@dimen/sp_8"
|
||||||
|
android:paddingVertical="@dimen/dp_3"
|
||||||
|
android:text="v2.0"
|
||||||
|
android:textColor="@color/black"
|
||||||
|
android:textSize="@dimen/sp_12"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tv_title" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_content"
|
||||||
|
android:layout_width="0dp"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_23"
|
||||||
|
android:layout_marginTop="@dimen/dp_12"
|
||||||
|
android:minLines="4"
|
||||||
|
android:text="when you sign out, your watch history will not be synced to your account."
|
||||||
|
android:textColor="@color/avatarAdvert"
|
||||||
|
android:textSize="@dimen/sp_15"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/tv_now"
|
||||||
|
app:layout_constraintLeft_toLeftOf="parent"
|
||||||
|
app:layout_constraintRight_toRightOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tv_version" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_now"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_48"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_30"
|
||||||
|
android:layout_marginTop="@dimen/dp_15"
|
||||||
|
android:layout_marginBottom="@dimen/dp_30"
|
||||||
|
android:background="@drawable/mc_player"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="Update Now"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_14"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@id/tv_content" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/iv_image"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="-45dp"
|
||||||
|
android:src="@mipmap/iv_version_control_top"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="@+id/cl_one" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/iv_close"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
|
android:padding="@dimen/dp_10"
|
||||||
|
android:src="@mipmap/factory_icon"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/cl_one" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -2,7 +2,7 @@
|
|||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:gravity="center_vertical">
|
>
|
||||||
|
|
||||||
|
|
||||||
<View
|
<View
|
||||||
@ -10,8 +10,8 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignTop="@+id/iv_top"
|
android:layout_alignTop="@+id/iv_top"
|
||||||
android:layout_alignBottom="@+id/iv_vip"
|
android:layout_alignBottom="@+id/v_line"
|
||||||
android:layout_marginTop="@dimen/dp_135"
|
android:layout_marginTop="@dimen/dp_75"
|
||||||
android:background="@mipmap/iv_dialog_vip_splash_bg" />
|
android:background="@mipmap/iv_dialog_vip_splash_bg" />
|
||||||
|
|
||||||
|
|
||||||
@ -20,22 +20,21 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
|
android:layout_marginTop="@dimen/dp_15"
|
||||||
android:background="@mipmap/iv_dialog_vip_splash_top" />
|
android:background="@mipmap/iv_dialog_vip_splash_top" />
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_title"
|
android:id="@+id/tv_title"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/iv_top"
|
android:layout_below="@+id/iv_top"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_marginHorizontal="@dimen/dp_20"
|
||||||
android:layout_marginStart="@dimen/dp_20"
|
|
||||||
android:layout_marginTop="@dimen/dp_30"
|
android:layout_marginTop="@dimen/dp_30"
|
||||||
android:layout_marginEnd="@dimen/dp_115"
|
|
||||||
android:fontFamily="sans-serif-medium"
|
android:fontFamily="sans-serif-medium"
|
||||||
android:lineSpacingExtra="@dimen/dp_2"
|
android:lineSpacingExtra="@dimen/dp_2"
|
||||||
android:singleLine="true"
|
|
||||||
android:textStyle="bold"
|
android:textStyle="bold"
|
||||||
|
android:gravity="center"
|
||||||
android:text="Unlock VIP Privileges!"
|
android:text="Unlock VIP Privileges!"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/sp_16" />
|
android:textSize="@dimen/sp_16" />
|
||||||
@ -54,37 +53,29 @@
|
|||||||
android:textColor="#C5C5C5"
|
android:textColor="#C5C5C5"
|
||||||
android:textSize="@dimen/sp_14" />
|
android:textSize="@dimen/sp_14" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/iv_vip"
|
android:id="@+id/recyclerView"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="@dimen/dp_240"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tv_content"
|
android:layout_below="@+id/tv_content"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:layout_marginHorizontal="@dimen/dp_20"
|
android:layout_marginHorizontal="@dimen/dp_20"
|
||||||
android:layout_marginTop="@dimen/dp_15"
|
android:layout_marginTop="@dimen/dp_15"
|
||||||
android:paddingBottom="@dimen/dp_22"
|
/>
|
||||||
android:src="@mipmap/iv_dialog_vip_splash_vip" />
|
|
||||||
|
<View
|
||||||
|
android:id="@+id/v_line"
|
||||||
|
android:layout_width="@dimen/dp_1"
|
||||||
|
android:layout_height="@dimen/dp_15"
|
||||||
|
android:layout_below="@+id/recyclerView"
|
||||||
|
/>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
|
||||||
android:id="@+id/tv_to_store"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="@dimen/dp_48"
|
|
||||||
android:layout_below="@+id/v_bg"
|
|
||||||
android:layout_marginHorizontal="@dimen/dp_30"
|
|
||||||
android:layout_marginTop="@dimen/dp_8"
|
|
||||||
android:layout_marginBottom="@dimen/dp_13"
|
|
||||||
android:background="@mipmap/iv_dialog_vip_splash_onclick_bg"
|
|
||||||
android:fontFamily="sans-serif-medium"
|
|
||||||
android:gravity="center"
|
|
||||||
android:text="Unlock VIP Benefits"
|
|
||||||
android:textColor="#005D48"
|
|
||||||
android:textSize="@dimen/sp_14" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/iv_close"
|
android:id="@+id/iv_close"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tv_to_store"
|
android:layout_below="@+id/v_line"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
android:padding="@dimen/dp_10"
|
android:padding="@dimen/dp_10"
|
||||||
android:src="@mipmap/factory_icon" />
|
android:src="@mipmap/factory_icon" />
|
||||||
|
@ -261,6 +261,9 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_10"
|
android:layout_marginStart="@dimen/dp_10"
|
||||||
|
android:ellipsize="end"
|
||||||
|
android:maxWidth="@dimen/dp_60"
|
||||||
|
android:maxLines="2"
|
||||||
android:text="Donate"
|
android:text="Donate"
|
||||||
android:textColor="@color/gradleLayout"
|
android:textColor="@color/gradleLayout"
|
||||||
android:textSize="@dimen/sp_14"
|
android:textSize="@dimen/sp_14"
|
||||||
@ -332,10 +335,10 @@
|
|||||||
android:id="@+id/tv_rewards"
|
android:id="@+id/tv_rewards"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginEnd="@dimen/dp_20"
|
||||||
android:drawableTop="@mipmap/bold_wight_fddebcdbeeffcebdf"
|
android:drawableTop="@mipmap/bold_wight_fddebcdbeeffcebdf"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:text="Rewards"
|
android:text="Rewards"
|
||||||
android:layout_marginEnd="@dimen/dp_20"
|
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/sp_12"
|
android:textSize="@dimen/sp_12"
|
||||||
app:layout_constraintEnd_toStartOf="@+id/tv_favorites"
|
app:layout_constraintEnd_toStartOf="@+id/tv_favorites"
|
||||||
@ -392,10 +395,10 @@
|
|||||||
android:drawablePadding="@dimen/dp_8"
|
android:drawablePadding="@dimen/dp_8"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:paddingHorizontal="@dimen/dp_10"
|
android:paddingHorizontal="@dimen/dp_10"
|
||||||
android:visibility="visible"
|
|
||||||
android:text="@string/dimensImage"
|
android:text="@string/dimensImage"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/sp_14" />
|
android:textSize="@dimen/sp_14"
|
||||||
|
android:visibility="visible" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_delete_account"
|
android:id="@+id/tv_delete_account"
|
||||||
|
@ -14,13 +14,13 @@
|
|||||||
android:src="@mipmap/right_dimens"
|
android:src="@mipmap/right_dimens"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
<ScrollView
|
|
||||||
android:orientation="vertical"
|
<ScrollView
|
||||||
android:layout_height="0dp"
|
android:layout_width="0dp"
|
||||||
android:visibility="invisible"
|
android:layout_height="0dp"
|
||||||
android:layout_width="0dp"
|
android:background="#58AE3A"
|
||||||
android:background="#58AE3A">
|
android:orientation="vertical"
|
||||||
</ScrollView>
|
android:visibility="invisible"></ScrollView>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_title"
|
android:id="@+id/tv_title"
|
||||||
@ -33,23 +33,32 @@ android:background="#58AE3A">
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="@+id/iv_back" />
|
app:layout_constraintTop_toTopOf="@+id/iv_back" />
|
||||||
<LinearLayout
|
|
||||||
android:layout_height="210dp"
|
<LinearLayout
|
||||||
android:padding="53dp"
|
android:layout_width="wrap_content"
|
||||||
android:visibility="gone"
|
android:layout_height="210dp"
|
||||||
android:background="#1AB1B1"
|
android:background="#1AB1B1"
|
||||||
android:layout_width="wrap_content"
|
android:orientation="vertical"
|
||||||
android:orientation="vertical">
|
android:padding="53dp"
|
||||||
</LinearLayout>
|
android:visibility="gone"></LinearLayout>
|
||||||
|
|
||||||
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
|
android:id="@+id/stateLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="0dp"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/iv_back">
|
||||||
|
|
||||||
<WebView
|
<WebView
|
||||||
android:id="@+id/webView"
|
android:id="@+id/webView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="0dp"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="@dimen/dp_5"
|
android:layout_marginTop="@dimen/dp_5"
|
||||||
android:background="@color/transparent"
|
android:background="@color/transparent"
|
||||||
app:layout_constraintBottom_toBottomOf="parent"
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/iv_back" />
|
app:layout_constraintTop_toBottomOf="@+id/iv_back" />
|
||||||
|
|
||||||
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -1,13 +1,11 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
|
||||||
android:id="@+id/ll_item"
|
android:id="@+id/ll_item"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/dp_108"
|
android:layout_height="@dimen/dp_108"
|
||||||
android:background="@drawable/bg_store_coin_bg"
|
android:background="@mipmap/bg_store_coin_bg"
|
||||||
android:orientation="vertical"
|
android:orientation="vertical">
|
||||||
tools:background="@color/black">
|
|
||||||
|
|
||||||
<com.hjq.shape.view.ShapeTextView
|
<com.hjq.shape.view.ShapeTextView
|
||||||
android:id="@+id/tv_hot"
|
android:id="@+id/tv_hot"
|
||||||
@ -37,18 +35,17 @@
|
|||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_coins"
|
android:id="@+id/tv_coins"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginTop="@dimen/dp_25"
|
android:layout_marginTop="@dimen/dp_25"
|
||||||
|
android:drawableEnd="@mipmap/start_text"
|
||||||
|
android:drawablePadding="@dimen/dp_3"
|
||||||
android:fontFamily="sans-serif-medium"
|
android:fontFamily="sans-serif-medium"
|
||||||
android:text="+500"
|
android:text="+500"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:drawableEnd="@mipmap/start_text"
|
|
||||||
android:drawablePadding="@dimen/dp_3"
|
|
||||||
android:textSize="@dimen/sp_16"
|
android:textSize="@dimen/sp_16"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@ -68,16 +65,17 @@
|
|||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_price"
|
android:id="@+id/tv_price"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
android:background="@drawable/bg_store_coin_money_bottom"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/dp_5"
|
||||||
android:text=""
|
android:text=""
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
android:textSize="@dimen/sp_12"
|
android:textSize="@dimen/sp_12"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_bonus" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/tv_select"
|
android:id="@+id/tv_select"
|
||||||
|
93
app/src/main/res/layout/item_ve_store_coin_big.xml
Normal file
@ -0,0 +1,93 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:id="@+id/ll_item"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_108"
|
||||||
|
android:background="@drawable/bg_store_coin_off"
|
||||||
|
android:orientation="vertical">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/tv_hot"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/dp_2"
|
||||||
|
android:layout_marginTop="@dimen/dp_2"
|
||||||
|
android:src="@mipmap/iv_store_vip_big_hot"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<com.hjq.shape.view.ShapeTextView
|
||||||
|
android:id="@+id/tv_corner"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@drawable/bg_coin_big_right"
|
||||||
|
android:paddingHorizontal="@dimen/dp_2"
|
||||||
|
android:paddingVertical="@dimen/dp_2"
|
||||||
|
android:text=""
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_10"
|
||||||
|
android:visibility="invisible"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_coins"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal"
|
||||||
|
android:layout_marginTop="@dimen/dp_25"
|
||||||
|
android:drawableEnd="@mipmap/start_text"
|
||||||
|
android:drawablePadding="@dimen/dp_3"
|
||||||
|
android:fontFamily="sans-serif-medium"
|
||||||
|
android:text="+500"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_16"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_bonus"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_5"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:textColor="#FFC779"
|
||||||
|
android:textSize="@dimen/sp_12"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tv_coins" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_price"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_1"
|
||||||
|
android:background="@drawable/bg_store_coin_money_bottom_big"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingVertical="@dimen/dp_5"
|
||||||
|
android:text=""
|
||||||
|
android:textColor="#683D00"
|
||||||
|
android:textSize="@dimen/sp_12"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tv_bonus" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/tv_select"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
|
android:background="@drawable/bg_coin_left_big"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingHorizontal="@dimen/dp_5"
|
||||||
|
android:src="@mipmap/iv_yes"
|
||||||
|
android:visibility="gone"
|
||||||
|
app:layout_constraintBottom_toBottomOf="parent"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent" />
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
@ -1,57 +1,95 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent"
|
|
||||||
android:id="@+id/rl_layout"
|
android:id="@+id/rl_layout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_135"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_15"
|
||||||
|
android:layout_marginBottom="@dimen/dp_10"
|
||||||
android:background="@mipmap/iv_store_vip_bg_1">
|
android:background="@mipmap/iv_store_vip_bg_1">
|
||||||
|
|
||||||
<TextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_day"
|
android:id="@+id/tv_day"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginStart="@dimen/dp_14"
|
android:layout_marginStart="@dimen/dp_14"
|
||||||
android:layout_marginTop="@dimen/dp_32"
|
android:layout_marginTop="@dimen/dp_18"
|
||||||
android:gravity="center_horizontal"
|
android:gravity="center_horizontal"
|
||||||
android:text="Weekly VIP"
|
android:text="Weekly VIP"
|
||||||
android:textColor="#64A3A7"
|
android:textColor="#647DA7"
|
||||||
android:textSize="@dimen/sp_16"
|
android:textSize="@dimen/sp_12" />
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<TextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_money"
|
android:id="@+id/tv_money"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tv_day"
|
android:layout_below="@+id/tv_day"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginStart="@dimen/dp_14"
|
android:layout_marginStart="@dimen/dp_14"
|
||||||
android:layout_marginTop="@dimen/dp_5"
|
|
||||||
android:text="0"
|
android:text="0"
|
||||||
android:textColor="#64A3A7"
|
android:textColor="#647DA7"
|
||||||
android:textSize="@dimen/sp_22"
|
android:textSize="@dimen/sp_32"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
|
|
||||||
<TextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_money_day"
|
android:id="@+id/tv_money_day"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignBottom="@+id/tv_money"
|
android:layout_alignBottom="@+id/tv_money"
|
||||||
android:layout_gravity="center_horizontal"
|
android:layout_gravity="center_horizontal"
|
||||||
android:layout_marginBottom="@dimen/dp_3"
|
android:layout_marginBottom="@dimen/dp_6"
|
||||||
android:layout_toEndOf="@+id/tv_money"
|
android:layout_toEndOf="@+id/tv_money"
|
||||||
android:text="/Week"
|
android:text="/Week"
|
||||||
android:textColor="#64A3A7"
|
android:textColor="#647DA7"
|
||||||
android:textSize="@dimen/sp_14" />
|
android:textSize="@dimen/sp_16" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_description"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/tv_money"
|
||||||
|
android:layout_marginStart="@dimen/dp_14"
|
||||||
|
android:background="@drawable/bg_store_vip_text_1"
|
||||||
|
android:paddingHorizontal="@dimen/dp_7"
|
||||||
|
android:paddingVertical="@dimen/dp_3"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:text="Unlimited access to all series for 1 week"
|
||||||
|
android:textColor="#303962"
|
||||||
|
android:textSize="@dimen/sp_10" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_info"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/tv_description"
|
||||||
|
android:layout_marginStart="@dimen/dp_14"
|
||||||
|
android:layout_marginTop="@dimen/dp_2"
|
||||||
|
android:layout_toStartOf="@+id/tv_extra"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:text="Auto renew, cancel anytime"
|
||||||
|
android:textColor="#8790B7"
|
||||||
|
android:textSize="@dimen/sp_10" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_expire"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/tv_info"
|
||||||
|
android:layout_marginStart="@dimen/dp_14"
|
||||||
|
android:layout_marginTop="@dimen/dp_2"
|
||||||
|
android:layout_toStartOf="@+id/tv_extra"
|
||||||
|
android:singleLine="true"
|
||||||
|
android:text="The donate coins will expire in 8 days"
|
||||||
|
android:textColor="#8790B7"
|
||||||
|
android:textSize="@dimen/sp_10" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_extra"
|
android:id="@+id/tv_extra"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tv_money_day"
|
android:layout_alignParentEnd="true"
|
||||||
android:layout_marginStart="@dimen/dp_15"
|
android:layout_alignParentBottom="true"
|
||||||
android:layout_marginTop="@dimen/dp_8"
|
|
||||||
android:layout_marginBottom="@dimen/dp_10"
|
|
||||||
android:background="@drawable/bg_store_vip_1"
|
android:background="@drawable/bg_store_vip_1"
|
||||||
android:drawableEnd="@mipmap/start_text"
|
android:drawableEnd="@mipmap/start_text"
|
||||||
android:drawablePadding="@dimen/dp_5"
|
android:drawablePadding="@dimen/dp_5"
|
||||||
@ -59,14 +97,14 @@
|
|||||||
android:paddingHorizontal="@dimen/dp_10"
|
android:paddingHorizontal="@dimen/dp_10"
|
||||||
android:paddingVertical="@dimen/dp_3"
|
android:paddingVertical="@dimen/dp_3"
|
||||||
android:text="+Extra 500"
|
android:text="+Extra 500"
|
||||||
android:textColor="#416767"
|
android:textColor="#214170"
|
||||||
android:textSize="@dimen/sp_12" />
|
android:textSize="@dimen/sp_12" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/tv_select"
|
android:id="@+id/tv_select"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginTop="@dimen/dp_17"
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
android:background="@drawable/bg_coin_left"
|
android:background="@drawable/bg_coin_left"
|
||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:paddingHorizontal="@dimen/dp_8"
|
android:paddingHorizontal="@dimen/dp_8"
|
||||||
|
66
app/src/main/res/layout/item_ve_vip_splash.xml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_55"
|
||||||
|
android:layout_marginBottom="@dimen/dp_10"
|
||||||
|
android:background="@mipmap/iv_dialog_vip_splash_vip_1">
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_money"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/dp_16"
|
||||||
|
android:text="0"
|
||||||
|
android:textColor="#416767"
|
||||||
|
android:textSize="@dimen/sp_22"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_money_day"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_8"
|
||||||
|
android:layout_toEndOf="@+id/tv_money"
|
||||||
|
android:text="/month"
|
||||||
|
android:textColor="#416767"
|
||||||
|
android:textSize="@dimen/sp_12" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_extra"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_below="@+id/tv_money"
|
||||||
|
android:layout_marginStart="@dimen/dp_16"
|
||||||
|
android:drawableEnd="@mipmap/iv_coins_small"
|
||||||
|
android:paddingVertical="@dimen/dp_3"
|
||||||
|
android:paddingHorizontal="@dimen/dp_6"
|
||||||
|
android:background="@drawable/bg_store_vip_text_1"
|
||||||
|
android:drawablePadding="@dimen/dp_5"
|
||||||
|
android:text="+Extra 0"
|
||||||
|
android:textColor="#416767"
|
||||||
|
android:textSize="@dimen/sp_10" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/tv_hot"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginTop="@dimen/dp_4"
|
||||||
|
android:visibility="gone"
|
||||||
|
android:layout_marginEnd="@dimen/dp_4"
|
||||||
|
android:background="@mipmap/iv_store_vip_big_hot" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/tv_select"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_alignParentBottom="true"
|
||||||
|
android:background="@drawable/bg_coin_left"
|
||||||
|
android:gravity="center"
|
||||||
|
android:paddingHorizontal="@dimen/dp_5"
|
||||||
|
android:src="@mipmap/iv_yes"
|
||||||
|
android:visibility="invisible" />
|
||||||
|
|
||||||
|
|
||||||
|
</RelativeLayout>
|
@ -1,6 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<com.veloria.now.shortapp.rewards.VSNotificationsDefault xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:id="@+id/stateLayout"
|
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@mipmap/playfair_selected_gradle">
|
android:background="@mipmap/playfair_selected_gradle">
|
||||||
@ -9,12 +8,17 @@
|
|||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
||||||
|
android:id="@+id/stateLayout"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<androidx.viewpager2.widget.ViewPager2
|
<androidx.viewpager2.widget.ViewPager2
|
||||||
android:id="@+id/viewPager_detail"
|
android:id="@+id/viewPager_detail"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:orientation="vertical" />
|
android:orientation="vertical" />
|
||||||
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:id="@+id/iv_cover"
|
android:id="@+id/iv_cover"
|
||||||
@ -25,16 +29,24 @@
|
|||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/layout_lock"
|
android:id="@+id/layout_lock"
|
||||||
layout="@layout/layout_ve_lock_episode"
|
layout="@layout/layout_ve_lock_episode" />
|
||||||
/>
|
|
||||||
|
|
||||||
<include
|
<include
|
||||||
android:id="@+id/layout_recommend"
|
android:id="@+id/layout_recommend"
|
||||||
layout="@layout/layout_player_recommend"
|
layout="@layout/layout_player_recommend" />
|
||||||
/>
|
|
||||||
|
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
|
android:id="@+id/iv_back"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/dp_35"
|
||||||
|
android:padding="@dimen/dp_15"
|
||||||
|
android:src="@mipmap/right_dimens"
|
||||||
|
android:visibility="gone"
|
||||||
|
/>
|
||||||
|
|
||||||
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
|
||||||
|
</FrameLayout>
|
@ -1,20 +1,28 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android"
|
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:background="@mipmap/strings_layout">
|
android:background="@mipmap/strings_layout">
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.appcompat.widget.AppCompatImageView
|
||||||
android:layout_width="match_parent"
|
android:id="@+id/iv_close_dialog"
|
||||||
android:layout_height="match_parent">
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginTop="@dimen/dp_12"
|
||||||
|
android:layout_marginEnd="@dimen/dp_15"
|
||||||
|
android:padding="10dp"
|
||||||
|
android:src="@mipmap/banner_bean"
|
||||||
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/tv_coins_text"
|
android:id="@+id/tv_coins_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_15"
|
android:layout_marginStart="@dimen/dp_15"
|
||||||
android:layout_marginTop="@dimen/dp_42"
|
android:layout_marginTop="@dimen/dp_20"
|
||||||
android:text="@string/your_coins"
|
android:text="@string/your_coins"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
@ -24,63 +32,96 @@
|
|||||||
android:id="@+id/tv_coins"
|
android:id="@+id/tv_coins"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_alignTop="@+id/tv_coins_text"
|
||||||
android:layout_marginStart="@dimen/dp_5"
|
android:layout_marginStart="@dimen/dp_5"
|
||||||
|
android:layout_toRightOf="@+id/tv_coins_text"
|
||||||
android:drawablePadding="@dimen/dp_2"
|
android:drawablePadding="@dimen/dp_2"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:text=""
|
android:text=""
|
||||||
android:textColor="#05CEA0"
|
android:textColor="#05CEA0"
|
||||||
app:drawableEndCompat="@mipmap/start_text"
|
|
||||||
app:layout_constraintBottom_toBottomOf="@+id/tv_coins_text"
|
app:layout_constraintBottom_toBottomOf="@+id/tv_coins_text"
|
||||||
app:layout_constraintStart_toEndOf="@+id/tv_coins_text"
|
app:layout_constraintStart_toEndOf="@+id/tv_coins_text"
|
||||||
app:layout_constraintTop_toTopOf="@+id/tv_coins_text" />
|
app:layout_constraintTop_toTopOf="@+id/tv_coins_text" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:id="@+id/iv_close_dialog"
|
<androidx.appcompat.widget.LinearLayoutCompat
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="@dimen/dp_26"
|
||||||
|
android:layout_marginStart="@dimen/dp_15"
|
||||||
|
android:layout_marginTop="@dimen/dp_17"
|
||||||
|
android:layout_toRightOf="@+id/tv_coins"
|
||||||
|
android:background="@drawable/jru_categories_constants"
|
||||||
|
android:gravity="center"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:paddingHorizontal="@dimen/dp_12">
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/tv_unlock_text"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignParentEnd="true"
|
android:text="Unlock: "
|
||||||
android:layout_marginTop="@dimen/dp_15"
|
android:textColor="@color/white" />
|
||||||
android:layout_marginEnd="@dimen/dp_15"
|
|
||||||
android:padding="10dp"
|
|
||||||
android:src="@mipmap/banner_bean"
|
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
|
||||||
app:layout_constraintTop_toTopOf="parent" />
|
|
||||||
|
|
||||||
<com.youth.banner.Banner
|
<TextView
|
||||||
android:id="@+id/banner_vip"
|
android:id="@+id/tv_unlock"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:drawableEnd="@mipmap/iv_coins_small"
|
||||||
|
android:drawablePadding="@dimen/dp_3"
|
||||||
|
android:gravity="center"
|
||||||
|
android:text="0"
|
||||||
|
android:textColor="#05CEA0" />
|
||||||
|
|
||||||
|
|
||||||
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
|
|
||||||
|
<androidx.core.widget.NestedScrollView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="@dimen/dp_135"
|
android:layout_height="match_parent"
|
||||||
android:layout_marginTop="@dimen/dp_15"
|
android:layout_below="@+id/iv_close_dialog"
|
||||||
app:banner_auto_loop="false"
|
android:layout_marginTop="@dimen/dp_7">
|
||||||
app:banner_infinite_loop="false"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_coins_text"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
android:id="@+id/tv_buy_hint"
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recycler_vip"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="@dimen/dp_15"
|
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
|
||||||
android:background="@drawable/bg_player_buy_hint"
|
|
||||||
android:lineSpacingExtra="@dimen/dp_5"
|
|
||||||
android:paddingHorizontal="@dimen/dp_15"
|
|
||||||
android:paddingVertical="@dimen/dp_10"
|
|
||||||
android:text="@string/unlimited_access_to_all_series_for_1"
|
|
||||||
android:textColor="@color/white80"
|
|
||||||
android:textSize="@dimen/sp_12"
|
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/banner_vip" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
|
android:id="@+id/tv_coin_title"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="@dimen/dp_15"
|
||||||
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
|
android:text="Top Up | Indefinitely use"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:textSize="@dimen/sp_13"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/recycler_coin_big"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/recycler_vip" />
|
||||||
|
|
||||||
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
|
android:id="@+id/recycler_coin_big"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_10"
|
||||||
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
|
app:layout_constraintTop_toBottomOf="@+id/tv_coin_title" />
|
||||||
|
|
||||||
<androidx.recyclerview.widget.RecyclerView
|
<androidx.recyclerview.widget.RecyclerView
|
||||||
android:id="@+id/recycler_coin"
|
android:id="@+id/recycler_coin"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_15"
|
android:layout_marginHorizontal="@dimen/dp_10"
|
||||||
android:layout_marginTop="@dimen/dp_15"
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/tv_buy_hint" />
|
app:layout_constraintTop_toBottomOf="@+id/recycler_coin_big" />
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/tv_tips"
|
android:id="@+id/tv_tips"
|
||||||
@ -98,5 +139,7 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@+id/recycler_coin" />
|
app:layout_constraintTop_toBottomOf="@+id/recycler_coin" />
|
||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
</androidx.core.widget.NestedScrollView>
|
||||||
|
|
||||||
</androidx.core.widget.NestedScrollView>
|
|
||||||
|
</RelativeLayout>
|
@ -1,11 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<com.veloria.now.shortapp.rewards.VSNotificationsDefault xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
android:id="@+id/stateLayout"
|
||||||
android:background="@mipmap/playfair_selected_gradle">
|
android:background="@mipmap/playfair_selected_gradle">
|
||||||
|
|
||||||
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
|
android:id="@+id/cl_root"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatTextView
|
<androidx.appcompat.widget.AppCompatTextView
|
||||||
android:id="@+id/text_home"
|
android:id="@+id/text_home"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -84,11 +91,6 @@
|
|||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/fl_search">
|
app:layout_constraintTop_toBottomOf="@+id/fl_search">
|
||||||
|
|
||||||
<com.veloria.now.shortapp.rewards.VSNotificationsDefault
|
|
||||||
android:id="@+id/stateLayout"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent">
|
|
||||||
|
|
||||||
<androidx.core.widget.NestedScrollView
|
<androidx.core.widget.NestedScrollView
|
||||||
android:id="@+id/scrollView"
|
android:id="@+id/scrollView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
@ -365,7 +367,6 @@
|
|||||||
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</androidx.core.widget.NestedScrollView>
|
</androidx.core.widget.NestedScrollView>
|
||||||
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
|
||||||
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
</com.scwang.smart.refresh.layout.SmartRefreshLayout>
|
||||||
|
|
||||||
<androidx.constraintlayout.widget.ConstraintLayout
|
<androidx.constraintlayout.widget.ConstraintLayout
|
||||||
@ -411,5 +412,5 @@
|
|||||||
|
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
|
|
||||||
|
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
</com.veloria.now.shortapp.rewards.VSNotificationsDefault>
|
@ -46,6 +46,8 @@ android:orientation="vertical">
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_below="@+id/tvEmptyTitle"
|
android:layout_below="@+id/tvEmptyTitle"
|
||||||
android:layout_centerHorizontal="true"
|
android:layout_centerHorizontal="true"
|
||||||
|
android:layout_marginHorizontal="@dimen/dp_15"
|
||||||
|
android:gravity="center"
|
||||||
android:layout_marginBottom="@dimen/dp_30"
|
android:layout_marginBottom="@dimen/dp_30"
|
||||||
android:text="Start exploring and add something!"
|
android:text="Start exploring and add something!"
|
||||||
android:textColor="@color/white"
|
android:textColor="@color/white"
|
||||||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 24 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/bg_store_coin_bg.webp
Normal file
After Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 16 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/binge_banner.webp
Normal file
After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 22 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_coins_small.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 109 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_dialog_vip_activate_top.webp
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_dialog_vip_splash_bg.9.png
Normal file
After Width: | Height: | Size: 207 KiB |
Before Width: | Height: | Size: 166 KiB |
Before Width: | Height: | Size: 55 KiB |
After Width: | Height: | Size: 8.1 KiB |
Before Width: | Height: | Size: 545 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_dialog_vip_splash_top.webp
Normal file
After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 133 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_dialog_vip_splash_vip.webp
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_dialog_vip_splash_vip_1.png
Normal file
After Width: | Height: | Size: 87 KiB |
BIN
app/src/main/res/mipmap-xxhdpi/iv_dialog_vip_splash_vip_2.png
Normal file
After Width: | Height: | Size: 95 KiB |