Loading packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +2 −14 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import android.widget.Spinner; import com.android.documentsui.SearchManager.SearchManagerListener; import com.android.documentsui.State.ViewMode; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.RootInfo; Loading Loading @@ -86,7 +87,7 @@ public abstract class BaseActivity extends Activity private boolean mNavDrawerHasFocus; public abstract void onDocumentPicked(DocumentInfo doc, @Nullable SiblingProvider siblings); public abstract void onDocumentPicked(DocumentInfo doc, Model model); public abstract void onDocumentsPicked(List<DocumentInfo> docs); abstract void onTaskFinished(Uri... uris); Loading Loading @@ -701,17 +702,4 @@ public abstract class BaseActivity extends Activity } } } /** * Interface providing access to current view of documents * even when all documents are not homed to the same parent. */ public interface SiblingProvider { /** * Returns the cursor for the selected document. The cursor can be used to retrieve * details about a document and its siblings. * @return */ Cursor getCursor(); } } packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.view.MenuItem; import com.android.documentsui.RecentsProvider.RecentColumns; import com.android.documentsui.RecentsProvider.ResumeColumns; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DurableUtils; import com.android.documentsui.model.RootInfo; Loading Loading @@ -328,7 +329,7 @@ public class DocumentsActivity extends BaseActivity { } @Override public void onDocumentPicked(DocumentInfo doc, SiblingProvider siblings) { public void onDocumentPicked(DocumentInfo doc, Model model) { final FragmentManager fm = getFragmentManager(); if (doc.isContainer()) { openContainerDocument(doc); Loading packages/DocumentsUI/src/com/android/documentsui/DownloadsActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.view.MenuItem; import android.widget.Toolbar; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.RootInfo; import com.android.internal.util.Preconditions; Loading Loading @@ -132,7 +133,7 @@ public class DownloadsActivity extends BaseActivity { } @Override public void onDocumentPicked(DocumentInfo doc, SiblingProvider siblings) { public void onDocumentPicked(DocumentInfo doc, Model model) { Preconditions.checkArgument(!doc.isDirectory()); // First try managing the document; we expect manager to filter // based on authority, so we don't grant. Loading packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java +6 −9 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.view.MenuItem; import com.android.documentsui.OperationDialogFragment.DialogType; import com.android.documentsui.RecentsProvider.ResumeColumns; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.DurableUtils; Loading Loading @@ -272,24 +273,20 @@ public class FilesActivity extends BaseActivity { } @Override public void onDocumentPicked(DocumentInfo doc, @Nullable SiblingProvider siblings) { public void onDocumentPicked(DocumentInfo doc, Model model) { if (doc.isContainer()) { openContainerDocument(doc); } else { openDocument(doc, siblings); openDocument(doc, model); } } /** * Launches an intent to view the specified document. */ private void openDocument(DocumentInfo doc, @Nullable SiblingProvider siblings) { Intent intent = null; if (siblings != null) { QuickViewIntentBuilder builder = new QuickViewIntentBuilder( getPackageManager(), getResources(), doc, siblings); intent = builder.build(); } private void openDocument(DocumentInfo doc, Model model) { Intent intent = new QuickViewIntentBuilder( getPackageManager(), getResources(), doc, model).build(); if (intent != null) { // TODO: un-work around issue b/24963914. Should be fixed soon. Loading packages/DocumentsUI/src/com/android/documentsui/QuickViewIntentBuilder.java +15 −9 Original line number Diff line number Diff line Loading @@ -34,16 +34,18 @@ import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.Log; import com.android.documentsui.BaseActivity.SiblingProvider; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import java.util.List; /** * Provides support for gather a list of quick-viewable files into a quick view intent. */ final class QuickViewIntentBuilder { private final DocumentInfo mDocument; private final SiblingProvider mSiblings; private final Model mModel; private final PackageManager mPkgManager; private final Resources mResources; Loading @@ -55,12 +57,12 @@ final class QuickViewIntentBuilder { PackageManager pkgManager, Resources resources, DocumentInfo doc, SiblingProvider siblings) { Model model) { mPkgManager = pkgManager; mResources = resources; mDocument = doc; mSiblings = siblings; mModel = model; } /** Loading @@ -78,9 +80,9 @@ final class QuickViewIntentBuilder { intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setPackage(trustedPkg); if (hasRegisteredHandler(intent)) { Cursor cursor = mSiblings.getCursor(); for (int i = 0; i < cursor.getCount(); i++) { onNextItem(i, cursor); List<String> siblingIds = mModel.getModelIds(); for (int i = 0; i < siblingIds.size(); i++) { onNextItem(i, siblingIds); } intent.putExtra(Intent.EXTRA_INDEX, mDocumentLocation); intent.setClipData(mClipData); Loading @@ -99,8 +101,12 @@ final class QuickViewIntentBuilder { return intent.resolveActivity(mPkgManager) != null; } private void onNextItem(int index, Cursor cursor) { cursor.moveToPosition(index); private void onNextItem(int index, List<String> siblingIds) { final Cursor cursor = mModel.getItem(siblingIds.get(index)); if (cursor == null) { return; } String mimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE); if (Document.MIME_TYPE_DIR.equals(mimeType)) { Loading Loading
packages/DocumentsUI/src/com/android/documentsui/BaseActivity.java +2 −14 Original line number Diff line number Diff line Loading @@ -50,6 +50,7 @@ import android.widget.Spinner; import com.android.documentsui.SearchManager.SearchManagerListener; import com.android.documentsui.State.ViewMode; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.RootInfo; Loading Loading @@ -86,7 +87,7 @@ public abstract class BaseActivity extends Activity private boolean mNavDrawerHasFocus; public abstract void onDocumentPicked(DocumentInfo doc, @Nullable SiblingProvider siblings); public abstract void onDocumentPicked(DocumentInfo doc, Model model); public abstract void onDocumentsPicked(List<DocumentInfo> docs); abstract void onTaskFinished(Uri... uris); Loading Loading @@ -701,17 +702,4 @@ public abstract class BaseActivity extends Activity } } } /** * Interface providing access to current view of documents * even when all documents are not homed to the same parent. */ public interface SiblingProvider { /** * Returns the cursor for the selected document. The cursor can be used to retrieve * details about a document and its siblings. * @return */ Cursor getCursor(); } }
packages/DocumentsUI/src/com/android/documentsui/DocumentsActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -48,6 +48,7 @@ import android.view.MenuItem; import com.android.documentsui.RecentsProvider.RecentColumns; import com.android.documentsui.RecentsProvider.ResumeColumns; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DurableUtils; import com.android.documentsui.model.RootInfo; Loading Loading @@ -328,7 +329,7 @@ public class DocumentsActivity extends BaseActivity { } @Override public void onDocumentPicked(DocumentInfo doc, SiblingProvider siblings) { public void onDocumentPicked(DocumentInfo doc, Model model) { final FragmentManager fm = getFragmentManager(); if (doc.isContainer()) { openContainerDocument(doc); Loading
packages/DocumentsUI/src/com/android/documentsui/DownloadsActivity.java +2 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,7 @@ import android.view.MenuItem; import android.widget.Toolbar; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.RootInfo; import com.android.internal.util.Preconditions; Loading Loading @@ -132,7 +133,7 @@ public class DownloadsActivity extends BaseActivity { } @Override public void onDocumentPicked(DocumentInfo doc, SiblingProvider siblings) { public void onDocumentPicked(DocumentInfo doc, Model model) { Preconditions.checkArgument(!doc.isDirectory()); // First try managing the document; we expect manager to filter // based on authority, so we don't grant. Loading
packages/DocumentsUI/src/com/android/documentsui/FilesActivity.java +6 −9 Original line number Diff line number Diff line Loading @@ -43,6 +43,7 @@ import android.view.MenuItem; import com.android.documentsui.OperationDialogFragment.DialogType; import com.android.documentsui.RecentsProvider.ResumeColumns; import com.android.documentsui.dirlist.DirectoryFragment; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import com.android.documentsui.model.DocumentStack; import com.android.documentsui.model.DurableUtils; Loading Loading @@ -272,24 +273,20 @@ public class FilesActivity extends BaseActivity { } @Override public void onDocumentPicked(DocumentInfo doc, @Nullable SiblingProvider siblings) { public void onDocumentPicked(DocumentInfo doc, Model model) { if (doc.isContainer()) { openContainerDocument(doc); } else { openDocument(doc, siblings); openDocument(doc, model); } } /** * Launches an intent to view the specified document. */ private void openDocument(DocumentInfo doc, @Nullable SiblingProvider siblings) { Intent intent = null; if (siblings != null) { QuickViewIntentBuilder builder = new QuickViewIntentBuilder( getPackageManager(), getResources(), doc, siblings); intent = builder.build(); } private void openDocument(DocumentInfo doc, Model model) { Intent intent = new QuickViewIntentBuilder( getPackageManager(), getResources(), doc, model).build(); if (intent != null) { // TODO: un-work around issue b/24963914. Should be fixed soon. Loading
packages/DocumentsUI/src/com/android/documentsui/QuickViewIntentBuilder.java +15 −9 Original line number Diff line number Diff line Loading @@ -34,16 +34,18 @@ import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.Log; import com.android.documentsui.BaseActivity.SiblingProvider; import com.android.documentsui.dirlist.Model; import com.android.documentsui.model.DocumentInfo; import java.util.List; /** * Provides support for gather a list of quick-viewable files into a quick view intent. */ final class QuickViewIntentBuilder { private final DocumentInfo mDocument; private final SiblingProvider mSiblings; private final Model mModel; private final PackageManager mPkgManager; private final Resources mResources; Loading @@ -55,12 +57,12 @@ final class QuickViewIntentBuilder { PackageManager pkgManager, Resources resources, DocumentInfo doc, SiblingProvider siblings) { Model model) { mPkgManager = pkgManager; mResources = resources; mDocument = doc; mSiblings = siblings; mModel = model; } /** Loading @@ -78,9 +80,9 @@ final class QuickViewIntentBuilder { intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.setPackage(trustedPkg); if (hasRegisteredHandler(intent)) { Cursor cursor = mSiblings.getCursor(); for (int i = 0; i < cursor.getCount(); i++) { onNextItem(i, cursor); List<String> siblingIds = mModel.getModelIds(); for (int i = 0; i < siblingIds.size(); i++) { onNextItem(i, siblingIds); } intent.putExtra(Intent.EXTRA_INDEX, mDocumentLocation); intent.setClipData(mClipData); Loading @@ -99,8 +101,12 @@ final class QuickViewIntentBuilder { return intent.resolveActivity(mPkgManager) != null; } private void onNextItem(int index, Cursor cursor) { cursor.moveToPosition(index); private void onNextItem(int index, List<String> siblingIds) { final Cursor cursor = mModel.getItem(siblingIds.get(index)); if (cursor == null) { return; } String mimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE); if (Document.MIME_TYPE_DIR.equals(mimeType)) { Loading