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

Commit 80b52b3c authored by Garfield Tan's avatar Garfield Tan
Browse files

Kill action mode before changing root.

Test: Manual tests & auto tests.
Bug: 37531513
Change-Id: I9c067f4c12530146715cd27b1c526b502357e537
parent 85622acc
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -217,7 +217,8 @@ public abstract class BaseActivity
                mProviders,
                mDocs,
                mState,
                mSearchManager);
                mSearchManager,
                mInjector.actionModeController::finishActionMode);
        mRootsMonitor.start();
    }

+12 −3
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.documentsui.base.State;
import com.android.documentsui.dirlist.AnimationView;
import com.android.documentsui.queries.SearchViewManager;
import com.android.documentsui.roots.ProvidersAccess;
import com.android.documentsui.selection.SelectionManager;

import java.util.Collection;

@@ -49,7 +50,8 @@ final class RootsMonitor<T extends Activity & CommonAddons> {
            final ProvidersAccess providers,
            final DocumentsAccess docs,
            final State state,
            final SearchViewManager searchMgr) {
            final SearchViewManager searchMgr,
            final Runnable actionModeFinisher) {
        mManager = LocalBroadcastManager.getInstance(activity);

        mReceiver = new BroadcastReceiver() {
@@ -61,7 +63,8 @@ final class RootsMonitor<T extends Activity & CommonAddons> {
                        providers,
                        docs,
                        state,
                        searchMgr).execute(activity.getCurrentRoot());
                        searchMgr,
                        actionModeFinisher).execute(activity.getCurrentRoot());
            }
        };
    }
@@ -81,6 +84,7 @@ final class RootsMonitor<T extends Activity & CommonAddons> {
        private final DocumentsAccess mDocs;
        private final State mState;
        private final SearchViewManager mSearchMgr;
        private final Runnable mActionModeFinisher;

        private RootInfo mCurrentRoot;
        private DocumentInfo mDefaultRootDocument;
@@ -91,13 +95,15 @@ final class RootsMonitor<T extends Activity & CommonAddons> {
                ProvidersAccess providers,
                DocumentsAccess docs,
                State state,
                SearchViewManager searchMgr) {
                SearchViewManager searchMgr,
                Runnable actionModeFinisher) {
            super(activity);
            mActions = actions;
            mProviders = providers;
            mDocs = docs;
            mState = state;
            mSearchMgr = searchMgr;
            mActionModeFinisher = actionModeFinisher;
        }

        @Override
@@ -135,6 +141,9 @@ final class RootsMonitor<T extends Activity & CommonAddons> {
                return;
            }

            // Clean action mode before changing root.
            mActionModeFinisher.run();

            // Clear entire backstack and start in new root.
            mState.stack.changeRoot(defaultRoot);
            mSearchMgr.update(mState.stack);