Merge "Fix isExternalStorageSandboxed() bug." into qt-dev
diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java
index f7e927e..9e9e68d 100644
--- a/core/java/android/os/Environment.java
+++ b/core/java/android/os/Environment.java
@@ -1147,9 +1147,16 @@
public static boolean isExternalStorageSandboxed(@NonNull File path) {
final Context context = AppGlobals.getInitialApplication();
final AppOpsManager appOps = context.getSystemService(AppOpsManager.class);
- return appOps.noteOpNoThrow(AppOpsManager.OP_LEGACY_STORAGE,
+
+ final boolean hasLegacy = appOps.noteOpNoThrow(AppOpsManager.OP_LEGACY_STORAGE,
context.getApplicationInfo().uid,
- context.getPackageName()) != AppOpsManager.MODE_ALLOWED;
+ context.getPackageName()) == AppOpsManager.MODE_ALLOWED;
+
+ // STOPSHIP: only use app-op once permission model has fully landed
+ final boolean requestedLegacy = !AppGlobals.getInitialApplication().getApplicationInfo()
+ .isExternalStorageSandboxAllowed();
+
+ return !(hasLegacy || requestedLegacy);
}
static File getDirectory(String variableName, String defaultPath) {