diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1b56d9da64..d68374c0fc 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -16,10 +16,6 @@ - - - - @@ -62,6 +58,14 @@ android:name="android.permission.READ_CONTACTS" tools:node="remove" /> + + + + "" } - val intent = WebActivity.getIntent(requireContext(), selectedUrl, true) - requireContext().startActivity(intent) + DirectUtils.directToExternalBrowser(requireContext(), selectedUrl) } }, hypertextPositionPair.first, hypertextPositionPair.second, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE) } diff --git a/app/src/main/java/com/gh/common/util/DataUtils.java b/app/src/main/java/com/gh/common/util/DataUtils.java index 8de3b38ed9..42c134256c 100644 --- a/app/src/main/java/com/gh/common/util/DataUtils.java +++ b/app/src/main/java/com/gh/common/util/DataUtils.java @@ -69,10 +69,11 @@ public class DataUtils { } else { options.setAnrEnabled(false); } - + options.setDebug(BuildConfig.DEBUG); options.setEnableSessionTracking(true); options.setEnvironment(BuildConfig.FLAVOR); + options.setEnableSystemEventBreadcrumbs(false); options.setDsn("https://6b1caf0d17c1408e8680f3f73ff80bd0@sentry.shanqu.cc/22"); options.setBeforeSend((event, hint) -> { diff --git a/app/src/main/java/com/gh/common/util/DirectUtils.kt b/app/src/main/java/com/gh/common/util/DirectUtils.kt index f0078ce1a7..c1be08e15d 100644 --- a/app/src/main/java/com/gh/common/util/DirectUtils.kt +++ b/app/src/main/java/com/gh/common/util/DirectUtils.kt @@ -34,7 +34,7 @@ import com.gh.gamecenter.common.entity.Display import com.gh.gamecenter.common.entity.LinkEntity import com.gh.gamecenter.common.retrofit.Response import com.gh.gamecenter.common.utils.* -import com.gh.gamecenter.core.utils.RunningUtils +import com.gh.gamecenter.core.AppExecutor import com.gh.gamecenter.core.utils.ToastUtils import com.gh.gamecenter.download.DownloadFragment.Companion.INDEX_UPDATE import com.gh.gamecenter.entity.* @@ -1331,9 +1331,7 @@ object DirectUtils { */ @JvmStatic fun directToHomeTab(context: Context) { - if (RunningUtils.isRunning(context) - && MainActivity::class.java.name == RunningUtils.getBaseActivity(context) - ) { + if (HaloApp.getInstance().isRunningForeground) { val intent = Intent(context, MainActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP context.startActivity(intent) @@ -1354,9 +1352,7 @@ object DirectUtils { */ @JvmStatic fun directToForum(context: Context, position: Int = 0) { - if (RunningUtils.isRunning(context) - && MainActivity::class.java.name == RunningUtils.getBaseActivity(context) - ) { + if (HaloApp.getInstance().isRunningForeground) { val intent = Intent(context, MainActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP context.startActivity(intent) @@ -1379,9 +1375,7 @@ object DirectUtils { */ @JvmStatic fun directToVideoTab(context: Context) { - if (RunningUtils.isRunning(context) - && MainActivity::class.java.name == RunningUtils.getBaseActivity(context) - ) { + if (HaloApp.getInstance().isRunningForeground) { val intent = Intent(context, MainActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP context.startActivity(intent) @@ -1400,9 +1394,7 @@ object DirectUtils { */ @JvmStatic fun directToPersonalTab(context: Context) { - if (RunningUtils.isRunning(context) - && MainActivity::class.java.name == RunningUtils.getBaseActivity(context) - ) { + if (HaloApp.getInstance().isRunningForeground) { val intent = Intent(context, MainActivity::class.java) intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TOP context.startActivity(intent) diff --git a/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt b/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt index 1dc3edfc91..eb5b9833bc 100644 --- a/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt +++ b/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt @@ -19,7 +19,6 @@ import com.gh.gamecenter.core.utils.SpeedUtils import com.halo.assistant.HaloApp import com.lightgame.download.DownloadEntity import com.lightgame.download.DownloadStatus -import com.walkud.rom.checker.RomIdentifier object DownloadNotificationHelper { @@ -34,7 +33,6 @@ object DownloadNotificationHelper { const val ACTION_VDOWNLOAD = "com.gh.gamecenter.VDOWNLOAD" private val mNotifyMap: MutableMap = mutableMapOf() - private val mShouldUseAlternativeNotificationIcon by lazy { RomIdentifier.getRom().versionName == null } private fun getNotificationManager(): NotificationManager { return HaloApp.getInstance().application.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager @@ -194,6 +192,6 @@ object DownloadNotificationHelper { } private fun getNotificationIcon(): Int { - return if (mShouldUseAlternativeNotificationIcon) R.drawable.ic_download_notification else R.mipmap.logo + return R.mipmap.logo } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/EntranceUtils.java b/app/src/main/java/com/gh/common/util/EntranceUtils.java index 451a4e0d47..bb3a0033db 100644 --- a/app/src/main/java/com/gh/common/util/EntranceUtils.java +++ b/app/src/main/java/com/gh/common/util/EntranceUtils.java @@ -25,7 +25,6 @@ import com.gh.gamecenter.common.base.fragment.ToolbarFragment; import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.core.utils.ClassUtils; import com.gh.gamecenter.core.utils.GsonUtils; -import com.gh.gamecenter.core.utils.RunningUtils; import com.gh.gamecenter.core.utils.SPUtils; import com.halo.assistant.HaloApp; import com.lightgame.utils.Utils; @@ -41,9 +40,7 @@ public class EntranceUtils { public static void jumpActivity(Context context, Bundle bundle) { bundle.putBoolean(KEY_REQUIRE_REDIRECT, true); - //TODO 把其他类似的跳转启动逻辑也处理掉 - if (RunningUtils.isRunning(context) - && MainActivity.class.getName().equals(RunningUtils.getBaseActivity(context))) { + if (HaloApp.getInstance().isRunningForeground) { // 应用正在运行,前台或后台 String to = bundle.getString(KEY_TO); Class clazz = ClassUtils.forName(to); @@ -69,9 +66,7 @@ public class EntranceUtils { public static void jumpActivity(Context context, Bundle nextToBundle, Bundle bundle, Callback callback) { bundle.putBoolean(KEY_REQUIRE_REDIRECT, true); - //TODO 把其他类似的跳转启动逻辑也处理掉 - if (RunningUtils.isRunning(context) - && MainActivity.class.getName().equals(RunningUtils.getBaseActivity(context))) { + if (HaloApp.getInstance().isRunningForeground) { // 应用正在运行,前台或后台 String to = bundle.getString(KEY_TO); Class clazz = ClassUtils.forName(to); diff --git a/app/src/main/java/com/gh/common/util/PackageUtils.java b/app/src/main/java/com/gh/common/util/PackageUtils.java index 0c3f55b527..e8745f4b14 100644 --- a/app/src/main/java/com/gh/common/util/PackageUtils.java +++ b/app/src/main/java/com/gh/common/util/PackageUtils.java @@ -27,6 +27,7 @@ import com.gh.common.xapk.XapkInstaller; import com.gh.gamecenter.BuildConfig; import com.gh.gamecenter.common.constant.Constants; import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.common.utils.PackageFlavorHelper; import com.gh.gamecenter.core.utils.SentryHelper; import com.gh.gamecenter.entity.ApkEntity; import com.gh.gamecenter.entity.GameEntity; @@ -815,21 +816,25 @@ public class PackageUtils { * @return 进程名 */ public static String obtainProcessName(Context context) { - try { - final int pid = android.os.Process.myPid(); - ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); - List listTaskInfo = am.getRunningAppProcesses(); - if (listTaskInfo != null && !listTaskInfo.isEmpty()) { - for (ActivityManager.RunningAppProcessInfo info : listTaskInfo) { - if (info != null && info.pid == pid) { - return info.processName; + if (PackageFlavorHelper.IS_TEST_FLAVOR) { + try { + final int pid = android.os.Process.myPid(); + ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); + List listTaskInfo = am.getRunningAppProcesses(); + if (listTaskInfo != null && !listTaskInfo.isEmpty()) { + for (ActivityManager.RunningAppProcessInfo info : listTaskInfo) { + if (info != null && info.pid == pid) { + return info.processName; + } } } + } catch (Exception e) { + // 遇到异常了让这次调用正常执行 + e.printStackTrace(); + return BuildConfig.APPLICATION_ID; } - } catch (Exception e) { - // 遇到异常了让这次调用正常执行 - e.printStackTrace(); - return BuildConfig.APPLICATION_ID; + } else { + return null; } return null; } diff --git a/app/src/main/java/com/gh/gamecenter/SkipActivity.java b/app/src/main/java/com/gh/gamecenter/SkipActivity.java index 83876c2473..d144ce79ab 100644 --- a/app/src/main/java/com/gh/gamecenter/SkipActivity.java +++ b/app/src/main/java/com/gh/gamecenter/SkipActivity.java @@ -52,8 +52,8 @@ import com.gh.common.util.DirectUtils; import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.common.util.EntranceUtils; import com.gh.common.util.PlatformUtils; +import com.gh.gamecenter.core.utils.CurrentActivityHolder; import com.gh.gamecenter.core.utils.GsonUtils; -import com.gh.gamecenter.core.utils.RunningUtils; import com.gh.gamecenter.common.entity.CommunityEntity; import com.gh.gamecenter.common.entity.LinkEntity; import com.gh.gamecenter.entity.SimpleGameEntity; @@ -61,6 +61,7 @@ import com.gh.gamecenter.entity.SubjectRecommendEntity; import com.gh.gamecenter.entity.VideoLinkEntity; import com.gh.gamecenter.video.detail.VideoDetailContainerViewModel; import com.gh.gamecenter.video.videomanager.VideoManagerActivity; +import com.halo.assistant.HaloApp; import com.lightgame.config.CommonDebug; import com.lightgame.utils.Utils; @@ -155,8 +156,7 @@ public class SkipActivity extends BaseActivity { break; case HOST_COMMUNITY: // 把切换放到 MainActivity 处理 - if (RunningUtils.isRunning(this) - && MainActivity.class.getName().equals(RunningUtils.getBaseActivity(this))) { + if (HaloApp.getInstance().isRunningForeground) { intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra(MainActivity.SWITCH_TO_COMMUNITY, true); @@ -239,8 +239,7 @@ public class SkipActivity extends BaseActivity { break; case HOST_VIDEO_STREAMING_HOME: // 把切换放到 MainActivity 处理 - if (RunningUtils.isRunning(this) - && MainActivity.class.getName().equals(RunningUtils.getBaseActivity(this))) { + if (HaloApp.getInstance().isRunningForeground) { intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra(MainActivity.SWITCH_TO_VIDEO, true); diff --git a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt index 96cb463d97..28da3fb1f8 100644 --- a/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt +++ b/app/src/main/java/com/gh/gamecenter/SplashScreenActivity.kt @@ -25,7 +25,6 @@ import com.gh.common.util.GameSubstituteRepositoryHelper.updateGameSubstituteRep import com.gh.common.util.UsageStatsHelper.checkAndPostUsageStats import com.gh.download.DownloadManager import com.gh.gamecenter.common.base.activity.BaseActivity -import com.gh.gamecenter.common.callback.SimpleCallback import com.gh.gamecenter.common.constant.Constants import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.common.tracker.TrackerLogger @@ -66,7 +65,6 @@ class SplashScreenActivity : BaseActivity() { private val mPermissions = arrayOf( Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.READ_PHONE_STATE, PermissionHelper.PERMISSION_GET_INSTALLED_LIST ) @@ -156,24 +154,36 @@ class SplashScreenActivity : BaseActivity() { private fun showPrivacyDialog(guideLayout: ViewPager) { NewPrivacyPolicyDialogFragment.show(this, null) { isSuccess: Boolean -> if (isSuccess) { - val callback = object : SimpleCallback { - override fun onCallback(arg: Boolean) { - // Dialog dismiss 后的回调 - guideLayout.visibility = View.VISIBLE - SPUtils.setBoolean(Constants.SP_BRAND_NEW_USER, false) - if (arg) { - requestPermission() - } else { - mStartMainActivityDirectly = false - } - } + guideLayout.visibility = View.VISIBLE + SPUtils.setBoolean(Constants.SP_BRAND_NEW_USER, false) + + // 恢复畅玩数据 + VHelper.recoverVDataIfPossible() + + // 检查是否有旧版本光环,有就删掉 + AppExecutor.ioExecutor.execute { deleteOutdatedUpdatePackage() } + if (mStartMainActivityDirectly) { + launchMainActivity() } - mViewModel?.showPrivacyPolicy({ - DialogUtils.showPrivacyPolicyDialog(this@SplashScreenActivity, it, callback) - }, { - DialogUtils.showPrivacyPolicyDialog(this@SplashScreenActivity, PrivacyPolicyEntity.createDefaultData(), callback) - }) +// val callback = object : SimpleCallback { +// override fun onCallback(arg: Boolean) { +// // Dialog dismiss 后的回调 +// guideLayout.visibility = View.VISIBLE +// SPUtils.setBoolean(Constants.SP_BRAND_NEW_USER, false) +// if (arg) { +// requestPermission() +// } else { +// mStartMainActivityDirectly = false +// } +// } +// } +// +// mViewModel?.showPrivacyPolicy({ +// DialogUtils.showPrivacyPolicyDialog(this@SplashScreenActivity, it, callback) +// }, { +// DialogUtils.showPrivacyPolicyDialog(this@SplashScreenActivity, PrivacyPolicyEntity.createDefaultData(), callback) +// }) } else { DialogUtils.showPrivacyPolicyDisallowDialog(this, PrivacyPolicyEntity.createDefaultData(), object : EmptyCallback { diff --git a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt index 558400a530..e9c3a84b6a 100644 --- a/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt +++ b/app/src/main/java/com/gh/gamecenter/gamedetail/desc/DescFragment.kt @@ -22,7 +22,6 @@ import com.gh.gamecenter.common.utils.viewModelProvider import com.gh.gamecenter.common.utils.viewModelProviderFromParent import com.gh.gamecenter.core.iinterface.IScrollable import com.gh.gamecenter.core.utils.MtaHelper -import com.gh.gamecenter.core.utils.RunningUtils import com.gh.gamecenter.core.utils.SPUtils import com.gh.gamecenter.databinding.FragmentDescBinding import com.gh.gamecenter.entity.GameEntity @@ -117,7 +116,7 @@ class DescFragment : BaseFragment(), IScrollable { } if (openVideoStreaming) { gameDetail.data!!.detailEntity.forEach { entity -> - if (entity.video != null && !RunningUtils.isEqualsTop(context, VideoDetailActivity::class.java.name)) { + if (entity.video != null && activity !is VideoDetailActivity) { DirectUtils.directToVideoDetail( requireContext(), entity.video!![0].videoId, entity.video!![0].videoId, path = "游戏详情-介绍视频" ) diff --git a/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java index 07dd8b92c4..1f4e818e76 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/ActivitySkipReceiver.java @@ -8,8 +8,8 @@ import android.text.TextUtils; import com.gh.gamecenter.core.utils.ClassUtils; import com.gh.gamecenter.common.utils.ExtensionsKt; -import com.gh.gamecenter.core.utils.RunningUtils; import com.gh.gamecenter.SplashScreenActivity; +import com.halo.assistant.HaloApp; /** * Created by khy on 2016/9/1. @@ -24,7 +24,7 @@ public class ActivitySkipReceiver extends BroadcastReceiver { ExtensionsKt.doOnMainProcessOnly(context, () -> { if (ACTION_ACTIVITY_SKIP.equals(intent.getAction())) { Bundle bundle = intent.getExtras(); - if (RunningUtils.isRunning(context) && bundle != null) { + if (HaloApp.getInstance().isRunningForeground && bundle != null) { // 应用正在运行,前台或后台 String to = bundle.getString("to"); if (!TextUtils.isEmpty(to)) { diff --git a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java index 8e8824fcfd..36ff960019 100644 --- a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java +++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java @@ -18,8 +18,9 @@ import com.gh.gamecenter.common.constant.Constants; import com.gh.gamecenter.common.constant.EntranceConsts; import com.gh.gamecenter.common.eventbus.EBMiPush; import com.gh.gamecenter.common.utils.ExtensionsKt; +import com.gh.gamecenter.core.utils.CurrentActivityHolder; import com.gh.gamecenter.core.utils.GsonUtils; -import com.gh.gamecenter.core.utils.RunningUtils; +import com.halo.assistant.HaloApp; import com.lightgame.download.DownloadEntity; import org.greenrobot.eventbus.EventBus; @@ -51,8 +52,8 @@ public class InstallReceiver extends BroadcastReceiver { PackageInstaller.install(context, false, path); } } else { - if (RunningUtils.isRunning(context)) { - if (RunningUtils.isEqualsTop(context, DownloadManagerActivity.class.getName())) { + if (HaloApp.getInstance().isRunningForeground) { + if (CurrentActivityHolder.getCurrentActivity() instanceof DownloadManagerActivity) { // 这里是指从后台返回到前台 前两个的是关键 Intent intent2 = new Intent(); intent2.setAction(Intent.ACTION_MAIN); diff --git a/module_common/src/main/AndroidManifest.xml b/module_common/src/main/AndroidManifest.xml index f17b266c8e..3a57e781f3 100644 --- a/module_common/src/main/AndroidManifest.xml +++ b/module_common/src/main/AndroidManifest.xml @@ -3,8 +3,4 @@ package="com.gh.gamecenter.common"> - - - - \ No newline at end of file diff --git a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java index e530874ea9..0da893b3b8 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/base/activity/BaseActivity.java @@ -62,7 +62,6 @@ import com.gh.gamecenter.core.provider.IPackageInstallerProvider; import com.gh.gamecenter.core.provider.IQuickLoginProvider; import com.gh.gamecenter.core.utils.DisplayUtils; import com.gh.gamecenter.core.utils.MtaHelper; -import com.gh.gamecenter.core.utils.RunningUtils; import com.gh.gamecenter.core.utils.SPUtils; import com.gh.gamecenter.core.utils.StringUtils; import com.lightgame.BaseAppCompatActivity; @@ -355,8 +354,10 @@ public abstract class BaseActivity extends BaseAppCompatActivity implements Easy @Subscribe(threadMode = ThreadMode.MAIN) public void onEventMainThread(final EBShowDialog showDialog) { + // 当当前实体被标记为使用过以后,不再响应它的内容 if (getLifecycle().getCurrentState().isAtLeast(Lifecycle.State.RESUMED) - && this.getClass().getName().equals(RunningUtils.getTopActivity(this))) { + && !showDialog.isUsed()) { + showDialog.setUsed(true); IPackageInstallerProvider packageInstallerConfig = (IPackageInstallerProvider) ARouter.getInstance().build(RouteConsts.provider.packageInstaller).navigation(); if (DOWNLOAD_HIJACK.equals(showDialog.getType())) { DialogUtils.showQqSessionDialog(this);// 建议用户联系客服 diff --git a/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShowDialog.java b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShowDialog.java index 411a11033c..3f361443a4 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShowDialog.java +++ b/module_common/src/main/java/com/gh/gamecenter/common/eventbus/EBShowDialog.java @@ -5,6 +5,8 @@ public class EBShowDialog { private String type; private String path; + private boolean isUsed; + public EBShowDialog(String type) { this.type = type; } @@ -30,4 +32,11 @@ public class EBShowDialog { this.path = path; } + public boolean isUsed() { + return isUsed; + } + + public void setUsed(boolean used) { + isUsed = used; + } } diff --git a/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/MetaUtil.kt b/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/MetaUtil.kt index c551e3e2e0..bd42349d5a 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/MetaUtil.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/exposure/meta/MetaUtil.kt @@ -37,9 +37,12 @@ object MetaUtil { fun refreshMeta() { if (romName == null) { - tryWithDefaultCatch { - romName = RomIdentifier.getRom().name - romVersion = RomIdentifier.getRom().versionName + val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider + if (appProvider?.isUserAcceptPrivacyPolicy(HaloApp.getInstance()) == true) { + tryWithDefaultCatch { + romName = RomIdentifier.getRom().name + romVersion = RomIdentifier.getRom().versionName + } } } val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider @@ -82,62 +85,64 @@ object MetaUtil { */ @JvmStatic fun getIMEI(): String { - val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider - if (appProvider?.isUserAcceptPrivacyPolicy(HaloApp.getInstance()) == false) { - return "" - } - - if (imei != null) { - return imei ?: "" - } - - imei = SPUtils.getString(Constants.SP_IMEI) - - if (!TextUtils.isEmpty(imei)) { - return imei ?: "" - } - - if (application.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { - return "" - } - - val telephonyManager = application.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager - - if (Build.VERSION.SDK_INT >= 29) { - return "".apply { - imei = this - SPUtils.setString(Constants.SP_IMEI, this) - } - } else if (Build.VERSION.SDK_INT >= 26) { - return (telephonyManager.imei ?: "").apply { - imei = this - SPUtils.setString(Constants.SP_IMEI, this) - } - } - - return (telephonyManager.getDeviceId() ?: "").apply { - imei = this - SPUtils.setString(Constants.SP_IMEI, this) - } + return "" +// val appProvider = ARouter.getInstance().build(RouteConsts.provider.app).navigation() as? IAppProvider +// if (appProvider?.isUserAcceptPrivacyPolicy(HaloApp.getInstance()) == false) { +// return "" +// } +// +// if (imei != null) { +// return imei ?: "" +// } +// +// imei = SPUtils.getString(Constants.SP_IMEI) +// +// if (!TextUtils.isEmpty(imei)) { +// return imei ?: "" +// } +// +// if (application.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { +// return "" +// } +// +// val telephonyManager = application.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager +// +// if (Build.VERSION.SDK_INT >= 29) { +// return "".apply { +// imei = this +// SPUtils.setString(Constants.SP_IMEI, this) +// } +// } else if (Build.VERSION.SDK_INT >= 26) { +// return (telephonyManager.imei ?: "").apply { +// imei = this +// SPUtils.setString(Constants.SP_IMEI, this) +// } +// } +// +// return (telephonyManager.getDeviceId() ?: "").apply { +// imei = this +// SPUtils.setString(Constants.SP_IMEI, this) +// } } @JvmStatic fun getBase64EncodedIMEI(): String { - if (imei == null) { - getIMEI() - } - - if (TextUtils.isEmpty(base64EncodedImei) && imei != null) { - try { - base64EncodedImei = android.util.Base64.encodeToString(getIMEI().trim().toByteArray(), android.util.Base64.NO_WRAP) - } catch (e: java.lang.Exception) { - e.printStackTrace() - return "" - } - } - - return base64EncodedImei ?: "" + return "" +// if (imei == null) { +// getIMEI() +// } +// +// if (TextUtils.isEmpty(base64EncodedImei) && imei != null) { +// try { +// base64EncodedImei = android.util.Base64.encodeToString(getIMEI().trim().toByteArray(), android.util.Base64.NO_WRAP) +// } catch (e: java.lang.Exception) { +// e.printStackTrace() +// return "" +// } +// } +// +// return base64EncodedImei ?: "" } @JvmStatic diff --git a/module_common/src/main/java/com/gh/gamecenter/common/utils/PermissionHelper.kt b/module_common/src/main/java/com/gh/gamecenter/common/utils/PermissionHelper.kt index abd43a0728..695cd6f2b3 100644 --- a/module_common/src/main/java/com/gh/gamecenter/common/utils/PermissionHelper.kt +++ b/module_common/src/main/java/com/gh/gamecenter/common/utils/PermissionHelper.kt @@ -19,7 +19,6 @@ import com.gh.gamecenter.common.constant.RouteConsts import com.gh.gamecenter.core.provider.IActivationProvider import com.gh.gamecenter.core.provider.IDirectProvider import com.gh.gamecenter.core.utils.EmptyCallback -import com.gh.gamecenter.core.utils.MtaHelper import com.gh.gamecenter.core.utils.SPUtils import com.tbruyelle.rxpermissions2.RxPermissions @@ -29,50 +28,6 @@ object PermissionHelper { const val PERMISSION_GET_INSTALLED_LIST = "com.android.permission.GET_INSTALLED_APPS" - @SuppressLint("CheckResult") - @JvmStatic - fun requestReadPhoneStateAndStoragePermissionFromStartUp(context: Context) { - if (context is FragmentActivity) { - val rxPermission = RxPermissions(context) - - var requestCount = 0 - val permissionsStatusMap = hashMapOf() - permissionsStatusMap[Manifest.permission.READ_PHONE_STATE] = false - permissionsStatusMap[Manifest.permission.READ_EXTERNAL_STORAGE] = false - permissionsStatusMap[Manifest.permission.WRITE_EXTERNAL_STORAGE] = false - - tryWithDefaultCatch { - rxPermission - .requestEach( - Manifest.permission.READ_PHONE_STATE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, - Manifest.permission.READ_EXTERNAL_STORAGE - ) - .subscribe { permission -> - requestCount++ - permissionsStatusMap[permission.name] = permission.granted - - if (requestCount == 2) { - val hasReadPhoneStatePermission = permissionsStatusMap[Manifest.permission.READ_PHONE_STATE] == true - val hasReadStoragePermission = permissionsStatusMap[Manifest.permission.READ_EXTERNAL_STORAGE] == true - - if (hasReadPhoneStatePermission && hasReadStoragePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "都授权") - } else if (!hasReadPhoneStatePermission && !hasReadStoragePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "都不授权") - } else if (hasReadPhoneStatePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "只授权IMEI") - } else if (hasReadStoragePermission) { - MtaHelper.onEvent("授权情况", "启动授权", "只授权存储") - } - } - } - } - - } - } - - /** * 在执行 emptyCallback 的 action 前先判断是否有获取已安装列表的权限 */ @@ -164,8 +119,7 @@ object PermissionHelper { @JvmStatic fun checkReadPhoneStateAndStoragePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { if (context is FragmentActivity) { - if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED - && context.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED + if (context.checkCallingOrSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && context.checkCallingOrSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED ) { emptyCallback.onCallback() @@ -175,7 +129,6 @@ object PermissionHelper { tryWithDefaultCatch { rxPermission .requestEachCombined( - Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE ) @@ -205,36 +158,37 @@ object PermissionHelper { @SuppressLint("CheckResult") @JvmStatic fun checkReadPhoneStatePermissionBeforeAction(context: Context, emptyCallback: EmptyCallback) { - if (context is FragmentActivity) { - - if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { - emptyCallback.onCallback() - } else { - val rxPermission = RxPermissions(context) - - tryWithDefaultCatch { - rxPermission - .requestEachCombined(Manifest.permission.READ_PHONE_STATE) - .subscribe { permission -> - when { - permission.granted -> { - emptyCallback.onCallback() - val provider = ARouter.getInstance().build(RouteConsts.provider.activation).navigation() as? IActivationProvider - provider?.sendActivationInfo() - } - permission.shouldShowRequestPermissionRationale -> { - // do nothing - } - else -> { - val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) - intent.data = Uri.parse("package:" + context.getPackageName()) - context.startActivity(intent) - } - } - } - } - } - } + emptyCallback.onCallback() +// if (context is FragmentActivity) { +// +// if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { +// emptyCallback.onCallback() +// } else { +// val rxPermission = RxPermissions(context) +// +// tryWithDefaultCatch { +// rxPermission +// .requestEachCombined(Manifest.permission.READ_PHONE_STATE) +// .subscribe { permission -> +// when { +// permission.granted -> { +// emptyCallback.onCallback() +// val provider = ARouter.getInstance().build(RouteConsts.provider.activation).navigation() as? IActivationProvider +// provider?.sendActivationInfo() +// } +// permission.shouldShowRequestPermissionRationale -> { +// // do nothing +// } +// else -> { +// val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS) +// intent.data = Uri.parse("package:" + context.getPackageName()) +// context.startActivity(intent) +// } +// } +// } +// } +// } +// } } /** diff --git a/module_core/src/main/java/com/gh/gamecenter/core/utils/RunningUtils.java b/module_core/src/main/java/com/gh/gamecenter/core/utils/RunningUtils.java deleted file mode 100644 index ee66bc9cf9..0000000000 --- a/module_core/src/main/java/com/gh/gamecenter/core/utils/RunningUtils.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.gh.gamecenter.core.utils; - -import android.Manifest; -import android.app.ActivityManager; -import android.app.ActivityManager.RunningAppProcessInfo; -import android.app.ActivityManager.RunningTaskInfo; -import android.content.ComponentName; -import android.content.Context; -import androidx.annotation.RequiresPermission; - -import java.util.List; - -public class RunningUtils { - - /** - * 判断当前应用程序处于前台还是后台 - */ - @RequiresPermission(Manifest.permission.GET_TASKS) - public static boolean isApplicationBroughtToBackground(Context context) { - ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); - List tasks = am.getRunningTasks(1); - if (!tasks.isEmpty()) { - ComponentName topActivity = tasks.get(0).topActivity; - if (!topActivity.getPackageName().equals(context.getPackageName())) { - return true; - } - } - return false; - - } - - /** - * 判断当前应用程序处于前台还是后台 - */ - public static boolean isBackground(Context context) { - ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); - List appProcesses = activityManager.getRunningAppProcesses(); - for (RunningAppProcessInfo appProcess : appProcesses) { - if (appProcess.processName.equals(context.getPackageName())) { - if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_BACKGROUND) { - return true; - } else { - return false; - } - } - } - return false; - } - - /** - * 判断当前topactivity是否与传入的相同 - */ - @RequiresPermission(Manifest.permission.GET_TASKS) - public static boolean isEqualsTop(Context context, String activityName) { - ActivityManager activityManager = (ActivityManager) context - .getSystemService(Context.ACTIVITY_SERVICE); - List infos = activityManager.getRunningTasks(100); - for (RunningTaskInfo info : infos) { - if (info.topActivity.getClassName().equals(activityName)) { - return true; - } - } - return false; - } - - /** - * 判断当前baseActivity是否与传入的相同 - */ - @RequiresPermission(Manifest.permission.GET_TASKS) - public static boolean isEqualsBase(Context context, String activityName) { - ActivityManager activityManager = (ActivityManager) context - .getSystemService(Context.ACTIVITY_SERVICE); - List infos = activityManager.getRunningTasks(100); - for (RunningTaskInfo info : infos) { - if (info.baseActivity.getClassName().equals(activityName)) { - return true; - } - } - return false; - } - - /** - * 判断应用是否正在运行 - */ - @RequiresPermission(Manifest.permission.GET_TASKS) - public static boolean isRunning(Context context) { - ActivityManager activityManager = (ActivityManager) context - .getSystemService(Context.ACTIVITY_SERVICE); - List infos = activityManager.getRunningTasks(100); - for (RunningTaskInfo info : infos) { - if (info.topActivity.getPackageName().equals(context.getPackageName()) - && info.baseActivity.getPackageName().equals(context.getPackageName())) { - return true; - } - } - return false; - } - - /** - * 获取当前baseActivity - */ - @RequiresPermission(Manifest.permission.GET_TASKS) - public static String getBaseActivity(Context context) { - ActivityManager activityManager = (ActivityManager) context - .getSystemService(Context.ACTIVITY_SERVICE); - List infos = activityManager.getRunningTasks(100); - for (RunningTaskInfo info : infos) { - if (info.baseActivity.getPackageName().equals(context.getPackageName())) { - return info.baseActivity.getClassName(); - } - } - return null; - } - - /** - * 获取当前topActivity - */ - @RequiresPermission(Manifest.permission.GET_TASKS) - public static String getTopActivity(Context context) { - ActivityManager activityManager = (ActivityManager) context - .getSystemService(Context.ACTIVITY_SERVICE); - List infos = activityManager.getRunningTasks(100); - for (RunningTaskInfo info : infos) { - if (info.topActivity.getPackageName().equals( - context.getPackageName())) { - return info.topActivity.getClassName(); - } - } - return null; - } - -} diff --git a/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt b/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt index cd634456f4..3cc81d2847 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt +++ b/module_login/src/main/java/com/gh/gamecenter/login/utils/QuickLoginHelper.kt @@ -116,28 +116,30 @@ object QuickLoginHelper { initTokenListener(context) } - if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { - loginAuth(context) - } else { - showQuickLoginPermissionDialog( - context, - { - checkReadPhoneStatePermissionBeforeAction(context, object : EmptyCallback { - override fun onCallback() { - loginAuth(context) - } - }) - }, - { - startCodeLoginPage( - context, - entrance = ENTRANCE_PERMISSION_DIALOG, - isFinishAuth = false, - isFromPermission = true - ) - } - ) - } + loginAuth(context) + +// if (context.checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { +// loginAuth(context) +// } else { +// showQuickLoginPermissionDialog( +// context, +// { +// checkReadPhoneStatePermissionBeforeAction(context, object : EmptyCallback { +// override fun onCallback() { +// loginAuth(context) +// } +// }) +// }, +// { +// startCodeLoginPage( +// context, +// entrance = ENTRANCE_PERMISSION_DIALOG, +// isFinishAuth = false, +// isFromPermission = true +// ) +// } +// ) +// } } @JvmStatic diff --git a/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java b/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java index 65701ae2a3..d4722ce2d5 100644 --- a/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java +++ b/module_login/src/main/java/com/gh/gamecenter/login/view/LoginFragment.java @@ -289,18 +289,18 @@ public class LoginFragment } private void showPermissionDialog() { - if (requireContext().checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { +// if (requireContext().checkCallingOrSelfPermission(Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED) { startQuickLogin(); - } else { - QuickLoginHelper.showQuickLoginPermissionDialog( - requireContext(), - () -> { - PermissionHelper.checkReadPhoneStatePermissionBeforeAction(requireContext(), this::startQuickLogin); - return null; - }, - () -> null - ); - } +// } else { +// QuickLoginHelper.showQuickLoginPermissionDialog( +// requireContext(), +// () -> { +// PermissionHelper.checkReadPhoneStatePermissionBeforeAction(requireContext(), this::startQuickLogin); +// return null; +// }, +// () -> null +// ); +// } } private void startQuickLogin() {