This commit is contained in:
juntao
2020-11-09 11:52:04 +08:00
parent 6fcd8397b6
commit 992ec7bfe8
10 changed files with 139 additions and 128 deletions

View File

@ -15,6 +15,12 @@ import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.app.ActivityCompat;
import androidx.viewpager.widget.PagerAdapter;
import androidx.viewpager.widget.ViewPager;
import com.g00fy2.versioncompare.Version;
import com.gh.base.BaseActivity;
import com.gh.common.AppExecutor;
@ -56,11 +62,6 @@ import java.util.Date;
import java.util.List;
import java.util.Locale;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
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;
@ -74,7 +75,8 @@ public class SplashScreenActivity extends BaseActivity {
private SharedPreferences mSharedPreferences;
private boolean isNewFirstLaunch;
private boolean mIsNewForThisVersion;
private boolean mStartMainActivityDirectly = false; // 是否不需要用户点击立即体验就直接跳转首页
private static final int REQUEST_PERMISSION_TAG = 30001;
private String[] mPermissions = {
@ -94,7 +96,7 @@ public class SplashScreenActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
mSharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
isNewFirstLaunch = mSharedPreferences.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(), true);
mIsNewForThisVersion = mSharedPreferences.getBoolean("isNewFirstLaunchV" + PackageUtils.getVersionName(), true);
super.onCreate(savedInstanceState);
@ -105,13 +107,14 @@ public class SplashScreenActivity extends BaseActivity {
}
// 判断是不是这个版本的新用户
if (isNewFirstLaunch) {
if (mIsNewForThisVersion) {
mContentView.setPadding(0, 0, 0, 0);
ViewPager guideLayout = findViewById(R.id.splash_intro_vp_guide);
guideLayout.setAdapter(new GuidePagerAdapter());
// 判断是不是光环的新用户
if (SPUtils.getBoolean(Constants.SP_BRAND_NEW_USER, true)) {
mStartMainActivityDirectly = true;
SPUtils.setLong(Constants.SP_INITIAL_USAGE_TIME, System.currentTimeMillis());
HaloApp.getInstance().isBrandNewInstall = true;
showPrivacyDialog(guideLayout);
@ -136,7 +139,7 @@ public class SplashScreenActivity extends BaseActivity {
requestPermission();
});
} else {
DialogUtils.showPrivacyPolicyDisallowDialog(this, PrivacyPolicyEntity.createDefaultData(),()->{
DialogUtils.showPrivacyPolicyDisallowDialog(this, PrivacyPolicyEntity.createDefaultData(), () -> {
showPrivacyDialog(guideLayout);
});
}
@ -245,7 +248,7 @@ public class SplashScreenActivity extends BaseActivity {
@Override
protected int getLayoutId() {
if (isNewFirstLaunch) {
if (mIsNewForThisVersion) {
return R.layout.activity_splash_intro;
} else {
return 0;
@ -255,7 +258,7 @@ public class SplashScreenActivity extends BaseActivity {
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
if (isNewFirstLaunch && EasyPermissions.hasPermissions(this, mPermissions)) {
if (mIsNewForThisVersion && EasyPermissions.hasPermissions(this, mPermissions)) {
launchMainActivity();
} else {
return true;
@ -336,6 +339,9 @@ public class SplashScreenActivity extends BaseActivity {
MtaHelper.onEvent("授权情况", "启动授权", "都授权");
// 检查是否有旧版本光环,有就删掉
AppExecutor.getIoExecutor().execute(this::deleteOutdatedUpdatePackage);
if (mStartMainActivityDirectly) {
launchMainActivity();
}
} else {
ActivityCompat.requestPermissions(this, mPermissions, REQUEST_PERMISSION_TAG);
}
@ -350,12 +356,22 @@ public class SplashScreenActivity extends BaseActivity {
Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}, () -> logGrantedPermission(perms));
}, () -> {
logGrantedPermission(perms);
if (mStartMainActivityDirectly) {
launchMainActivity();
}
});
} else {
DialogUtils.showPermissionDialog(this, "权限申请",
"在设置-应用-光环助手-权限中开启存储和手机信息权限,以保证能正常使用相关功能", "重试", "放弃",
this::checkAndRequestPermission,
() -> logGrantedPermission(perms));
() -> {
logGrantedPermission(perms);
if (mStartMainActivityDirectly) {
launchMainActivity();
}
});
}
}