Loading api/current.txt +4 −4 Original line number Diff line number Diff line Loading @@ -4622,8 +4622,8 @@ package android.app { } public class DownloadManager { method public long addCompletedDownload(String, String, boolean, String, String, long, boolean); method public long addCompletedDownload(String, String, boolean, String, String, long, boolean, android.net.Uri, android.net.Uri); method @Deprecated public long addCompletedDownload(String, String, boolean, String, String, long, boolean); method @Deprecated public long addCompletedDownload(String, String, boolean, String, String, long, boolean, android.net.Uri, android.net.Uri); method public long enqueue(android.app.DownloadManager.Request); method public static Long getMaxBytesOverMobile(android.content.Context); method public String getMimeTypeForDownloadedFile(long); Loading Loading @@ -34429,8 +34429,8 @@ package android.os { ctor public Environment(); method public static java.io.File getDataDirectory(); method public static java.io.File getDownloadCacheDirectory(); method public static java.io.File getExternalStorageDirectory(); method public static java.io.File getExternalStoragePublicDirectory(String); method @Deprecated public static java.io.File getExternalStorageDirectory(); method @Deprecated public static java.io.File getExternalStoragePublicDirectory(String); method public static String getExternalStorageState(); method public static String getExternalStorageState(java.io.File); method @NonNull public static java.io.File getRootDirectory(); api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -1655,6 +1655,7 @@ package android.content.pm { field public static final String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock"; field public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 16384; // 0x4000 field public static final int FLAG_PERMISSION_GRANTED_BY_DEFAULT = 32; // 0x20 field public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 32768; // 0x8000 field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4 field public static final int FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT = 2048; // 0x800 field public static final int FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT = 4096; // 0x1000 Loading Loading @@ -1728,7 +1729,7 @@ package android.content.pm { method public void onPermissionsChanged(int); } @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags { @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags { } public class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable { Loading api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -712,6 +712,7 @@ package android.content.pm { field public static final String FEATURE_ADOPTABLE_STORAGE = "android.software.adoptable_storage"; field public static final String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption"; field public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 16384; // 0x4000 field public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 32768; // 0x8000 field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4 field public static final int FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT = 2048; // 0x800 field public static final int FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT = 4096; // 0x1000 Loading core/java/android/app/DownloadManager.java +48 −32 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.CursorWrapper; import android.database.DatabaseUtils; import android.net.ConnectivityManager; import android.net.NetworkPolicyManager; import android.net.Uri; Loading Loading @@ -1258,55 +1259,50 @@ public class DownloadManager { throw new SecurityException(displayName + " is not a valid filename"); } Query query = new Query().setFilterById(id); Cursor cursor = null; String oldDisplayName = null; String mimeType = null; try { cursor = query(query); final String filePath; final Query query = new Query().setFilterById(id); try (Cursor cursor = query(query)) { if (cursor == null) { return false; throw new IllegalStateException("Missing cursor for download id=" + id); } if (cursor.moveToFirst()) { int status = cursor.getInt(cursor.getColumnIndexOrThrow(COLUMN_STATUS)); if (DownloadManager.STATUS_SUCCESSFUL != status) { return false; } oldDisplayName = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_TITLE)); mimeType = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_MEDIA_TYPE)); } } finally { if (cursor != null) { cursor.close(); final int status = cursor.getInt(cursor.getColumnIndexOrThrow(COLUMN_STATUS)); if (status != DownloadManager.STATUS_SUCCESSFUL) { throw new IllegalStateException("Download is not completed yet: " + DatabaseUtils.dumpCurrentRowToString(cursor)); } filePath = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_LOCAL_FILENAME)); if (filePath == null) { throw new IllegalStateException("Download doesn't have a valid file path: " + DatabaseUtils.dumpCurrentRowToString(cursor)); } else if (!new File(filePath).exists()) { throw new IllegalStateException("Downloaded file doesn't exist anymore: " + DatabaseUtils.dumpCurrentRowToString(cursor)); } } else { throw new IllegalStateException("Missing download id=" + id); } if (oldDisplayName == null || mimeType == null) { throw new IllegalStateException( "Document with id " + id + " does not exist"); } final File parent = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_DOWNLOADS); final File before = new File(parent, oldDisplayName); final File after = new File(parent, displayName); final File before = new File(filePath); final File after = new File(before.getParentFile(), displayName); if (after.exists()) { throw new IllegalStateException("Already exists " + after); throw new IllegalStateException("File already exists: " + after); } if (!before.renameTo(after)) { throw new IllegalStateException("Failed to rename to " + after); throw new IllegalStateException( "Failed to rename file from " + before + " to " + after); } ContentValues values = new ContentValues(); final ContentValues values = new ContentValues(); values.put(Downloads.Impl.COLUMN_TITLE, displayName); values.put(Downloads.Impl._DATA, after.toString()); values.putNull(Downloads.Impl.COLUMN_MEDIAPROVIDER_URI); long[] ids = {id}; final long[] ids = { id }; return (mResolver.update(mBaseUri, values, getWhereClauseForIds(ids), getWhereArgsForIds(ids)) == 1); return mResolver.update( mBaseUri, values, getWhereClauseForIds(ids), getWhereArgsForIds(ids)) == 1; } /** Loading Loading @@ -1370,7 +1366,12 @@ public class DownloadManager { * @param showNotification true if a notification is to be sent, false otherwise * @return an ID for the download entry added to the downloads app, unique across the system * This ID is used to make future calls related to this download. * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification) { Loading Loading @@ -1411,7 +1412,12 @@ public class DownloadManager { * @param referer the HTTP Referer for the download * @return an ID for the download entry added to the downloads app, unique across the system * This ID is used to make future calls related to this download. * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification, Uri uri, Uri referer) { Loading @@ -1430,8 +1436,13 @@ public class DownloadManager { * {@link Environment#getExternalStoragePublicDirectory(String)} with * {@link Environment#DIRECTORY_DOWNLOADS}). * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. * * {@hide} */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification, boolean allowWrite) { Loading @@ -1451,7 +1462,12 @@ public class DownloadManager { * {@link Environment#DIRECTORY_DOWNLOADS}). * * {@hide} * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification, boolean allowWrite, Uri uri, Uri referer) { Loading core/java/android/content/pm/PackageManager.java +14 −3 Original line number Diff line number Diff line Loading @@ -3143,6 +3143,14 @@ public abstract class PackageManager { @SystemApi public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 1 << 14; /** * Permission flag: The permission is granted because the application holds a role. * * @hide */ @SystemApi @TestApi public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 1 << 15; /** * Permission flags: Bitwise or of all permission flags allowing an Loading Loading @@ -3183,7 +3191,8 @@ public abstract class PackageManager { | FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT | FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT | FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT | FLAG_PERMISSION_APPLY_RESTRICTION; | FLAG_PERMISSION_APPLY_RESTRICTION | FLAG_PERMISSION_GRANTED_BY_ROLE; /** * Injected activity in app that forwards user to setting activity of that app. Loading Loading @@ -3947,7 +3956,8 @@ public abstract class PackageManager { FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, FLAG_PERMISSION_APPLY_RESTRICTION FLAG_PERMISSION_APPLY_RESTRICTION, FLAG_PERMISSION_GRANTED_BY_ROLE }) @Retention(RetentionPolicy.SOURCE) public @interface PermissionFlags {} Loading Loading @@ -7030,7 +7040,8 @@ public abstract class PackageManager { case FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT: return "RESTRICTION_INSTALLER_EXEMPT"; case FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT: return "RESTRICTION_SYSTEM_EXEMPT"; case FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT: return "RESTRICTION_UPGRADE_EXEMPT"; case FLAG_PERMISSION_APPLY_RESTRICTION: return "FLAG_PERMISSION_APPLY_RESTRICTION"; case FLAG_PERMISSION_APPLY_RESTRICTION: return "APPLY_RESTRICTION"; case FLAG_PERMISSION_GRANTED_BY_ROLE: return "GRANTED_BY_ROLE"; default: return Integer.toString(flag); } } Loading Loading
api/current.txt +4 −4 Original line number Diff line number Diff line Loading @@ -4622,8 +4622,8 @@ package android.app { } public class DownloadManager { method public long addCompletedDownload(String, String, boolean, String, String, long, boolean); method public long addCompletedDownload(String, String, boolean, String, String, long, boolean, android.net.Uri, android.net.Uri); method @Deprecated public long addCompletedDownload(String, String, boolean, String, String, long, boolean); method @Deprecated public long addCompletedDownload(String, String, boolean, String, String, long, boolean, android.net.Uri, android.net.Uri); method public long enqueue(android.app.DownloadManager.Request); method public static Long getMaxBytesOverMobile(android.content.Context); method public String getMimeTypeForDownloadedFile(long); Loading Loading @@ -34429,8 +34429,8 @@ package android.os { ctor public Environment(); method public static java.io.File getDataDirectory(); method public static java.io.File getDownloadCacheDirectory(); method public static java.io.File getExternalStorageDirectory(); method public static java.io.File getExternalStoragePublicDirectory(String); method @Deprecated public static java.io.File getExternalStorageDirectory(); method @Deprecated public static java.io.File getExternalStoragePublicDirectory(String); method public static String getExternalStorageState(); method public static String getExternalStorageState(java.io.File); method @NonNull public static java.io.File getRootDirectory();
api/system-current.txt +2 −1 Original line number Diff line number Diff line Loading @@ -1655,6 +1655,7 @@ package android.content.pm { field public static final String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock"; field public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 16384; // 0x4000 field public static final int FLAG_PERMISSION_GRANTED_BY_DEFAULT = 32; // 0x20 field public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 32768; // 0x8000 field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4 field public static final int FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT = 2048; // 0x800 field public static final int FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT = 4096; // 0x1000 Loading Loading @@ -1728,7 +1729,7 @@ package android.content.pm { method public void onPermissionsChanged(int); } @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags { @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags { } public class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable { Loading
api/test-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -712,6 +712,7 @@ package android.content.pm { field public static final String FEATURE_ADOPTABLE_STORAGE = "android.software.adoptable_storage"; field public static final String FEATURE_FILE_BASED_ENCRYPTION = "android.software.file_based_encryption"; field public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 16384; // 0x4000 field public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 32768; // 0x8000 field public static final int FLAG_PERMISSION_POLICY_FIXED = 4; // 0x4 field public static final int FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT = 2048; // 0x800 field public static final int FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT = 4096; // 0x1000 Loading
core/java/android/app/DownloadManager.java +48 −32 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.CursorWrapper; import android.database.DatabaseUtils; import android.net.ConnectivityManager; import android.net.NetworkPolicyManager; import android.net.Uri; Loading Loading @@ -1258,55 +1259,50 @@ public class DownloadManager { throw new SecurityException(displayName + " is not a valid filename"); } Query query = new Query().setFilterById(id); Cursor cursor = null; String oldDisplayName = null; String mimeType = null; try { cursor = query(query); final String filePath; final Query query = new Query().setFilterById(id); try (Cursor cursor = query(query)) { if (cursor == null) { return false; throw new IllegalStateException("Missing cursor for download id=" + id); } if (cursor.moveToFirst()) { int status = cursor.getInt(cursor.getColumnIndexOrThrow(COLUMN_STATUS)); if (DownloadManager.STATUS_SUCCESSFUL != status) { return false; } oldDisplayName = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_TITLE)); mimeType = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_MEDIA_TYPE)); } } finally { if (cursor != null) { cursor.close(); final int status = cursor.getInt(cursor.getColumnIndexOrThrow(COLUMN_STATUS)); if (status != DownloadManager.STATUS_SUCCESSFUL) { throw new IllegalStateException("Download is not completed yet: " + DatabaseUtils.dumpCurrentRowToString(cursor)); } filePath = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_LOCAL_FILENAME)); if (filePath == null) { throw new IllegalStateException("Download doesn't have a valid file path: " + DatabaseUtils.dumpCurrentRowToString(cursor)); } else if (!new File(filePath).exists()) { throw new IllegalStateException("Downloaded file doesn't exist anymore: " + DatabaseUtils.dumpCurrentRowToString(cursor)); } } else { throw new IllegalStateException("Missing download id=" + id); } if (oldDisplayName == null || mimeType == null) { throw new IllegalStateException( "Document with id " + id + " does not exist"); } final File parent = Environment.getExternalStoragePublicDirectory( Environment.DIRECTORY_DOWNLOADS); final File before = new File(parent, oldDisplayName); final File after = new File(parent, displayName); final File before = new File(filePath); final File after = new File(before.getParentFile(), displayName); if (after.exists()) { throw new IllegalStateException("Already exists " + after); throw new IllegalStateException("File already exists: " + after); } if (!before.renameTo(after)) { throw new IllegalStateException("Failed to rename to " + after); throw new IllegalStateException( "Failed to rename file from " + before + " to " + after); } ContentValues values = new ContentValues(); final ContentValues values = new ContentValues(); values.put(Downloads.Impl.COLUMN_TITLE, displayName); values.put(Downloads.Impl._DATA, after.toString()); values.putNull(Downloads.Impl.COLUMN_MEDIAPROVIDER_URI); long[] ids = {id}; final long[] ids = { id }; return (mResolver.update(mBaseUri, values, getWhereClauseForIds(ids), getWhereArgsForIds(ids)) == 1); return mResolver.update( mBaseUri, values, getWhereClauseForIds(ids), getWhereArgsForIds(ids)) == 1; } /** Loading Loading @@ -1370,7 +1366,12 @@ public class DownloadManager { * @param showNotification true if a notification is to be sent, false otherwise * @return an ID for the download entry added to the downloads app, unique across the system * This ID is used to make future calls related to this download. * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification) { Loading Loading @@ -1411,7 +1412,12 @@ public class DownloadManager { * @param referer the HTTP Referer for the download * @return an ID for the download entry added to the downloads app, unique across the system * This ID is used to make future calls related to this download. * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification, Uri uri, Uri referer) { Loading @@ -1430,8 +1436,13 @@ public class DownloadManager { * {@link Environment#getExternalStoragePublicDirectory(String)} with * {@link Environment#DIRECTORY_DOWNLOADS}). * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. * * {@hide} */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification, boolean allowWrite) { Loading @@ -1451,7 +1462,12 @@ public class DownloadManager { * {@link Environment#DIRECTORY_DOWNLOADS}). * * {@hide} * * @deprecated Apps should instead contribute files to * {@link android.provider.MediaStore.Downloads} collection to make them available to user * as part of Downloads. */ @Deprecated public long addCompletedDownload(String title, String description, boolean isMediaScannerScannable, String mimeType, String path, long length, boolean showNotification, boolean allowWrite, Uri uri, Uri referer) { Loading
core/java/android/content/pm/PackageManager.java +14 −3 Original line number Diff line number Diff line Loading @@ -3143,6 +3143,14 @@ public abstract class PackageManager { @SystemApi public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 1 << 14; /** * Permission flag: The permission is granted because the application holds a role. * * @hide */ @SystemApi @TestApi public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 1 << 15; /** * Permission flags: Bitwise or of all permission flags allowing an Loading Loading @@ -3183,7 +3191,8 @@ public abstract class PackageManager { | FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT | FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT | FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT | FLAG_PERMISSION_APPLY_RESTRICTION; | FLAG_PERMISSION_APPLY_RESTRICTION | FLAG_PERMISSION_GRANTED_BY_ROLE; /** * Injected activity in app that forwards user to setting activity of that app. Loading Loading @@ -3947,7 +3956,8 @@ public abstract class PackageManager { FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, FLAG_PERMISSION_APPLY_RESTRICTION FLAG_PERMISSION_APPLY_RESTRICTION, FLAG_PERMISSION_GRANTED_BY_ROLE }) @Retention(RetentionPolicy.SOURCE) public @interface PermissionFlags {} Loading Loading @@ -7030,7 +7040,8 @@ public abstract class PackageManager { case FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT: return "RESTRICTION_INSTALLER_EXEMPT"; case FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT: return "RESTRICTION_SYSTEM_EXEMPT"; case FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT: return "RESTRICTION_UPGRADE_EXEMPT"; case FLAG_PERMISSION_APPLY_RESTRICTION: return "FLAG_PERMISSION_APPLY_RESTRICTION"; case FLAG_PERMISSION_APPLY_RESTRICTION: return "APPLY_RESTRICTION"; case FLAG_PERMISSION_GRANTED_BY_ROLE: return "GRANTED_BY_ROLE"; default: return Integer.toString(flag); } } Loading