Skip to content

Commit 6eea1c0

Browse files
committed
Update
1 parent b17a1d8 commit 6eea1c0

1 file changed

Lines changed: 15 additions & 13 deletions

File tree

app/src/main/java/com/tool/tree/SplashActivity.kt

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,17 @@ class SplashActivity : AppCompatActivity() {
5353
return
5454
}
5555

56-
// 2. Logic khởi đầu: Nếu chưa đồng ý hoặc thiếu quyền thì hiện Dialog
57-
if (hasAgreed() && hasRequiredPermissions()) {
58-
checkPermissionsNextStep()
59-
} else {
56+
// 2. Logic khởi đầu: Tách biệt "Đồng ý điều khoản" và "Quyền hệ thống"
57+
if (!hasAgreed()) {
58+
// Nếu chưa từng đồng ý điều khoản, hiện Dialog đầu tiên
6059
showAgreementDialog()
60+
} else {
61+
// Đã đồng ý điều khoản rồi, chỉ kiểm tra quyền Android
62+
if (hasRequiredPermissions()) {
63+
checkPermissionsNextStep()
64+
} else {
65+
requestRequiredPermissions()
66+
}
6167
}
6268

6369
binding.startLogoXml.startAnimation(AnimationUtils.loadAnimation(this, R.anim.ic_settings_rotate))
@@ -72,10 +78,12 @@ class SplashActivity : AppCompatActivity() {
7278
getString(R.string.permission_dialog_title),
7379
getString(R.string.permission_dialog_message),
7480
Runnable {
75-
// Người dùng đồng ý bảng Dialog -> Chuyển sang xin quyền bộ nhớ hệ thống
81+
// Quan trọng: Lưu trạng thái đồng ý ngay khi nhấn nút
82+
saveAgreement()
83+
// Sau đó mới đi xin quyền hệ thống
7684
requestRequiredPermissions()
7785
},
78-
Runnable { finishAffinity() } // Không đồng ý -> Thoát ứng dụng
86+
Runnable { finishAffinity() }
7987
).setCancelable(false)
8088
}
8189

@@ -106,7 +114,7 @@ class SplashActivity : AppCompatActivity() {
106114
}
107115

108116
private fun checkPermissionsNextStep() {
109-
// Ưu tiên sau: Nếu là Android 11+ và chưa có quyền "All Files Access"
117+
// Nếu là Android 11+ và chưa có quyền "All Files Access"
110118
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !Environment.isExternalStorageManager()) {
111119
requestManageAllFilesPermission()
112120
} else {
@@ -129,11 +137,9 @@ class SplashActivity : AppCompatActivity() {
129137
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
130138
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
131139
if (requestCode == REQUEST_CODE_PERMISSIONS) {
132-
// Nếu người dùng đồng ý các quyền bộ nhớ cơ bản
133140
if (grantResults.isNotEmpty() && grantResults.all { it == PackageManager.PERMISSION_GRANTED }) {
134141
checkPermissionsNextStep()
135142
} else {
136-
// Nếu từ chối bất kỳ quyền nào -> Thoát app
137143
finishAffinity()
138144
}
139145
}
@@ -142,7 +148,6 @@ class SplashActivity : AppCompatActivity() {
142148
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
143149
super.onActivityResult(requestCode, resultCode, data)
144150
if (requestCode == REQUEST_CODE_MANAGE_ALL_FILES) {
145-
// Sau khi từ màn hình cài đặt All Files quay lại, tiến hành check root
146151
checkRootAndStart()
147152
}
148153
}
@@ -154,9 +159,6 @@ class SplashActivity : AppCompatActivity() {
154159
if (started) return
155160
started = true
156161

157-
// Khi đã vượt qua hết các bước xin quyền và bắt đầu check root -> Lưu trạng thái đồng ý
158-
saveAgreement()
159-
160162
lifecycleScope.launch(Dispatchers.IO) {
161163
hasRoot = KeepShellPublic.checkRoot()
162164
withContext(Dispatchers.Main) {

0 commit comments

Comments
 (0)