Loading src/com/android/documentsui/roots/ProvidersCache.java +19 −3 Original line number Diff line number Diff line Loading @@ -240,10 +240,27 @@ public class ProvidersCache implements ProvidersAccess { ContentResolver resolver, String authority, boolean forceRefresh) { if (VERBOSE) Log.v(TAG, "Loading roots for " + authority); synchronized (mObservedAuthoritiesDetails) { if (!mObservedAuthoritiesDetails.containsKey(authority)) { final ArrayList<RootInfo> roots = new ArrayList<>(); ProviderInfo provider = mContext.getPackageManager().resolveContentProvider( authority, PackageManager.GET_META_DATA); if (!provider.exported) { Log.w(TAG, "Provider is not exported. Failed to load roots for " + authority); return roots; } if (!provider.grantUriPermissions) { Log.w(TAG, "Provider doesn't grantUriPermissions. Failed to load roots for " + authority); return roots; } if (!android.Manifest.permission.MANAGE_DOCUMENTS.equals(provider.readPermission) || !android.Manifest.permission.MANAGE_DOCUMENTS.equals(provider.writePermission)) { Log.w(TAG, "Provider is not protected by MANAGE_DOCUMENTS. Failed to load roots for " + authority); return roots; } synchronized (mObservedAuthoritiesDetails) { if (!mObservedAuthoritiesDetails.containsKey(authority)) { PackageManager pm = mContext.getPackageManager(); CharSequence appName = pm.getApplicationLabel(provider.applicationInfo); String packageName = provider.applicationInfo.packageName; Loading Loading @@ -274,7 +291,6 @@ public class ProvidersCache implements ProvidersAccess { } } final ArrayList<RootInfo> roots = new ArrayList<>(); ContentProviderClient client = null; Cursor cursor = null; try { Loading Loading
src/com/android/documentsui/roots/ProvidersCache.java +19 −3 Original line number Diff line number Diff line Loading @@ -240,10 +240,27 @@ public class ProvidersCache implements ProvidersAccess { ContentResolver resolver, String authority, boolean forceRefresh) { if (VERBOSE) Log.v(TAG, "Loading roots for " + authority); synchronized (mObservedAuthoritiesDetails) { if (!mObservedAuthoritiesDetails.containsKey(authority)) { final ArrayList<RootInfo> roots = new ArrayList<>(); ProviderInfo provider = mContext.getPackageManager().resolveContentProvider( authority, PackageManager.GET_META_DATA); if (!provider.exported) { Log.w(TAG, "Provider is not exported. Failed to load roots for " + authority); return roots; } if (!provider.grantUriPermissions) { Log.w(TAG, "Provider doesn't grantUriPermissions. Failed to load roots for " + authority); return roots; } if (!android.Manifest.permission.MANAGE_DOCUMENTS.equals(provider.readPermission) || !android.Manifest.permission.MANAGE_DOCUMENTS.equals(provider.writePermission)) { Log.w(TAG, "Provider is not protected by MANAGE_DOCUMENTS. Failed to load roots for " + authority); return roots; } synchronized (mObservedAuthoritiesDetails) { if (!mObservedAuthoritiesDetails.containsKey(authority)) { PackageManager pm = mContext.getPackageManager(); CharSequence appName = pm.getApplicationLabel(provider.applicationInfo); String packageName = provider.applicationInfo.packageName; Loading Loading @@ -274,7 +291,6 @@ public class ProvidersCache implements ProvidersAccess { } } final ArrayList<RootInfo> roots = new ArrayList<>(); ContentProviderClient client = null; Cursor cursor = null; try { Loading