@Override public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) { return mBase.checkCallingOrSelfUriPermission(uri, modeFlags); }
@Override public int checkCallingOrSelfUriPermission(Uri uri, int modeFlags) { return mBase.checkCallingOrSelfUriPermission(uri, modeFlags); }
private static int getCallingOrSelfUriPermissionModeFlags(Context context, Uri uri) { // TODO: move this to a direct AMS call int modeFlags = 0; if (context.checkCallingOrSelfUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION) == PackageManager.PERMISSION_GRANTED) { modeFlags |= Intent.FLAG_GRANT_READ_URI_PERMISSION; } if (context.checkCallingOrSelfUriPermission(uri, Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == PackageManager.PERMISSION_GRANTED) { modeFlags |= Intent.FLAG_GRANT_WRITE_URI_PERMISSION; } if (context.checkCallingOrSelfUriPermission(uri, Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == PackageManager.PERMISSION_GRANTED) { modeFlags |= Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION; } return modeFlags; }
public static boolean canRead(Context context, Uri self) { // Ignore if grant doesn't allow read if (context.checkCallingOrSelfUriPermission(self, Intent.FLAG_GRANT_READ_URI_PERMISSION) != PackageManager.PERMISSION_GRANTED) { return false; } // Ignore documents without MIME if (TextUtils.isEmpty(getRawType(context, self))) { return false; } return true; }
public static boolean canRead(Context context, Uri self) { // Ignore if grant doesn't allow read if (context.checkCallingOrSelfUriPermission(self, Intent.FLAG_GRANT_READ_URI_PERMISSION) != PackageManager.PERMISSION_GRANTED) { return false; } // Ignore documents without MIME if (TextUtils.isEmpty(getRawType(context, self))) { return false; } return true; }
public static boolean canRead(Context context, Uri self) { // Ignore if grant doesn't allow read if (context.checkCallingOrSelfUriPermission(self, Intent.FLAG_GRANT_READ_URI_PERMISSION) != PackageManager.PERMISSION_GRANTED) { return false; } // Ignore documents without MIME if (TextUtils.isEmpty(getRawType(context, self))) { return false; } return true; }
public static boolean canWrite(Context context, Uri self) { // Ignore if grant doesn't allow write if (context.checkCallingOrSelfUriPermission(self, Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != PackageManager.PERMISSION_GRANTED) { return false; } final String type = getRawType(context, self); final int flags = queryForInt(context, self, DocumentsContract.Document.COLUMN_FLAGS, 0); // Ignore documents without MIME if (TextUtils.isEmpty(type)) { return false; } // Deletable documents considered writable if ((flags & DocumentsContract.Document.FLAG_SUPPORTS_DELETE) != 0) { return true; } if (DocumentsContract.Document.MIME_TYPE_DIR.equals(type) && (flags & DocumentsContract.Document.FLAG_DIR_SUPPORTS_CREATE) != 0) { // Directories that allow create considered writable return true; } else if (!TextUtils.isEmpty(type) && (flags & DocumentsContract.Document.FLAG_SUPPORTS_WRITE) != 0) { // Writable normal files considered writable return true; } return false; }
public static boolean canWrite(Context context, Uri self) { // Ignore if grant doesn't allow write if (context.checkCallingOrSelfUriPermission(self, Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != PackageManager.PERMISSION_GRANTED) { return false; } final String type = getRawType(context, self); final int flags = queryForInt(context, self, DocumentsContract.Document.COLUMN_FLAGS, 0); // Ignore documents without MIME if (TextUtils.isEmpty(type)) { return false; } // Deletable documents considered writable if ((flags & DocumentsContract.Document.FLAG_SUPPORTS_DELETE) != 0) { return true; } if (DocumentsContract.Document.MIME_TYPE_DIR.equals(type) && (flags & DocumentsContract.Document.FLAG_DIR_SUPPORTS_CREATE) != 0) { // Directories that allow create considered writable return true; } else if (!TextUtils.isEmpty(type) && (flags & DocumentsContract.Document.FLAG_SUPPORTS_WRITE) != 0) { // Writable normal files considered writable return true; } return false; }
public static boolean canWrite(Context context, Uri self) { // Ignore if grant doesn't allow write if (context.checkCallingOrSelfUriPermission(self, Intent.FLAG_GRANT_WRITE_URI_PERMISSION) != PackageManager.PERMISSION_GRANTED) { return false; } final String type = getRawType(context, self); final int flags = queryForInt(context, self, DocumentsContract.Document.COLUMN_FLAGS, 0); // Ignore documents without MIME if (TextUtils.isEmpty(type)) { return false; } // Deletable documents considered writable if ((flags & DocumentsContract.Document.FLAG_SUPPORTS_DELETE) != 0) { return true; } if (DocumentsContract.Document.MIME_TYPE_DIR.equals(type) && (flags & DocumentsContract.Document.FLAG_DIR_SUPPORTS_CREATE) != 0) { // Directories that allow create considered writable return true; } else if (!TextUtils.isEmpty(type) && (flags & DocumentsContract.Document.FLAG_SUPPORTS_WRITE) != 0) { // Writable normal files considered writable return true; } return false; }