diff options
8 files changed, 248 insertions, 321 deletions
diff --git a/src/com/android/documentsui/BaseActivity.java b/src/com/android/documentsui/BaseActivity.java index c6cbc1936..f08294ecf 100644 --- a/src/com/android/documentsui/BaseActivity.java +++ b/src/com/android/documentsui/BaseActivity.java @@ -75,7 +75,6 @@ import com.android.documentsui.sidebar.RootsFragment; import com.android.documentsui.sorting.SortController; import com.android.documentsui.sorting.SortModel; -import com.android.documentsui.util.VersionUtils; import com.google.android.material.appbar.AppBarLayout; import java.util.ArrayList; @@ -504,50 +503,39 @@ public abstract class BaseActivity @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case android.R.id.home: - onBackPressed(); - return true; - - case R.id.option_menu_create_dir: - getInjector().actions.showCreateDirectoryDialog(); - return true; - - case R.id.option_menu_search: - // SearchViewManager listens for this directly. - return false; - - case R.id.option_menu_select_all: - getInjector().actions.selectAllFiles(); - return true; - - case R.id.option_menu_debug: - getInjector().actions.showDebugMessage(); - return true; - - case R.id.option_menu_sort: - getInjector().actions.showSortDialog(); - return true; - - case R.id.option_menu_launcher: - getInjector().actions.switchLauncherIcon(); - return true; - - case R.id.option_menu_show_hidden_files: - onClickedShowHiddenFiles(); - return true; - - case R.id.sub_menu_grid: - setViewMode(State.MODE_GRID); - return true; - - case R.id.sub_menu_list: - setViewMode(State.MODE_LIST); - return true; - - default: - return super.onOptionsItemSelected(item); + final int id = item.getItemId(); + if (id == android.R.id.home) { + onBackPressed(); + return true; + } else if (id == R.id.option_menu_create_dir) { + getInjector().actions.showCreateDirectoryDialog(); + return true; + } else if (id == R.id.option_menu_search) { + // SearchViewManager listens for this directly. + return false; + } else if (id == R.id.option_menu_select_all) { + getInjector().actions.selectAllFiles(); + return true; + } else if (id == R.id.option_menu_debug) { + getInjector().actions.showDebugMessage(); + return true; + } else if (id == R.id.option_menu_sort) { + getInjector().actions.showSortDialog(); + return true; + } else if (id == R.id.option_menu_launcher) { + getInjector().actions.switchLauncherIcon(); + return true; + } else if (id == R.id.option_menu_show_hidden_files) { + onClickedShowHiddenFiles(); + return true; + } else if (id == R.id.sub_menu_grid) { + setViewMode(MODE_GRID); + return true; + } else if (id == R.id.sub_menu_list) { + setViewMode(State.MODE_LIST); + return true; } + return super.onOptionsItemSelected(item); } protected final @Nullable DirectoryFragment getDirectoryFragment() { diff --git a/src/com/android/documentsui/dirlist/DirectoryFragment.java b/src/com/android/documentsui/dirlist/DirectoryFragment.java index a5306bd97..4444a9c02 100644 --- a/src/com/android/documentsui/dirlist/DirectoryFragment.java +++ b/src/com/android/documentsui/dirlist/DirectoryFragment.java @@ -110,8 +110,8 @@ import com.android.documentsui.services.FileOperationService.OpType; import com.android.documentsui.services.FileOperations; import com.android.documentsui.sorting.SortDimension; import com.android.documentsui.sorting.SortModel; - import com.android.documentsui.util.VersionUtils; + import com.google.common.base.Objects; import java.io.IOException; @@ -833,127 +833,99 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On MutableSelection<String> selection = new MutableSelection<>(); mSelectionMgr.copySelection(selection); - switch (item.getItemId()) { - case R.id.action_menu_select: - case R.id.dir_menu_open: - openDocuments(selection); - mActionModeController.finishActionMode(); - return true; - - case R.id.action_menu_open_with: - case R.id.dir_menu_open_with: - showChooserForDoc(selection); - return true; - - case R.id.dir_menu_open_in_new_window: - mActions.openSelectedInNewWindow(); - return true; - - case R.id.action_menu_share: - case R.id.dir_menu_share: - mActions.shareSelectedDocuments(); - return true; - - case R.id.action_menu_delete: - case R.id.dir_menu_delete: - // deleteDocuments will end action mode if the documents are deleted. - // It won't end action mode if user cancels the delete. - mActions.showDeleteDialog(); - return true; - - case R.id.action_menu_copy_to: - transferDocuments(selection, null, FileOperationService.OPERATION_COPY); - // TODO: Only finish selection mode if copy-to is not canceled. - // Need to plum down into handling the way we do with deleteDocuments. - mActionModeController.finishActionMode(); - return true; - - case R.id.action_menu_compress: - transferDocuments(selection, mState.stack, - FileOperationService.OPERATION_COMPRESS); - // TODO: Only finish selection mode if compress is not canceled. - // Need to plum down into handling the way we do with deleteDocuments. - mActionModeController.finishActionMode(); - return true; + final int id = item.getItemId(); + if (id == R.id.action_menu_select || id == R.id.dir_menu_open) { + openDocuments(selection); + mActionModeController.finishActionMode(); + return true; + } else if (id == R.id.action_menu_open_with || id == R.id.dir_menu_open_with) { + showChooserForDoc(selection); + return true; + } else if (id == R.id.dir_menu_open_in_new_window) { + mActions.openSelectedInNewWindow(); + return true; + } else if (id == R.id.action_menu_share || id == R.id.dir_menu_share) { + mActions.shareSelectedDocuments(); + return true; + } else if (id == R.id.action_menu_delete || id == R.id.dir_menu_delete) { + // deleteDocuments will end action mode if the documents are deleted. + // It won't end action mode if user cancels the delete. + mActions.showDeleteDialog(); + return true; + } else if (id == R.id.action_menu_copy_to) { + transferDocuments(selection, null, FileOperationService.OPERATION_COPY); + // TODO: Only finish selection mode if copy-to is not canceled. + // Need to plum down into handling the way we do with deleteDocuments. + mActionModeController.finishActionMode(); + return true; + } else if (id == R.id.action_menu_compress) { + transferDocuments(selection, mState.stack, + FileOperationService.OPERATION_COMPRESS); + // TODO: Only finish selection mode if compress is not canceled. + // Need to plum down into handling the way we do with deleteDocuments. + mActionModeController.finishActionMode(); + return true; // TODO: Implement extract (to the current directory). - case R.id.action_menu_extract_to: - transferDocuments(selection, null, FileOperationService.OPERATION_EXTRACT); - // TODO: Only finish selection mode if compress-to is not canceled. - // Need to plum down into handling the way we do with deleteDocuments. - mActionModeController.finishActionMode(); - return true; - - case R.id.action_menu_move_to: - if (mModel.hasDocuments(selection, DocumentFilters.NOT_MOVABLE)) { - mInjector.dialogs.showOperationUnsupported(); - return true; - } - // Exit selection mode first, so we avoid deselecting deleted documents. - mActionModeController.finishActionMode(); - transferDocuments(selection, null, FileOperationService.OPERATION_MOVE); - return true; - - case R.id.action_menu_inspect: - case R.id.dir_menu_inspect: - mActionModeController.finishActionMode(); - assert selection.size() <= 1; - DocumentInfo doc = selection.isEmpty() - ? mActivity.getCurrentDirectory() - : mModel.getDocuments(selection).get(0); - - mActions.showInspector(doc); - return true; - - case R.id.dir_menu_cut_to_clipboard: - mActions.cutToClipboard(); - return true; - - case R.id.dir_menu_copy_to_clipboard: - mActions.copyToClipboard(); - return true; - - case R.id.dir_menu_paste_from_clipboard: - pasteFromClipboard(); - return true; - - case R.id.dir_menu_paste_into_folder: - pasteIntoFolder(); - return true; - - case R.id.action_menu_select_all: - case R.id.dir_menu_select_all: - mActions.selectAllFiles(); - return true; - - case R.id.action_menu_deselect_all: - case R.id.dir_menu_deselect_all: - mActions.deselectAllFiles(); - return true; - - case R.id.action_menu_rename: - case R.id.dir_menu_rename: - renameDocuments(selection); - return true; - - case R.id.dir_menu_create_dir: - mActions.showCreateDirectoryDialog(); - return true; - - case R.id.dir_menu_view_in_owner: - mActions.viewInOwner(); - return true; - - case R.id.action_menu_sort: - mActions.showSortDialog(); + } else if (id == R.id.action_menu_extract_to) { + transferDocuments(selection, null, FileOperationService.OPERATION_EXTRACT); + // TODO: Only finish selection mode if compress-to is not canceled. + // Need to plum down into handling the way we do with deleteDocuments. + mActionModeController.finishActionMode(); + return true; + } else if (id == R.id.action_menu_move_to) { + if (mModel.hasDocuments(selection, DocumentFilters.NOT_MOVABLE)) { + mInjector.dialogs.showOperationUnsupported(); return true; - - default: - if (DEBUG) { - Log.d(TAG, "Unhandled menu item selected: " + item); - } - return false; + } + // Exit selection mode first, so we avoid deselecting deleted documents. + mActionModeController.finishActionMode(); + transferDocuments(selection, null, FileOperationService.OPERATION_MOVE); + return true; + } else if (id == R.id.action_menu_inspect || id == R.id.dir_menu_inspect) { + mActionModeController.finishActionMode(); + assert selection.size() <= 1; + DocumentInfo doc = selection.isEmpty() + ? mActivity.getCurrentDirectory() + : mModel.getDocuments(selection).get(0); + + mActions.showInspector(doc); + return true; + } else if (id == R.id.dir_menu_cut_to_clipboard) { + mActions.cutToClipboard(); + return true; + } else if (id == R.id.dir_menu_copy_to_clipboard) { + mActions.copyToClipboard(); + return true; + } else if (id == R.id.dir_menu_paste_from_clipboard) { + pasteFromClipboard(); + return true; + } else if (id == R.id.dir_menu_paste_into_folder) { + pasteIntoFolder(); + return true; + } else if (id == R.id.action_menu_select_all || id == R.id.dir_menu_select_all) { + mActions.selectAllFiles(); + return true; + } else if (id == R.id.action_menu_deselect_all || id == R.id.dir_menu_deselect_all) { + mActions.deselectAllFiles(); + return true; + } else if (id == R.id.action_menu_rename || id == R.id.dir_menu_rename) { + renameDocuments(selection); + return true; + } else if (id == R.id.dir_menu_create_dir) { + mActions.showCreateDirectoryDialog(); + return true; + } else if (id == R.id.dir_menu_view_in_owner) { + mActions.viewInOwner(); + return true; + } else if (id == R.id.action_menu_sort) { + mActions.showSortDialog(); + return true; + } + if (DEBUG) { + Log.d(TAG, "Unhandled menu item selected: " + item); } + return false; } private boolean onAccessibilityClick(View child) { diff --git a/src/com/android/documentsui/files/FilesActivity.java b/src/com/android/documentsui/files/FilesActivity.java index 7c09811c9..c426a7070 100644 --- a/src/com/android/documentsui/files/FilesActivity.java +++ b/src/com/android/documentsui/files/FilesActivity.java @@ -303,25 +303,20 @@ public class FilesActivity extends BaseActivity implements AbstractActionHandler @Override public boolean onOptionsItemSelected(MenuItem item) { DirectoryFragment dir; - switch (item.getItemId()) { - case R.id.option_menu_create_dir: - assert(canCreateDirectory()); - mInjector.actions.showCreateDirectoryDialog(); - break; - case R.id.option_menu_new_window: - mInjector.actions.openInNewWindow(mState.stack); - break; - case R.id.option_menu_settings: - mInjector.actions.openSettings(getCurrentRoot()); - break; - case R.id.option_menu_select_all: - mInjector.actions.selectAllFiles(); - break; - case R.id.option_menu_inspect: - mInjector.actions.showInspector(getCurrentDirectory()); - break; - default: - return super.onOptionsItemSelected(item); + final int id = item.getItemId(); + if (id == R.id.option_menu_create_dir) { + assert (canCreateDirectory()); + mInjector.actions.showCreateDirectoryDialog(); + } else if (id == R.id.option_menu_new_window) { + mInjector.actions.openInNewWindow(mState.stack); + } else if (id == R.id.option_menu_settings) { + mInjector.actions.openSettings(getCurrentRoot()); + } else if (id == R.id.option_menu_select_all) { + mInjector.actions.selectAllFiles(); + } else if (id == R.id.option_menu_inspect) { + mInjector.actions.showInspector(getCurrentDirectory()); + } else { + return super.onOptionsItemSelected(item); } return true; } diff --git a/src/com/android/documentsui/sidebar/RootsFragment.java b/src/com/android/documentsui/sidebar/RootsFragment.java index 5bf3f1af5..49710e18c 100644 --- a/src/com/android/documentsui/sidebar/RootsFragment.java +++ b/src/com/android/documentsui/sidebar/RootsFragment.java @@ -611,26 +611,25 @@ public class RootsFragment extends Fragment { return false; } final RootItem rootItem = (RootItem) mAdapter.getItem(adapterMenuInfo.position); - switch (item.getItemId()) { - case R.id.root_menu_eject_root: - final View ejectIcon = adapterMenuInfo.targetView.findViewById(R.id.action_icon); - ejectClicked(ejectIcon, rootItem.root, mActionHandler); - return true; - case R.id.root_menu_open_in_new_window: - mActionHandler.openInNewWindow(new DocumentStack(rootItem.root)); - return true; - case R.id.root_menu_paste_into_folder: - mActionHandler.pasteIntoFolder(rootItem.root); - return true; - case R.id.root_menu_settings: - mActionHandler.openSettings(rootItem.root); - return true; - default: - if (DEBUG) { - Log.d(TAG, "Unhandled menu item selected: " + item); - } - return false; + final int id = item.getItemId(); + if (id == R.id.root_menu_eject_root) { + final View ejectIcon = adapterMenuInfo.targetView.findViewById(R.id.action_icon); + ejectClicked(ejectIcon, rootItem.root, mActionHandler); + return true; + } else if (id == R.id.root_menu_open_in_new_window) { + mActionHandler.openInNewWindow(new DocumentStack(rootItem.root)); + return true; + } else if (id == R.id.root_menu_paste_into_folder) { + mActionHandler.pasteIntoFolder(rootItem.root); + return true; + } else if (id == R.id.root_menu_settings) { + mActionHandler.openSettings(rootItem.root); + return true; + } + if (DEBUG) { + Log.d(TAG, "Unhandled menu item selected: " + item); } + return false; } private void getRootDocument(RootItem rootItem, RootUpdater updater) { diff --git a/src/com/android/documentsui/sorting/SortController.java b/src/com/android/documentsui/sorting/SortController.java index ccfc3f146..4fc28448d 100644 --- a/src/com/android/documentsui/sorting/SortController.java +++ b/src/com/android/documentsui/sorting/SortController.java @@ -16,11 +16,11 @@ package com.android.documentsui.sorting; +import android.view.View; + import androidx.annotation.Nullable; import androidx.fragment.app.FragmentActivity; -import android.view.View; - import com.android.documentsui.BaseActivity; import com.android.documentsui.Injector; import com.android.documentsui.MetricConsts; @@ -67,19 +67,15 @@ public final class SortController { final Injector<?> injector = ((BaseActivity)activity).getInjector(); sortModel.setMetricRecorder((SortDimension dimension) -> { int sortType = MetricConsts.USER_ACTION_UNKNOWN; - switch (dimension.getId()) { - case SortModel.SORT_DIMENSION_ID_TITLE: - sortType = MetricConsts.USER_ACTION_SORT_NAME; - break; - case SortModel.SORT_DIMENSION_ID_SIZE: - sortType = MetricConsts.USER_ACTION_SORT_SIZE; - break; - case SortModel.SORT_DIMENSION_ID_DATE: - sortType = MetricConsts.USER_ACTION_SORT_DATE; - break; - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - sortType = MetricConsts.USER_ACTION_SORT_TYPE; - break; + final int id = dimension.getId(); + if (id == SortModel.SORT_DIMENSION_ID_TITLE) { + sortType = MetricConsts.USER_ACTION_SORT_NAME; + } else if (id == SortModel.SORT_DIMENSION_ID_SIZE) { + sortType = MetricConsts.USER_ACTION_SORT_SIZE; + } else if (id == SortModel.SORT_DIMENSION_ID_DATE) { + sortType = MetricConsts.USER_ACTION_SORT_DATE; + } else if (id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + sortType = MetricConsts.USER_ACTION_SORT_TYPE; } Metrics.logUserAction(sortType); diff --git a/src/com/android/documentsui/sorting/SortListFragment.java b/src/com/android/documentsui/sorting/SortListFragment.java index 50cbbbaba..8d4032c9e 100644 --- a/src/com/android/documentsui/sorting/SortListFragment.java +++ b/src/com/android/documentsui/sorting/SortListFragment.java @@ -65,18 +65,15 @@ public class SortListFragment extends DialogFragment { for (int i = 0; i < mModel.getSize(); ++i) { SortDimension dimension = mModel.getDimensionAt(i); if (dimension.getSortCapability() != SortDimension.SORT_CAPABILITY_NONE) { - switch (dimension.getId()) { - case SortModel.SORT_DIMENSION_ID_TITLE: - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - addBothDirectionDimension(dimension, true); - break; - case SortModel.SORT_DIMENSION_ID_DATE: - case SortModel.SORT_DIMENSION_ID_SIZE: - addBothDirectionDimension(dimension, false); - break; - default: - mSortingList.add(new SortItem(dimension)); - break; + final int id = dimension.getId(); + if (id == SortModel.SORT_DIMENSION_ID_TITLE + || id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + addBothDirectionDimension(dimension, true); + } else if (id == SortModel.SORT_DIMENSION_ID_DATE + || id == SortModel.SORT_DIMENSION_ID_SIZE) { + addBothDirectionDimension(dimension, false); + } else { + mSortingList.add(new SortItem(dimension)); } } } @@ -95,22 +92,21 @@ public class SortListFragment extends DialogFragment { public static @StringRes int getSheetLabelId(SortDimension dimension, @SortDirection int direction) { boolean isAscending = direction == SortDimension.SORT_DIRECTION_ASCENDING; - switch (dimension.getId()) { - case SortModel.SORT_DIMENSION_ID_TITLE: - return isAscending ? R.string.sort_dimension_name_ascending : - R.string.sort_dimension_name_descending; - case SortModel.SORT_DIMENSION_ID_DATE: - return isAscending ? R.string.sort_dimension_date_ascending : - R.string.sort_dimension_date_descending; - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - return isAscending ? R.string.sort_dimension_file_type_ascending : - R.string.sort_dimension_file_type_descending; - case SortModel.SORT_DIMENSION_ID_SIZE: - return isAscending ? R.string.sort_dimension_size_ascending : - R.string.sort_dimension_size_descending; - default: - return dimension.getLabelId(); + final int id = dimension.getId(); + if (id == SortModel.SORT_DIMENSION_ID_TITLE) { + return isAscending ? R.string.sort_dimension_name_ascending : + R.string.sort_dimension_name_descending; + } else if (id == SortModel.SORT_DIMENSION_ID_DATE) { + return isAscending ? R.string.sort_dimension_date_ascending : + R.string.sort_dimension_date_descending; + } else if (id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + return isAscending ? R.string.sort_dimension_file_type_ascending : + R.string.sort_dimension_file_type_descending; + } else if (id == SortModel.SORT_DIMENSION_ID_SIZE) { + return isAscending ? R.string.sort_dimension_size_ascending : + R.string.sort_dimension_size_descending; } + return dimension.getLabelId(); } @Override diff --git a/src/com/android/documentsui/sorting/SortModel.java b/src/com/android/documentsui/sorting/SortModel.java index 88a113f06..9bf5b9666 100644 --- a/src/com/android/documentsui/sorting/SortModel.java +++ b/src/com/android/documentsui/sorting/SortModel.java @@ -229,32 +229,28 @@ public class SortModel implements Parcelable { // should only be called when R.bool.feature_content_paging is true final int id = getSortedDimensionId(); - switch (id) { - case SORT_DIMENSION_ID_UNKNOWN: - return; - case SortModel.SORT_DIMENSION_ID_TITLE: - queryArgs.putStringArray( - ContentResolver.QUERY_ARG_SORT_COLUMNS, - new String[]{ Document.COLUMN_DISPLAY_NAME }); - break; - case SortModel.SORT_DIMENSION_ID_DATE: - queryArgs.putStringArray( - ContentResolver.QUERY_ARG_SORT_COLUMNS, - new String[]{ Document.COLUMN_LAST_MODIFIED }); - break; - case SortModel.SORT_DIMENSION_ID_SIZE: - queryArgs.putStringArray( - ContentResolver.QUERY_ARG_SORT_COLUMNS, - new String[]{ Document.COLUMN_SIZE }); - break; - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - // Unfortunately sorting by mime type is pretty much guaranteed different from - // sorting by user-friendly type, so there is no point to guide the provider to sort - // in a particular order. - return; - default: - throw new IllegalStateException( - "Unexpected sort dimension id: " + id); + if (id == SORT_DIMENSION_ID_UNKNOWN) { + return; + } else if (id == SortModel.SORT_DIMENSION_ID_TITLE) { + queryArgs.putStringArray( + ContentResolver.QUERY_ARG_SORT_COLUMNS, + new String[]{Document.COLUMN_DISPLAY_NAME}); + } else if (id == SortModel.SORT_DIMENSION_ID_DATE) { + queryArgs.putStringArray( + ContentResolver.QUERY_ARG_SORT_COLUMNS, + new String[]{Document.COLUMN_LAST_MODIFIED}); + } else if (id == SortModel.SORT_DIMENSION_ID_SIZE) { + queryArgs.putStringArray( + ContentResolver.QUERY_ARG_SORT_COLUMNS, + new String[]{Document.COLUMN_SIZE}); + } else if (id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + // Unfortunately sorting by mime type is pretty much guaranteed different from + // sorting by user-friendly type, so there is no point to guide the provider to sort + // in a particular order. + return; + } else { + throw new IllegalStateException( + "Unexpected sort dimension id: " + id); } final SortDimension dimension = getDimensionById(id); @@ -286,26 +282,22 @@ public class SortModel implements Parcelable { final int id = getSortedDimensionId(); final String columnName; - switch (id) { - case SORT_DIMENSION_ID_UNKNOWN: - return null; - case SortModel.SORT_DIMENSION_ID_TITLE: - columnName = Document.COLUMN_DISPLAY_NAME; - break; - case SortModel.SORT_DIMENSION_ID_DATE: - columnName = Document.COLUMN_LAST_MODIFIED; - break; - case SortModel.SORT_DIMENSION_ID_SIZE: - columnName = Document.COLUMN_SIZE; - break; - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - // Unfortunately sorting by mime type is pretty much guaranteed different from - // sorting by user-friendly type, so there is no point to guide the provider to sort - // in a particular order. - return null; - default: - throw new IllegalStateException( - "Unexpected sort dimension id: " + id); + if (id == SORT_DIMENSION_ID_UNKNOWN) { + return null; + } else if (id == SortModel.SORT_DIMENSION_ID_TITLE) { + columnName = Document.COLUMN_DISPLAY_NAME; + } else if (id == SortModel.SORT_DIMENSION_ID_DATE) { + columnName = Document.COLUMN_LAST_MODIFIED; + } else if (id == SortModel.SORT_DIMENSION_ID_SIZE) { + columnName = Document.COLUMN_SIZE; + } else if (id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + // Unfortunately sorting by mime type is pretty much guaranteed different from + // sorting by user-friendly type, so there is no point to guide the provider to sort + // in a particular order. + return null; + } else { + throw new IllegalStateException( + "Unexpected sort dimension id: " + id); } final SortDimension dimension = getDimensionById(id); diff --git a/src/com/android/documentsui/sorting/SortingCursorWrapper.java b/src/com/android/documentsui/sorting/SortingCursorWrapper.java index d14e8f6b9..1e359a3ab 100644 --- a/src/com/android/documentsui/sorting/SortingCursorWrapper.java +++ b/src/com/android/documentsui/sorting/SortingCursorWrapper.java @@ -49,15 +49,12 @@ class SortingCursorWrapper extends AbstractCursor { String[] ids = new String[count]; final int id = dimension.getId(); - switch (id) { - case SortModel.SORT_DIMENSION_ID_TITLE: - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - stringValues = new String[count]; - break; - case SortModel.SORT_DIMENSION_ID_DATE: - case SortModel.SORT_DIMENSION_ID_SIZE: - longValues = new long[count]; - break; + if (id == SortModel.SORT_DIMENSION_ID_TITLE + || id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + stringValues = new String[count]; + } else if (id == SortModel.SORT_DIMENSION_ID_DATE + || id == SortModel.SORT_DIMENSION_ID_SIZE) { + longValues = new long[count]; } cursor.moveToPosition(-1); @@ -69,34 +66,26 @@ class SortingCursorWrapper extends AbstractCursor { isDirs[i] = Document.MIME_TYPE_DIR.equals(mimeType); ids[i] = getCursorString(mCursor, Document.COLUMN_DOCUMENT_ID); - switch(id) { - case SortModel.SORT_DIMENSION_ID_TITLE: - final String displayName = getCursorString( - mCursor, Document.COLUMN_DISPLAY_NAME); - stringValues[i] = displayName; - break; - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - stringValues[i] = fileTypeLookup.lookup(mimeType); - break; - case SortModel.SORT_DIMENSION_ID_DATE: - longValues[i] = getLastModified(mCursor); - break; - case SortModel.SORT_DIMENSION_ID_SIZE: - longValues[i] = getCursorLong(mCursor, Document.COLUMN_SIZE); - break; + if (id == SortModel.SORT_DIMENSION_ID_TITLE) { + final String displayName = getCursorString( + mCursor, Document.COLUMN_DISPLAY_NAME); + stringValues[i] = displayName; + } else if (id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + stringValues[i] = fileTypeLookup.lookup(mimeType); + } else if (id == SortModel.SORT_DIMENSION_ID_DATE) { + longValues[i] = getLastModified(mCursor); + } else if (id == SortModel.SORT_DIMENSION_ID_SIZE) { + longValues[i] = getCursorLong(mCursor, Document.COLUMN_SIZE); } } - switch (id) { - case SortModel.SORT_DIMENSION_ID_TITLE: - case SortModel.SORT_DIMENSION_ID_FILE_TYPE: - binarySort(stringValues, isDirs, mPosition, ids, dimension.getSortDirection()); - break; - case SortModel.SORT_DIMENSION_ID_DATE: - case SortModel.SORT_DIMENSION_ID_SIZE: - binarySort(longValues, isDirs, mPosition, ids, dimension.getSortDirection()); - break; + if (id == SortModel.SORT_DIMENSION_ID_TITLE + || id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) { + binarySort(stringValues, isDirs, mPosition, ids, dimension.getSortDirection()); + } else if (id == SortModel.SORT_DIMENSION_ID_DATE + || id == SortModel.SORT_DIMENSION_ID_SIZE) { + binarySort(longValues, isDirs, mPosition, ids, dimension.getSortDirection()); } } |