diff --git a/app/build.gradle b/app/build.gradle
index daa18eadc5..870c725958 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -239,7 +239,7 @@ dependencies {
})
implementation "com.github.CarGuo.GSYVideoPlayer:gsyVideoPlayer-exo_player2:$gsyVideo"
- implementation "androidx.work:work-runtime:${workManager}"
+// implementation "androidx.work:work-runtime:${workManager}"
implementation "com.llew.huawei:verifier:${verifier}"
diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt
index 955a7a8e01..8a1e3e5131 100644
--- a/app/proguard-rules.txt
+++ b/app/proguard-rules.txt
@@ -39,6 +39,9 @@
-keepclassmembers interface com.j256.* { *; }
-dontwarn com.j256.**
+# 避免 gson 找不到 enum
+-keepclassmembers enum * { *; }
+
### AutoScrollViewPager
-keep class cn.trinea.android.* { *; }
-keepclassmembers class cn.trinea.android.* { *; }
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a89593f397..8463ed939b 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 2edff346ee..81bc257ccf 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.setEnableAutoSessionTracking(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..24c6a1e02f 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,6 @@ 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.utils.ToastUtils
import com.gh.gamecenter.download.DownloadFragment.Companion.INDEX_UPDATE
import com.gh.gamecenter.entity.*
@@ -1331,9 +1330,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 +1351,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 +1374,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 +1393,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 4226ca6e57..445646856a 100644
--- a/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt
+++ b/app/src/main/java/com/gh/common/util/DownloadNotificationHelper.kt
@@ -22,7 +22,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 {
@@ -37,7 +36,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
@@ -197,6 +195,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 27a2a5cbd9..b180a5784e 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;
@@ -67,8 +68,13 @@ import java.util.zip.ZipInputStream;
public class PackageUtils {
+ private static long mLastInstalledPackageListTime = 0L;
+ private static List mInstalledPackageList = null;
+
public static final String publicKey = "OpenSSLRSAPublicKey{modulus=a8c4bb5748fec8d5c35db1a7a182d41ba4721a91131a417330af79ef4ddb43f9fa0ff4907b0a613bfe152de0ed8fc1b2e6f94a908aa98a5f7adc1ce814ba7ec919d75d9910bdfd8649b4789da6a90ffb61f0d23ac4f828a78fcd0d6f6120c1c43c1f87f7498a89eb40ca8e32dfc2f9d5c10d612b95192870223674e241e53305abf320d7eed76ded398778576e4db7b17b3bc6a792f13de5e43a6a5fae4276c73e6990ce97f68dff0ec16fc9594f175c8d49cd0d7877340d9de60942ca0efc737e50b6c295dfe0713e4532b4e810e1ea11b702b4a27753e41559cbceb247e7f044ec4e3ab2e8bccd8b9fd71286e63307550bcde86deee95adb8133076269135b,publicExponent=10001}";
+ private static final String TAG = "PackageUtils";
+
/*
* 判断是否可以更新,只判断gh_version的大小
*/
@@ -815,21 +821,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;
}
@@ -871,12 +881,36 @@ public class PackageUtils {
return false;
}
+ /**
+ * 弃用已安装列表缓存
+ */
+ public static void dumpInstalledListCache() {
+ mLastInstalledPackageListTime = 0;
+ }
+
+ public static List getInstalledPackages(Context context, int flags) {
+ Utils.log(TAG, "即将获取已安装应用列表");
+
+ // 简单 debounce 掉过于频繁的调用获取已安装列表调用
+ if (System.currentTimeMillis() - mLastInstalledPackageListTime < 1000
+ && mInstalledPackageList != null
+ && mInstalledPackageList.size() > 0) {
+ Utils.log(TAG, "使用了缓存的已安装应用列表");
+ return new ArrayList<>(mInstalledPackageList);
+ }
+
+ Utils.log(TAG, "调用系统 API 获取全新的已安装应用列表");
+
+ mLastInstalledPackageListTime = System.currentTimeMillis();
+ mInstalledPackageList = getInstalledPackagesInternal(context, flags);
+ return mInstalledPackageList;
+ }
/**
* 在5.1系统手机使用PackageManager获取已安装应用容易发生Package manager has died异常
- * https://stackoverflow.com/questions/13235793/transactiontoolargeeception-when-trying-to-get-a-list-of-applications-installed/30062632#30062632
+ * https://stackoverflow.com/questions/13235793/transactiontoolargeeception-when-trying-tÏo-get-a-list-of-applications-installed/30062632#30062632
*/
- public static List getInstalledPackages(Context context, int flags) {
+ private static List getInstalledPackagesInternal(Context context, int flags) {
final PackageManager pm = context.getPackageManager();
try {
return pm.getInstalledPackages(flags);
diff --git a/app/src/main/java/com/gh/download/DownloadManager.java b/app/src/main/java/com/gh/download/DownloadManager.java
index b561d2cd6b..602f48bc44 100644
--- a/app/src/main/java/com/gh/download/DownloadManager.java
+++ b/app/src/main/java/com/gh/download/DownloadManager.java
@@ -411,11 +411,6 @@ public class DownloadManager implements DownloadStatusListener {
String url = downloadEntity.getUrl();
checkDownloadEntryRecordValidate(url);
- // 添加当前设备为模拟器的标签
- if (HaloApp.getInstance().isEmulator()) {
- downloadEntity.getMeta().put("isEmulator", "true");
- }
-
if (isDownloadCompleted(url)) {
downloadEntity.setStatus(DownloadStatus.done);
DataChanger.INSTANCE.notifyDataChanged(downloadEntity);
diff --git a/app/src/main/java/com/gh/download/DownloadWorkManager.kt b/app/src/main/java/com/gh/download/DownloadWorkManager.kt
index 42ee264f0b..c4731425dc 100644
--- a/app/src/main/java/com/gh/download/DownloadWorkManager.kt
+++ b/app/src/main/java/com/gh/download/DownloadWorkManager.kt
@@ -1,40 +1,32 @@
package com.gh.download
-import android.os.Environment
-import androidx.work.PeriodicWorkRequest
-import androidx.work.WorkManager
-import com.gh.gamecenter.common.utils.tryWithDefaultCatch
-import com.halo.assistant.HaloApp
-import com.lightgame.download.FileUtils
-import java.util.concurrent.TimeUnit
-
object DownloadWorkManager {
private const val TAG_DOWNLOAD = "tag_download"
@JvmStatic
fun addWorker() {
- cancelWorker()
-
- // 可用存储空间少于 5G ,不使用 WorkManager,避免各种因为存储空间造成的问题
- if (FileUtils.isMounted() && FileUtils.getFreeSpaceByPath(Environment.getExternalStorageDirectory().absolutePath) < 1024F * 5) return
-
- // 每 15 分钟检查一下是否需要重试下载
- val builder = PeriodicWorkRequest.Builder(
- DownloadWorker::class.java,
- PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
- TimeUnit.MILLISECONDS)
-
- val workerRequest = builder
- .addTag(TAG_DOWNLOAD)
- .build()
-
- tryWithDefaultCatch { WorkManager.getInstance(HaloApp.getInstance().applicationContext).enqueue(workerRequest) }
+// cancelWorker()
+//
+// // 可用存储空间少于 5G ,不使用 WorkManager,避免各种因为存储空间造成的问题
+// if (FileUtils.isMounted() && FileUtils.getFreeSpaceByPath(Environment.getExternalStorageDirectory().absolutePath) < 1024F * 5) return
+//
+// // 每 15 分钟检查一下是否需要重试下载
+// val builder = PeriodicWorkRequest.Builder(
+// DownloadWorker::class.java,
+// PeriodicWorkRequest.MIN_PERIODIC_INTERVAL_MILLIS,
+// TimeUnit.MILLISECONDS)
+//
+// val workerRequest = builder
+// .addTag(TAG_DOWNLOAD)
+// .build()
+//
+// tryWithDefaultCatch { WorkManager.getInstance(HaloApp.getInstance().applicationContext).enqueue(workerRequest) }
}
@JvmStatic
fun cancelWorker() {
- tryWithDefaultCatch { WorkManager.getInstance(HaloApp.getInstance().applicationContext).cancelAllWorkByTag(TAG_DOWNLOAD) }
+// tryWithDefaultCatch { WorkManager.getInstance(HaloApp.getInstance().applicationContext).cancelAllWorkByTag(TAG_DOWNLOAD) }
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/download/DownloadWorker.kt b/app/src/main/java/com/gh/download/DownloadWorker.kt
index 09a18ae375..cdfcbb39f9 100644
--- a/app/src/main/java/com/gh/download/DownloadWorker.kt
+++ b/app/src/main/java/com/gh/download/DownloadWorker.kt
@@ -1,18 +1,17 @@
-package com.gh.download
-
-import android.content.Context
-import androidx.work.Worker
-import androidx.work.WorkerParameters
-import com.lightgame.utils.Utils
-
-class DownloadWorker(private val mContext: Context, workerParams: WorkerParameters)
- : Worker(mContext, workerParams) {
-
- override fun doWork(): Result {
- Utils.log("WorkManager try checkAndRetryDownload.")
-
- DownloadManager.getInstance().checkAndRetryDownload()
- return Result.success()
- }
-
-}
\ No newline at end of file
+//package com.gh.download
+//
+//import android.content.Context
+//import androidx.work.WorkerParameters
+//import com.lightgame.utils.Utils
+//
+//class DownloadWorker(private val mContext: Context, workerParams: WorkerParameters)
+// : Worker(mContext, workerParams) {
+//
+// override fun doWork(): Result {
+// Utils.log("WorkManager try checkAndRetryDownload.")
+//
+// DownloadManager.getInstance().checkAndRetryDownload()
+// return Result.success()
+// }
+//
+//}
\ No newline at end of file
diff --git a/app/src/main/java/com/gh/gamecenter/MainActivity.java b/app/src/main/java/com/gh/gamecenter/MainActivity.java
index 9d5faf6a95..980a9041a4 100644
--- a/app/src/main/java/com/gh/gamecenter/MainActivity.java
+++ b/app/src/main/java/com/gh/gamecenter/MainActivity.java
@@ -333,7 +333,7 @@ public class MainActivity extends BaseActivity {
// 检查是否需要触发 XAPK 安装
AppExecutor.getUiExecutor().executeWithDelay(this::resumeXapkInstallIfNeeded, 150);
- QuickLoginHelper.getPhoneInfo(this);
+// QuickLoginHelper.getPhoneInfo(this);
WechatBindHelper.getWechatConfig(null);
initWBSDK();
CertificationSwitchHelper.getCertificationSwitch();
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 ab1f6be2b5..5c884e53e7 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
@@ -133,7 +132,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/InstallAndUninstallReceiver.java b/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java
index d05872759d..24b2e4be70 100644
--- a/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java
+++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallAndUninstallReceiver.java
@@ -30,6 +30,7 @@ public class InstallAndUninstallReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
+ PackageUtils.dumpInstalledListCache();
ExtensionsKt.doOnMainProcessOnly(context, () -> {
Utils.log("InstallAndUninstallReceiver:: onReceive->" + intent.getAction() + "==" + intent.getDataString());
// 接收安装广播
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 8549790283..e5d91f36b6 100644
--- a/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java
+++ b/app/src/main/java/com/gh/gamecenter/receiver/InstallReceiver.java
@@ -19,7 +19,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.RunningUtils;
+import com.gh.gamecenter.core.utils.CurrentActivityHolder;
+import com.gh.gamecenter.core.utils.GsonUtils;
+import com.halo.assistant.HaloApp;
import com.gh.gamecenter.download.DownloadFragment;
import com.lightgame.download.DownloadDao;
import com.lightgame.download.DownloadEntity;
@@ -60,8 +62,8 @@ public class InstallReceiver extends BroadcastReceiver {
context.startActivity(intent2);
}
} 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/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt b/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt
index 00cc782c22..f82c526f8d 100644
--- a/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt
+++ b/app/src/main/java/com/gh/gamecenter/setting/VideoSettingFragment.kt
@@ -7,7 +7,6 @@ import com.gh.gamecenter.common.base.fragment.ToolbarFragment
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.common.utils.setSwitchAnimation
import com.gh.gamecenter.common.utils.toColor
-import com.gh.gamecenter.common.utils.toDrawable
import com.gh.gamecenter.core.utils.SPUtils
import com.gh.gamecenter.databinding.FragmentVideoSettingBinding
diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java
index 6bb43c6dcf..ab882c2d5b 100644
--- a/app/src/main/java/com/halo/assistant/HaloApp.java
+++ b/app/src/main/java/com/halo/assistant/HaloApp.java
@@ -17,7 +17,6 @@ import androidx.collection.ArrayMap;
import androidx.lifecycle.ProcessLifecycleOwner;
import androidx.multidex.MultiDexApplication;
import androidx.webkit.WebViewCompat;
-import androidx.work.Configuration;
import com.alibaba.android.arouter.launcher.ARouter;
import com.facebook.animated.giflite.GifDecoder;
@@ -45,7 +44,6 @@ import com.gh.gamecenter.common.image.EmptyDecoder;
import com.gh.gamecenter.common.tracker.Tracker;
import com.gh.gamecenter.common.utils.DarkModeUtils;
import com.gh.gamecenter.common.utils.DeviceUtils;
-import com.gh.gamecenter.common.utils.EmulatorUtil;
import com.gh.gamecenter.common.utils.ExtensionsKt;
import com.gh.gamecenter.common.utils.ImageUtils;
import com.gh.gamecenter.common.utils.PackageFlavorHelper;
@@ -85,7 +83,7 @@ import io.reactivex.plugins.RxJavaPlugins;
import tv.danmaku.ijk.media.exo2.Exo2PlayerManager;
import tv.danmaku.ijk.media.exo2.ExoPlayerCacheManager;
-public class HaloApp extends MultiDexApplication implements Configuration.Provider {
+public class HaloApp extends MultiDexApplication {
private static HaloApp mInstance;
private static final ArrayMap sObjectMap = new ArrayMap<>();
@@ -98,7 +96,6 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid
private String mServerUserMark = ""; // 服务端用来标记用户是新/老的标记,有 new 和 old 两个,获取不到时为空
private boolean mIsPostInitialized = false; // 是否已经延迟初始化过相关组件,避免重复初始化
- private boolean mIsEmulator = false; // 当前设备是否为模拟器
private boolean mIsReinstallTheSameVersion = false; // 当前用户是否重新安装了一次当前版本后的第一次打开
public long deviceRamSize = 0;
@@ -182,7 +179,7 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid
return mUA;
}
- public List getWebViewAbiList(){
+ public List getWebViewAbiList() {
return webViewAbiList;
}
@@ -290,10 +287,10 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid
ExtensionsKt.doOnMainProcessOnly(this, () -> {
retrieveVGameInfoIfNeeded();
PackageRepository.initData();
+ PackageHelper.refreshLocalPackageList();
+ PackageHelper.initList();
});
- checkIfDeviceIsEmulator();
-
initReceiver();
initPackageChangesReceiver();
initConnectivityChangesReceiver();
@@ -394,9 +391,7 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid
// 初始化全局下载监听
DownloadObserver.initObserver();
- PackageHelper.refreshLocalPackageList();
- PackageHelper.initList();
-
+ // TODO 因为隐私政策需求,需要改动这里的 rom 获取代码
Rom rom = RomIdentifier.getRom();
if ("miui".equals(rom.name().toLowerCase(Locale.CHINA))) {
DisplayUtils.sShouldUseLegacyMiuiStatusBarMethod = rom.getVersionCode() < 8;
@@ -460,29 +455,10 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid
}
}
- /**
- * 检查当前设备是否为模拟器
- */
- private void checkIfDeviceIsEmulator() {
- mIsEmulator = SPUtils.getBoolean(Constants.SP_IS_EMULATOR);
- if (!mIsEmulator) {
- EmulatorUtil.getSingleInstance().readSysProperty(HaloApp.getInstance().getApplication(), arg -> {
- if (arg) {
- SPUtils.setBoolean(Constants.SP_IS_EMULATOR, true);
- mIsEmulator = true;
- }
- });
- }
- }
-
private void retrieveVGameInfoIfNeeded() {
VHelper.init(this);
}
- public boolean isEmulator() {
- return mIsEmulator;
- }
-
public boolean isReinstallTheSameVersion() {
return mIsReinstallTheSameVersion;
}
@@ -505,11 +481,11 @@ public class HaloApp extends MultiDexApplication implements Configuration.Provid
|| SPUtils.getBooleanWithContext(context, Constants.SP_IS_USER_ACCEPTED_PRIVACY_STATEMENT, false);
}
- @NonNull
- @Override
- public Configuration getWorkManagerConfiguration() {
- return new Configuration.Builder().build();
- }
+// @NonNull
+// @Override
+// public Configuration getWorkManagerConfiguration() {
+// return new Configuration.Builder().build();
+// }
@Override
protected void attachBaseContext(Context base) {
diff --git a/dependencies.gradle b/dependencies.gradle
index 45769e698c..528961ab56 100644
--- a/dependencies.gradle
+++ b/dependencies.gradle
@@ -7,8 +7,8 @@ ext {
targetSdkVersion = 28
// application info (每个大版本之间的 versionCode 增加 20)
- versionCode = 630
- versionName = "5.14.0"
+ versionCode = 611
+ versionName = "5.13.1"
applicationId = "com.gh.gamecenter"
// AndroidX
@@ -114,10 +114,10 @@ ext {
shapeOfView = "1.4.7"
splitties = "3.0.0"
apksig = "1.0.0"
- gid = "1.3.1"
+ gid = "1.3.2"
dokit = "3.5.0"
- sentry = "4.3.0"
+ sentry = "5.7.4"
lancet_version = "v1.0.6"
autoServiceVersion = "1.0-rc7"
diff --git a/libraries/LGLibrary b/libraries/LGLibrary
index 768dcec118..8e00622f01 160000
--- a/libraries/LGLibrary
+++ b/libraries/LGLibrary
@@ -1 +1 @@
-Subproject commit 768dcec118e957f9ae3c64c88f2a3a282c0cc53f
+Subproject commit 8e00622f0154aeb28028d05e85bc1d934978055a
diff --git a/libraries/QQShare/build.gradle b/libraries/QQShare/build.gradle
index 5a298ac9b7..8d1b9140db 100644
--- a/libraries/QQShare/build.gradle
+++ b/libraries/QQShare/build.gradle
@@ -2,7 +2,7 @@ apply plugin: 'com.android.library'
dependencies {
api fileTree(dir: 'libs', exclude: 'android-support-*.jar', include: '*.jar')
- implementation files('libs/open_sdk_3.5.5.79_ra741783e_lite.jar')
+ implementation files('libs/open_sdk_3.5.12.2_r97423a8_lite.jar')
}
android {
diff --git a/libraries/QQShare/libs/open_sdk_3.5.12.2_r97423a8_lite.jar b/libraries/QQShare/libs/open_sdk_3.5.12.2_r97423a8_lite.jar
new file mode 100644
index 0000000000..6e0b4d1857
Binary files /dev/null and b/libraries/QQShare/libs/open_sdk_3.5.12.2_r97423a8_lite.jar differ
diff --git a/libraries/QQShare/libs/open_sdk_3.5.5.79_ra741783e_lite.jar b/libraries/QQShare/libs/open_sdk_3.5.5.79_ra741783e_lite.jar
deleted file mode 100644
index e1a1b2e78a..0000000000
Binary files a/libraries/QQShare/libs/open_sdk_3.5.5.79_ra741783e_lite.jar and /dev/null differ
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 8ac66a7f12..a0617d59c1 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
@@ -63,7 +63,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/constant/Constants.java b/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java
index 9572a83f21..c48713da57 100644
--- a/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java
+++ b/module_common/src/main/java/com/gh/gamecenter/common/constant/Constants.java
@@ -227,12 +227,6 @@ public class Constants {
// 新分类2.0引导
public static final String SP_SHOW_CATEGORY_GUIDE = "show_category_guide";
- // 用户是否需要 weibo x86 so
- public static final String SP_USER_NEED_WEIBO_X86_SO = "user_need_weibo_x86_so";
-
- // 当前设备是不是模拟器
- public static final String SP_IS_EMULATOR = "is_emulator";
-
// 内容视频播放选项
public static final String SP_CONTENT_VIDEO_OPTION = "content_video_option";
// 首页/游戏详情页视频播放选项
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..5e6e16a546 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
@@ -12,36 +12,22 @@ import android.text.TextUtils
import com.alibaba.android.arouter.launcher.ARouter
import com.gh.gamecenter.common.constant.Constants
import com.gh.gamecenter.core.utils.SPUtils
-import com.gh.gamecenter.common.utils.tryWithDefaultCatch
import com.gh.gamecenter.common.HaloApp
import com.gh.gamecenter.common.constant.RouteConsts
import com.gh.gamecenter.core.provider.IAppProvider
import com.gh.gamecenter.core.provider.IBuildConfigProvider
import com.gh.gamecenter.core.provider.IUserManagerProvider
-import com.walkud.rom.checker.RomIdentifier
object MetaUtil {
private val application: Application = HaloApp.getInstance()
- private var channel = ""
private var m: Meta? = null
- private var imei: String? = null
- private var base64EncodedImei: String? = null
private var androidId: String? = null
private var base64EncodedAndroidId: String? = null
- private var romName: String? = null
- private var romVersion: String? = null
-
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
val buildConfigProvider = ARouter.getInstance().build(RouteConsts.provider.buildConfig).navigation() as? IBuildConfigProvider
val userManagerProvider = ARouter.getInstance().build(RouteConsts.provider.userManager).navigation() as? IUserManagerProvider
@@ -61,7 +47,7 @@ object MetaUtil {
appVersion = buildConfigProvider?.getVersionName(),
userId = userManagerProvider?.getUserId(),
exposureVersion = buildConfigProvider?.getExposureVersion(),
- rom = romName + "" + romVersion
+ rom = ""
)
}
@@ -82,62 +68,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/EmulatorUtil.java b/module_common/src/main/java/com/gh/gamecenter/common/utils/EmulatorUtil.java
deleted file mode 100644
index 6c89d30428..0000000000
--- a/module_common/src/main/java/com/gh/gamecenter/common/utils/EmulatorUtil.java
+++ /dev/null
@@ -1,375 +0,0 @@
-package com.gh.gamecenter.common.utils;
-
-import static android.content.Context.SENSOR_SERVICE;
-
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.hardware.Sensor;
-import android.hardware.SensorEvent;
-import android.hardware.SensorEventListener;
-import android.hardware.SensorManager;
-import android.net.Uri;
-import android.text.TextUtils;
-
-import com.gh.gamecenter.common.callback.SimpleCallback;
-import com.lahm.library.CheckResult;
-import com.lahm.library.CommandUtil;
-
-public class EmulatorUtil {
-
- private SimpleCallback mCallback;
-
- private EmulatorUtil() {
-
- }
-
- private static class SingletonHolder {
- private static final EmulatorUtil INSTANCE = new EmulatorUtil();
- }
-
- public static EmulatorUtil getSingleInstance() {
- return SingletonHolder.INSTANCE;
- }
-
- public void readSysProperty(Context context, SimpleCallback callback) {
- if (context == null)
- throw new IllegalArgumentException("context must not be null");
-
- mCallback = callback;
-
- int suspectCount = 0;
-
- //检测硬件名称
- CheckResult hardwareResult = checkFeaturesByHardware();
- switch (hardwareResult.result) {
- case CheckResult.RESULT_MAYBE_EMULATOR:
- ++suspectCount;
- break;
- case CheckResult.RESULT_EMULATOR:
- mCallback.onCallback(true);
- return;
- }
-
- //检测渠道
- CheckResult flavorResult = checkFeaturesByFlavor();
- switch (flavorResult.result) {
- case CheckResult.RESULT_MAYBE_EMULATOR:
- ++suspectCount;
- break;
- case CheckResult.RESULT_EMULATOR:
- mCallback.onCallback(true);
- return;
- }
-
- //检测设备型号
- CheckResult modelResult = checkFeaturesByModel();
- switch (modelResult.result) {
- case CheckResult.RESULT_MAYBE_EMULATOR:
- ++suspectCount;
- break;
- case CheckResult.RESULT_EMULATOR:
- mCallback.onCallback(true);
- return;
- }
-
- //检测硬件制造商
- CheckResult manufacturerResult = checkFeaturesByManufacturer();
- switch (manufacturerResult.result) {
- case CheckResult.RESULT_MAYBE_EMULATOR:
- ++suspectCount;
- break;
- case CheckResult.RESULT_EMULATOR:
- mCallback.onCallback(true);
- return;
- }
-
- //检测主板名称
- CheckResult boardResult = checkFeaturesByBoard();
- switch (boardResult.result) {
- case CheckResult.RESULT_MAYBE_EMULATOR:
- ++suspectCount;
- break;
- case CheckResult.RESULT_EMULATOR:
- mCallback.onCallback(true);
- return;
- }
-
- //检测主板平台
- CheckResult platformResult = checkFeaturesByPlatform();
- switch (platformResult.result) {
- case CheckResult.RESULT_MAYBE_EMULATOR:
- ++suspectCount;
- break;
- case CheckResult.RESULT_EMULATOR:
- mCallback.onCallback(true);
- return;
- }
-
- //检测基带信息
- CheckResult baseBandResult = checkFeaturesByBaseBand();
- switch (baseBandResult.result) {
- case CheckResult.RESULT_MAYBE_EMULATOR:
- suspectCount += 2;//模拟器基带信息为null的情况概率相当大
- break;
- case CheckResult.RESULT_EMULATOR:
- mCallback.onCallback(true);
- return;
- }
-
- //检测传感器数量
- int sensorNumber = getSensorNumber(context);
- if (sensorNumber <= 7) ++suspectCount;
-
- //检测是否支持闪光灯
- boolean supportCameraFlash = supportCameraFlash(context);
- if (!supportCameraFlash) ++suspectCount;
- //检测是否支持相机
- boolean supportCamera = supportCamera(context);
- if (!supportCamera) ++suspectCount;
- //检测是否支持蓝牙
- boolean supportBluetooth = supportBluetooth(context);
- if (!supportBluetooth) ++suspectCount;
-
- //检测光线传感器
- boolean hasLightSensor = hasLightSensor(context);
- if (!hasLightSensor) ++suspectCount;
-
- //检测进程组信息
- CheckResult cgroupResult = checkFeaturesByCgroup();
- if (cgroupResult.result == CheckResult.RESULT_MAYBE_EMULATOR) ++suspectCount;
-
- if (suspectCount > 3) {
- mCallback.onCallback(true);
- return;
- }
- // 如果有陀螺仪传感器就根据陀螺仪传感器数值判断,因为模拟器的陀螺仪数值都是0.0
- checkGyroscopeSensor(context);
- }
-
- private String getProperty(String propName) {
- String property = CommandUtil.getSingleInstance().getProperty(propName);
- return TextUtils.isEmpty(property) ? null : property;
- }
-
- /**
- * 特征参数-硬件名称
- *
- * @return 0表示可能是模拟器,1表示模拟器,2表示可能是真机
- */
- private CheckResult checkFeaturesByHardware() {
- String hardware = getProperty("ro.hardware");
- if (null == hardware) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- int result;
- String tempValue = hardware.toLowerCase();
- switch (tempValue) {
- case "ttvm"://天天模拟器
- case "nox"://夜神模拟器
- case "cancro"://网易MUMU模拟器
- case "intel"://逍遥模拟器
- case "vbox":
- case "vbox86"://腾讯手游助手
- case "android_x86"://雷电模拟器
- result = CheckResult.RESULT_EMULATOR;
- break;
- default:
- result = CheckResult.RESULT_UNKNOWN;
- break;
- }
- return new CheckResult(result, hardware);
- }
-
- /**
- * 特征参数-渠道
- *
- * @return 0表示可能是模拟器,1表示模拟器,2表示可能是真机
- */
- private CheckResult checkFeaturesByFlavor() {
- String flavor = getProperty("ro.build.flavor");
- if (null == flavor) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- int result;
- String tempValue = flavor.toLowerCase();
- if (tempValue.contains("vbox")) result = CheckResult.RESULT_EMULATOR;
- else if (tempValue.contains("sdk_gphone")) result = CheckResult.RESULT_EMULATOR;
- else result = CheckResult.RESULT_UNKNOWN;
- return new CheckResult(result, flavor);
- }
-
- /**
- * 特征参数-设备型号
- *
- * @return 0表示可能是模拟器,1表示模拟器,2表示可能是真机
- */
- private CheckResult checkFeaturesByModel() {
- String model = getProperty("ro.product.model");
- if (null == model) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- int result;
- String tempValue = model.toLowerCase();
- if (tempValue.contains("google_sdk")) result = CheckResult.RESULT_EMULATOR;
- else if (tempValue.contains("emulator")) result = CheckResult.RESULT_EMULATOR;
- else if (tempValue.contains("android sdk built for x86")) result = CheckResult.RESULT_EMULATOR;
- else result = CheckResult.RESULT_UNKNOWN;
- return new CheckResult(result, model);
- }
-
- /**
- * 特征参数-硬件制造商
- *
- * @return 0表示可能是模拟器,1表示模拟器,2表示可能是真机
- */
- private CheckResult checkFeaturesByManufacturer() {
- String manufacturer = getProperty("ro.product.manufacturer");
- if (null == manufacturer) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- int result;
- String tempValue = manufacturer.toLowerCase();
- if (tempValue.contains("genymotion")) result = CheckResult.RESULT_EMULATOR;
- else if (tempValue.contains("netease")) result = CheckResult.RESULT_EMULATOR;//网易MUMU模拟器
- else result = CheckResult.RESULT_UNKNOWN;
- return new CheckResult(result, manufacturer);
- }
-
- /**
- * 特征参数-主板名称
- *
- * @return 0表示可能是模拟器,1表示模拟器,2表示可能是真机
- */
- private CheckResult checkFeaturesByBoard() {
- String board = getProperty("ro.product.board");
- if (null == board) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- int result;
- String tempValue = board.toLowerCase();
- if (tempValue.contains("android")) result = CheckResult.RESULT_EMULATOR;
- else if (tempValue.contains("goldfish")) result = CheckResult.RESULT_EMULATOR;
- else result = CheckResult.RESULT_UNKNOWN;
- return new CheckResult(result, board);
- }
-
- /**
- * 特征参数-主板平台
- *
- * @return 0表示可能是模拟器,1表示模拟器,2表示可能是真机
- */
- private CheckResult checkFeaturesByPlatform() {
- String platform = getProperty("ro.board.platform");
- if (null == platform) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- int result;
- String tempValue = platform.toLowerCase();
- if (tempValue.contains("android")) result = CheckResult.RESULT_EMULATOR;
- else result = CheckResult.RESULT_UNKNOWN;
- return new CheckResult(result, platform);
- }
-
- /**
- * 特征参数-基带信息
- *
- * @return 0表示可能是模拟器,1表示模拟器,2表示可能是真机
- */
- private CheckResult checkFeaturesByBaseBand() {
- String baseBandVersion = getProperty("gsm.version.baseband");
- if (null == baseBandVersion) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- int result;
- if (baseBandVersion.contains("1.0.0.0")) result = CheckResult.RESULT_EMULATOR;
- else result = CheckResult.RESULT_UNKNOWN;
- return new CheckResult(result, baseBandVersion);
- }
-
- /**
- * 获取传感器数量
- */
- private int getSensorNumber(Context context) {
- SensorManager sm = (SensorManager) context.getSystemService(SENSOR_SERVICE);
- return sm.getSensorList(Sensor.TYPE_ALL).size();
- }
-
- /**
- * 是否支持相机
- */
- private boolean supportCamera(Context context) {
- return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA);
- }
-
- /**
- * 是否支持闪光灯
- */
- private boolean supportCameraFlash(Context context) {
- return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH);
- }
-
- /**
- * 是否支持蓝牙
- */
- private boolean supportBluetooth(Context context) {
- return context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH);
- }
-
- /**
- * 判断是否存在光传感器来判断是否为模拟器
- * 部分真机也不存在温度和压力传感器。其余传感器模拟器也存在。
- *
- * @return false为模拟器
- */
- private boolean hasLightSensor(Context context) {
- SensorManager sensorManager = (SensorManager) context.getSystemService(SENSOR_SERVICE);
- Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_LIGHT); //光线传感器
- if (null == sensor) return false;
- else return true;
- }
-
- /**
- * 特征参数-进程组信息
- */
- private CheckResult checkFeaturesByCgroup() {
- String filter = CommandUtil.getSingleInstance().exec("cat /proc/self/cgroup");
- if (null == filter) return new CheckResult(CheckResult.RESULT_MAYBE_EMULATOR, null);
- return new CheckResult(CheckResult.RESULT_UNKNOWN, filter);
- }
-
- /**
- * 检查是否可以拨打电话和发短信
- */
- private void checkCallPhone(Context context) {
- try {
- Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:123456"));
- intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-
- Intent intent2 = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:123456"));
- intent2.putExtra("sms_body", "test");
-
- if (intent.resolveActivity(context.getPackageManager()) == null || intent2.resolveActivity(context.getPackageManager()) == null) {
- mCallback.onCallback(true);
- }
- } catch (Exception ignore) {
- }
- }
-
- private void checkGyroscopeSensor(Context context) {
- SensorManager sensorManager = (SensorManager) context.getSystemService(Context.SENSOR_SERVICE);
- SensorEventListener listener = new SensorEventListener() {
- int changeTimes = 0;
- int zeroTimes = 0;
-
- @Override
- public void onSensorChanged(SensorEvent event) {
- changeTimes++;
- if (event.values[0] == 0.0 && event.values[1] == 0.0 && event.values[2] == 0.0) {
- zeroTimes++;
- }
- if (changeTimes > 50) {
- if (changeTimes == zeroTimes) {
- checkCallPhone(context);
- }
- sensorManager.unregisterListener(this);
- }
- }
-
- @Override
- public void onAccuracyChanged(Sensor sensor, int accuracy) {
-
- }
- };
- Sensor sensor = sensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE);
- if (sensor != null) {
- sensorManager.registerListener(listener, sensor, SensorManager.SENSOR_DELAY_FASTEST);
- }
- }
-}
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/build.gradle b/module_core/build.gradle
index fd4c8f9379..8943ec8f9f 100644
--- a/module_core/build.gradle
+++ b/module_core/build.gradle
@@ -83,7 +83,7 @@ dependencies {
exclude group: 'com.facebook.fresco'
})
api "com.lahm.library:easy-protector-release:${easyProtector}"
- api "io.sentry:sentry-android:4.3.0"
+ api "io.sentry:sentry-android:5.7.4"
api "com.alibaba:arouter-api:$arouterVersion"
kapt "com.alibaba:arouter-compiler:$arouterVersion"
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_core/src/main/java/com/gh/gamecenter/core/utils/SentryHelper.kt b/module_core/src/main/java/com/gh/gamecenter/core/utils/SentryHelper.kt
index 4d7e82c8fc..03beb91ad4 100644
--- a/module_core/src/main/java/com/gh/gamecenter/core/utils/SentryHelper.kt
+++ b/module_core/src/main/java/com/gh/gamecenter/core/utils/SentryHelper.kt
@@ -25,7 +25,7 @@ object SentryHelper {
val key = kv[i - 1]
val value = kv[i]
if (!TextUtils.isEmpty(key) && !TextUtils.isEmpty(value)) {
- sentryEvent.setTag(key, value)
+ sentryEvent.setTag(key!!, value!!)
if (BuildConfig.DEBUG && isContainChinese(key)) {
throw RuntimeException("tag-key 不支持中文")
}
diff --git a/module_login/src/main/java/com/gh/gamecenter/login/utils/LoginHelper.kt b/module_login/src/main/java/com/gh/gamecenter/login/utils/LoginHelper.kt
index 485cbba03f..6f2e630600 100644
--- a/module_login/src/main/java/com/gh/gamecenter/login/utils/LoginHelper.kt
+++ b/module_login/src/main/java/com/gh/gamecenter/login/utils/LoginHelper.kt
@@ -175,15 +175,6 @@ object LoginHelper {
// 微博登录
@JvmStatic
fun loginWithWeibo(loginCallback: LoginCallback, context: Activity) {
-
- tryWithDefaultCatch {
- if (SPUtils.getBoolean(Constants.SP_USER_NEED_WEIBO_X86_SO)) {
- SentryHelper.onEvent(
- "weibo_sdk_login_error",
- "exception_digest", "no_x86_so");
- }
- }
-
mWBAPI = WBAPIFactory.createWBAPI(context) //初始化微博分享
mLoginCallback = loginCallback
val config = ARouter.getInstance().build(RouteConsts.provider.config).navigation() as? IConfigProvider
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 76ac021687..104f939d76 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
@@ -296,18 +296,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() {