feat: 畅玩游戏绕过浏览器下载判断

This commit is contained in:
juntao
2022-06-16 17:18:37 +08:00
parent 3dc65fb415
commit f37200f902
7 changed files with 21 additions and 13 deletions

View File

@ -384,7 +384,7 @@ public class BindingAdapters {
}
VHelper.checkVSpaceBeforeAction(v.getContext(), gameEntity, () -> {
GamePermissionDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, gameEntity.getInfo(), () -> {
BrowserInstallHelper.showBrowserInstallHintDialog(v.getContext(), () -> {
BrowserInstallHelper.showBrowserInstallHintDialog(v.getContext(), gameEntity.isVGame(), () -> {
PackageCheckDialogFragment.show((AppCompatActivity) v.getContext(), gameEntity, () -> {
DownloadDialogHelper.findAvailableDialogAndShow(v.getContext(), gameEntity, apk, () -> {
CertificationDialog.showCertificationDialog(v.getContext(), gameEntity, () -> {

View File

@ -651,7 +651,7 @@ object DownloadItemUtils {
val apk = gameEntity.getApk().safelyGetInRelease(0) ?: return
if (str == context.getString(R.string.download)) {
GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info) {
BrowserInstallHelper.showBrowserInstallHintDialog(context, object : EmptyCallback {
BrowserInstallHelper.showBrowserInstallHintDialog(context, gameEntity.isVGame(), object : EmptyCallback {
override fun onCallback() {
PackageCheckDialogFragment.show(context, gameEntity) {
DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback {
@ -672,7 +672,7 @@ object DownloadItemUtils {
DataLogUtils.uploadGameLog(context, gameEntity.id, gameEntity.name, entrance)
} else if (str == context.getString(R.string.attempt)) {
GamePermissionDialogFragment.show((context as AppCompatActivity), gameEntity, gameEntity.info) {
BrowserInstallHelper.showBrowserInstallHintDialog(context, object : EmptyCallback {
BrowserInstallHelper.showBrowserInstallHintDialog(context, gameEntity.isVGame(), object : EmptyCallback {
override fun onCallback() {
PackageCheckDialogFragment.show(context, gameEntity) {
DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apk, object : EmptyCallback {

View File

@ -6,23 +6,26 @@ import android.widget.RelativeLayout
import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.base.BaseRecyclerViewHolder
import com.gh.common.constant.Config
import com.gh.common.dialog.CertificationDialog
import com.gh.common.dialog.DeviceRemindDialog
import com.gh.common.dialog.PackageCheckDialogFragment
import com.gh.common.exposure.ExposureEvent
import com.gh.common.util.*
import com.gh.common.util.DialogUtils
import com.gh.common.util.DirectUtils.directToLinkPage
import com.gh.common.util.DownloadDialogHelper
import com.gh.common.util.PackageInstaller
import com.gh.common.util.PackageUtils
import com.gh.download.DownloadManager
import com.gh.download.server.BrowserInstallHelper
import com.gh.gamecenter.DownloadManagerActivity
import com.gh.gamecenter.R
import com.gh.gamecenter.common.base.BaseRecyclerViewHolder
import com.gh.gamecenter.common.base.activity.BaseActivity
import com.gh.gamecenter.common.callback.ConfirmListener
import com.gh.gamecenter.common.utils.*
import com.gh.gamecenter.core.utils.*
import com.gh.gamecenter.core.utils.EmptyCallback
import com.gh.gamecenter.core.utils.SpeedUtils
import com.gh.gamecenter.databinding.DownloadDialogItemBinding
import com.gh.gamecenter.entity.ApkEntity
import com.gh.gamecenter.entity.GameCollectionEntity
@ -351,7 +354,7 @@ class DownloadDialogItemViewHolder(val binding: DownloadDialogItemBinding) : Bas
// todo 有时间存储判断统一处理
val msg = FileUtils.isCanDownload(context, apkEntity.size)
if (msg.isNullOrEmpty()) {
BrowserInstallHelper.showBrowserInstallHintDialog(context, object : EmptyCallback {
BrowserInstallHelper.showBrowserInstallHintDialog(context, gameEntity.isVGame(), object : EmptyCallback {
override fun onCallback() {
DownloadDialogHelper.findAvailableDialogAndShow(context, gameEntity, apkEntity, object : EmptyCallback {
override fun onCallback() {

View File

@ -123,8 +123,8 @@ object BrowserInstallHelper {
}
@JvmStatic
fun showBrowserInstallHintDialog(context: Context, callback: EmptyCallback) {
if (!shouldShowUseBrowserToInstallHint()) {
fun showBrowserInstallHintDialog(context: Context, skipBrowserInstallDialog: Boolean = false, callback: EmptyCallback) {
if (skipBrowserInstallDialog || !shouldShowUseBrowserToInstallHint()) {
callback.onCallback()
return
}

View File

@ -194,7 +194,7 @@ public class DetailViewHolder {
PermissionHelper.checkStoragePermissionBeforeAction(mViewHolder.context, () -> {
if (mGameEntity.getApk().size() == 1) {
ApkEntity apk = mGameEntity.getApk().get(0);
BrowserInstallHelper.showBrowserInstallHintDialog(mViewHolder.context, () -> {
BrowserInstallHelper.showBrowserInstallHintDialog(mViewHolder.context, mGameEntity.isVGame(), () -> {
PackageCheckDialogFragment.show((AppCompatActivity) mViewHolder.context, mGameEntity, () -> {
DownloadDialogHelper.findAvailableDialogAndShow(mViewHolder.context, mGameEntity, apk, () -> {
CertificationDialog.showCertificationDialog(mViewHolder.context, mGameEntity, () -> {

View File

@ -115,6 +115,9 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) {
mVGameList?.clear()
transformationItemData()
}
} else {
mVGameList?.clear()
transformationItemData()
}
}

View File

@ -127,7 +127,7 @@ object VHelper {
*/
@JvmStatic
fun isInstalled(packageName: String?): Boolean {
return mInstalledInfoList.any { it.packageName == packageName }
return mInstalledInfoList.any { it?.packageName == packageName }
}
/**
@ -215,7 +215,9 @@ object VHelper {
val installedPackageList = arrayListOf<String>()
for (info in installedList) {
installedPackageList.add(info.packageName)
info.packageName?.let {
installedPackageList.add(info.packageName)
}
}
Utils.log(LOG_TAG, "已安装包名列表$installedPackageList")