Loading src/com/android/settings/homepage/SettingsHomepageActivity.java +2 −3 Original line number Diff line number Diff line Loading @@ -182,6 +182,8 @@ public class SettingsHomepageActivity extends FragmentActivity implements showSuggestionFragment(scrollNeeded); if (FeatureFlagUtils.isEnabled(this, FeatureFlags.CONTEXTUAL_HOME)) { showFragment(() -> new ContextualCardsFragment(), R.id.contextual_cards_content); ((FrameLayout) findViewById(R.id.main_content)) .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING); } } mMainFragment = showFragment(() -> { Loading @@ -191,9 +193,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements return fragment; }, R.id.main_content); ((FrameLayout) findViewById(R.id.main_content)) .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING); // Launch the intent from deep link for large screen devices. launchDeepLinkIntentToRight(); } Loading src/com/android/settings/homepage/TopLevelHighlightMixin.java +16 −5 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import androidx.fragment.app.FragmentActivity; import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; Loading @@ -43,14 +42,17 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho private String mHiddenKey; private DialogInterface mDialog; private HighlightableTopLevelPreferenceAdapter mTopLevelAdapter; private boolean mActivityEmbedded; public TopLevelHighlightMixin() { public TopLevelHighlightMixin(boolean activityEmbedded) { mActivityEmbedded = activityEmbedded; } public TopLevelHighlightMixin(Parcel source) { mCurrentKey = source.readString(); mPreviousKey = source.readString(); mHiddenKey = source.readString(); mActivityEmbedded = source.readBoolean(); } @Override Loading @@ -58,6 +60,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho dest.writeString(mCurrentKey); dest.writeString(mPreviousKey); dest.writeString(mHiddenKey); dest.writeBoolean(mActivityEmbedded); } @Override Loading Loading @@ -96,8 +99,16 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho } } void setActivityEmbedded(boolean activityEmbedded) { mActivityEmbedded = activityEmbedded; } boolean isActivityEmbedded() { return mActivityEmbedded; } RecyclerView.Adapter onCreateAdapter(TopLevelSettings topLevelSettings, PreferenceScreen preferenceScreen) { PreferenceScreen preferenceScreen, boolean scrollNeeded) { if (TextUtils.isEmpty(mCurrentKey)) { mCurrentKey = getHighlightPrefKeyFromArguments(topLevelSettings.getArguments()); } Loading @@ -105,7 +116,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho Log.d(TAG, "onCreateAdapter, pref key: " + mCurrentKey); mTopLevelAdapter = new HighlightableTopLevelPreferenceAdapter( (SettingsHomepageActivity) topLevelSettings.getActivity(), preferenceScreen, topLevelSettings.getListView(), mCurrentKey); topLevelSettings.getListView(), mCurrentKey, scrollNeeded); return mTopLevelAdapter; } Loading @@ -129,7 +140,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho } } void highlightPreferenceIfNeeded(FragmentActivity activity) { void highlightPreferenceIfNeeded() { if (mTopLevelAdapter != null) { mTopLevelAdapter.requestHighlight(); } Loading src/com/android/settings/homepage/TopLevelSettings.java +7 −3 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ public class TopLevelSettings extends DashboardFragment implements private boolean mIsEmbeddingActivityEnabled; private TopLevelHighlightMixin mHighlightMixin; private boolean mScrollNeeded = true; private boolean mFirstStarted = true; public TopLevelSettings() { Loading Loading @@ -133,11 +134,14 @@ public class TopLevelSettings extends DashboardFragment implements return; } boolean activityEmbedded = SplitController.getInstance().isActivityEmbedded(getActivity()); if (icicle != null) { mHighlightMixin = icicle.getParcelable(SAVED_HIGHLIGHT_MIXIN); mScrollNeeded = !mHighlightMixin.isActivityEmbedded() && activityEmbedded; mHighlightMixin.setActivityEmbedded(activityEmbedded); } if (mHighlightMixin == null) { mHighlightMixin = new TopLevelHighlightMixin(); mHighlightMixin = new TopLevelHighlightMixin(activityEmbedded); } } Loading Loading @@ -201,7 +205,7 @@ public class TopLevelSettings extends DashboardFragment implements @Override public void highlightPreferenceIfNeeded() { if (mHighlightMixin != null) { mHighlightMixin.highlightPreferenceIfNeeded(getActivity()); mHighlightMixin.highlightPreferenceIfNeeded(); } } Loading Loading @@ -243,7 +247,7 @@ public class TopLevelSettings extends DashboardFragment implements if (!mIsEmbeddingActivityEnabled || !(getActivity() instanceof SettingsHomepageActivity)) { return super.onCreateAdapter(preferenceScreen); } return mHighlightMixin.onCreateAdapter(this, preferenceScreen); return mHighlightMixin.onCreateAdapter(this, preferenceScreen, mScrollNeeded); } @Override Loading src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java +3 −1 Original line number Diff line number Diff line Loading @@ -67,10 +67,12 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt private SparseArray<PreferenceViewHolder> mViewHolders; public HighlightableTopLevelPreferenceAdapter(SettingsHomepageActivity homepageActivity, PreferenceGroup preferenceGroup, RecyclerView recyclerView, String key) { PreferenceGroup preferenceGroup, RecyclerView recyclerView, String key, boolean scrollNeeded) { super(preferenceGroup); mRecyclerView = recyclerView; mHighlightKey = key; mScrolled = !scrollNeeded; mViewHolders = new SparseArray<>(); mContext = preferenceGroup.getContext(); mHomepageActivity = homepageActivity; Loading Loading
src/com/android/settings/homepage/SettingsHomepageActivity.java +2 −3 Original line number Diff line number Diff line Loading @@ -182,6 +182,8 @@ public class SettingsHomepageActivity extends FragmentActivity implements showSuggestionFragment(scrollNeeded); if (FeatureFlagUtils.isEnabled(this, FeatureFlags.CONTEXTUAL_HOME)) { showFragment(() -> new ContextualCardsFragment(), R.id.contextual_cards_content); ((FrameLayout) findViewById(R.id.main_content)) .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING); } } mMainFragment = showFragment(() -> { Loading @@ -191,9 +193,6 @@ public class SettingsHomepageActivity extends FragmentActivity implements return fragment; }, R.id.main_content); ((FrameLayout) findViewById(R.id.main_content)) .getLayoutTransition().enableTransitionType(LayoutTransition.CHANGING); // Launch the intent from deep link for large screen devices. launchDeepLinkIntentToRight(); } Loading
src/com/android/settings/homepage/TopLevelHighlightMixin.java +16 −5 Original line number Diff line number Diff line Loading @@ -23,7 +23,6 @@ import android.os.Parcelable; import android.text.TextUtils; import android.util.Log; import androidx.fragment.app.FragmentActivity; import androidx.preference.PreferenceScreen; import androidx.recyclerview.widget.RecyclerView; Loading @@ -43,14 +42,17 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho private String mHiddenKey; private DialogInterface mDialog; private HighlightableTopLevelPreferenceAdapter mTopLevelAdapter; private boolean mActivityEmbedded; public TopLevelHighlightMixin() { public TopLevelHighlightMixin(boolean activityEmbedded) { mActivityEmbedded = activityEmbedded; } public TopLevelHighlightMixin(Parcel source) { mCurrentKey = source.readString(); mPreviousKey = source.readString(); mHiddenKey = source.readString(); mActivityEmbedded = source.readBoolean(); } @Override Loading @@ -58,6 +60,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho dest.writeString(mCurrentKey); dest.writeString(mPreviousKey); dest.writeString(mHiddenKey); dest.writeBoolean(mActivityEmbedded); } @Override Loading Loading @@ -96,8 +99,16 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho } } void setActivityEmbedded(boolean activityEmbedded) { mActivityEmbedded = activityEmbedded; } boolean isActivityEmbedded() { return mActivityEmbedded; } RecyclerView.Adapter onCreateAdapter(TopLevelSettings topLevelSettings, PreferenceScreen preferenceScreen) { PreferenceScreen preferenceScreen, boolean scrollNeeded) { if (TextUtils.isEmpty(mCurrentKey)) { mCurrentKey = getHighlightPrefKeyFromArguments(topLevelSettings.getArguments()); } Loading @@ -105,7 +116,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho Log.d(TAG, "onCreateAdapter, pref key: " + mCurrentKey); mTopLevelAdapter = new HighlightableTopLevelPreferenceAdapter( (SettingsHomepageActivity) topLevelSettings.getActivity(), preferenceScreen, topLevelSettings.getListView(), mCurrentKey); topLevelSettings.getListView(), mCurrentKey, scrollNeeded); return mTopLevelAdapter; } Loading @@ -129,7 +140,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho } } void highlightPreferenceIfNeeded(FragmentActivity activity) { void highlightPreferenceIfNeeded() { if (mTopLevelAdapter != null) { mTopLevelAdapter.requestHighlight(); } Loading
src/com/android/settings/homepage/TopLevelSettings.java +7 −3 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ public class TopLevelSettings extends DashboardFragment implements private boolean mIsEmbeddingActivityEnabled; private TopLevelHighlightMixin mHighlightMixin; private boolean mScrollNeeded = true; private boolean mFirstStarted = true; public TopLevelSettings() { Loading Loading @@ -133,11 +134,14 @@ public class TopLevelSettings extends DashboardFragment implements return; } boolean activityEmbedded = SplitController.getInstance().isActivityEmbedded(getActivity()); if (icicle != null) { mHighlightMixin = icicle.getParcelable(SAVED_HIGHLIGHT_MIXIN); mScrollNeeded = !mHighlightMixin.isActivityEmbedded() && activityEmbedded; mHighlightMixin.setActivityEmbedded(activityEmbedded); } if (mHighlightMixin == null) { mHighlightMixin = new TopLevelHighlightMixin(); mHighlightMixin = new TopLevelHighlightMixin(activityEmbedded); } } Loading Loading @@ -201,7 +205,7 @@ public class TopLevelSettings extends DashboardFragment implements @Override public void highlightPreferenceIfNeeded() { if (mHighlightMixin != null) { mHighlightMixin.highlightPreferenceIfNeeded(getActivity()); mHighlightMixin.highlightPreferenceIfNeeded(); } } Loading Loading @@ -243,7 +247,7 @@ public class TopLevelSettings extends DashboardFragment implements if (!mIsEmbeddingActivityEnabled || !(getActivity() instanceof SettingsHomepageActivity)) { return super.onCreateAdapter(preferenceScreen); } return mHighlightMixin.onCreateAdapter(this, preferenceScreen); return mHighlightMixin.onCreateAdapter(this, preferenceScreen, mScrollNeeded); } @Override Loading
src/com/android/settings/widget/HighlightableTopLevelPreferenceAdapter.java +3 −1 Original line number Diff line number Diff line Loading @@ -67,10 +67,12 @@ public class HighlightableTopLevelPreferenceAdapter extends PreferenceGroupAdapt private SparseArray<PreferenceViewHolder> mViewHolders; public HighlightableTopLevelPreferenceAdapter(SettingsHomepageActivity homepageActivity, PreferenceGroup preferenceGroup, RecyclerView recyclerView, String key) { PreferenceGroup preferenceGroup, RecyclerView recyclerView, String key, boolean scrollNeeded) { super(preferenceGroup); mRecyclerView = recyclerView; mHighlightKey = key; mScrolled = !scrollNeeded; mViewHolders = new SparseArray<>(); mContext = preferenceGroup.getContext(); mHomepageActivity = homepageActivity; Loading