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

Commit 7a7e5777 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Continue showing a tabbed view when filters are selected am: 1e088e19 am:...

Continue showing a tabbed view when filters are selected am: 1e088e19 am: a127ad5f am: 562f21b9

Change-Id: I19f10c53c4cfa9afd8a0a52f8d7596a2ac3eed22
parents 2460a167 562f21b9
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -869,7 +869,8 @@ public abstract class AbstractActionHandler<T extends FragmentActivity & CommonA
                            mState,
                            mExecutors,
                            mInjector.fileTypeLookup,
                            mSearchMgr.buildQueryArgs());
                            mSearchMgr.buildQueryArgs(),
                            mState.stack.getRoot().userId);
                } else {
                    if (DEBUG) {
                        Log.d(TAG, "Creating new loader recents.");
+2 −2
Original line number Diff line number Diff line
@@ -781,8 +781,8 @@ public abstract class BaseActivity
    }

    @Override
    public boolean isSearching() {
        return mSearchManager.isSearching();
    public boolean isTextSearching() {
        return mSearchManager.isTextSearching();
    }

    @Override
+8 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.os.CancellationSignal;
import android.os.FileUtils;
import android.os.OperationCanceledException;
import android.os.RemoteException;
import android.provider.DocumentsContract;
import android.provider.DocumentsContract.Document;
import android.util.Log;

@@ -128,7 +129,7 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
            final List<UserId> userIds = new ArrayList<>();
            if (mSearchMode) {
                queryArgs.putAll(mQueryArgs);
                if (mState.supportsCrossProfile() && mRoot.supportsCrossProfile()) {
                if (shouldSearchAcrossProfile()) {
                    for (UserId userId : DocumentsApplication.getUserIdManager(
                            getContext()).getUserIds()) {
                        if (mState.canInteractWith(userId)) {
@@ -208,6 +209,12 @@ public class DirectoryLoader extends AsyncTaskLoader<DirectoryResult> {
        return result;
    }

    private boolean shouldSearchAcrossProfile() {
        return mState.supportsCrossProfile()
                && mRoot.supportsCrossProfile()
                && mQueryArgs.containsKey(DocumentsContract.QUERY_ARG_DISPLAY_NAME);
    }

    @Nullable
    private Cursor queryOnUsers(List<UserId> userIds, String authority, Bundle queryArgs)
            throws RemoteException {
+12 −1
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import androidx.annotation.NonNull;
import com.android.documentsui.base.Lookup;
import com.android.documentsui.base.RootInfo;
import com.android.documentsui.base.State;
import com.android.documentsui.base.UserId;
import com.android.documentsui.roots.ProvidersAccess;
import com.android.documentsui.roots.RootCursorWrapper;

@@ -40,6 +41,7 @@ import java.util.concurrent.Executor;
 */
public class GlobalSearchLoader extends MultiRootDocumentsLoader {
    private final Bundle mQueryArgs;
    private final UserId mUserId;

    /*
     * Create the loader to query multiple roots support
@@ -57,9 +59,10 @@ public class GlobalSearchLoader extends MultiRootDocumentsLoader {
     */
    GlobalSearchLoader(Context context, ProvidersAccess providers, State state,
            Lookup<String, Executor> executors, Lookup<String, String> fileTypeMap,
            @NonNull Bundle queryArgs) {
            @NonNull Bundle queryArgs, UserId userId) {
        super(context, providers, state, executors, fileTypeMap);
        mQueryArgs = queryArgs;
        mUserId = userId;
    }

    @Override
@@ -69,6 +72,14 @@ public class GlobalSearchLoader extends MultiRootDocumentsLoader {
            return true;
        }

        if (mState.supportsCrossProfile() && root.supportsCrossProfile()
                && !mQueryArgs.containsKey(DocumentsContract.QUERY_ARG_DISPLAY_NAME)
                && !mUserId.equals(root.userId)) {
            // Ignore cross-profile roots if it is not a text search. For example, the user may
            // just filter documents by mime type.
            return true;
        }

        // To prevent duplicate files on search result, ignore storage root because its almost
        // files include in media root.
        return root.isStorage();
+1 −1
Original line number Diff line number Diff line
@@ -234,6 +234,6 @@ public class NavigationViewManager {
        @Deprecated  // Use CommonAddones#refreshCurrentRootAndDirectory
        void refreshCurrentRootAndDirectory(int animation);
        boolean isSearchExpanded();
        boolean isSearching();
        boolean isTextSearching();
    }
}
Loading