Loading packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +19 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; import android.os.Looper; import android.os.OperationCanceledException; import android.os.Parcelable; import android.provider.DocumentsContract; Loading Loading @@ -135,6 +137,8 @@ public class DirectoryFragment extends Fragment { private final int mLoaderId = 42; private final Handler mHandler = new Handler(Looper.getMainLooper()); public static void showNormal(FragmentManager fm, RootInfo root, DocumentInfo doc, int anim) { show(fm, TYPE_NORMAL, root, doc, null, anim); } Loading Loading @@ -297,6 +301,21 @@ public class DirectoryFragment extends Fragment { @Override public void onLoadFinished(Loader<DirectoryResult> loader, DirectoryResult result) { if (result == null || result.exception != null) { // onBackPressed does a fragment transaction, which can't be done inside // onLoadFinished mHandler.post(new Runnable() { @Override public void run() { final Activity activity = getActivity(); if (activity != null) { activity.onBackPressed(); } } }); return; } if (!isAdded()) return; mAdapter.swapResult(result); Loading packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java +7 −0 Original line number Diff line number Diff line Loading @@ -31,7 +31,10 @@ import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.CancellationSignal; import android.os.Handler; import android.os.Looper; import android.os.OperationCanceledException; import android.os.RemoteException; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Document; import android.util.Log; Loading Loading @@ -163,6 +166,10 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> { cursor = client.query( mUri, null, null, null, getQuerySortOrder(result.sortOrder), mSignal); if (cursor == null) { throw new RemoteException("Provider returned null"); } cursor.registerContentObserver(mObserver); cursor = new RootCursorWrapper(mUri.getAuthority(), mRoot.rootId, cursor, -1); Loading packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +7 −2 Original line number Diff line number Diff line Loading @@ -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[] { Loading Loading @@ -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) { Loading Loading
packages/DocumentsUI/src/com/android/documentsui/DirectoryFragment.java +19 −0 Original line number Diff line number Diff line Loading @@ -50,6 +50,8 @@ import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.os.CancellationSignal; import android.os.Handler; import android.os.Looper; import android.os.OperationCanceledException; import android.os.Parcelable; import android.provider.DocumentsContract; Loading Loading @@ -135,6 +137,8 @@ public class DirectoryFragment extends Fragment { private final int mLoaderId = 42; private final Handler mHandler = new Handler(Looper.getMainLooper()); public static void showNormal(FragmentManager fm, RootInfo root, DocumentInfo doc, int anim) { show(fm, TYPE_NORMAL, root, doc, null, anim); } Loading Loading @@ -297,6 +301,21 @@ public class DirectoryFragment extends Fragment { @Override public void onLoadFinished(Loader<DirectoryResult> loader, DirectoryResult result) { if (result == null || result.exception != null) { // onBackPressed does a fragment transaction, which can't be done inside // onLoadFinished mHandler.post(new Runnable() { @Override public void run() { final Activity activity = getActivity(); if (activity != null) { activity.onBackPressed(); } } }); return; } if (!isAdded()) return; mAdapter.swapResult(result); Loading
packages/DocumentsUI/src/com/android/documentsui/DirectoryLoader.java +7 −0 Original line number Diff line number Diff line Loading @@ -31,7 +31,10 @@ import android.content.Context; import android.database.Cursor; import android.net.Uri; import android.os.CancellationSignal; import android.os.Handler; import android.os.Looper; import android.os.OperationCanceledException; import android.os.RemoteException; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Document; import android.util.Log; Loading Loading @@ -163,6 +166,10 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> { cursor = client.query( mUri, null, null, null, getQuerySortOrder(result.sortOrder), mSignal); if (cursor == null) { throw new RemoteException("Provider returned null"); } cursor.registerContentObserver(mObserver); cursor = new RootCursorWrapper(mUri.getAuthority(), mRoot.rootId, cursor, -1); Loading
packages/ExternalStorageProvider/src/com/android/externalstorage/ExternalStorageProvider.java +7 −2 Original line number Diff line number Diff line Loading @@ -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[] { Loading Loading @@ -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) { Loading