Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 03875210 authored by Colin Cross's avatar Colin Cross
Browse files

Revert "Change switches on resource IDs to if statements"

Revert submission 25032702-DocumentsUI-lib

Reason for revert: broke document browsing

Reverted changes: /q/submissionid:25032702-DocumentsUI-lib

Bug: 307873144
Bug: 307882692
Change-Id: If843f9aedabfb5c826d59d05ba91a640b5c55a4b
parent 0d1e2f46
Loading
Loading
Loading
Loading
+44 −32
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ 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;
@@ -503,40 +504,51 @@ public abstract class BaseActivity
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        final int id = item.getItemId();
        if (id == android.R.id.home) {
        switch (item.getItemId()) {
            case android.R.id.home:
                onBackPressed();
                return true;
        } else if (id == R.id.option_menu_create_dir) {

            case R.id.option_menu_create_dir:
                getInjector().actions.showCreateDirectoryDialog();
                return true;
        } else if (id == R.id.option_menu_search) {

            case R.id.option_menu_search:
                // SearchViewManager listens for this directly.
                return false;
        } else if (id == R.id.option_menu_select_all) {

            case R.id.option_menu_select_all:
                getInjector().actions.selectAllFiles();
                return true;
        } else if (id == R.id.option_menu_debug) {

            case R.id.option_menu_debug:
                getInjector().actions.showDebugMessage();
                return true;
        } else if (id == R.id.option_menu_sort) {

            case R.id.option_menu_sort:
                getInjector().actions.showSortDialog();
                return true;
        } else if (id == R.id.option_menu_launcher) {

            case R.id.option_menu_launcher:
                getInjector().actions.switchLauncherIcon();
                return true;
        } else if (id == R.id.option_menu_show_hidden_files) {

            case R.id.option_menu_show_hidden_files:
                onClickedShowHiddenFiles();
                return true;
        } else if (id == R.id.sub_menu_grid) {
            setViewMode(MODE_GRID);

            case R.id.sub_menu_grid:
                setViewMode(State.MODE_GRID);
                return true;
        } else if (id == R.id.sub_menu_list) {

            case R.id.sub_menu_list:
                setViewMode(State.MODE_LIST);
                return true;
        }

            default:
                return super.onOptionsItemSelected(item);
        }
    }

    protected final @Nullable DirectoryFragment getDirectoryFragment() {
        return DirectoryFragment.get(getSupportFragmentManager());
+118 −90
Original line number Diff line number Diff line
@@ -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.android.documentsui.util.VersionUtils;
import com.google.common.base.Objects;

import java.io.IOException;
@@ -833,32 +833,42 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
        MutableSelection<String> selection = new MutableSelection<>();
        mSelectionMgr.copySelection(selection);

        final int id = item.getItemId();
        if (id == R.id.action_menu_select || id == R.id.dir_menu_open) {
        switch (item.getItemId()) {
            case R.id.action_menu_select:
            case 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) {

            case R.id.action_menu_open_with:
            case R.id.dir_menu_open_with:
                showChooserForDoc(selection);
                return true;
        } else if (id == R.id.dir_menu_open_in_new_window) {

            case 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) {

            case R.id.action_menu_share:
            case R.id.dir_menu_share:
                mActions.shareSelectedDocuments();
                return true;
        } else if (id == R.id.action_menu_delete || id == R.id.dir_menu_delete) {

            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;
        } else if (id == R.id.action_menu_copy_to) {

            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;
        } else if (id == R.id.action_menu_compress) {

            case R.id.action_menu_compress:
                transferDocuments(selection, mState.stack,
                        FileOperationService.OPERATION_COMPRESS);
                // TODO: Only finish selection mode if compress is not canceled.
@@ -867,13 +877,14 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
                return true;

            // TODO: Implement extract (to the current directory).
        } else if (id == R.id.action_menu_extract_to) {
            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;
        } else if (id == R.id.action_menu_move_to) {

            case R.id.action_menu_move_to:
                if (mModel.hasDocuments(selection, DocumentFilters.NOT_MOVABLE)) {
                    mInjector.dialogs.showOperationUnsupported();
                    return true;
@@ -882,7 +893,9 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
                mActionModeController.finishActionMode();
                transferDocuments(selection, null, FileOperationService.OPERATION_MOVE);
                return true;
        } else if (id == R.id.action_menu_inspect || id == R.id.dir_menu_inspect) {

            case R.id.action_menu_inspect:
            case R.id.dir_menu_inspect:
                mActionModeController.finishActionMode();
                assert selection.size() <= 1;
                DocumentInfo doc = selection.isEmpty()
@@ -891,42 +904,57 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On

                mActions.showInspector(doc);
                return true;
        } else if (id == R.id.dir_menu_cut_to_clipboard) {

            case R.id.dir_menu_cut_to_clipboard:
                mActions.cutToClipboard();
                return true;
        } else if (id == R.id.dir_menu_copy_to_clipboard) {

            case R.id.dir_menu_copy_to_clipboard:
                mActions.copyToClipboard();
                return true;
        } else if (id == R.id.dir_menu_paste_from_clipboard) {

            case R.id.dir_menu_paste_from_clipboard:
                pasteFromClipboard();
                return true;
        } else if (id == R.id.dir_menu_paste_into_folder) {

            case 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) {

            case R.id.action_menu_select_all:
            case 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) {

            case R.id.action_menu_deselect_all:
            case R.id.dir_menu_deselect_all:
                mActions.deselectAllFiles();
                return true;
        } else if (id == R.id.action_menu_rename || id == R.id.dir_menu_rename) {

            case R.id.action_menu_rename:
            case R.id.dir_menu_rename:
                renameDocuments(selection);
                return true;
        } else if (id == R.id.dir_menu_create_dir) {

            case R.id.dir_menu_create_dir:
                mActions.showCreateDirectoryDialog();
                return true;
        } else if (id == R.id.dir_menu_view_in_owner) {

            case R.id.dir_menu_view_in_owner:
                mActions.viewInOwner();
                return true;
        } else if (id == R.id.action_menu_sort) {

            case R.id.action_menu_sort:
                mActions.showSortDialog();
                return true;
        }

            default:
                if (DEBUG) {
                    Log.d(TAG, "Unhandled menu item selected: " + item);
                }
                return false;
        }
    }

    private boolean onAccessibilityClick(View child) {
        if (mSelectionMgr.hasSelection()) {
+19 −14
Original line number Diff line number Diff line
@@ -303,19 +303,24 @@ public class FilesActivity extends BaseActivity implements AbstractActionHandler
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        DirectoryFragment dir;
        final int id = item.getItemId();
        if (id == R.id.option_menu_create_dir) {
        switch (item.getItemId()) {
            case R.id.option_menu_create_dir:
                assert(canCreateDirectory());
                mInjector.actions.showCreateDirectoryDialog();
        } else if (id == R.id.option_menu_new_window) {
                break;
            case R.id.option_menu_new_window:
                mInjector.actions.openInNewWindow(mState.stack);
        } else if (id == R.id.option_menu_settings) {
                break;
            case R.id.option_menu_settings:
                mInjector.actions.openSettings(getCurrentRoot());
        } else if (id == R.id.option_menu_select_all) {
                break;
            case R.id.option_menu_select_all:
                mInjector.actions.selectAllFiles();
        } else if (id == R.id.option_menu_inspect) {
                break;
            case R.id.option_menu_inspect:
                mInjector.actions.showInspector(getCurrentDirectory());
        } else {
                break;
            default:
                return super.onOptionsItemSelected(item);
        }
        return true;
+19 −18
Original line number Diff line number Diff line
@@ -611,26 +611,27 @@ public class RootsFragment extends Fragment {
            return false;
        }
        final RootItem rootItem = (RootItem) mAdapter.getItem(adapterMenuInfo.position);
        final int id = item.getItemId();
        if (id == R.id.root_menu_eject_root) {
        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;
        } else if (id == R.id.root_menu_open_in_new_window) {
            case 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) {
            case R.id.root_menu_paste_into_folder:
                mActionHandler.pasteIntoFolder(rootItem.root);
                return true;
        } else if (id == R.id.root_menu_settings) {
            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;
        }
    }

    private void getRootDocument(RootItem rootItem, RootUpdater updater) {
        // We need to start a GetRootDocumentTask so we can know whether items can be directly
+15 −11
Original line number Diff line number Diff line
@@ -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,15 +67,19 @@ public final class SortController {
        final Injector<?> injector = ((BaseActivity)activity).getInjector();
        sortModel.setMetricRecorder((SortDimension dimension) -> {
            int sortType = MetricConsts.USER_ACTION_UNKNOWN;
            final int id = dimension.getId();
            if (id == SortModel.SORT_DIMENSION_ID_TITLE) {
            switch (dimension.getId()) {
                case SortModel.SORT_DIMENSION_ID_TITLE:
                    sortType = MetricConsts.USER_ACTION_SORT_NAME;
            } else if (id == SortModel.SORT_DIMENSION_ID_SIZE) {
                    break;
                case SortModel.SORT_DIMENSION_ID_SIZE:
                    sortType = MetricConsts.USER_ACTION_SORT_SIZE;
            } else if (id == SortModel.SORT_DIMENSION_ID_DATE) {
                    break;
                case SortModel.SORT_DIMENSION_ID_DATE:
                    sortType = MetricConsts.USER_ACTION_SORT_DATE;
            } else if (id == SortModel.SORT_DIMENSION_ID_FILE_TYPE) {
                    break;
                case SortModel.SORT_DIMENSION_ID_FILE_TYPE:
                    sortType = MetricConsts.USER_ACTION_SORT_TYPE;
                    break;
            }

            Metrics.logUserAction(sortType);
Loading