完成光环助手3.7.0(1017测试汇总)(1~2, 17~19) https://gitlab.ghzs.com/pm/halo-app-issues/issues/669

This commit is contained in:
chenjuntao
2019-10-19 16:33:50 +08:00
parent cbbf4b71c2
commit 986b99479d
9 changed files with 92 additions and 108 deletions

View File

@ -1,25 +1,16 @@
package com.gh.gamecenter;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.net.Uri;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.gh.base.BaseActivity;
import com.gh.common.util.DataUtils;
import com.gh.common.util.DeviceTokenUtils;
@ -28,7 +19,6 @@ import com.gh.common.util.DialogUtils;
import com.gh.common.util.EmptyCallback;
import com.gh.common.util.GameRepositoryHelper;
import com.gh.common.util.GdtHelper;
import com.gh.common.util.MtaHelper;
import com.gh.common.util.PackageUtils;
import com.gh.common.util.PlatformUtils;
import com.gh.common.util.SPUtils;
@ -54,11 +44,12 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
import androidx.annotation.NonNull;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody;
import pub.devrel.easypermissions.AfterPermissionGranted;
import pub.devrel.easypermissions.EasyPermissions;
/**
* 引导页面
@ -72,10 +63,6 @@ public class SplashScreenActivity extends BaseActivity {
private static final int REQUEST_PERMISSION_TAG = 30001;
private static final String SP_BRAND_NEW_USER = "brand_new_user"; // 用于标记是否为新用户,应用更新再打开的不算是新用户
private String[] mPermissions = {
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.READ_PHONE_STATE};
public static Intent getSplashScreenIntent(Context context, Bundle bundle) {
Intent intent = new Intent(context, SplashScreenActivity.class);
@ -95,6 +82,8 @@ public class SplashScreenActivity extends BaseActivity {
super.onCreate(savedInstanceState);
UserRepository.getInstance(getApplication()); // 初始化登录
GdtHelper.INSTANCE.logAction(ActionType.START_APP, GdtHelper.NETWORK_TYPE, DeviceUtils.getNetwork(this));
// 处理助手已经在后台运行导致的再次启动助手
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
@ -118,6 +107,12 @@ public class SplashScreenActivity extends BaseActivity {
break;
}
}
try {
HaloApp.getInstance().getMainExecutor().execute(this::checkOldGhFile);
} catch (Exception ignored) {
}
mContentView.setPadding(0, 0, 0, 0);
ViewPager guideLayout = findViewById(R.id.splash_intro_vp_guide);
@ -128,10 +123,10 @@ public class SplashScreenActivity extends BaseActivity {
showPrivacyPolicy(() -> {
// Dialog dismiss 后的回调
SPUtils.setBoolean(SP_BRAND_NEW_USER, false);
requestPermissionAndLaunchMainActivity();
launchMainActivity();
});
} else {
requestPermissionAndLaunchMainActivity();
launchMainActivity();
}
} else {
setTheme(R.style.AppFullScreenTheme);
@ -140,14 +135,6 @@ public class SplashScreenActivity extends BaseActivity {
}
}
private void requestPermissionAndLaunchMainActivity() {
if (EasyPermissions.hasPermissions(this, mPermissions)) {
GdtHelper.INSTANCE.logAction(ActionType.START_APP, GdtHelper.NETWORK_TYPE, DeviceUtils.getNetwork(this));
} else {
checkAndRequestPermission();
}
}
@SuppressLint("CheckResult")
private void showPrivacyPolicy(EmptyCallback callback) {
RetrofitManager.getInstance(this).getApi()
@ -189,18 +176,6 @@ public class SplashScreenActivity extends BaseActivity {
return layoutId;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (isNewFirstLaunch && EasyPermissions.hasPermissions(this, mPermissions)) {
launchMainActivity();
} else {
return true;
}
}
return super.onKeyDown(keyCode, event);
}
// 跳转到主界面
private void launchMainActivity() {
getUniqueId();
@ -251,47 +226,6 @@ public class SplashScreenActivity extends BaseActivity {
}
}
@AfterPermissionGranted(REQUEST_PERMISSION_TAG)
private void checkAndRequestPermission() {
if (EasyPermissions.hasPermissions(this, mPermissions)) {
MtaHelper.onEvent("授权情况", "启动授权", "都授权");
// 检查是否有旧版本光环,有就删掉
HaloApp.getInstance().getMainExecutor().execute(this::checkOldGhFile);
} else {
ActivityCompat.requestPermissions(this, mPermissions, REQUEST_PERMISSION_TAG);
}
}
@Override
public void onPermissionsDenied(int requestCode, List<String> perms) {
if (EasyPermissions.somePermissionPermanentlyDenied(this, perms)) { // 设置"不要再询问",必须手动到系统设置授权
DialogUtils.showPermissionDialog(this, "权限申请",
"光环助手需要获取(存储空间权限)和(手机信息),以保证游戏的正常下载以及您的账号安全", "去设置", "放弃",
() -> {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}, () -> logGrantedPermission(perms));
} else {
DialogUtils.showPermissionDialog(this, "权限申请",
"在设置-应用-光环助手-权限中开启存储和手机信息权限,以保证能正常使用相关功能", "重试", "放弃",
this::checkAndRequestPermission,
() -> logGrantedPermission(perms));
}
}
private void logGrantedPermission(List<String> perms) {
if (perms.size() == 1) {
MtaHelper.onEvent("授权情况", "启动授权", "只授权存储");
} else {
if (perms.contains(Manifest.permission.READ_PHONE_STATE)) {
MtaHelper.onEvent("授权情况", "启动授权", "都不授权");
} else {
MtaHelper.onEvent("授权情况", "启动授权", "只授权IMEI");
}
}
}
// 检查下载文件夹下是否有旧版本的光环助手的包,有则删除
private void checkOldGhFile() {
File folder = new File(FileUtils.getDownloadDir(this) + File.separator);