Loading src/com/android/documentsui/BaseActivity.java +1 −3 Original line number Diff line number Diff line Loading @@ -201,8 +201,6 @@ public abstract class BaseActivity chipGroup, icicle); // initialize the chip sets by accept mime types mSearchManager.initChipSets(mState.acceptMimes); // update the chip items by the mime types of the root mSearchManager.updateChips(getCurrentRoot().derivedMimeTypes); // parse the query content from intent when launch the // activity at the first time if (icicle == null) { Loading Loading @@ -355,7 +353,6 @@ public abstract class BaseActivity } updateHeaderTitle(); mSearchManager.updateChips(root.derivedMimeTypes); mAppsRowManager.updateView(this); } Loading Loading @@ -482,6 +479,7 @@ public abstract class BaseActivity invalidateOptionsMenu(); mSortController.onViewModeChanged(mState.derivedMode); mSearchManager.updateChips(getCurrentRoot().derivedMimeTypes); } private final List<String> getExcludedAuthorities() { Loading src/com/android/documentsui/queries/SearchChipViewManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import com.google.android.material.chip.Chip; import com.google.common.primitives.Ints; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; Loading Loading @@ -71,6 +72,8 @@ public class SearchChipViewManager { private final ViewGroup mChipGroup; private final List<Integer> mDefaultChipTypes = new ArrayList<>(); private SearchChipViewManagerListener mListener; private String[] mCurrentUpdateMimeTypes; private boolean mIsFirstUpdateChipsReady; @VisibleForTesting Set<SearchChipData> mCheckedChipItems = new HashSet<>(); Loading Loading @@ -194,6 +197,10 @@ public class SearchChipViewManager { * @param acceptMimeTypes use this values to filter chips */ public void updateChips(String[] acceptMimeTypes) { if (mIsFirstUpdateChipsReady && Arrays.equals(mCurrentUpdateMimeTypes, acceptMimeTypes)) { return; } final Context context = mChipGroup.getContext(); mChipGroup.removeAllViews(); Loading @@ -209,6 +216,11 @@ public class SearchChipViewManager { } } reorderCheckedChips(null /* clickedChip */, false /* hasAnim */); mIsFirstUpdateChipsReady = true; mCurrentUpdateMimeTypes = acceptMimeTypes; if (mChipGroup.getChildCount() < 2) { mChipGroup.setVisibility(View.GONE); } } Loading tests/unit/com/android/documentsui/files/ActionHandlerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -381,6 +381,17 @@ public class ActionHandlerTest { mActivity.assertActivityStarted(Intent.ACTION_CHOOSER); } @Test public void testInitLocation_LaunchToStackLocation() { DocumentStack path = new DocumentStack(Roots.create("123"), mEnv.model.getDocument("1")); Intent intent = LauncherActivity.createLaunchIntent(mActivity); intent.putExtra(Shared.EXTRA_STACK, (Parcelable) path); mHandler.initLocation(intent); mActivity.refreshCurrentRootAndDirectory.assertCalled(); } @Test public void testInitLocation_RestoresIfStackIsLoaded() throws Exception { mEnv.state.stack.changeRoot(TestProvidersAccess.DOWNLOADS); Loading Loading
src/com/android/documentsui/BaseActivity.java +1 −3 Original line number Diff line number Diff line Loading @@ -201,8 +201,6 @@ public abstract class BaseActivity chipGroup, icicle); // initialize the chip sets by accept mime types mSearchManager.initChipSets(mState.acceptMimes); // update the chip items by the mime types of the root mSearchManager.updateChips(getCurrentRoot().derivedMimeTypes); // parse the query content from intent when launch the // activity at the first time if (icicle == null) { Loading Loading @@ -355,7 +353,6 @@ public abstract class BaseActivity } updateHeaderTitle(); mSearchManager.updateChips(root.derivedMimeTypes); mAppsRowManager.updateView(this); } Loading Loading @@ -482,6 +479,7 @@ public abstract class BaseActivity invalidateOptionsMenu(); mSortController.onViewModeChanged(mState.derivedMode); mSearchManager.updateChips(getCurrentRoot().derivedMimeTypes); } private final List<String> getExcludedAuthorities() { Loading
src/com/android/documentsui/queries/SearchChipViewManager.java +12 −0 Original line number Diff line number Diff line Loading @@ -37,6 +37,7 @@ import com.google.android.material.chip.Chip; import com.google.common.primitives.Ints; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; Loading Loading @@ -71,6 +72,8 @@ public class SearchChipViewManager { private final ViewGroup mChipGroup; private final List<Integer> mDefaultChipTypes = new ArrayList<>(); private SearchChipViewManagerListener mListener; private String[] mCurrentUpdateMimeTypes; private boolean mIsFirstUpdateChipsReady; @VisibleForTesting Set<SearchChipData> mCheckedChipItems = new HashSet<>(); Loading Loading @@ -194,6 +197,10 @@ public class SearchChipViewManager { * @param acceptMimeTypes use this values to filter chips */ public void updateChips(String[] acceptMimeTypes) { if (mIsFirstUpdateChipsReady && Arrays.equals(mCurrentUpdateMimeTypes, acceptMimeTypes)) { return; } final Context context = mChipGroup.getContext(); mChipGroup.removeAllViews(); Loading @@ -209,6 +216,11 @@ public class SearchChipViewManager { } } reorderCheckedChips(null /* clickedChip */, false /* hasAnim */); mIsFirstUpdateChipsReady = true; mCurrentUpdateMimeTypes = acceptMimeTypes; if (mChipGroup.getChildCount() < 2) { mChipGroup.setVisibility(View.GONE); } } Loading
tests/unit/com/android/documentsui/files/ActionHandlerTest.java +11 −0 Original line number Diff line number Diff line Loading @@ -381,6 +381,17 @@ public class ActionHandlerTest { mActivity.assertActivityStarted(Intent.ACTION_CHOOSER); } @Test public void testInitLocation_LaunchToStackLocation() { DocumentStack path = new DocumentStack(Roots.create("123"), mEnv.model.getDocument("1")); Intent intent = LauncherActivity.createLaunchIntent(mActivity); intent.putExtra(Shared.EXTRA_STACK, (Parcelable) path); mHandler.initLocation(intent); mActivity.refreshCurrentRootAndDirectory.assertCalled(); } @Test public void testInitLocation_RestoresIfStackIsLoaded() throws Exception { mEnv.state.stack.changeRoot(TestProvidersAccess.DOWNLOADS); Loading