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

Commit 99a54cc4 authored by Garfield Tan's avatar Garfield Tan Committed by Android (Google) Code Review
Browse files

Merge "Kill action mode before changing root." into oc-dev

parents 3781f41d 80b52b3c
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);