fix: using isExternalStorageManager without api check (#22)

This commit is contained in:
Diamond 2022-09-23 16:54:06 -07:00 • committed by GitHub
parent 93390ffa7b
commit 564370ab9c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 5 deletions

View file

@ -5,8 +5,7 @@
package com.aliucord.manager
import android.os.Bundle
import android.os.Environment
import android.os.*
import androidx.activity.ComponentActivity
import androidx.activity.compose.BackHandler
import androidx.activity.compose.setContent
@ -47,7 +46,9 @@ class MainActivity : ComponentActivity() {
if (!navigator.pop()) finish()
}
ManageStorageDialog()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
ManageStorageDialog()
}
Taxi(
modifier = Modifier.fillMaxSize(),

View file

@ -6,18 +6,21 @@ import android.os.Environment
import android.provider.Settings
import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.window.DialogProperties
import androidx.core.net.toUri
import com.aliucord.manager.BuildConfig
import com.aliucord.manager.R
@RequiresApi(Build.VERSION_CODES.R)
@Composable
fun ManageStorageDialog() {
var manageStorageGranted by remember { mutableStateOf(Environment.isExternalStorageManager()) }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !manageStorageGranted) {
if (!manageStorageGranted) {
AlertDialog(
onDismissRequest = {},
confirmButton = {
@ -29,7 +32,7 @@ fun ManageStorageDialog() {
Button(
onClick = {
Intent(Settings.ACTION_MANAGE_APP_ALL_FILES_ACCESS_PERMISSION)
.setData("package:com.aliucord.manager".toUri())
.setData("package:${BuildConfig.APPLICATION_ID}".toUri())
.let { launcher.launch(it) }
},
) {