From 7d554c1c55ad4dbb4dc3ebefbaf23789b2524554 Mon Sep 17 00:00:00 2001 From: ShirosakiMio <852468399@qq.com> Date: Fri, 14 Jun 2024 18:50:57 +0800 Subject: [PATCH] Update SplashActivity.java --- .../tungsten/fcl/activity/SplashActivity.java | 38 ++++++++++--------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/FCL/src/main/java/com/tungsten/fcl/activity/SplashActivity.java b/FCL/src/main/java/com/tungsten/fcl/activity/SplashActivity.java index 5fe62972..1769d524 100644 --- a/FCL/src/main/java/com/tungsten/fcl/activity/SplashActivity.java +++ b/FCL/src/main/java/com/tungsten/fcl/activity/SplashActivity.java @@ -1,21 +1,25 @@ package com.tungsten.fcl.activity; -import static android.Manifest.permission.*; +import static android.Manifest.permission.READ_EXTERNAL_STORAGE; +import static android.Manifest.permission.WRITE_EXTERNAL_STORAGE; + import android.Manifest; import android.annotation.SuppressLint; -import android.app.AlertDialog; -import android.content.*; +import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.provider.Settings; + import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; + import com.tungsten.fcl.R; import com.tungsten.fcl.fragment.EulaFragment; import com.tungsten.fcl.fragment.RuntimeFragment; @@ -27,8 +31,10 @@ import com.tungsten.fcllibrary.component.FCLActivity; import com.tungsten.fcllibrary.component.ResultListener; import com.tungsten.fcllibrary.component.dialog.FCLAlertDialog; import com.tungsten.fcllibrary.component.theme.ThemeEngine; + import java.io.IOException; -import java.nio.file.*; +import java.nio.file.Path; +import java.nio.file.Paths; @SuppressLint("CustomSplashScreen") public class SplashActivity extends FCLActivity { @@ -72,9 +78,8 @@ public class SplashActivity extends FCLActivity { } else { if (ActivityCompat.shouldShowRequestPermissionRationale(this, WRITE_EXTERNAL_STORAGE) || ActivityCompat.shouldShowRequestPermissionRationale(this, READ_EXTERNAL_STORAGE)) { // 若用户第一次拒绝了授予,那么将会弹窗提醒用户为什么需要该权限 - enableAlertDialog((dialog, which) -> { + enableAlertDialog(() -> { ActivityCompat.requestPermissions(this, new String[]{WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE}, RequestCodes.PERMISSION_REQUEST_CODE); - dialog.dismiss(); }, getString(R.string.splash_permission_title), getString(R.string.splash_permission_msg), getString(R.string.splash_permission_grant), getString(R.string.splash_permission_close)); } else { // 没有勾选始终拒绝的化则继续请求权限 @@ -111,8 +116,7 @@ public class SplashActivity extends FCLActivity { SharedPreferences sharedPreferences = getSharedPreferences("launcher", MODE_PRIVATE); if (sharedPreferences.getBoolean("isFirstLaunch", true)) { getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.frag_start_anim, R.anim.frag_stop_anim).replace(R.id.fragment, eulaFragment).commit(); - } - else { + } else { getSupportFragmentManager().beginTransaction().setCustomAnimations(R.anim.frag_start_anim, R.anim.frag_stop_anim).replace(R.id.fragment, runtimeFragment).commit(); } } @@ -143,19 +147,19 @@ public class SplashActivity extends FCLActivity { } else { if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) || !ActivityCompat.shouldShowRequestPermissionRationale(this, READ_EXTERNAL_STORAGE)) { // 用户勾选了“始终拒绝” - enableAlertDialog((dialog, which) -> { + enableAlertDialog(() -> { Intent intent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS); Uri uri = Uri.fromParts("package", getPackageName(), null); intent.setData(uri); ResultListener.startActivityForResult(this, intent, RequestCodes.PERMISSION_REQUEST_CODE, (requestCode1, resultCode, data) -> { if (requestCode1 == RequestCodes.PERMISSION_REQUEST_CODE) { - if (ActivityCompat.checkSelfPermission(this, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) init(); - else onRequestPermissionsResult(requestCode1, permissions, grantResults); - + if (ActivityCompat.checkSelfPermission(this, READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(this, WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { + init(); + } else { + onRequestPermissionsResult(requestCode1, permissions, grantResults); + } } }); - - dialog.dismiss(); }, getString(R.string.splash_permission_title), getString(R.string.splash_permission_settings_msg), getString(R.string.splash_permission_settings), getString(R.string.splash_permission_close)); } else { // 用户只是拒绝了权限 @@ -165,12 +169,12 @@ public class SplashActivity extends FCLActivity { } } - private void enableAlertDialog(DialogInterface.OnClickListener positiveButtonEvent, String... strings) { - new AlertDialog.Builder(this) + private void enableAlertDialog(FCLAlertDialog.ButtonListener positiveButtonEvent, String... strings) { + new FCLAlertDialog.Builder(this) .setTitle(String.valueOf(strings[0])) .setMessage(String.valueOf(strings[1])) .setPositiveButton(String.valueOf(strings[2]), positiveButtonEvent) - .setNegativeButton(String.valueOf(strings[3]), (dialog, which) -> System.exit(0)) + .setNegativeButton(String.valueOf(strings[3]), () -> System.exit(0)) .setCancelable(false) .create() .show();