Prevent scrolling after the homepage recreating
- Only apply the layout transition when contextual home is enabled - Do not scroll for highlighting when the homepage is recreated and never scrolled Fix: 222238012 Bug: 222473415 Test: robotest, manual Change-Id: I490c3f8dbca63a5250bae01555592b7795c90af2
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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
|
||||
@@ -58,6 +60,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho
|
||||
dest.writeString(mCurrentKey);
|
||||
dest.writeString(mPreviousKey);
|
||||
dest.writeString(mHiddenKey);
|
||||
dest.writeBoolean(mActivityEmbedded);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -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());
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -129,7 +140,7 @@ public class TopLevelHighlightMixin implements Parcelable, DialogInterface.OnSho
|
||||
}
|
||||
}
|
||||
|
||||
void highlightPreferenceIfNeeded(FragmentActivity activity) {
|
||||
void highlightPreferenceIfNeeded() {
|
||||
if (mTopLevelAdapter != null) {
|
||||
mTopLevelAdapter.requestHighlight();
|
||||
}
|
||||
|
Reference in New Issue
Block a user