光环助手V3.7.0 RELEASE(20191022-1830)测试汇总(7.8.9.10.15) https://gitlab.ghzs.com/pm/halo-app-issues/issues/674

This commit is contained in:
kehaoyuan
2019-10-24 15:30:39 +08:00
parent 066b667bd8
commit df3dd297c1
16 changed files with 318 additions and 242 deletions

View File

@ -15,6 +15,11 @@ 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;
@ -49,10 +54,6 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
import androidx.annotation.NonNull;
import androidx.core.app.ActivityCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import okhttp3.ResponseBody;
@ -63,19 +64,19 @@ import pub.devrel.easypermissions.EasyPermissions;
* 引导页面
*/
public class SplashScreenActivity extends BaseActivity {
private SharedPreferences mSharedPreferences;
private boolean isFirst;
private boolean isNewFirstLaunch;
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};
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);
intent.setAction(Intent.ACTION_MAIN);
@ -84,31 +85,31 @@ public class SplashScreenActivity extends BaseActivity {
intent.putExtras(bundle);
return intent;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
isNewFirstLaunch = mSharedPreferences.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(), true);
super.onCreate(savedInstanceState);
UserRepository.getInstance(getApplication()); // 初始化登录
// 处理助手已经在后台运行导致的再次启动助手
if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) {
finish();
return;
}
TimestampUtils.initMap();
isFirst = true;
// 判断是不是这个版本的新用户
if (isNewFirstLaunch) {
setTheme(R.style.AppGuideTheme);
// 删除更新后的光环助手包
List<DownloadEntity> all = DownloadManager.getInstance(this).getAll();
for (DownloadEntity downloadEntity : all) {
@ -117,14 +118,17 @@ public class SplashScreenActivity extends BaseActivity {
break;
}
}
mContentView.setPadding(0, 0, 0, 0);
ViewPager guideLayout = findViewById(R.id.splash_intro_vp_guide);
guideLayout.setAdapter(new GuidePagerAdapter());
// 判断是不是光环的新用户
if (SPUtils.getBoolean(SP_BRAND_NEW_USER, true)) {
View introBackground = findViewById(R.id.splash_intro_background);
introBackground.setVisibility(View.VISIBLE);
showPrivacyPolicy(() -> {
introBackground.setVisibility(View.GONE);
// Dialog dismiss 后的回调
SPUtils.setBoolean(SP_BRAND_NEW_USER, false);
requestPermissionAndLaunchMainActivity();
@ -134,11 +138,11 @@ public class SplashScreenActivity extends BaseActivity {
}
} else {
setTheme(R.style.AppFullScreenTheme);
getWindow().getDecorView().postDelayed(this::launchMainActivity, 1000);
}
}
private void requestPermissionAndLaunchMainActivity() {
if (EasyPermissions.hasPermissions(this, mPermissions)) {
GdtHelper.INSTANCE.logAction(ActionType.START_APP, GdtHelper.NETWORK_TYPE, DeviceUtils.getNetwork(this));
@ -146,48 +150,48 @@ public class SplashScreenActivity extends BaseActivity {
checkAndRequestPermission();
}
}
@SuppressLint("CheckResult")
private void showPrivacyPolicy(EmptyCallback callback) {
RetrofitManager.getInstance(this).getApi()
.getPrivacyPolicy()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BiResponse<ResponseBody>() {
@Override
public void onSuccess(ResponseBody data) {
String content = null;
String title = null;
try {
content = new JSONObject(data.string()).getString("content");
title = new JSONObject(data.string()).getString("title");
} catch (Exception e) {
e.printStackTrace();
} finally {
DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, title, content, callback);
.getPrivacyPolicy()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new BiResponse<ResponseBody>() {
@Override
public void onSuccess(ResponseBody data) {
String content = null;
String title = null;
try {
content = new JSONObject(data.string()).getString("content");
title = new JSONObject(data.string()).getString("title");
} catch (Exception e) {
e.printStackTrace();
} finally {
DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, title, content, callback);
}
}
}
@Override
public void onFailure(@NotNull Exception exception) {
DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, null, null, callback);
}
});
@Override
public void onFailure(@NotNull Exception exception) {
DialogUtils.showPrivacyPolicyDialog(SplashScreenActivity.this, null, null, callback);
}
});
}
@Override
protected int getLayoutId() {
final int layoutId;
if (isNewFirstLaunch) {
layoutId = R.layout.activity_splash_intro;
} else {
layoutId = R.layout.activity_splash_normal;
}
return layoutId;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
@ -199,30 +203,30 @@ public class SplashScreenActivity extends BaseActivity {
}
return super.onKeyDown(keyCode, event);
}
// 跳转到主界面
private void launchMainActivity() {
getUniqueId();
Bundle bundle = getIntent().getExtras();
Intent intent = new Intent(SplashScreenActivity.this, MainActivity.class);
if (bundle != null) intent.putExtras(bundle);
startActivity(intent);
finish();
}
private void getUniqueId() {
DataUtils.getGid();
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus && isFirst) {
isFirst = false;
GameRepositoryHelper.getGameRepository(this);
HaloApp.getInstance().getMainExecutor().execute(() -> {
// 第一次启动把package.txt文件内容加载进数据库
FilterManager filterManager = new FilterManager(getApplicationContext());
@ -231,7 +235,7 @@ public class SplashScreenActivity extends BaseActivity {
}
// 获取过滤包
filterManager.getFilterFromServer(0);
// 更新过滤表获取自动刷新的cd获取版本对应表
String time = mSharedPreferences.getString("refresh_time", null);
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
@ -241,15 +245,15 @@ public class SplashScreenActivity extends BaseActivity {
PlatformUtils.getInstance(getApplicationContext()).getPlatform();
TagUtils.getInstance(getApplicationContext()).getTag();
}
// 更新本地时间
DeviceTokenUtils.syncServerTime(this);
DownloadManager.getInstance(this).initDownloadService();
});
}
}
@AfterPermissionGranted(REQUEST_PERMISSION_TAG)
private void checkAndRequestPermission() {
if (EasyPermissions.hasPermissions(this, mPermissions)) {
@ -260,25 +264,25 @@ public class SplashScreenActivity extends BaseActivity {
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));
"光环助手需要获取(存储空间权限)和(手机信息),以保证游戏的正常下载以及您的账号安全", "去设置", "放弃",
() -> {
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));
"在设置-应用-光环助手-权限中开启存储和手机信息权限,以保证能正常使用相关功能", "重试", "放弃",
this::checkAndRequestPermission,
() -> logGrantedPermission(perms));
}
}
private void logGrantedPermission(List<String> perms) {
if (perms.size() == 1) {
MtaHelper.onEvent("授权情况", "启动授权", "只授权存储");
@ -290,7 +294,7 @@ public class SplashScreenActivity extends BaseActivity {
}
}
}
// 检查下载文件夹下是否有旧版本的光环助手的包,有则删除
private void checkOldGhFile() {
File folder = new File(FileUtils.getDownloadDir(this) + File.separator);
@ -307,23 +311,23 @@ public class SplashScreenActivity extends BaseActivity {
Utils.log(file.getName() + " file delete success.");
}
} catch (Exception ignore) {
}
}
}
}
}
}
private class GuidePagerAdapter extends PagerAdapter {
private int[] mPics = {R.drawable.splash_01};
@Override
public int getCount() {
return mPics.length;
}
@NonNull
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
@ -337,16 +341,16 @@ public class SplashScreenActivity extends BaseActivity {
container.addView(view);
return view;
}
@Override
public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
container.removeView((View) object);
}
@Override
public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
return view == object;
}
}
}