summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/com/android/documentsui/BaseActivity.java76
-rw-r--r--src/com/android/documentsui/dirlist/DirectoryFragment.java208
-rw-r--r--src/com/android/documentsui/files/FilesActivity.java33
-rw-r--r--src/com/android/documentsui/sidebar/RootsFragment.java37
-rw-r--r--src/com/android/documentsui/sorting/SortController.java26
-rw-r--r--src/com/android/documentsui/sorting/SortListFragment.java50
-rw-r--r--src/com/android/documentsui/sorting/SortModel.java84
-rw-r--r--src/com/android/documentsui/sorting/SortingCursorWrapper.java55
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());
}
}