Remove usage of MANAGE_EXTERNAL_STORAGE from Play Store builds

This commit is contained in:
Yasan Glass
2025-06-22 16:37:58 +02:00
committed by GitHub
parent 07d73efd72
commit 5dd637ecbd
7 changed files with 33 additions and 3 deletions

View File

@@ -308,6 +308,14 @@ android {
}
}
github {
manifest.srcFile "github/AndroidManifest.xml"
}
nightly {
manifest.srcFile "nightly/AndroidManifest.xml"
}
lawnWithQuickstepGithub {
manifest.srcFile "quickstep/AndroidManifest-launcher.xml"
}

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
</manifest>

View File

@@ -26,7 +26,6 @@
<uses-permission android:name="com.kieronquinn.app.smartspacer.permission.ACCESS_SMARTSPACER"/>
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.WRITE_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" tools:ignore="ProtectedPermissions"/>

View File

@@ -45,6 +45,7 @@ import app.lawnchair.ui.preferences.components.WallpaperPreview
import app.lawnchair.ui.preferences.components.controls.FlagSwitchPreference
import app.lawnchair.ui.preferences.components.layout.PreferenceGroup
import app.lawnchair.ui.preferences.components.layout.PreferenceLayout
import app.lawnchair.ui.util.isPlayStoreFlavor
import app.lawnchair.util.BackHandler
import app.lawnchair.util.checkAndRequestFilesPermission
import app.lawnchair.util.filesAndStorageGranted
@@ -74,7 +75,7 @@ fun CreateBackupScreen(
val permissionState = rememberPermissionState(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
android.Manifest.permission.READ_MEDIA_IMAGES
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !isPlayStoreFlavor()) {
android.Manifest.permission.MANAGE_EXTERNAL_STORAGE
} else {
android.Manifest.permission.READ_EXTERNAL_STORAGE

View File

@@ -17,6 +17,7 @@ import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalContext
import androidx.core.graphics.drawable.toBitmap
import app.lawnchair.preferences.PreferenceManager
import app.lawnchair.ui.util.isPlayStoreFlavor
import app.lawnchair.util.checkAndRequestFilesPermission
import app.lawnchair.util.filesAndStorageGranted
import app.lawnchair.util.scaleDownToDisplaySize
@@ -50,7 +51,7 @@ fun wallpaperDrawable(): Drawable? {
val permissionState = rememberPermissionState(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
android.Manifest.permission.READ_MEDIA_IMAGES
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
} else if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU && Build.VERSION.SDK_INT >= Build.VERSION_CODES.R && !isPlayStoreFlavor()) {
android.Manifest.permission.MANAGE_EXTERNAL_STORAGE
} else {
android.Manifest.permission.READ_EXTERNAL_STORAGE

View File

@@ -0,0 +1,5 @@
package app.lawnchair.ui.util
import com.android.launcher3.BuildConfig
fun isPlayStoreFlavor(): Boolean = BuildConfig.FLAVOR_channel == "play"

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
</manifest>