From 14a6df7d7626b5e3c739e4dafd11073a471c91a8 Mon Sep 17 00:00:00 2001 From: Makoto Onuki Date: Wed, 1 Jul 2015 14:55:14 -0700 Subject: If user ejects a storage from details, take user to... ... the storage list view 1. Change to ExternalStorageProvider When available volumes have changed, it now notifies on "content://com.android.externalstorage.documents" rather than on "content://com.android.externalstorage.documents/root/", because it'll also affect "content://com.android.externalstorage.documents/document/*/children". 2. Change to DocumentUI - DirectoryLoader now won't crash when a provider returns null. - DirectoryFragment now closes itself (i.e. emulate a back press) when a load failed. - It now correctly reloads contents when a volume is ejected thanks to 1. Bug 21472170 Change-Id: Icf4bbc2ebb9067313dbbb67083cd4115b0a75c58 --- .../src/com/android/externalstorage/ExternalStorageProvider.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'packages/ExternalStorageProvider') diff --git a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java index 4143e15..4f0c6a41 100644 --- a/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +++ b/packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java @@ -62,6 +62,9 @@ public class ExternalStorageProvider extends DocumentsProvider { public static final String AUTHORITY = "com.android.externalstorage.documents"; + private static final Uri BASE_URI = + new Uri.Builder().scheme(ContentResolver.SCHEME_CONTENT).authority(AUTHORITY).build(); + // docId format: root:path/to/file private static final String[] DEFAULT_ROOT_PROJECTION = new String[] { @@ -170,8 +173,10 @@ public class ExternalStorageProvider extends DocumentsProvider { Log.d(TAG, "After updating volumes, found " + mRoots.size() + " active roots"); - getContext().getContentResolver() - .notifyChange(DocumentsContract.buildRootsUri(AUTHORITY), null, false); + // Note this affects content://com.android.externalstorage.documents/root/39BD-07C5 + // as well as content://com.android.externalstorage.documents/document/*/children, + // so just notify on content://com.android.externalstorage.documents/. + getContext().getContentResolver().notifyChange(BASE_URI, null, false); } private static String[] resolveRootProjection(String[] projection) { -- cgit v1.1