diff --git a/app/src/main/java/com/gh/common/databind/BindingAdapters.java b/app/src/main/java/com/gh/common/databind/BindingAdapters.java index 8249409f04..9cd5aa0f33 100644 --- a/app/src/main/java/com/gh/common/databind/BindingAdapters.java +++ b/app/src/main/java/com/gh/common/databind/BindingAdapters.java @@ -46,6 +46,7 @@ import com.gh.common.util.NumberUtils; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.common.util.PlatformUtils; +import com.gh.common.util.RealNameHelper; import com.gh.common.util.ReservationHelper; import com.gh.common.view.DownloadProgressBar; import com.gh.common.view.DrawableView; @@ -458,15 +459,17 @@ public class BindingAdapters { return; } } - GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { - BrowserInstallHelper.showBrowserInstallHintDialog(v.getContext(), () -> { - PackageCheckDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, () -> { - DownloadDialogHelper.findAvailableDialogAndShow(v.getContext(), gameEntity, apk, () -> { - CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { - DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { - DialogUtils.showOverseaDownloadDialog(v.getContext(), gameEntity, () -> { - DialogUtils.checkDownload(v.getContext(), apk.getSize(), - isSubscribe -> download(progressBar, gameEntity, traceEvent, isSubscribe, entrance, location)); + RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { + BrowserInstallHelper.showBrowserInstallHintDialog(v.getContext(), () -> { + PackageCheckDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, () -> { + DownloadDialogHelper.findAvailableDialogAndShow(v.getContext(), gameEntity, apk, () -> { + CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { + DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { + DialogUtils.showOverseaDownloadDialog(v.getContext(), gameEntity, () -> { + DialogUtils.checkDownload(v.getContext(), apk.getSize(), + isSubscribe -> download(progressBar, gameEntity, traceEvent, isSubscribe, entrance, location)); + }); }); }); }); @@ -475,15 +478,17 @@ public class BindingAdapters { }); }); } else { - GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { - CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { - DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { - DownloadDialog.showDownloadDialog( - v.getContext(), - gameEntity, - traceEvent, - entrance, - location + ":" + gameEntity.getName()); + RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { + CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> { + DialogUtils.showVersionNumberDialog(v.getContext(), gameEntity, () -> { + DownloadDialog.showDownloadDialog( + v.getContext(), + gameEntity, + traceEvent, + entrance, + location + ":" + gameEntity.getName()); + }); }); }); }); @@ -526,13 +531,15 @@ public class BindingAdapters { } break; case RESERVABLE: - GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { - CheckLoginUtils.checkLogin(progressBar.getContext(), "", () -> { - ReserveDialogFragment dialogFragment = ReserveDialogFragment.getInstance(gameEntity, () -> { - LogUtils.logReservation(gameEntity, traceEvent); - updateReservation(progressBar, gameEntity); + RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> { + CheckLoginUtils.checkLogin(progressBar.getContext(), "", () -> { + ReserveDialogFragment dialogFragment = ReserveDialogFragment.getInstance(gameEntity, () -> { + LogUtils.logReservation(gameEntity, traceEvent); + updateReservation(progressBar, gameEntity); + }); + dialogFragment.show(((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager(), "reserve"); }); - dialogFragment.show(((AppCompatActivity) progressBar.getContext()).getSupportFragmentManager(), "reserve"); }); }); break; diff --git a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java index 35f1e8defc..c923e78177 100644 --- a/app/src/main/java/com/gh/common/util/DownloadItemUtils.java +++ b/app/src/main/java/com/gh/common/util/DownloadItemUtils.java @@ -548,16 +548,18 @@ public class DownloadItemUtils { if (clickCallback != null) { clickCallback.onCallback(); } - GamePermissionDialogFragment.show((AppCompatActivity) context, gameEntity, gameEntity.getInfo(), () -> { - PermissionHelper.checkStoragePermissionBeforeAction(context, () -> { - CertificationDialog.showCertificationDialog(context, gameEntity, () -> { - DialogUtils.showVersionNumberDialog(context, gameEntity, () -> { - DownloadDialog.showDownloadDialog( - v.getContext(), - gameEntity, - traceEvent, - entrance, - location); + RealNameHelper.checkIfAuth(v.getContext(), gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) context, gameEntity, gameEntity.getInfo(), () -> { + PermissionHelper.checkStoragePermissionBeforeAction(context, () -> { + CertificationDialog.showCertificationDialog(context, gameEntity, () -> { + DialogUtils.showVersionNumberDialog(context, gameEntity, () -> { + DownloadDialog.showDownloadDialog( + v.getContext(), + gameEntity, + traceEvent, + entrance, + location); + }); }); }); }); @@ -591,14 +593,16 @@ public class DownloadItemUtils { if (str.equals(context.getString(R.string.download))) { // 先弹下载弹窗(如果需要的话) - GamePermissionDialogFragment.show((AppCompatActivity) context, gameEntity, gameEntity.getInfo(), () -> { - BrowserInstallHelper.showBrowserInstallHintDialog(context, () -> { - PackageCheckDialogFragment.show((AppCompatActivity) context, gameEntity, () -> { - DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, () -> { - CertificationDialog.showCertificationDialog(context, gameEntity, () -> { - DialogUtils.showOverseaDownloadDialog(context, gameEntity, () -> { - DialogUtils.checkDownload(context, apk.getSize(), - isSubscribe -> download(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent)); + RealNameHelper.checkIfAuth(context, gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) context, gameEntity, gameEntity.getInfo(), () -> { + BrowserInstallHelper.showBrowserInstallHintDialog(context, () -> { + PackageCheckDialogFragment.show((AppCompatActivity) context, gameEntity, () -> { + DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, () -> { + CertificationDialog.showCertificationDialog(context, gameEntity, () -> { + DialogUtils.showOverseaDownloadDialog(context, gameEntity, () -> { + DialogUtils.checkDownload(context, apk.getSize(), + isSubscribe -> download(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent)); + }); }); }); }); @@ -608,15 +612,17 @@ public class DownloadItemUtils { DataLogUtils.uploadGameLog(context, gameEntity.getId(), gameEntity.getName(), entrance); } else if (str.equals(context.getString(R.string.attempt))) { - GamePermissionDialogFragment.show((AppCompatActivity) context, gameEntity, gameEntity.getInfo(), () -> { - BrowserInstallHelper.showBrowserInstallHintDialog(context, () -> { - PackageCheckDialogFragment.show((AppCompatActivity) context, gameEntity, () -> { - DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, () -> { - CertificationDialog.showCertificationDialog(context, gameEntity, () -> { - DialogUtils.showVersionNumberDialog(context, gameEntity, () -> { - DialogUtils.showOverseaDownloadDialog(context, gameEntity, () -> { - DialogUtils.checkDownload(context, apk.getSize(), - isSubscribe -> download(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent)); + RealNameHelper.checkIfAuth(context, gameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) context, gameEntity, gameEntity.getInfo(), () -> { + BrowserInstallHelper.showBrowserInstallHintDialog(context, () -> { + PackageCheckDialogFragment.show((AppCompatActivity) context, gameEntity, () -> { + DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, () -> { + CertificationDialog.showCertificationDialog(context, gameEntity, () -> { + DialogUtils.showVersionNumberDialog(context, gameEntity, () -> { + DialogUtils.showOverseaDownloadDialog(context, gameEntity, () -> { + DialogUtils.checkDownload(context, apk.getSize(), + isSubscribe -> download(context, gameEntity, downloadBtn, entrance, location, isSubscribe, traceEvent)); + }); }); }); }); diff --git a/app/src/main/java/com/gh/common/util/RealNameHelper.kt b/app/src/main/java/com/gh/common/util/RealNameHelper.kt new file mode 100644 index 0000000000..78f4ee23d4 --- /dev/null +++ b/app/src/main/java/com/gh/common/util/RealNameHelper.kt @@ -0,0 +1,48 @@ +package com.gh.common.util + +import android.content.Context +import com.gh.gamecenter.UserInfoEditActivity +import com.gh.gamecenter.entity.GameEntity +import com.gh.gamecenter.manager.UserManager +import com.gh.gamecenter.user.UserViewModel +import java.util.* + +object RealNameHelper { + + @JvmStatic + fun checkIfAuth(context: Context, gameEntity: GameEntity, callback: EmptyCallback) { + if (gameEntity.auth?.switch == "on") { + if ((gameEntity.auth?.timeStart == "00:00" && gameEntity.auth?.timeEnd == "00:00") + || withinTimeRange(gameEntity.auth?.timeStart, gameEntity.auth?.timeEnd)) { + context.ifLogin("") { + if (!UserManager.getInstance().isAuth) { + context.startActivity(UserInfoEditActivity.getIntent(context, UserViewModel.TYPE_ID_CARD)) + } else { + callback.onCallback() + } + } + } else { + callback.onCallback() + } + } else { + callback.onCallback() + } + } + + private fun withinTimeRange(timeStart: String?, timeEnd: String?): Boolean { + val startHourAndMinuteArray = timeStart?.split(":") + val endHourAndMinuteArray = timeEnd?.split(":") + + val calStart = Calendar.getInstance().apply { + set(Calendar.HOUR_OF_DAY, startHourAndMinuteArray?.first()!!.toInt()) + set(Calendar.MINUTE, startHourAndMinuteArray.secondOrNull()!!.toInt()) + } + val calEnd = Calendar.getInstance().apply { + set(Calendar.HOUR_OF_DAY, endHourAndMinuteArray?.first()!!.toInt()) + set(Calendar.MINUTE, endHourAndMinuteArray.secondOrNull()!!.toInt()) + } + + return (Calendar.getInstance().after(calStart) && Calendar.getInstance().before(calEnd)) + } + +} \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java index a1985e653d..f51ce9839b 100644 --- a/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java +++ b/app/src/main/java/com/gh/gamecenter/adapter/viewholder/DetailViewHolder.java @@ -32,6 +32,7 @@ import com.gh.common.util.MtaHelper; import com.gh.common.util.PackageInstaller; import com.gh.common.util.PackageUtils; import com.gh.common.util.PermissionHelper; +import com.gh.common.util.RealNameHelper; import com.gh.common.util.ReservationHelper; import com.gh.common.util.StringUtils; import com.gh.common.view.DownloadProgressBar; @@ -177,35 +178,37 @@ public class DetailViewHolder { case NORMAL: DataLogUtils.uploadGameLog(mViewHolder.context, mGameEntity.getId(), mGameEntity.getName(), mEntrance); case PLUGIN: - GamePermissionDialogFragment.show((AppCompatActivity) mViewHolder.context, mGameEntity, mGameEntity.getInfo(), () -> { - PermissionHelper.checkStoragePermissionBeforeAction(mViewHolder.context, () -> { - if (mGameEntity.getApk().size() == 1) { - ApkEntity apk = mGameEntity.getApk().get(0); - BrowserInstallHelper.showBrowserInstallHintDialog(mViewHolder.context, () -> { - PackageCheckDialogFragment.show((AppCompatActivity) mViewHolder.context, mGameEntity, () -> { - DownloadDialogHelper.findAvailableDialogAndShow(mViewHolder.context, mGameEntity, apk, () -> { - CertificationDialog.showCertificationDialog(mViewHolder.context, mGameEntity, () -> { - DialogUtils.showVersionNumberDialog(mViewHolder.context, mGameEntity, () -> { - DialogUtils.showOverseaDownloadDialog(mViewHolder.context, mGameEntity, () -> { - DialogUtils.checkDownload(mViewHolder.context, apk.getSize(), this::download); + RealNameHelper.checkIfAuth(v.getContext(), mGameEntity, () -> { + GamePermissionDialogFragment.show((AppCompatActivity) mViewHolder.context, mGameEntity, mGameEntity.getInfo(), () -> { + PermissionHelper.checkStoragePermissionBeforeAction(mViewHolder.context, () -> { + if (mGameEntity.getApk().size() == 1) { + ApkEntity apk = mGameEntity.getApk().get(0); + BrowserInstallHelper.showBrowserInstallHintDialog(mViewHolder.context, () -> { + PackageCheckDialogFragment.show((AppCompatActivity) mViewHolder.context, mGameEntity, () -> { + DownloadDialogHelper.findAvailableDialogAndShow(mViewHolder.context, mGameEntity, apk, () -> { + CertificationDialog.showCertificationDialog(mViewHolder.context, mGameEntity, () -> { + DialogUtils.showVersionNumberDialog(mViewHolder.context, mGameEntity, () -> { + DialogUtils.showOverseaDownloadDialog(mViewHolder.context, mGameEntity, () -> { + DialogUtils.checkDownload(mViewHolder.context, apk.getSize(), this::download); + }); }); }); }); }); }); - }); - } else { - CertificationDialog.showCertificationDialog(mViewHolder.context, mGameEntity, () -> { - DialogUtils.showVersionNumberDialog(mViewHolder.context, mGameEntity, () -> { - DownloadDialog.showDownloadDialog( - mViewHolder.context, - mGameEntity, - mTraceEvent, - StringUtils.buildString(mEntrance, "+(", mName, "[", mTitle, "])"), - mName + ":" + mTitle); + } else { + CertificationDialog.showCertificationDialog(mViewHolder.context, mGameEntity, () -> { + DialogUtils.showVersionNumberDialog(mViewHolder.context, mGameEntity, () -> { + DownloadDialog.showDownloadDialog( + mViewHolder.context, + mGameEntity, + mTraceEvent, + StringUtils.buildString(mEntrance, "+(", mName, "[", mTitle, "])"), + mName + ":" + mTitle); + }); }); - }); - } + } + }); }); }); break; diff --git a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt index 48de83442a..6d735bb2b9 100644 --- a/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt +++ b/app/src/main/java/com/gh/gamecenter/entity/GameEntity.kt @@ -141,6 +141,8 @@ data class GameEntity( @SerializedName("download_dialog") var downloadDialog: ArrayList? = arrayListOf(), + var auth: Auth? = null, + @SerializedName("auth_dialog") var authDialog: AuthDialogEntity? = null, @@ -666,6 +668,13 @@ data class GameEntity( @SerializedName("end_time") val endTime: Long = 0 ) : Parcelable + + @Parcelize + data class Auth( + val switch: String? = null, // 开关 + val timeStart: String? = "", // 开始时间 + val timeEnd: String? = "" // 结束时间 + ) : Parcelable } @Parcelize