diff --git a/app/google-services.json b/app/google-services.json index 76733e9..e781eec 100644 --- a/app/google-services.json +++ b/app/google-services.json @@ -1,13 +1,13 @@ { "project_info": { - "project_number": "905575925094", - "project_id": "mireotv", - "storage_bucket": "mireotv.firebasestorage.app" + "project_number": "471869384808", + "project_id": "mireotv-a591b", + "storage_bucket": "mireotv-a591b.firebasestorage.app" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:905575925094:android:01c39ac6692cb6bda974a7", + "mobilesdk_app_id": "1:471869384808:android:4d94f4dabe74aa7d0333dd", "android_client_info": { "package_name": "com.localee.mireo.shortapp" } @@ -15,7 +15,7 @@ "oauth_client": [], "api_key": [ { - "current_key": "AIzaSyBAC_RDCSdtba_yMQ0oXjKTstaMe6WzHmc" + "current_key": "AIzaSyD3C1frcUVwdIGHbiWsuwlyJFRhi4huF8Y" } ], "services": { diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e2fa667..f644a2c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> @@ -23,8 +22,7 @@ android:theme="@style/Theme.Example" android:usesCleartextTraffic="true" tools:ignore="AllowBackup,LockedOrientationActivity" - tools:replace="android:allowBackup,android:supportsRtl" - > + tools:replace="android:allowBackup,android:supportsRtl"> + - - - - - - - - - + android:theme="@style/Theme.Splash"> - - - + + + - - + + @@ -175,8 +173,7 @@ + android:launchMode="singleTask" /> + restorePaid(item) + }.debounce(1000).collect {} + } + } + }, 3000) } override fun onNewIntent(intent: Intent?) { @@ -457,6 +481,26 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener, }) } + + + fun restorePaid(data: PayBean) { + EasyHttp.post(this) + .api(GooglePaidApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + it.order_code?.let { it1 -> MsMMKVUtils.removeOrderString(it1) } + } + } + + }) + } + + fun getActionPush() { val sMap: MutableMap = LinkedHashMap() // StringMap = getSortMap(StringMap); @@ -726,6 +770,7 @@ class HomeActivity : AppActivity(), NavigationAdapter.OnNavigationListener, ) needSave = true w2aSelfAttribution(clipContent) + MsMMKVUtils.getMMKV().putString(MsConstants.Constants_DDL_Url, "") } } } diff --git a/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt b/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt index 8431f03..a8b20ca 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/activity/MyVipActivity.kt @@ -138,7 +138,7 @@ class MyVipActivity : AppActivity() { } return@singleClick } - showDialog() +// showDialog() vipData = mAdapter!!.getItem(mAdapter!!.currentPosition) as PaySettingsBean.Vip getCreateOrder( CreateOrderReqBean( @@ -302,11 +302,10 @@ class MyVipActivity : AppActivity() { purchase.orderId.toString(), vipData?.price.toString() ) + payReq = examplePayReq if (it.responseCode == BillingClient.BillingResponseCode.OK) { lifecycleScope.launch { googlePaid(examplePayReq) - payReq = examplePayReq - MsMMKVUtils.saveOrder(examplePayReq) } } else { MsMMKVUtils.saveOrder(examplePayReq) @@ -431,8 +430,6 @@ class MyVipActivity : AppActivity() { .api(CreateOrderApi()) .body(getPublicRequest(data.toMapViaGson())) .request(object : HttpCallbackProxy>(this) { - override fun onHttpStart(api: IRequestApi) { - } override fun onHttpSuccess(result: HttpData) { result.getData()?.let { @@ -449,9 +446,6 @@ class MyVipActivity : AppActivity() { } - override fun onHttpFail(throwable: Throwable) { - super.onHttpFail(throwable) - } }) } @@ -476,6 +470,7 @@ class MyVipActivity : AppActivity() { getCustomerUser() } ?: run { + payReq?.let { it1 -> MsMMKVUtils.saveOrder(it1) } if (TranslatesUtils.translates() != null) { toast(TranslatesUtils.translates()?.mireo_network_error.toString()) } else { diff --git a/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt b/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt index 1a942b4..9ae6a44 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/activity/StoreActivity.kt @@ -171,7 +171,7 @@ class StoreActivity : AppActivity() { } } .onEach { item -> - googlePaid(item) + restorePaid(item) } .debounce(500) .collect {} @@ -214,7 +214,6 @@ class StoreActivity : AppActivity() { } return@singleClick } - showDialog() if (type == 0) { coinsData = mCoinAdapter!!.getItem(mCoinAdapter!!.currentPosition) as PaySettingsBean.Coins @@ -339,11 +338,10 @@ class StoreActivity : AppActivity() { purchase.orderId.toString(), vipData?.price.toString() ) + payReq = examplePayReq if (it.responseCode == BillingClient.BillingResponseCode.OK) { lifecycleScope.launch { googlePaid(examplePayReq) - payReq = examplePayReq - MsMMKVUtils.saveOrder(examplePayReq) } } else { MsMMKVUtils.saveOrder(examplePayReq) @@ -537,8 +535,6 @@ class StoreActivity : AppActivity() { .api(CreateOrderApi()) .body(getPublicRequest(data.toMapViaGson())) .request(object : HttpCallbackProxy>(this) { - override fun onHttpStart(api: IRequestApi) { - } override fun onHttpSuccess(result: HttpData) { result.getData()?.let { @@ -559,12 +555,6 @@ class StoreActivity : AppActivity() { } - override fun onHttpFail(throwable: Throwable) { - super.onHttpFail(throwable) - } - - override fun onHttpEnd(api: IRequestApi) { - } }) } @@ -583,16 +573,43 @@ class StoreActivity : AppActivity() { } else { toast(getString(R.string.google_pay_success)) } - if (null != payReq) { - MsMMKVUtils.removeOrder(payReq) - } - if (it.is_backhaul == 1) { -// LogEventUtils.logEvent( -// ExampleAppConstants.LogEvent_af_app_recharge, -// it.data.money.toDouble(), "USD", "", order_code -// ) - } getCustomerUser() + isBuy = true + } ?: run { + payReq?.let { it1 -> MsMMKVUtils.saveOrder(it1) } + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.mireo_network_error.toString()) + } else { + toast(getString(R.string.example_service_exception_please_try_again)) + } + hideDialog() + } + } + + }) + } + + + fun restorePaid(data: PayBean) { + EasyHttp.post(this) + .api(GooglePaidApi()) + .body(getPublicRequest(data.toMapViaGson())) + .request(object : HttpCallbackProxy>(this) { + override fun onHttpStart(api: IRequestApi) { + } + + override fun onHttpSuccess(result: HttpData) { + result.getData()?.let { + it.order_code?.let { it1 -> MsMMKVUtils.removeOrderString(it1) } + if (MsMMKVUtils.getOrder().size == 0) { + if (TranslatesUtils.translates() != null) { + toast(TranslatesUtils.translates()?.mireo_g_pay_success.toString()) + } else { + toast(getString(R.string.google_pay_success)) + } + getCustomerUser() + isBuy = true + } } ?: run { if (TranslatesUtils.translates() != null) { @@ -636,11 +653,10 @@ class StoreActivity : AppActivity() { purchaseData?.orderId.toString(), if (type == 0) coinsData?.price.toString() else vipData?.price.toString() ) + payReq = examplePayReq if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { lifecycleScope.launch { googlePaid(examplePayReq) - payReq = examplePayReq - MsMMKVUtils.saveOrder(examplePayReq) } } else { MsMMKVUtils.saveOrder(examplePayReq) diff --git a/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt b/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt index df8aa54..1d06dfb 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/activity/VideoPlayActivity.kt @@ -902,9 +902,9 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle revolution = "1080" MsMMKVUtils.getMMKV() .putInt(CONSTANTS_quality, 1080) - detailRefresh() EventBus.getDefault().post(CONSTANTS_quality_refresh) } + detailRefresh() } } } @@ -1009,6 +1009,10 @@ open class VideoPlayActivity : AppActivity(), VideoPlayAdapter.PlayerDetailColle setDetailsRecommendation(it) } ?: finish() } + + override fun onHttpFail(throwable: Throwable) { + finish() + } }) } diff --git a/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt b/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt index b131b0c..14c0324 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/adapter/MyVipBuyAdapter.kt @@ -33,6 +33,13 @@ class MyVipBuyAdapter : BaseQuickAdapter 0) { holder.binding.tvExtra.text = "+ ".plus(TranslatesUtils.translates()?.mireo_extra).plus(" ") diff --git a/app/src/main/java/com/localee/mireo/app/ui/dialog/DialogUtils.kt b/app/src/main/java/com/localee/mireo/app/ui/dialog/DialogUtils.kt index 30862db..c7409bd 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/dialog/DialogUtils.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/dialog/DialogUtils.kt @@ -3,6 +3,8 @@ package com.localee.mireo.app.ui.dialog import android.content.Context import android.content.Intent import android.graphics.Color +import android.os.Build +import android.text.Html import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView import com.hjq.shape.view.ShapeTextView @@ -171,4 +173,27 @@ object DialogUtils { activateVIPDialog.show() } + + fun showStoreHint(context: Context) { + val storeHintDialog = StoreHintDialog(context) + val tv_content = + storeHintDialog.findViewById(R.id.tv_content) + val iv_close = + storeHintDialog.findViewById(R.id.iv_close) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + tv_content?.text = Html.fromHtml( + TranslatesUtils.translates()?.mireo_pay_hint + ?: context.getString(R.string.store_tips), + Html.FROM_HTML_MODE_COMPACT + ) + } else { + tv_content?.text = Html.fromHtml( + TranslatesUtils.translates()?.mireo_pay_hint + ?: context.getString(R.string.store_tips) + ) + } + iv_close?.setOnClickListener { storeHintDialog.dismiss() } + storeHintDialog.show() + } + } \ No newline at end of file diff --git a/app/src/main/java/com/localee/mireo/app/ui/dialog/StoreHintDialog.kt b/app/src/main/java/com/localee/mireo/app/ui/dialog/StoreHintDialog.kt new file mode 100644 index 0000000..fe3bb89 --- /dev/null +++ b/app/src/main/java/com/localee/mireo/app/ui/dialog/StoreHintDialog.kt @@ -0,0 +1,32 @@ +package com.localee.mireo.app.ui.dialog + +import android.app.Dialog +import android.content.Context +import android.graphics.Color +import android.graphics.drawable.ColorDrawable +import android.view.Gravity +import android.view.Window +import android.view.WindowManager +import android.widget.TextView +import com.localee.mireo.shortapp.R + +class StoreHintDialog(context: Context) : Dialog(context) { + + init { + init() + } + + private fun init() { + requestWindowFeature(Window.FEATURE_NO_TITLE) + setContentView(R.layout.dialog_store_hint) + + window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) + window?.setLayout( + WindowManager.LayoutParams.WRAP_CONTENT, + WindowManager.LayoutParams.WRAP_CONTENT + ) + window?.setGravity(Gravity.CENTER) + setCancelable(true) + } + +} diff --git a/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt b/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt index 0e56bd6..347bc44 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/fragment/ExploreFragment.kt @@ -59,7 +59,7 @@ class ExploreFragment : TitleBarFragment(), private var exampleRecommendAdapter: ExampleRecommendAdapter? = null private var data: com.localee.mireo.app.http.api.ExampleRecommendDataRes.Data? = null private var revolution = - MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 0).toString() + MsMMKVUtils.getMMKV().getInt(MsConstants.CONSTANTS_quality, 540).toString() private val srRecommend: SmartRefreshLayout? by lazy { findViewById(R.id.sr_recommend) } @@ -85,10 +85,8 @@ class ExploreFragment : TitleBarFragment(), ) activity?.window?.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) -// exampleTvNoNetwork?.text = -// TranslatesUtils.translates()?.mireo_no_network tvExampleRetry?.text = TranslatesUtils.translates()?.mireo_retry -// exampleTvEmpty?.text = TranslatesUtils.translates()?.s_no_content + } override fun initData() { diff --git a/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt b/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt index 86d6b41..5f44c58 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/fragment/HomeFragment.kt @@ -27,6 +27,7 @@ import com.localee.mireo.app.http.api.UserInfoRes import com.localee.mireo.app.http.bean.RecommendBean import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.MsConstants +import com.localee.mireo.app.other.MsConstants.CONSTANTS_quality import com.localee.mireo.app.other.MsConstants.CONSTANTS_short_play_id import com.localee.mireo.app.ui.activity.HomeActivity import com.localee.mireo.app.ui.activity.SearchActivity @@ -473,7 +474,11 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan result.getData()?.let { MsMMKVUtils.saveUserInfo(it) - + var revolution = + MsMMKVUtils.getMMKV().getInt(CONSTANTS_quality, 540).toString() + if (revolution == "1080" && !MsMMKVUtils.isVip()) { + EventBus.getDefault().post(MsConstants.CONSTANTS_quality_refresh) + } } } }) @@ -539,7 +544,7 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan if (position == 0) { getHomeVideoListApi(0, pageIndex, 15) } else { - category?.get(position)?.id?.let { getHomeVideoListApi(it, 1, 15) } + category?.get(position - 1)?.id?.let { getHomeVideoListApi(it, 1, 15) } } return true } @@ -557,7 +562,7 @@ class HomeFragment : TitleBarFragment(), HomeBannerAdapter.HomeBan if (tabPosition == 0) { getHomeVideoListApi(0, pageIndex, 15) } else { - category?.get(tabPosition)?.id?.let { getHomeVideoListApi(it, pageIndex, 15) } + category?.get(tabPosition - 1)?.id?.let { getHomeVideoListApi(it, pageIndex, 15) } } } } diff --git a/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt b/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt index d3df1ce..8b27a7a 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/fragment/ListTabFragment.kt @@ -15,7 +15,6 @@ import com.hjq.http.EasyHttp import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy import com.hjq.shape.layout.ShapeLinearLayout -import com.localee.mireo.shortapp.R import com.localee.mireo.app.action.StatusAction import com.localee.mireo.app.app.TitleBarFragment import com.localee.mireo.app.http.api.MyCollectionsApi @@ -32,6 +31,7 @@ import com.localee.mireo.app.utils.TranslatesUtils import com.localee.mireo.app.utils.singleClick import com.localee.mireo.app.widget.StatusLayout import com.localee.mireo.app.widget.StatusLayout.OnRetryListener +import com.localee.mireo.shortapp.R import com.scwang.smart.refresh.layout.SmartRefreshLayout import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener @@ -76,9 +76,14 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe mAdapter = tabName?.let { LostTabAdapter(it) } - if (TranslatesUtils.translates() != null){ + if (TranslatesUtils.translates() != null) { tvDelete?.text = - TranslatesUtils.translates()?.mireo_list_delete?.let { TranslatesUtils.replace(it,"0") } + TranslatesUtils.translates()?.mireo_list_delete?.let { + TranslatesUtils.replace( + it, + "0" + ) + } } val layoutManager = GridLayoutManager(context, 3) @@ -133,10 +138,15 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe context?.resources?.getColor(R.color.example_color_d9d9d9) ?.let { tvDelete?.setTextColor(it) } - if (TranslatesUtils.translates() != null){ + if (TranslatesUtils.translates() != null) { tvDelete?.text = - TranslatesUtils.translates()?.mireo_list_delete?.let { TranslatesUtils.replace(it,"0") } - }else{ + TranslatesUtils.translates()?.mireo_list_delete?.let { + TranslatesUtils.replace( + it, + "0" + ) + } + } else { tvDelete?.text = "Delete (0)" } ivDelete?.setImageResource(R.mipmap.ic_list_detele_n) @@ -145,10 +155,15 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe ?.intoBackground(); context?.resources?.getColor(R.color.example_color_F56490) ?.let { tvDelete?.setTextColor(it) } - if (TranslatesUtils.translates() != null){ + if (TranslatesUtils.translates() != null) { tvDelete?.text = - TranslatesUtils.translates()?.mireo_list_delete?.let { TranslatesUtils.replace(it, detailList.size.toString()) } - }else{ + TranslatesUtils.translates()?.mireo_list_delete?.let { + TranslatesUtils.replace( + it, + detailList.size.toString() + ) + } + } else { tvDelete?.text = "Delete (" + detailList.size + ")" } ivDelete?.setImageResource(R.mipmap.ic_list_detele_y) @@ -213,30 +228,36 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe fun setCancel() { rlStatusRefresh?.setEnableRefresh(true) - val allData: List? = mAdapter?.items - for (i in allData?.indices!!) { + llDelete?.visibility = View.GONE + llDelete?.shapeDrawableBuilder?.setStrokeColor(0xFF9D9D9D.toInt()) + ?.intoBackground(); + val allData = mAdapter?.items + if (allData.isNullOrEmpty()) return + for (i in allData.indices) { allData[i].is_check = false } detailList.clear() mAdapter?.selectEdit = false mAdapter?.notifyDataSetChanged() - - llDelete?.visibility = View.GONE - llDelete?.shapeDrawableBuilder?.setStrokeColor(0xFF9D9D9D.toInt()) - ?.intoBackground(); context?.resources?.getColor(R.color.example_color_d9d9d9) ?.let { tvDelete?.setTextColor(it) } - if (TranslatesUtils.translates() != null){ + if (TranslatesUtils.translates() != null) { tvDelete?.text = - TranslatesUtils.translates()?.mireo_list_delete?.let { TranslatesUtils.replace(it, "0") } - }else{ + TranslatesUtils.translates()?.mireo_list_delete?.let { + TranslatesUtils.replace( + it, + "0" + ) + } + } else { tvDelete?.text = "Delete (0)" } ivDelete?.setImageResource(R.mipmap.ic_list_detele_n) } fun setAllSelect(isSelect: Boolean) { - val allData: List? = mAdapter?.items + val allData = mAdapter?.items + if (allData.isNullOrEmpty()) return if (isSelect) { detailList.clear() for (i in allData?.indices!!) { @@ -254,10 +275,15 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe ?.intoBackground(); context?.resources?.getColor(R.color.example_color_d9d9d9) ?.let { tvDelete?.setTextColor(it) } - if (TranslatesUtils.translates() != null){ + if (TranslatesUtils.translates() != null) { tvDelete?.text = - TranslatesUtils.translates()?.mireo_list_delete?.let { TranslatesUtils.replace(it, "0") } - }else{ + TranslatesUtils.translates()?.mireo_list_delete?.let { + TranslatesUtils.replace( + it, + "0" + ) + } + } else { tvDelete?.text = "Delete (0)" } ivDelete?.setImageResource(R.mipmap.ic_list_detele_n) @@ -266,10 +292,15 @@ class ListTabFragment : TitleBarFragment(), OnRefreshLoadMoreListe ?.intoBackground(); context?.resources?.getColor(R.color.example_color_F56490) ?.let { tvDelete?.setTextColor(it) } - if (TranslatesUtils.translates() != null){ + if (TranslatesUtils.translates() != null) { tvDelete?.text = - TranslatesUtils.translates()?.mireo_list_delete?.let { TranslatesUtils.replace(it, detailList.size.toString()) } - }else{ + TranslatesUtils.translates()?.mireo_list_delete?.let { + TranslatesUtils.replace( + it, + detailList.size.toString() + ) + } + } else { tvDelete?.text = "Delete (" + detailList.size + ")" } ivDelete?.setImageResource(R.mipmap.ic_list_detele_y) diff --git a/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt b/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt index 6f197c5..bd5e145 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/fragment/RechargeDialogFragment.kt @@ -473,11 +473,10 @@ class RechargeDialogFragment : BottomSheetDialogFragment(), OnHttpListener purchaseData?.orderId.toString(), coinsData?.price.toString() ) + payReq = PayBean if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { lifecycleScope.launch { googlePaid(PayBean) - MsMMKVUtils.saveOrder(PayBean) - payReq = PayBean } } else { MsMMKVUtils.saveOrder(PayBean) @@ -512,7 +511,6 @@ class RechargeDialogFragment : BottomSheetDialogFragment(), OnHttpListener if (it.responseCode == BillingClient.BillingResponseCode.OK) { lifecycleScope.launch { googlePaid(PayBean) - MsMMKVUtils.saveOrder(PayBean) payReq = PayBean } } else { @@ -605,6 +603,7 @@ class RechargeDialogFragment : BottomSheetDialogFragment(), OnHttpListener isPay = true dismiss() } ?: run { + payReq?.let { it1 -> MsMMKVUtils.saveOrder(it1) } if (TranslatesUtils.translates() != null) { ToastUtils.show(TranslatesUtils.translates()?.mireo_network_error.toString()) } else { diff --git a/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt b/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt index 1f71d7f..ee7f353 100644 --- a/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt +++ b/app/src/main/java/com/localee/mireo/app/ui/fragment/RewardFragment.kt @@ -18,6 +18,7 @@ import android.webkit.WebResourceRequest import android.webkit.WebSettings import android.webkit.WebView import android.webkit.WebViewClient +import android.widget.ImageView import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatTextView @@ -29,8 +30,6 @@ import com.hjq.http.EasyHttp import com.hjq.http.config.IRequestApi import com.hjq.http.listener.HttpCallbackProxy import com.localee.mireo.app.action.StatusAction -import com.localee.mireo.app.widget.view.SimpleRatingBar -import com.localee.mireo.shortapp.R import com.localee.mireo.app.app.TitleBarFragment import com.localee.mireo.app.http.api.FirebaseTokenApi import com.localee.mireo.app.http.api.OpenNotifyApi @@ -38,6 +37,7 @@ import com.localee.mireo.app.http.model.HttpData import com.localee.mireo.app.other.AppConfig import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.ui.activity.HomeActivity +import com.localee.mireo.app.ui.dialog.DialogUtils import com.localee.mireo.app.ui.dialog.GooglePlayRatingDialog import com.localee.mireo.app.utils.DHStringUtils.getPublicRequest import com.localee.mireo.app.utils.JsBridge @@ -47,6 +47,8 @@ import com.localee.mireo.app.utils.TranslatesUtils import com.localee.mireo.app.utils.singleClick import com.localee.mireo.app.widget.StatusLayout import com.localee.mireo.app.widget.StatusLayout.OnRetryListener +import com.localee.mireo.app.widget.view.SimpleRatingBar +import com.localee.mireo.shortapp.R import com.scwang.smart.refresh.layout.SmartRefreshLayout import com.scwang.smart.refresh.layout.api.RefreshLayout import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener @@ -55,8 +57,9 @@ import org.greenrobot.eventbus.Subscribe import org.greenrobot.eventbus.ThreadMode -class RewardFragment : TitleBarFragment(), OnRefreshLoadMoreListener ,StatusAction{ +class RewardFragment : TitleBarFragment(), OnRefreshLoadMoreListener, StatusAction { + private val ivLeft: ImageView? by lazy { findViewById(R.id.iv_left) } private val hintLayout: StatusLayout? by lazy { findViewById(R.id.hl_status_hint) } private val rlStatusRefresh: SmartRefreshLayout? by lazy { findViewById(R.id.rl_status_refresh) } private val web: WebView? by lazy { findViewById(R.id.web) } @@ -77,9 +80,17 @@ class RewardFragment : TitleBarFragment(), OnRefreshLoadMoreListen rlStatusRefresh?.setOnRefreshLoadMoreListener(this) rlStatusRefresh?.setEnableLoadMore(false) web?.setBackgroundColor(Color.TRANSPARENT) + + ivLeft?.setOnClickListener { + singleClick { + DialogUtils.showStoreHint(requireContext()) + } + } + } override fun initData() { + setWebView() } @@ -95,14 +106,16 @@ class RewardFragment : TitleBarFragment(), OnRefreshLoadMoreListen fun loadingData() { showDialog() if (NetworkUtils.isConnected()) { + web?.visibility = View.VISIBLE showComplete() loadPageUrl(MsConstants.REWARD_URL_RES) } else { + web?.visibility = View.GONE showErrorStatus() } } - fun showErrorStatus(){ + fun showErrorStatus() { showError(object : OnRetryListener { override fun onRetry(layout: StatusLayout) { singleClick { @@ -347,10 +360,6 @@ class RewardFragment : TitleBarFragment(), OnRefreshLoadMoreListen } - override fun isStatusBarEnabled(): Boolean { - return !super.isStatusBarEnabled() - } - override fun onRefresh(refreshLayout: RefreshLayout) { loadPageUrl(MsConstants.REWARD_URL_RES) } diff --git a/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt b/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt index d8bdffd..2e050db 100644 --- a/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt +++ b/app/src/main/java/com/localee/mireo/app/utils/ExampleStand.kt @@ -3,6 +3,8 @@ package com.localee.mireo.app.utils import android.annotation.SuppressLint import android.content.Context import android.os.Build +import com.google.common.reflect.TypeToken +import com.google.gson.Gson import com.localee.mireo.app.other.MsConstants import com.localee.mireo.app.other.MsConstants.CONSTANTS_PREF_LAST_POPUP_TIME_VIP import com.localee.mireo.app.other.MsConstants.ONE_DAY_IN_MILLIS_VIP @@ -25,7 +27,7 @@ fun Any.standAsUnChecked(): T { } var lastClickTime = 0L -fun singleClick(during: Long = 500L, callBack: () -> Unit) { +fun singleClick(during: Long = 750L, callBack: () -> Unit) { val now = Date().time if (now - lastClickTime > during) { callBack() @@ -171,3 +173,7 @@ fun dpToPx(dp: Int, context: Context): Int { return (dp * context.resources.displayMetrics.density).toInt() } +fun Any.toMapViaGson(): MutableMap { + val json = Gson().toJson(this) + return Gson().fromJson(json, object : TypeToken>() {}.type) +} diff --git a/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt b/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt index 0f3f3da..9c9d9dc 100644 --- a/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt +++ b/app/src/main/java/com/localee/mireo/app/utils/MsMMKVUtils.kt @@ -83,6 +83,13 @@ object MsMMKVUtils { ) } + fun removeOrderString(order: String) { + val updatedList = getOrder().filterNot { it.order_code == order } + getMMKV().putString( + MsConstants.CONSTANTS_examplePayReq, + Gson().toJson(updatedList) + ) + } fun getOrder(): MutableList { try { diff --git a/app/src/main/res/layout/dialog_store_hint.xml b/app/src/main/res/layout/dialog_store_hint.xml new file mode 100644 index 0000000..997dbf5 --- /dev/null +++ b/app/src/main/res/layout/dialog_store_hint.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_reward.xml b/app/src/main/res/layout/fragment_reward.xml index 57298ca..a998121 100644 --- a/app/src/main/res/layout/fragment_reward.xml +++ b/app/src/main/res/layout/fragment_reward.xml @@ -1,23 +1,39 @@ - + android:background="@color/example_color_121418" + android:orientation="vertical"> - + + - + android:layout_height="match_parent"> - + + + + + - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_vip_buy.xml b/app/src/main/res/layout/item_vip_buy.xml index 4707d7e..b749136 100644 --- a/app/src/main/res/layout/item_vip_buy.xml +++ b/app/src/main/res/layout/item_vip_buy.xml @@ -8,6 +8,22 @@ android:background="@mipmap/ic_vip_week_bg" android:orientation="vertical"> +