@@ -112,26 +112,37 @@ class PermissionsFragment : Fragment() {
112112
113113 if (hasRoot) {
114114 selectMode(Constants .MODE_ROOT )
115+ binding.btnCheckRoot.text = getString(R .string.status_access_granted)
116+ binding.btnCheckRoot.isEnabled = false // Keep disabled when granted
115117 Toast .makeText(context, R .string.root_granted, Toast .LENGTH_SHORT ).show()
116118 } else {
119+ binding.btnCheckRoot.isEnabled = true
120+ binding.btnCheckRoot.text = getString(R .string.btn_check)
117121 Toast .makeText(context, R .string.root_denied, Toast .LENGTH_SHORT ).show()
118122 }
119123
120- binding.btnCheckRoot.isEnabled = true
121- binding.btnCheckRoot.text = getString(R .string.btn_check)
122124 updateUI()
123125 }
124126 }
125127
126128 private fun checkShizukuAccess () {
129+ binding.btnCheckShizuku.isEnabled = false
130+ binding.btnCheckShizuku.text = getString(R .string.btn_checking)
131+
127132 if (permissionBridge.isShizukuAvailable()) {
128133 if (permissionBridge.isShizukuPermissionGranted()) {
129134 shizukuGranted = true
130135 selectMode(Constants .MODE_SHIZUKU )
136+ binding.btnCheckShizuku.text = getString(R .string.status_access_granted)
137+ // Keep disabled when granted
131138 } else {
132139 permissionBridge.requestShizukuPermission()
140+ binding.btnCheckShizuku.isEnabled = true
141+ binding.btnCheckShizuku.text = getString(R .string.btn_check)
133142 }
134143 } else {
144+ binding.btnCheckShizuku.isEnabled = true
145+ binding.btnCheckShizuku.text = getString(R .string.btn_check)
135146 Toast .makeText(context, R .string.error_shizuku_not_available, Toast .LENGTH_SHORT ).show()
136147 }
137148 updateUI()
@@ -201,14 +212,20 @@ class PermissionsFragment : Fragment() {
201212 binding.tvQueryAppsStatus.setTextColor(resources.getColor(R .color.status_positive, null ))
202213 binding.btnQueryApps.visibility = View .GONE
203214
204- // Root status
215+ // Root status & button
205216 binding.tvRootStatus.text = if (rootGranted)
206217 getString(R .string.status_granted) else getString(R .string.status_not_granted)
207218 binding.tvRootStatus.setTextColor(resources.getColor(
208219 if (rootGranted) R .color.status_positive else R .color.status_neutral, null ))
209- binding.ivRootCheck.visibility = if (binding.cardRoot.isChecked) View .VISIBLE else View .GONE
210220
211- // Shizuku status
221+ // Root: show check icon on right when selected, update button text
222+ binding.ivRootCheck.visibility = if (rootGranted && binding.cardRoot.isChecked) View .VISIBLE else View .GONE
223+ if (rootGranted) {
224+ binding.btnCheckRoot.text = getString(R .string.status_access_granted)
225+ binding.btnCheckRoot.isEnabled = false
226+ }
227+
228+ // Shizuku status & button
212229 val shizukuAvailable = permissionBridge.isShizukuAvailable()
213230 binding.tvShizukuStatus.text = when {
214231 shizukuGranted -> getString(R .string.status_granted)
@@ -217,9 +234,15 @@ class PermissionsFragment : Fragment() {
217234 }
218235 binding.tvShizukuStatus.setTextColor(resources.getColor(
219236 if (shizukuGranted) R .color.status_positive else R .color.status_neutral, null ))
220- binding.ivShizukuCheck.visibility = if (binding.cardShizuku.isChecked) View .VISIBLE else View .GONE
221237
222- // View only check
238+ // Shizuku: show check icon on right when selected, update button text
239+ binding.ivShizukuCheck.visibility = if (shizukuGranted && binding.cardShizuku.isChecked) View .VISIBLE else View .GONE
240+ if (shizukuGranted) {
241+ binding.btnCheckShizuku.text = getString(R .string.status_access_granted)
242+ binding.btnCheckShizuku.isEnabled = false
243+ }
244+
245+ // View only: always show check when selected (no permission needed)
223246 binding.ivViewOnlyCheck.visibility = if (binding.cardViewOnly.isChecked) View .VISIBLE else View .GONE
224247
225248 // Continue button - enabled if a mode is selected
@@ -229,7 +252,8 @@ class PermissionsFragment : Fragment() {
229252
230253 private fun setupContinueButton () {
231254 binding.btnContinue.setOnClickListener {
232- (activity as ? SetupActivity )?.completeSetup()
255+ // Go to Disclaimer page (next step)
256+ (activity as ? SetupActivity )?.nextStep()
233257 }
234258 }
235259
0 commit comments