veloria three 6.27 commit

This commit is contained in:
yuyl 2025-06-27 10:06:38 +08:00
parent e1dd2d7497
commit 3ef9afca66
15 changed files with 230 additions and 113 deletions

View File

@ -17,8 +17,8 @@ android {
applicationId = "com.veloria.now.shortapp" applicationId = "com.veloria.now.shortapp"
minSdk = 24 minSdk = 24
targetSdk = 34 targetSdk = 34
versionCode = 8 versionCode = 9
versionName = "1.0.6" versionName = "1.0.7"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
} }

View File

@ -222,7 +222,7 @@ object RYAction {
var checkboxM: Int = 5689 var checkboxM: Int = 5689
hotsCategory_d2 = MMKV.defaultMMKV() hotsCategory_d2 = MMKV.mmkvWithID("veloria")
} }
return hotsCategory_d2!! return hotsCategory_d2!!
} }

View File

@ -326,7 +326,6 @@ class GColorsFragment : JItemServiceFragment<VpnInterceptorBinding, PWidthClient
isQualityRefresh = true isQualityRefresh = true
restoreRightKeyboardFirstProfileActivity()
} }
} }

View File

@ -230,7 +230,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
binding.tvAboutUs.text = TranslationHelper.getTranslation()?.veloria_me_about binding.tvAboutUs.text = TranslationHelper.getTranslation()?.veloria_me_about
binding.tvFavorites.text = TranslationHelper.getTranslation()?.veloria_favorites binding.tvFavorites.text = TranslationHelper.getTranslation()?.veloria_favorites
} }
viewModel.getUserInfo()
setPushUI() setPushUI()
setShowVipSlashDialog() setShowVipSlashDialog()
@ -429,6 +429,10 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 720) .putInt(JActivityAdapter.CONSTANTS_QUALITY, 720)
} }
EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH) EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH)
} else if (RYAction.isTouristTo()) {
RYAction.getMMKV()
.putInt(JActivityAdapter.CONSTANTS_QUALITY, 540)
EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH)
} }
} }
@ -448,10 +452,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
.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()
// .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() EventBus.getDefault()
@ -459,16 +460,31 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
} }
} }
viewModel.PaySettingsV3.observe(this) { viewModel.paySettingsV3Me.observe(this) {
if (it?.data != null) { if (it?.data != null) {
if (it.data.list_sub_vip.isNotEmpty()) { if (it.data.list_sub_vip.isNotEmpty()) {
setVipSlashDialog(it.data.list_sub_vip)
vipSplashDialog?.setAdapterSubmitList(it.data.list_sub_vip)
vipSplashDialog?.show()
isVipSplash = true
it.data.list_sub_vip.let { it1 -> querySubVipProductDetails(it1) } it.data.list_sub_vip.let { it1 -> querySubVipProductDetails(it1) }
} else {
if (billingClientMe != null) {
billingClientMe?.endConnection()
billingClientMe = null
System.gc()
}
}
} else {
if (billingClientMe != null) {
billingClientMe?.endConnection()
billingClientMe = null
System.gc()
} }
} }
} }
viewModel.createPayOrderData.observe(this) { viewModel.createPayOrderLiveData.observe(this) {
if (it?.data != null) { if (it?.data != null) {
order_code = it.data.order_code.toString() order_code = it.data.order_code.toString()
vipData?.android_template_id?.let { it1 -> getProduct(it1) } vipData?.android_template_id?.let { it1 -> getProduct(it1) }
@ -481,7 +497,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
hideLoading() hideLoading()
} }
} }
viewModel.googlePaidData.observe(this) { viewModel.googlePaidLiveData.observe(this) {
if (it?.data != null) { if (it?.data != null) {
if (TranslationHelper.getTranslation() != null) { if (TranslationHelper.getTranslation() != null) {
toast(TranslationHelper.getTranslation()?.veloria_google_pay_success.toString()) toast(TranslationHelper.getTranslation()?.veloria_google_pay_success.toString())
@ -841,8 +857,8 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
binding.root.postDelayed({ binding.root.postDelayed({
// if (!RYAction.isVipTo() && !isVipSplash) { // if (!RYAction.isVipTo() && !isVipSplash) {
if (setShowVIPSlash() && !RYAction.isVipTo() && !isVipSplash) { if (setShowVIPSlash() && !RYAction.isVipTo() && !isVipSplash) {
initPayData() setVipSlashDialog()
viewModel.getPaySettingsV3(0, 0)
} }
}, 1000) }, 1000)
} }
@ -856,11 +872,11 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
view?.visibility == View.VISIBLE view?.visibility == View.VISIBLE
} }
private fun setVipSlashDialog(vipBeans: List<VePaySettingsBean.VipBean>) { private fun setVipSlashDialog() {
if (!isFragmentVisible()) { if (!isFragmentVisible()) {
return return
} }
vipSplashDialog = VipSplashDialog(requireContext(), vipBeans).apply { vipSplashDialog = VipSplashDialog(requireContext()).apply {
setOnVipSplashOnClickListener(object : setOnVipSplashOnClickListener(object :
VipSplashDialog.SetVipSplashOnClick { VipSplashDialog.SetVipSplashOnClick {
override fun onVipSplash() { override fun onVipSplash() {
@ -883,7 +899,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
} }
vipData = vipBean vipData = vipBean
showLoading() showLoading()
viewModel.setCreatePayOrder( viewModel.setCreatePayOrderMe(
VeCreatePayOrderReqBean( VeCreatePayOrderReqBean(
vipData?.id.toString(), vipData?.id.toString(),
"google", "google",
@ -894,6 +910,10 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
} }
}) })
} }
initPayData()
viewModel.getPaySettingsV3Me(0, 0)
vipSplashDialog?.setOnDismissListener { vipSplashDialog?.setOnDismissListener {
RYAction.getMMKV().putLong( RYAction.getMMKV().putLong(
JActivityAdapter.ACCOUNT_DIALOG_TIME_VIP_SPLASH, JActivityAdapter.ACCOUNT_DIALOG_TIME_VIP_SPLASH,
@ -904,9 +924,8 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
billingClientMe = null billingClientMe = null
System.gc() System.gc()
} }
vipSplashDialog?.show()
vipSplashDialog?.setVipSplashOnClick vipSplashDialog?.setVipSplashOnClick
isVipSplash = true
} }
override fun onDestroy() { override fun onDestroy() {
@ -1021,7 +1040,7 @@ class UColorsAvatarFragment : JItemServiceFragment<EvBodyloadHomeBinding, OMNorm
payBeanReq = vePayBean payBeanReq = vePayBean
if (it.responseCode == BillingClient.BillingResponseCode.OK) { if (it.responseCode == BillingClient.BillingResponseCode.OK) {
lifecycleScope.launch { lifecycleScope.launch {
viewModel.setGooglePaid(vePayBean) viewModel.setGooglePaidMe(vePayBean)
} }
} else { } else {
RYAction.saveOrder(vePayBean) RYAction.saveOrder(vePayBean)

View File

@ -41,27 +41,27 @@ class OMNormalInstrumented : SStringsHelp() {
_logoutLiveData.value = result.getOrNull() _logoutLiveData.value = result.getOrNull()
} }
private val _paySettingsV3 = MutableLiveData<TStore<VePaySettingsBean>?>() private val _paySettingsV3Me = MutableLiveData<TStore<VePaySettingsBean>?>()
val PaySettingsV3: MutableLiveData<TStore<VePaySettingsBean>?> get() = _paySettingsV3 val paySettingsV3Me: MutableLiveData<TStore<VePaySettingsBean>?> get() = _paySettingsV3Me
fun getPaySettingsV3(short_play_id: Int, short_play_video_id: Int) = fun getPaySettingsV3Me(short_play_id: Int, short_play_video_id: Int) =
repository.getPaySettingsV3(short_play_id,short_play_video_id).observeForever { result -> repository.getPaySettingsV3(short_play_id,short_play_video_id).observeForever { result ->
_paySettingsV3.value = result.getOrNull() _paySettingsV3Me.value = result.getOrNull()
} }
private val createPayOrderLiveData = MutableLiveData<TStore<VeCreatePayOrderBean>?>() private val _createPayOrderLiveData = MutableLiveData<TStore<VeCreatePayOrderBean>?>()
val createPayOrderData: MutableLiveData<TStore<VeCreatePayOrderBean>?> get() = createPayOrderLiveData val createPayOrderLiveData: MutableLiveData<TStore<VeCreatePayOrderBean>?> get() = _createPayOrderLiveData
fun setCreatePayOrder(createOrderReq: VeCreatePayOrderReqBean) { fun setCreatePayOrderMe(createOrderReq: VeCreatePayOrderReqBean) {
repository.setCreatePayOrder(createOrderReq).observeForever { result -> repository.setCreatePayOrder(createOrderReq).observeForever { result ->
createPayOrderLiveData.value = result.getOrNull() _createPayOrderLiveData.value = result.getOrNull()
} }
} }
private val googlePaidLiveData = MutableLiveData<TStore<VePayResBean>?>() private val _googlePaidLiveData = MutableLiveData<TStore<VePayResBean>?>()
val googlePaidData: MutableLiveData<TStore<VePayResBean>?> get() = googlePaidLiveData val googlePaidLiveData: MutableLiveData<TStore<VePayResBean>?> get() = _googlePaidLiveData
fun setGooglePaid(vePayBean: VePayBean?) { fun setGooglePaidMe(vePayBean: VePayBean?) {
repository.setGooglePaid(vePayBean).observeForever { result -> repository.setGooglePaid(vePayBean).observeForever { result ->
googlePaidLiveData.value = result.getOrNull() _googlePaidLiveData.value = result.getOrNull()
} }
} }

View File

@ -9,6 +9,7 @@ import android.os.Bundle
import android.text.Html import android.text.Html
import android.view.Gravity import android.view.Gravity
import android.view.View import android.view.View
import android.view.ViewGroup
import android.view.WindowManager import android.view.WindowManager
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
@ -93,6 +94,8 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
promise_view_ad = parcelable?.promise_view_ad promise_view_ad = parcelable?.promise_view_ad
if (TranslationHelper.getTranslation() != null) { if (TranslationHelper.getTranslation() != null) {
binding?.tvVipTitle?.text =
"VIP | ".plus(TranslationHelper.getTranslation()?.veloria_store_auto_renew)
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?.tvCoinTitle?.text = TranslationHelper.getTranslation()?.veloria_coin_buy_title
binding?.tvUnlockText?.text = TranslationHelper.getTranslation()?.veloria_unlock binding?.tvUnlockText?.text = TranslationHelper.getTranslation()?.veloria_unlock
@ -211,7 +214,10 @@ 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 = (requireActivity().resources.displayMetrics.heightPixels - requireActivity().resources.getDimension(R.dimen.dp_90)).toInt() layoutParams?.height =
(requireActivity().resources.displayMetrics.heightPixels - requireActivity().resources.getDimension(
R.dimen.dp_90
)).toInt()
window?.attributes = layoutParams window?.attributes = layoutParams
return dialog return dialog
} }
@ -266,6 +272,12 @@ class PlayerBuyDialogFragment : BottomSheetDialogFragment() {
fun observeData() { fun observeData() {
viewModel.PaySettingsV3.observe(this) { viewModel.PaySettingsV3.observe(this) {
if (it?.data != null) { if (it?.data != null) {
if (it.data.sort.isNotEmpty() && it.data.sort[0] == "list_coins") {
val parent = binding?.llCoins?.parent as? ViewGroup
parent?.removeView(binding?.llCoins)
binding?.llList?.addView(binding?.llCoins, 0)
}
if (it.data.list_sub_vip.isNotEmpty()) { if (it.data.list_sub_vip.isNotEmpty()) {
vipAdapter?.submitList(it.data.list_sub_vip) vipAdapter?.submitList(it.data.list_sub_vip)
binding?.recyclerVip?.visibility = View.VISIBLE binding?.recyclerVip?.visibility = View.VISIBLE

View File

@ -22,7 +22,7 @@ import com.veloria.now.shortapp.subtractionCroll.modificationsPretch.VeVipSplash
import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean import com.veloria.now.shortapp.texturedAsink.VePaySettingsBean
@SuppressLint("MissingInflatedId") @SuppressLint("MissingInflatedId")
class VipSplashDialog(context: Context,vipBeans: List<VePaySettingsBean.VipBean>) : Dialog(context) { class VipSplashDialog(context: Context) : Dialog(context) {
var setVipSplashOnClick: SetVipSplashOnClick? = null var setVipSplashOnClick: SetVipSplashOnClick? = null
private var vipAdapter: VeVipSplashAdapter? = null private var vipAdapter: VeVipSplashAdapter? = null
@ -62,8 +62,6 @@ class VipSplashDialog(context: Context,vipBeans: List<VePaySettingsBean.VipBean>
recyclerView.layoutManager = LinearLayoutManager(context) recyclerView.layoutManager = LinearLayoutManager(context)
vipAdapter = VeVipSplashAdapter() vipAdapter = VeVipSplashAdapter()
recyclerView.adapter = vipAdapter recyclerView.adapter = vipAdapter
vipAdapter?.submitList(vipBeans)
ivClose.setOnClickListener { ivClose.setOnClickListener {
singleOnClick { singleOnClick {

View File

@ -456,7 +456,7 @@ class MQVAutoWidthActivity :
} }
if (JActivityAdapter.VIDEO_PAY_REFRESH == event) { if (JActivityAdapter.VIDEO_PAY_REFRESH == event) {
needRestart = true needRestart = true
viewModel.getUserInfo() viewModel.getUserInfoTwo()
} }
if (JActivityAdapter.VIDEO_PAY_REFRESH_DISMISS == event) { if (JActivityAdapter.VIDEO_PAY_REFRESH_DISMISS == event) {
isBuyShowDialog = false isBuyShowDialog = false
@ -1959,6 +1959,35 @@ class MQVAutoWidthActivity :
} }
} }
} }
viewModel.userInfoTwo.observe(this) {
it?.data?.let {
RYAction.saveUserInfoBean(it)
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 =
"Balance: ".plus(RYAction.getUserInfoBean()?.coin_left_total.toString())
.plus(" Coins | ")
.plus(RYAction.getUserInfoBean()?.send_coin_left_total.toString())
.plus(" Bonus")
}
if (RYAction.isVipTo()) {
revolution = "1080"
RYAction.getMMKV().putInt(JActivityAdapter.CONSTANTS_QUALITY, 1080)
EventBus.getDefault().post(CONSTANTS_QUALITY_REFRESH)
}
detailRefresh()
}
}
}
viewModel.doBuyVideo.observe(this) { viewModel.doBuyVideo.observe(this) {
it?.data?.let { it?.data?.let {

View File

@ -950,8 +950,6 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
) )
needSave = true needSave = true
w2aSelfAttribution(clipContent) w2aSelfAttribution(clipContent)
RYAction.getMMKV()
.putString(JActivityAdapter.HOME_DDL_URL, "")
} }
} }
} }
@ -980,11 +978,11 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
JActivityAdapter.VIDEO_SHORT_PLAY_ID, toInt JActivityAdapter.VIDEO_SHORT_PLAY_ID, toInt
) )
}) })
RYAction.getMMKV().getString(JActivityAdapter.HOME_DDL_URL, "") RYAction.getMMKV().putString(JActivityAdapter.HOME_DDL_URL, "")
}, 200) }, 200)
} }
} else { } else {
RYAction.getMMKV().getString(JActivityAdapter.HOME_DDL_URL, "") RYAction.getMMKV().putString(JActivityAdapter.HOME_DDL_URL, "")
} }
} }
}, 1500) }, 1500)
@ -1083,9 +1081,7 @@ class PSVHomeSearchActivity : AIXTextActivity<JsDramaFragmentBinding, JService>(
// setDeeplinkFbApi(facebook_id) // setDeeplinkFbApi(facebook_id)
} }
} }
singleOnClick { data?.let { viewModel.setW2aSelfAttribution(it) }
data?.let { viewModel.setW2aSelfAttribution(it) }
}
} }
private fun getFirebaseMessaging() { private fun getFirebaseMessaging() {

View File

@ -4,6 +4,7 @@ import android.graphics.Rect
import android.os.Build import android.os.Build
import android.text.Html import android.text.Html
import android.view.View import android.view.View
import android.view.ViewGroup
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
@ -46,7 +47,7 @@ import kotlinx.coroutines.flow.flow
import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel>() , NOFfmpeg { class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel>(), NOFfmpeg {
val viewModel: VeStoreViewModel by viewModels() val viewModel: VeStoreViewModel by viewModels()
@ -74,6 +75,7 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
if (TranslationHelper.getTranslation() != null) { if (TranslationHelper.getTranslation() != null) {
binding.tvTitle.text = TranslationHelper.getTranslation()?.veloria_store binding.tvTitle.text = TranslationHelper.getTranslation()?.veloria_store
binding.tvVipTitle.text = "VIP | ".plus(TranslationHelper.getTranslation()?.veloria_store_auto_renew)
binding.tvCoinTitle.text = TranslationHelper.getTranslation()?.veloria_coin_buy_title binding.tvCoinTitle.text = TranslationHelper.getTranslation()?.veloria_coin_buy_title
binding.tvRestore.text = TranslationHelper.getTranslation()?.veloria_restore binding.tvRestore.text = TranslationHelper.getTranslation()?.veloria_restore
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
@ -183,7 +185,7 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
setOnPayNowClick() setOnPayNowClick()
} }
binding.tvRestore.setOnClickListener{ binding.tvRestore.setOnClickListener {
singleOnClick { singleOnClick {
if (RYAction.getOrder().isNotEmpty() if (RYAction.getOrder().isNotEmpty()
) { ) {
@ -202,9 +204,13 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
.collect {} .collect {}
} }
} else { } else {
if (TranslationHelper.getTranslation() != null){ if (TranslationHelper.getTranslation() != null) {
TranslationHelper.getTranslation()?.veloria_no_restore?.let { it1 -> toast(it1) } TranslationHelper.getTranslation()?.veloria_no_restore?.let { it1 ->
}else { toast(
it1
)
}
} else {
toast("No orders to restore") toast("No orders to restore")
} }
} }
@ -258,6 +264,11 @@ 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) {
if (it.data.sort.isNotEmpty() && it.data.sort[0] == "list_coins") {
val parent = binding.llCoins.parent as? ViewGroup
parent?.removeView(binding.llCoins)
binding.llList.addView(binding.llCoins, 0)
}
if (it.data.list_sub_vip.isNotEmpty()) { if (it.data.list_sub_vip.isNotEmpty()) {
vipAdapter?.submitList(it.data.list_sub_vip) vipAdapter?.submitList(it.data.list_sub_vip)
binding.recyclerVip.visibility = View.VISIBLE binding.recyclerVip.visibility = View.VISIBLE
@ -342,7 +353,7 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
} }
hideLoading() hideLoading()
} }
viewModel.restorePaidData.observe(this){ viewModel.restorePaidData.observe(this) {
if (it != null) { if (it != null) {
it.data?.order_code?.let { it1 -> RYAction.removeOrderString(it1) } it.data?.order_code?.let { it1 -> RYAction.removeOrderString(it1) }
if (RYAction.getOrder().size == 0) { if (RYAction.getOrder().size == 0) {
@ -354,7 +365,7 @@ class VeStoreActivity : AIXTextActivity<ActivityVeStoreBinding, VeStoreViewModel
viewModel.getUserInfo() viewModel.getUserInfo()
isBuy = true isBuy = true
} }
}else { } else {
if (TranslationHelper.getTranslation() != null) { if (TranslationHelper.getTranslation() != null) {
toast(TranslationHelper.getTranslation()?.veloria_network.toString()) toast(TranslationHelper.getTranslation()?.veloria_network.toString())
} else { } else {

View File

@ -102,6 +102,13 @@ private var moreSecond_sum: Int = 6970
_userInfo.value = result.getOrNull() _userInfo.value = result.getOrNull()
} }
private val _userInfoTwo = MutableLiveData<TStore<KFAFavoritesInterceptorBean>?>()
val userInfoTwo: MutableLiveData<TStore<KFAFavoritesInterceptorBean>?> get() = _userInfoTwo
fun getUserInfoTwo() =
repository.getUserInfo().observeForever { result ->
_userInfoTwo.value = result.getOrNull()
}
private val qualityLiveData = MutableLiveData<TStore<VeRevolutionsBean>?>() private val qualityLiveData = MutableLiveData<TStore<VeRevolutionsBean>?>()
val qualityData: MutableLiveData<TStore<VeRevolutionsBean>?> get() = qualityLiveData val qualityData: MutableLiveData<TStore<VeRevolutionsBean>?> get() = qualityLiveData
fun getQualityData() { fun getQualityData() {

View File

@ -1,6 +1,7 @@
package com.veloria.now.shortapp.texturedAsink package com.veloria.now.shortapp.texturedAsink
class VePaySettingsBean( class VePaySettingsBean(
val sort: List<String>,
val list_coins: List<CoinsBean>, val list_coins: List<CoinsBean>,
val list_vip: List<VipBean>, val list_vip: List<VipBean>,
val list_sub_vip: List<VipBean>, val list_sub_vip: List<VipBean>,

View File

@ -53,48 +53,69 @@
android:layout_height="match_parent"> android:layout_height="match_parent">
<androidx.appcompat.widget.LinearLayoutCompat <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/ll_list"
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">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_vip_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="VIP | Auto renew, cancel anytime"
android:textColor="@color/white"
android:textSize="@dimen/sp_13"
/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_vip" 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_marginTop="@dimen/dp_10"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> 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 <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/recycler_coin_big" android:id="@+id/ll_coins"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="match_parent"
android:layout_marginHorizontal="@dimen/dp_10" android:orientation="vertical">
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_coin_title" />
<androidx.recyclerview.widget.RecyclerView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/recycler_coin" android:id="@+id/tv_coin_title"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="@dimen/dp_10" android:layout_marginStart="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintStart_toStartOf="parent" android:text="Top Up | Indefinitely use"
app:layout_constraintTop_toBottomOf="@+id/recycler_coin_big" /> 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
android:id="@+id/recycler_coin"
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/recycler_coin_big" />
</androidx.appcompat.widget.LinearLayoutCompat>
<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"
@ -108,8 +129,6 @@
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/recycler_coin" /> app:layout_constraintTop_toBottomOf="@+id/recycler_coin" />
</androidx.appcompat.widget.LinearLayoutCompat> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

View File

@ -81,47 +81,72 @@
android:layout_below="@+id/iv_close_dialog" android:layout_below="@+id/iv_close_dialog"
android:layout_marginTop="@dimen/dp_7"> android:layout_marginTop="@dimen/dp_7">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/ll_list"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:orientation="vertical"
>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_vip_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="VIP | Auto renew, cancel anytime"
android:textColor="@color/white"
android:textSize="@dimen/sp_13"
/>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_vip" 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"
app:layout_constraintStart_toStartOf="parent"
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: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 <androidx.appcompat.widget.LinearLayoutCompat
android:id="@+id/recycler_coin_big" android:id="@+id/ll_coins"
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_10" android:orientation="vertical"
android:layout_marginTop="@dimen/dp_10"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/tv_coin_title" /> app:layout_constraintTop_toBottomOf="@+id/recycler_vip"
>
<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
android:id="@+id/recycler_coin"
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/recycler_coin_big" />
</androidx.appcompat.widget.LinearLayoutCompat>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_coin"
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/recycler_coin_big" />
<androidx.appcompat.widget.AppCompatTextView <androidx.appcompat.widget.AppCompatTextView
android:id="@+id/tv_tips" android:id="@+id/tv_tips"
@ -136,9 +161,9 @@
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
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/recycler_coin" /> app:layout_constraintTop_toBottomOf="@+id/ll_coins" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.appcompat.widget.LinearLayoutCompat>
</androidx.core.widget.NestedScrollView> </androidx.core.widget.NestedScrollView>

View File

@ -12,7 +12,7 @@
android:id="@+id/icon" android:id="@+id/icon"
android:layout_width="20dp" android:layout_width="20dp"
android:layout_height="20dp" android:layout_height="20dp"
android:layout_marginEnd="4dp" /> />
<ScrollView <ScrollView
android:visibility="gone" android:visibility="gone"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -27,6 +27,7 @@ android:background="#EF96BC">
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:ellipsize="end" android:ellipsize="end"
android:layout_marginStart="@dimen/dp_4"
android:fontFamily="sans-serif-medium" android:fontFamily="sans-serif-medium"
android:maxLines="1" android:maxLines="1"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_13" />