From bc5d623845e8e6e50254064c054c344a7246330b Mon Sep 17 00:00:00 2001 From: Hyunyoung Song Date: Tue, 10 May 2016 13:46:13 -0700 Subject: Widgets tray should preserve scroll position during screen rotation > This used to work, but when I got rid of preloading which was handled by linear manager to increase scrolling speed, the save and restore instance that was being handled by the linear layout manager created using Launcher context also went away. Hence, bringing back custom LinearLayoutManager. Change-Id: Ibccdf80533a5ace06cc6c6932b257c223cbac0ff --- src/com/android/launcher3/Launcher.java | 3 --- src/com/android/launcher3/widget/WidgetsRecyclerView.java | 4 +++- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index d2d1d02cc..b2f96d099 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1961,9 +1961,6 @@ public class Launcher extends Activity outState.putInt(RUNTIME_STATE_PENDING_ADD_WIDGET_ID, mPendingAddWidgetId); } - // Save the current widgets tray? - // TODO(hyunyoungs) - if (mLauncherCallbacks != null) { mLauncherCallbacks.onSaveInstanceState(outState); } diff --git a/src/com/android/launcher3/widget/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/WidgetsRecyclerView.java index fe9c51c44..9c13b44fc 100644 --- a/src/com/android/launcher3/widget/WidgetsRecyclerView.java +++ b/src/com/android/launcher3/widget/WidgetsRecyclerView.java @@ -23,7 +23,6 @@ import android.support.v7.widget.LinearLayoutManager; import android.util.AttributeSet; import android.view.View; import com.android.launcher3.BaseRecyclerView; -import com.android.launcher3.R; import com.android.launcher3.model.PackageItemInfo; import com.android.launcher3.model.WidgetsModel; @@ -58,6 +57,9 @@ public class WidgetsRecyclerView extends BaseRecyclerView { protected void onFinishInflate() { super.onFinishInflate(); addOnItemTouchListener(this); + // create a layout manager with Launcher's context so that scroll position + // can be preserved during screen rotation. + setLayoutManager(new LinearLayoutManager(getContext())); } public int getFastScrollerTrackColor(int defaultTrackColor) { -- cgit v1.2.3