diff --git a/build.gradle b/build.gradle
index cc5b960e4e..a4431e7e03 100644
--- a/build.gradle
+++ b/build.gradle
@@ -308,6 +308,14 @@ android {
}
}
+ github {
+ manifest.srcFile "github/AndroidManifest.xml"
+ }
+
+ nightly {
+ manifest.srcFile "nightly/AndroidManifest.xml"
+ }
+
lawnWithQuickstepGithub {
manifest.srcFile "quickstep/AndroidManifest-launcher.xml"
}
diff --git a/github/AndroidManifest.xml b/github/AndroidManifest.xml
new file mode 100644
index 0000000000..5035d02d2f
--- /dev/null
+++ b/github/AndroidManifest.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/lawnchair/AndroidManifest.xml b/lawnchair/AndroidManifest.xml
index 3e8cb152c5..01aeb9997f 100644
--- a/lawnchair/AndroidManifest.xml
+++ b/lawnchair/AndroidManifest.xml
@@ -26,7 +26,6 @@
-
diff --git a/lawnchair/src/app/lawnchair/backup/ui/CreateBackupScreen.kt b/lawnchair/src/app/lawnchair/backup/ui/CreateBackupScreen.kt
index 8492d6a82b..d6ad6e8b92 100644
--- a/lawnchair/src/app/lawnchair/backup/ui/CreateBackupScreen.kt
+++ b/lawnchair/src/app/lawnchair/backup/ui/CreateBackupScreen.kt
@@ -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
diff --git a/lawnchair/src/app/lawnchair/ui/preferences/components/WallpaperPreview.kt b/lawnchair/src/app/lawnchair/ui/preferences/components/WallpaperPreview.kt
index 61e422fcd9..7d25c495ea 100644
--- a/lawnchair/src/app/lawnchair/ui/preferences/components/WallpaperPreview.kt
+++ b/lawnchair/src/app/lawnchair/ui/preferences/components/WallpaperPreview.kt
@@ -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
diff --git a/lawnchair/src/app/lawnchair/ui/util/BuildConfigUtils.kt b/lawnchair/src/app/lawnchair/ui/util/BuildConfigUtils.kt
new file mode 100644
index 0000000000..53dc188a41
--- /dev/null
+++ b/lawnchair/src/app/lawnchair/ui/util/BuildConfigUtils.kt
@@ -0,0 +1,5 @@
+package app.lawnchair.ui.util
+
+import com.android.launcher3.BuildConfig
+
+fun isPlayStoreFlavor(): Boolean = BuildConfig.FLAVOR_channel == "play"
diff --git a/nightly/AndroidManifest.xml b/nightly/AndroidManifest.xml
new file mode 100644
index 0000000000..5035d02d2f
--- /dev/null
+++ b/nightly/AndroidManifest.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+