Loading src/com/android/documentsui/AbstractActionHandler.java +2 −1 Original line number Diff line number Diff line Loading @@ -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."); Loading src/com/android/documentsui/BaseActivity.java +2 −2 Original line number Diff line number Diff line Loading @@ -781,8 +781,8 @@ public abstract class BaseActivity } @Override public boolean isSearching() { return mSearchManager.isSearching(); public boolean isTextSearching() { return mSearchManager.isTextSearching(); } @Override Loading src/com/android/documentsui/DirectoryLoader.java +8 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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)) { Loading Loading @@ -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 { Loading src/com/android/documentsui/GlobalSearchLoader.java +12 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading @@ -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 Loading @@ -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(); Loading src/com/android/documentsui/NavigationViewManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -234,6 +234,6 @@ public class NavigationViewManager { @Deprecated // Use CommonAddones#refreshCurrentRootAndDirectory void refreshCurrentRootAndDirectory(int animation); boolean isSearchExpanded(); boolean isSearching(); boolean isTextSearching(); } } Loading
src/com/android/documentsui/AbstractActionHandler.java +2 −1 Original line number Diff line number Diff line Loading @@ -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."); Loading
src/com/android/documentsui/BaseActivity.java +2 −2 Original line number Diff line number Diff line Loading @@ -781,8 +781,8 @@ public abstract class BaseActivity } @Override public boolean isSearching() { return mSearchManager.isSearching(); public boolean isTextSearching() { return mSearchManager.isTextSearching(); } @Override Loading
src/com/android/documentsui/DirectoryLoader.java +8 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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)) { Loading Loading @@ -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 { Loading
src/com/android/documentsui/GlobalSearchLoader.java +12 −1 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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 Loading @@ -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 Loading @@ -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(); Loading
src/com/android/documentsui/NavigationViewManager.java +1 −1 Original line number Diff line number Diff line Loading @@ -234,6 +234,6 @@ public class NavigationViewManager { @Deprecated // Use CommonAddones#refreshCurrentRootAndDirectory void refreshCurrentRootAndDirectory(int animation); boolean isSearchExpanded(); boolean isSearching(); boolean isTextSearching(); } }