Loading src/com/android/documentsui/CreateDirectoryFragment.java +6 −14 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.app.FragmentManager; import android.content.ContentProviderClient; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; Loading @@ -28,13 +27,13 @@ import android.content.DialogInterface.OnClickListener; import android.net.Uri; import android.os.Bundle; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Documents; import android.provider.DocumentsContract.Document; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; import android.widget.Toast; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; /** * Dialog to create a new directory. Loading Loading @@ -67,24 +66,17 @@ public class CreateDirectoryFragment extends DialogFragment { final String displayName = text1.getText().toString(); final DocumentsActivity activity = (DocumentsActivity) getActivity(); final Document cwd = activity.getCurrentDirectory(); final DocumentInfo cwd = activity.getCurrentDirectory(); final ContentProviderClient client = resolver.acquireUnstableContentProviderClient( cwd.uri.getAuthority()); try { final String docId = DocumentsContract.createDocument(client, DocumentsContract.getDocId(cwd.uri), Documents.MIME_TYPE_DIR, displayName); final Uri childUri = DocumentsContract.createDocument( resolver, cwd.uri, Document.MIME_TYPE_DIR, displayName); // Navigate into newly created child final Uri childUri = DocumentsContract.buildDocumentUri( cwd.uri.getAuthority(), docId); final Document childDoc = Document.fromUri(resolver, childUri); final DocumentInfo childDoc = DocumentInfo.fromUri(resolver, childUri); activity.onDocumentPicked(childDoc); } catch (Exception e) { Toast.makeText(context, R.string.save_error, Toast.LENGTH_SHORT).show(); } finally { ContentProviderClient.closeQuietly(client); } } }); Loading src/com/android/documentsui/DirectoryFragment.java +24 −24 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ import android.widget.TextView; import android.widget.Toast; import com.android.documentsui.DocumentsActivity.DisplayState; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; import com.android.internal.util.Predicate; import com.google.android.collect.Lists; Loading @@ -81,7 +81,7 @@ public class DirectoryFragment extends Fragment { private AbsListView mCurrentView; private Predicate<Document> mFilter; private Predicate<DocumentInfo> mFilter; public static final int TYPE_NORMAL = 1; public static final int TYPE_SEARCH = 2; Loading @@ -106,8 +106,8 @@ public class DirectoryFragment extends Fragment { } public static void showSearch(FragmentManager fm, Uri uri, String query) { final Uri searchUri = DocumentsContract.buildSearchUri( uri.getAuthority(), DocumentsContract.getDocId(uri), query); final Uri searchUri = DocumentsContract.buildSearchDocumentsUri( uri.getAuthority(), DocumentsContract.getDocumentId(uri), query); show(fm, TYPE_SEARCH, searchUri); } Loading Loading @@ -163,21 +163,21 @@ public class DirectoryFragment extends Fragment { Uri contentsUri; if (mType == TYPE_NORMAL) { contentsUri = DocumentsContract.buildChildrenUri( uri.getAuthority(), DocumentsContract.getDocId(uri)); contentsUri = DocumentsContract.buildChildDocumentsUri( uri.getAuthority(), DocumentsContract.getDocumentId(uri)); } else if (mType == TYPE_RECENT_OPEN) { contentsUri = RecentsProvider.buildRecentOpen(); } else { contentsUri = uri; } final Comparator<Document> sortOrder; final Comparator<DocumentInfo> sortOrder; if (state.sortOrder == SORT_ORDER_LAST_MODIFIED || mType == TYPE_RECENT_OPEN) { sortOrder = new Document.LastModifiedComparator(); sortOrder = new DocumentInfo.LastModifiedComparator(); } else if (state.sortOrder == SORT_ORDER_DISPLAY_NAME) { sortOrder = new Document.DisplayNameComparator(); sortOrder = new DocumentInfo.DisplayNameComparator(); } else if (state.sortOrder == SORT_ORDER_SIZE) { sortOrder = new Document.SizeComparator(); sortOrder = new DocumentInfo.SizeComparator(); } else { throw new IllegalArgumentException("Unknown sort order " + state.sortOrder); } Loading Loading @@ -258,7 +258,7 @@ public class DirectoryFragment extends Fragment { private OnItemClickListener mItemListener = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { final Document doc = mAdapter.getItem(position); final DocumentInfo doc = mAdapter.getItem(position); if (mFilter.apply(doc)) { ((DocumentsActivity) getActivity()).onDocumentPicked(doc); } Loading Loading @@ -291,11 +291,11 @@ public class DirectoryFragment extends Fragment { @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { final SparseBooleanArray checked = mCurrentView.getCheckedItemPositions(); final ArrayList<Document> docs = Lists.newArrayList(); final ArrayList<DocumentInfo> docs = Lists.newArrayList(); final int size = checked.size(); for (int i = 0; i < size; i++) { if (checked.valueAt(i)) { final Document doc = mAdapter.getItem(checked.keyAt(i)); final DocumentInfo doc = mAdapter.getItem(checked.keyAt(i)); docs.add(doc); } } Loading Loading @@ -328,7 +328,7 @@ public class DirectoryFragment extends Fragment { ActionMode mode, int position, long id, boolean checked) { if (checked) { // Directories cannot be checked final Document doc = mAdapter.getItem(position); final DocumentInfo doc = mAdapter.getItem(position); if (doc.isDirectory()) { mCurrentView.setItemChecked(position, false); } Loading @@ -339,9 +339,9 @@ public class DirectoryFragment extends Fragment { } }; private void onShareDocuments(List<Document> docs) { private void onShareDocuments(List<DocumentInfo> docs) { final ArrayList<Uri> uris = Lists.newArrayList(); for (Document doc : docs) { for (DocumentInfo doc : docs) { uris.add(doc.uri); } Loading @@ -363,12 +363,12 @@ public class DirectoryFragment extends Fragment { startActivity(intent); } private void onDeleteDocuments(List<Document> docs) { private void onDeleteDocuments(List<DocumentInfo> docs) { final Context context = getActivity(); final ContentResolver resolver = context.getContentResolver(); boolean hadTrouble = false; for (Document doc : docs) { for (DocumentInfo doc : docs) { if (!doc.isDeleteSupported()) { Log.w(TAG, "Skipping " + doc); hadTrouble = true; Loading Loading @@ -396,12 +396,12 @@ public class DirectoryFragment extends Fragment { } private class DocumentsAdapter extends BaseAdapter { private List<Document> mDocuments; private List<DocumentInfo> mDocuments; public DocumentsAdapter() { } public void swapDocuments(List<Document> documents) { public void swapDocuments(List<DocumentInfo> documents) { mDocuments = documents; if (mDocuments != null && mDocuments.isEmpty()) { Loading Loading @@ -433,7 +433,7 @@ public class DirectoryFragment extends Fragment { } } final Document doc = getItem(position); final DocumentInfo doc = getItem(position); final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon); final TextView title = (TextView) convertView.findViewById(android.R.id.title); Loading Loading @@ -507,7 +507,7 @@ public class DirectoryFragment extends Fragment { } @Override public Document getItem(int position) { public DocumentInfo getItem(int position) { return mDocuments.get(position); } Loading Loading @@ -538,8 +538,8 @@ public class DirectoryFragment extends Fragment { Bitmap result = null; try { result = DocumentsContract.getThumbnail( context.getContentResolver(), uri, mThumbSize); result = DocumentsContract.getDocumentThumbnail( context.getContentResolver(), uri, mThumbSize, null); if (result != null) { final ThumbnailCache thumbs = DocumentsApplication.getThumbnailsCache( context, mThumbSize); Loading src/com/android/documentsui/DirectoryLoader.java +9 −9 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.net.Uri; import android.os.CancellationSignal; import android.util.Log; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; import com.android.internal.util.Predicate; import com.google.android.collect.Lists; Loading @@ -41,7 +41,7 @@ import java.util.List; class DirectoryResult implements AutoCloseable { Cursor cursor; List<Document> contents = Lists.newArrayList(); List<DocumentInfo> contents = Lists.newArrayList(); Exception e; @Override Loading @@ -53,11 +53,11 @@ class DirectoryResult implements AutoCloseable { public class DirectoryLoader extends UriDerivativeLoader<Uri, DirectoryResult> { private final int mType; private Predicate<Document> mFilter; private Comparator<Document> mSortOrder; private Predicate<DocumentInfo> mFilter; private Comparator<DocumentInfo> mSortOrder; public DirectoryLoader(Context context, Uri uri, int type, Predicate<Document> filter, Comparator<Document> sortOrder) { public DirectoryLoader(Context context, Uri uri, int type, Predicate<DocumentInfo> filter, Comparator<DocumentInfo> sortOrder) { super(context, uri); mType = type; mFilter = filter; Loading @@ -84,15 +84,15 @@ public class DirectoryLoader extends UriDerivativeLoader<Uri, DirectoryResult> { result.cursor.registerContentObserver(mObserver); while (cursor.moveToNext()) { Document doc = null; DocumentInfo doc = null; switch (mType) { case TYPE_NORMAL: case TYPE_SEARCH: doc = Document.fromDirectoryCursor(uri, cursor); doc = DocumentInfo.fromDirectoryCursor(uri, cursor); break; case TYPE_RECENT_OPEN: try { doc = Document.fromRecentOpenCursor(resolver, cursor); doc = DocumentInfo.fromRecentOpenCursor(resolver, cursor); } catch (FileNotFoundException e) { Log.w(TAG, "Failed to find recent: " + e); } Loading src/com/android/documentsui/DocumentChangedReceiver.java +1 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,10 @@ import static com.android.documentsui.DocumentsActivity.TAG; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.provider.DocumentsContract.DocumentRoot; import android.util.Log; /** * Handles {@link DocumentRoot} changes which invalidate cached data. * Handles changes which invalidate cached data. */ public class DocumentChangedReceiver extends BroadcastReceiver { @Override Loading src/com/android/documentsui/DocumentsActivity.java +18 −20 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.provider.DocumentsContract; import android.provider.DocumentsContract.DocumentRoot; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; Loading @@ -60,8 +59,9 @@ import android.widget.SearchView.OnQueryTextListener; import android.widget.TextView; import android.widget.Toast; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.RootInfo; import java.io.FileNotFoundException; import java.util.Arrays; Loading Loading @@ -160,7 +160,7 @@ public class DocumentsActivity extends Activity { mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); final Uri rootUri = intent.getData(); final DocumentRoot root = mRoots.findRoot(rootUri); final RootInfo root = mRoots.findRoot(rootUri); if (root != null) { onRootPicked(root, true); } else { Loading Loading @@ -252,7 +252,7 @@ public class DocumentsActivity extends Activity { mDrawerToggle.setDrawerIndicatorEnabled(true); } else { final DocumentRoot root = getCurrentRoot(); final RootInfo root = getCurrentRoot(); actionBar.setIcon(root != null ? root.loadIcon(this) : null); if (mRoots.isRecentsRoot(root)) { Loading Loading @@ -317,7 +317,7 @@ public class DocumentsActivity extends Activity { super.onPrepareOptionsMenu(menu); final FragmentManager fm = getFragmentManager(); final Document cwd = getCurrentDirectory(); final DocumentInfo cwd = getCurrentDirectory(); final MenuItem createDir = menu.findItem(R.id.menu_create_dir); final MenuItem search = menu.findItem(R.id.menu_search); Loading Loading @@ -473,7 +473,7 @@ public class DocumentsActivity extends Activity { } }; public DocumentRoot getCurrentRoot() { public RootInfo getCurrentRoot() { if (mStack.size() > 0) { return mStack.getRoot(mRoots); } else { Loading @@ -481,7 +481,7 @@ public class DocumentsActivity extends Activity { } } public Document getCurrentDirectory() { public DocumentInfo getCurrentDirectory() { return mStack.peek(); } Loading @@ -491,7 +491,7 @@ public class DocumentsActivity extends Activity { private void onCurrentDirectoryChanged() { final FragmentManager fm = getFragmentManager(); final Document cwd = getCurrentDirectory(); final DocumentInfo cwd = getCurrentDirectory(); if (cwd == null) { // No directory means recents Loading Loading @@ -533,14 +533,14 @@ public class DocumentsActivity extends Activity { onCurrentDirectoryChanged(); } public void onRootPicked(DocumentRoot root, boolean closeDrawer) { public void onRootPicked(RootInfo root, boolean closeDrawer) { // Clear entire backstack and start in new root mStack.clear(); if (!mRoots.isRecentsRoot(root)) { try { final Uri uri = DocumentsContract.buildDocumentUri(root.authority, root.docId); onDocumentPicked(Document.fromUri(getContentResolver(), uri)); final Uri uri = DocumentsContract.buildDocumentUri(root.authority, root.documentId); onDocumentPicked(DocumentInfo.fromUri(getContentResolver(), uri)); } catch (FileNotFoundException e) { } } else { Loading @@ -561,7 +561,7 @@ public class DocumentsActivity extends Activity { finish(); } public void onDocumentPicked(Document doc) { public void onDocumentPicked(DocumentInfo doc) { final FragmentManager fm = getFragmentManager(); if (doc.isDirectory()) { // TODO: query display mode user preference for this dir Loading Loading @@ -591,7 +591,7 @@ public class DocumentsActivity extends Activity { } } public void onDocumentsPicked(List<Document> docs) { public void onDocumentsPicked(List<DocumentInfo> docs) { if (mAction == ACTION_OPEN || mAction == ACTION_GET_CONTENT) { final int size = docs.size(); final Uri[] uris = new Uri[size]; Loading @@ -602,21 +602,19 @@ public class DocumentsActivity extends Activity { } } public void onSaveRequested(Document replaceTarget) { public void onSaveRequested(DocumentInfo replaceTarget) { onFinished(replaceTarget.uri); } public void onSaveRequested(String mimeType, String displayName) { final Document cwd = getCurrentDirectory(); final DocumentInfo cwd = getCurrentDirectory(); final String authority = cwd.uri.getAuthority(); final ContentProviderClient client = getContentResolver() .acquireUnstableContentProviderClient(authority); try { final String docId = DocumentsContract.createDocument(client, DocumentsContract.getDocId(cwd.uri), mimeType, displayName); final Uri childUri = DocumentsContract.buildDocumentUri(authority, docId); final Uri childUri = DocumentsContract.createDocument( getContentResolver(), cwd.uri, mimeType, displayName); onFinished(childUri); } catch (Exception e) { Toast.makeText(this, R.string.save_error, Toast.LENGTH_SHORT).show(); Loading Loading @@ -701,7 +699,7 @@ public class DocumentsActivity extends Activity { private void dumpStack() { Log.d(TAG, "Current stack:"); for (Document doc : mStack) { for (DocumentInfo doc : mStack) { Log.d(TAG, "--> " + doc); } } Loading Loading
src/com/android/documentsui/CreateDirectoryFragment.java +6 −14 Original line number Diff line number Diff line Loading @@ -20,7 +20,6 @@ import android.app.AlertDialog; import android.app.Dialog; import android.app.DialogFragment; import android.app.FragmentManager; import android.content.ContentProviderClient; import android.content.ContentResolver; import android.content.Context; import android.content.DialogInterface; Loading @@ -28,13 +27,13 @@ import android.content.DialogInterface.OnClickListener; import android.net.Uri; import android.os.Bundle; import android.provider.DocumentsContract; import android.provider.DocumentsContract.Documents; import android.provider.DocumentsContract.Document; import android.view.LayoutInflater; import android.view.View; import android.widget.EditText; import android.widget.Toast; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; /** * Dialog to create a new directory. Loading Loading @@ -67,24 +66,17 @@ public class CreateDirectoryFragment extends DialogFragment { final String displayName = text1.getText().toString(); final DocumentsActivity activity = (DocumentsActivity) getActivity(); final Document cwd = activity.getCurrentDirectory(); final DocumentInfo cwd = activity.getCurrentDirectory(); final ContentProviderClient client = resolver.acquireUnstableContentProviderClient( cwd.uri.getAuthority()); try { final String docId = DocumentsContract.createDocument(client, DocumentsContract.getDocId(cwd.uri), Documents.MIME_TYPE_DIR, displayName); final Uri childUri = DocumentsContract.createDocument( resolver, cwd.uri, Document.MIME_TYPE_DIR, displayName); // Navigate into newly created child final Uri childUri = DocumentsContract.buildDocumentUri( cwd.uri.getAuthority(), docId); final Document childDoc = Document.fromUri(resolver, childUri); final DocumentInfo childDoc = DocumentInfo.fromUri(resolver, childUri); activity.onDocumentPicked(childDoc); } catch (Exception e) { Toast.makeText(context, R.string.save_error, Toast.LENGTH_SHORT).show(); } finally { ContentProviderClient.closeQuietly(client); } } }); Loading
src/com/android/documentsui/DirectoryFragment.java +24 −24 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ import android.widget.TextView; import android.widget.Toast; import com.android.documentsui.DocumentsActivity.DisplayState; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; import com.android.internal.util.Predicate; import com.google.android.collect.Lists; Loading @@ -81,7 +81,7 @@ public class DirectoryFragment extends Fragment { private AbsListView mCurrentView; private Predicate<Document> mFilter; private Predicate<DocumentInfo> mFilter; public static final int TYPE_NORMAL = 1; public static final int TYPE_SEARCH = 2; Loading @@ -106,8 +106,8 @@ public class DirectoryFragment extends Fragment { } public static void showSearch(FragmentManager fm, Uri uri, String query) { final Uri searchUri = DocumentsContract.buildSearchUri( uri.getAuthority(), DocumentsContract.getDocId(uri), query); final Uri searchUri = DocumentsContract.buildSearchDocumentsUri( uri.getAuthority(), DocumentsContract.getDocumentId(uri), query); show(fm, TYPE_SEARCH, searchUri); } Loading Loading @@ -163,21 +163,21 @@ public class DirectoryFragment extends Fragment { Uri contentsUri; if (mType == TYPE_NORMAL) { contentsUri = DocumentsContract.buildChildrenUri( uri.getAuthority(), DocumentsContract.getDocId(uri)); contentsUri = DocumentsContract.buildChildDocumentsUri( uri.getAuthority(), DocumentsContract.getDocumentId(uri)); } else if (mType == TYPE_RECENT_OPEN) { contentsUri = RecentsProvider.buildRecentOpen(); } else { contentsUri = uri; } final Comparator<Document> sortOrder; final Comparator<DocumentInfo> sortOrder; if (state.sortOrder == SORT_ORDER_LAST_MODIFIED || mType == TYPE_RECENT_OPEN) { sortOrder = new Document.LastModifiedComparator(); sortOrder = new DocumentInfo.LastModifiedComparator(); } else if (state.sortOrder == SORT_ORDER_DISPLAY_NAME) { sortOrder = new Document.DisplayNameComparator(); sortOrder = new DocumentInfo.DisplayNameComparator(); } else if (state.sortOrder == SORT_ORDER_SIZE) { sortOrder = new Document.SizeComparator(); sortOrder = new DocumentInfo.SizeComparator(); } else { throw new IllegalArgumentException("Unknown sort order " + state.sortOrder); } Loading Loading @@ -258,7 +258,7 @@ public class DirectoryFragment extends Fragment { private OnItemClickListener mItemListener = new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { final Document doc = mAdapter.getItem(position); final DocumentInfo doc = mAdapter.getItem(position); if (mFilter.apply(doc)) { ((DocumentsActivity) getActivity()).onDocumentPicked(doc); } Loading Loading @@ -291,11 +291,11 @@ public class DirectoryFragment extends Fragment { @Override public boolean onActionItemClicked(ActionMode mode, MenuItem item) { final SparseBooleanArray checked = mCurrentView.getCheckedItemPositions(); final ArrayList<Document> docs = Lists.newArrayList(); final ArrayList<DocumentInfo> docs = Lists.newArrayList(); final int size = checked.size(); for (int i = 0; i < size; i++) { if (checked.valueAt(i)) { final Document doc = mAdapter.getItem(checked.keyAt(i)); final DocumentInfo doc = mAdapter.getItem(checked.keyAt(i)); docs.add(doc); } } Loading Loading @@ -328,7 +328,7 @@ public class DirectoryFragment extends Fragment { ActionMode mode, int position, long id, boolean checked) { if (checked) { // Directories cannot be checked final Document doc = mAdapter.getItem(position); final DocumentInfo doc = mAdapter.getItem(position); if (doc.isDirectory()) { mCurrentView.setItemChecked(position, false); } Loading @@ -339,9 +339,9 @@ public class DirectoryFragment extends Fragment { } }; private void onShareDocuments(List<Document> docs) { private void onShareDocuments(List<DocumentInfo> docs) { final ArrayList<Uri> uris = Lists.newArrayList(); for (Document doc : docs) { for (DocumentInfo doc : docs) { uris.add(doc.uri); } Loading @@ -363,12 +363,12 @@ public class DirectoryFragment extends Fragment { startActivity(intent); } private void onDeleteDocuments(List<Document> docs) { private void onDeleteDocuments(List<DocumentInfo> docs) { final Context context = getActivity(); final ContentResolver resolver = context.getContentResolver(); boolean hadTrouble = false; for (Document doc : docs) { for (DocumentInfo doc : docs) { if (!doc.isDeleteSupported()) { Log.w(TAG, "Skipping " + doc); hadTrouble = true; Loading Loading @@ -396,12 +396,12 @@ public class DirectoryFragment extends Fragment { } private class DocumentsAdapter extends BaseAdapter { private List<Document> mDocuments; private List<DocumentInfo> mDocuments; public DocumentsAdapter() { } public void swapDocuments(List<Document> documents) { public void swapDocuments(List<DocumentInfo> documents) { mDocuments = documents; if (mDocuments != null && mDocuments.isEmpty()) { Loading Loading @@ -433,7 +433,7 @@ public class DirectoryFragment extends Fragment { } } final Document doc = getItem(position); final DocumentInfo doc = getItem(position); final ImageView icon = (ImageView) convertView.findViewById(android.R.id.icon); final TextView title = (TextView) convertView.findViewById(android.R.id.title); Loading Loading @@ -507,7 +507,7 @@ public class DirectoryFragment extends Fragment { } @Override public Document getItem(int position) { public DocumentInfo getItem(int position) { return mDocuments.get(position); } Loading Loading @@ -538,8 +538,8 @@ public class DirectoryFragment extends Fragment { Bitmap result = null; try { result = DocumentsContract.getThumbnail( context.getContentResolver(), uri, mThumbSize); result = DocumentsContract.getDocumentThumbnail( context.getContentResolver(), uri, mThumbSize, null); if (result != null) { final ThumbnailCache thumbs = DocumentsApplication.getThumbnailsCache( context, mThumbSize); Loading
src/com/android/documentsui/DirectoryLoader.java +9 −9 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ import android.net.Uri; import android.os.CancellationSignal; import android.util.Log; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; import com.android.internal.util.Predicate; import com.google.android.collect.Lists; Loading @@ -41,7 +41,7 @@ import java.util.List; class DirectoryResult implements AutoCloseable { Cursor cursor; List<Document> contents = Lists.newArrayList(); List<DocumentInfo> contents = Lists.newArrayList(); Exception e; @Override Loading @@ -53,11 +53,11 @@ class DirectoryResult implements AutoCloseable { public class DirectoryLoader extends UriDerivativeLoader<Uri, DirectoryResult> { private final int mType; private Predicate<Document> mFilter; private Comparator<Document> mSortOrder; private Predicate<DocumentInfo> mFilter; private Comparator<DocumentInfo> mSortOrder; public DirectoryLoader(Context context, Uri uri, int type, Predicate<Document> filter, Comparator<Document> sortOrder) { public DirectoryLoader(Context context, Uri uri, int type, Predicate<DocumentInfo> filter, Comparator<DocumentInfo> sortOrder) { super(context, uri); mType = type; mFilter = filter; Loading @@ -84,15 +84,15 @@ public class DirectoryLoader extends UriDerivativeLoader<Uri, DirectoryResult> { result.cursor.registerContentObserver(mObserver); while (cursor.moveToNext()) { Document doc = null; DocumentInfo doc = null; switch (mType) { case TYPE_NORMAL: case TYPE_SEARCH: doc = Document.fromDirectoryCursor(uri, cursor); doc = DocumentInfo.fromDirectoryCursor(uri, cursor); break; case TYPE_RECENT_OPEN: try { doc = Document.fromRecentOpenCursor(resolver, cursor); doc = DocumentInfo.fromRecentOpenCursor(resolver, cursor); } catch (FileNotFoundException e) { Log.w(TAG, "Failed to find recent: " + e); } Loading
src/com/android/documentsui/DocumentChangedReceiver.java +1 −2 Original line number Diff line number Diff line Loading @@ -21,11 +21,10 @@ import static com.android.documentsui.DocumentsActivity.TAG; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.provider.DocumentsContract.DocumentRoot; import android.util.Log; /** * Handles {@link DocumentRoot} changes which invalidate cached data. * Handles changes which invalidate cached data. */ public class DocumentChangedReceiver extends BroadcastReceiver { @Override Loading
src/com/android/documentsui/DocumentsActivity.java +18 −20 Original line number Diff line number Diff line Loading @@ -42,7 +42,6 @@ import android.graphics.drawable.ColorDrawable; import android.net.Uri; import android.os.Bundle; import android.provider.DocumentsContract; import android.provider.DocumentsContract.DocumentRoot; import android.support.v4.app.ActionBarDrawerToggle; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; Loading @@ -60,8 +59,9 @@ import android.widget.SearchView.OnQueryTextListener; import android.widget.TextView; import android.widget.Toast; import com.android.documentsui.model.Document; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.RootInfo; import java.io.FileNotFoundException; import java.util.Arrays; Loading Loading @@ -160,7 +160,7 @@ public class DocumentsActivity extends Activity { mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED); final Uri rootUri = intent.getData(); final DocumentRoot root = mRoots.findRoot(rootUri); final RootInfo root = mRoots.findRoot(rootUri); if (root != null) { onRootPicked(root, true); } else { Loading Loading @@ -252,7 +252,7 @@ public class DocumentsActivity extends Activity { mDrawerToggle.setDrawerIndicatorEnabled(true); } else { final DocumentRoot root = getCurrentRoot(); final RootInfo root = getCurrentRoot(); actionBar.setIcon(root != null ? root.loadIcon(this) : null); if (mRoots.isRecentsRoot(root)) { Loading Loading @@ -317,7 +317,7 @@ public class DocumentsActivity extends Activity { super.onPrepareOptionsMenu(menu); final FragmentManager fm = getFragmentManager(); final Document cwd = getCurrentDirectory(); final DocumentInfo cwd = getCurrentDirectory(); final MenuItem createDir = menu.findItem(R.id.menu_create_dir); final MenuItem search = menu.findItem(R.id.menu_search); Loading Loading @@ -473,7 +473,7 @@ public class DocumentsActivity extends Activity { } }; public DocumentRoot getCurrentRoot() { public RootInfo getCurrentRoot() { if (mStack.size() > 0) { return mStack.getRoot(mRoots); } else { Loading @@ -481,7 +481,7 @@ public class DocumentsActivity extends Activity { } } public Document getCurrentDirectory() { public DocumentInfo getCurrentDirectory() { return mStack.peek(); } Loading @@ -491,7 +491,7 @@ public class DocumentsActivity extends Activity { private void onCurrentDirectoryChanged() { final FragmentManager fm = getFragmentManager(); final Document cwd = getCurrentDirectory(); final DocumentInfo cwd = getCurrentDirectory(); if (cwd == null) { // No directory means recents Loading Loading @@ -533,14 +533,14 @@ public class DocumentsActivity extends Activity { onCurrentDirectoryChanged(); } public void onRootPicked(DocumentRoot root, boolean closeDrawer) { public void onRootPicked(RootInfo root, boolean closeDrawer) { // Clear entire backstack and start in new root mStack.clear(); if (!mRoots.isRecentsRoot(root)) { try { final Uri uri = DocumentsContract.buildDocumentUri(root.authority, root.docId); onDocumentPicked(Document.fromUri(getContentResolver(), uri)); final Uri uri = DocumentsContract.buildDocumentUri(root.authority, root.documentId); onDocumentPicked(DocumentInfo.fromUri(getContentResolver(), uri)); } catch (FileNotFoundException e) { } } else { Loading @@ -561,7 +561,7 @@ public class DocumentsActivity extends Activity { finish(); } public void onDocumentPicked(Document doc) { public void onDocumentPicked(DocumentInfo doc) { final FragmentManager fm = getFragmentManager(); if (doc.isDirectory()) { // TODO: query display mode user preference for this dir Loading Loading @@ -591,7 +591,7 @@ public class DocumentsActivity extends Activity { } } public void onDocumentsPicked(List<Document> docs) { public void onDocumentsPicked(List<DocumentInfo> docs) { if (mAction == ACTION_OPEN || mAction == ACTION_GET_CONTENT) { final int size = docs.size(); final Uri[] uris = new Uri[size]; Loading @@ -602,21 +602,19 @@ public class DocumentsActivity extends Activity { } } public void onSaveRequested(Document replaceTarget) { public void onSaveRequested(DocumentInfo replaceTarget) { onFinished(replaceTarget.uri); } public void onSaveRequested(String mimeType, String displayName) { final Document cwd = getCurrentDirectory(); final DocumentInfo cwd = getCurrentDirectory(); final String authority = cwd.uri.getAuthority(); final ContentProviderClient client = getContentResolver() .acquireUnstableContentProviderClient(authority); try { final String docId = DocumentsContract.createDocument(client, DocumentsContract.getDocId(cwd.uri), mimeType, displayName); final Uri childUri = DocumentsContract.buildDocumentUri(authority, docId); final Uri childUri = DocumentsContract.createDocument( getContentResolver(), cwd.uri, mimeType, displayName); onFinished(childUri); } catch (Exception e) { Toast.makeText(this, R.string.save_error, Toast.LENGTH_SHORT).show(); Loading Loading @@ -701,7 +699,7 @@ public class DocumentsActivity extends Activity { private void dumpStack() { Log.d(TAG, "Current stack:"); for (Document doc : mStack) { for (DocumentInfo doc : mStack) { Log.d(TAG, "--> " + doc); } } Loading