Loading Android.bp +13 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ java_defaults { "guava", ], libs: [ "app-compat-annotations", ], privileged: true, certificate: "platform", Loading @@ -38,7 +42,15 @@ java_defaults { sdk_version: "system_current", plugins: ["java_api_finder"], plugins: [ "compat-changeid-annotation-processor", "java_api_finder", ], } platform_compat_config { name: "documents-ui-compat-config", src: ":DocumentsUI", } filegroup { Loading AndroidManifest.xml +4 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ <uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> <!-- Permissions required for reading and logging compat changes --> <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/> <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/> <application android:name=".DocumentsApplication" android:label="@string/app_label" Loading src/com/android/documentsui/base/Shared.java +32 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,9 @@ package com.android.documentsui.base; import static com.android.documentsui.base.SharedMinimal.TAG; import android.app.Activity; import android.app.compat.CompatChanges; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledAfter; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; Loading @@ -29,6 +32,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; import android.net.Uri; import android.os.Looper; import android.os.UserHandle; import android.provider.DocumentsContract; import android.provider.Settings; import android.text.TextUtils; Loading Loading @@ -138,6 +142,16 @@ public final class Shared { private static final Collator sCollator; /** * We support restrict Storage Access Framework from {@link android.os.Build.VERSION_CODES#R}. * App Compatibility flag that indicates whether the app should be restricted or not. * This flag is turned on by default for all apps targeting > * {@link android.os.Build.VERSION_CODES#Q}. */ @ChangeId @EnabledAfter(targetSdkVersion = android.os.Build.VERSION_CODES.Q) private static final long RESTRICT_STORAGE_ACCESS_FRAMEWORK = 141600225L; static { sCollator = Collator.getInstance(); sCollator.setStrength(Collator.SECONDARY); Loading @@ -147,10 +161,27 @@ public final class Shared { * @deprecated use {@link MessageBuilder#getQuantityString} */ @Deprecated public static final String getQuantityString(Context context, @PluralsRes int resourceId, int quantity) { public static String getQuantityString(Context context, @PluralsRes int resourceId, int quantity) { return context.getResources().getQuantityString(resourceId, quantity, quantity); } /** * Whether the calling app should be restricted in Storage Access Framework or not. */ public static boolean shouldRestrictStorageAccessFramework(Activity activity) { final String packageName = getCallingPackageName(activity); final int uid = UserId.CURRENT_USER.getIdentifier(); final boolean ret = CompatChanges.isChangeEnabled(RESTRICT_STORAGE_ACCESS_FRAMEWORK, packageName, UserHandle.getUserHandleForUid(uid)); Log.d(TAG, "shouldRestrictStorageAccessFramework = " + ret + ", packageName = " + packageName + " with user = " + uid); return ret; } public static String formatTime(Context context, long when) { // TODO: DateUtils should make this easier ZoneId zoneId = ZoneId.systemDefault(); Loading Loading
Android.bp +13 −1 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ java_defaults { "guava", ], libs: [ "app-compat-annotations", ], privileged: true, certificate: "platform", Loading @@ -38,7 +42,15 @@ java_defaults { sdk_version: "system_current", plugins: ["java_api_finder"], plugins: [ "compat-changeid-annotation-processor", "java_api_finder", ], } platform_compat_config { name: "documents-ui-compat-config", src: ":DocumentsUI", } filegroup { Loading
AndroidManifest.xml +4 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,10 @@ <uses-permission android:name="android.permission.CHANGE_OVERLAY_PACKAGES" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> <!-- Permissions required for reading and logging compat changes --> <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/> <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/> <application android:name=".DocumentsApplication" android:label="@string/app_label" Loading
src/com/android/documentsui/base/Shared.java +32 −1 Original line number Diff line number Diff line Loading @@ -19,6 +19,9 @@ package com.android.documentsui.base; import static com.android.documentsui.base.SharedMinimal.TAG; import android.app.Activity; import android.app.compat.CompatChanges; import android.compat.annotation.ChangeId; import android.compat.annotation.EnabledAfter; import android.content.ComponentName; import android.content.ContentResolver; import android.content.Context; Loading @@ -29,6 +32,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Configuration; import android.net.Uri; import android.os.Looper; import android.os.UserHandle; import android.provider.DocumentsContract; import android.provider.Settings; import android.text.TextUtils; Loading Loading @@ -138,6 +142,16 @@ public final class Shared { private static final Collator sCollator; /** * We support restrict Storage Access Framework from {@link android.os.Build.VERSION_CODES#R}. * App Compatibility flag that indicates whether the app should be restricted or not. * This flag is turned on by default for all apps targeting > * {@link android.os.Build.VERSION_CODES#Q}. */ @ChangeId @EnabledAfter(targetSdkVersion = android.os.Build.VERSION_CODES.Q) private static final long RESTRICT_STORAGE_ACCESS_FRAMEWORK = 141600225L; static { sCollator = Collator.getInstance(); sCollator.setStrength(Collator.SECONDARY); Loading @@ -147,10 +161,27 @@ public final class Shared { * @deprecated use {@link MessageBuilder#getQuantityString} */ @Deprecated public static final String getQuantityString(Context context, @PluralsRes int resourceId, int quantity) { public static String getQuantityString(Context context, @PluralsRes int resourceId, int quantity) { return context.getResources().getQuantityString(resourceId, quantity, quantity); } /** * Whether the calling app should be restricted in Storage Access Framework or not. */ public static boolean shouldRestrictStorageAccessFramework(Activity activity) { final String packageName = getCallingPackageName(activity); final int uid = UserId.CURRENT_USER.getIdentifier(); final boolean ret = CompatChanges.isChangeEnabled(RESTRICT_STORAGE_ACCESS_FRAMEWORK, packageName, UserHandle.getUserHandleForUid(uid)); Log.d(TAG, "shouldRestrictStorageAccessFramework = " + ret + ", packageName = " + packageName + " with user = " + uid); return ret; } public static String formatTime(Context context, long when) { // TODO: DateUtils should make this easier ZoneId zoneId = ZoneId.systemDefault(); Loading