Search experience improvement for large screen

- Support fragment and direct link in SearchResultTrampoline
- Start activity for SI case and start deep link trampoline for others
- Disable menu highlight whenever the search bar is clicked
- Don't overwrite SettingsApplication's homepage activity in
  SliceDeepLinkHomepageActivity
- Scroll to highlighted menu entry after homepage is loaded to prevent
  UI overlapping

Bug: 201724410
Test: manual, robotest build pass
Change-Id: I5115d17d829e85036000da2e80f0e5b0598c733f
This commit is contained in:
Jason Chiu
2021-10-25 14:11:16 +08:00
parent 6821b6be32
commit e427cc6752
9 changed files with 176 additions and 57 deletions

View File

@@ -101,7 +101,7 @@ public class TopLevelSettings extends DashboardFragment implements
public boolean onPreferenceTreeClick(Preference preference) {
// Register SplitPairRule for SubSettings.
ActivityEmbeddingRulesController.registerSubSettingsPairRuleIfNeeded(getContext(),
true /* clearTop*/);
true /* clearTop */);
setHighlightPreferenceKey(preference.getKey());
return super.onPreferenceTreeClick(preference);
@@ -184,6 +184,15 @@ public class TopLevelSettings extends DashboardFragment implements
}
}
/** Disable highlight on the menu entry */
public void disableMenuHighlight() {
if (mTopLevelAdapter == null) {
return;
}
mHighlightedPreferenceKey = null;
mTopLevelAdapter.highlightPreference(mHighlightedPreferenceKey, /* scrollNeeded= */ false);
}
@Override
protected boolean shouldForceRoundedIcon() {
return getContext().getResources()
@@ -202,7 +211,8 @@ public class TopLevelSettings extends DashboardFragment implements
Log.d(TAG, "onCreateAdapter, pref key: " + mHighlightedPreferenceKey);
mTopLevelAdapter = new HighlightableTopLevelPreferenceAdapter(
getActivity(), preferenceScreen, getListView(), mHighlightedPreferenceKey);
(SettingsHomepageActivity) getActivity(), preferenceScreen, getListView(),
mHighlightedPreferenceKey);
return mTopLevelAdapter;
}