diff --git a/res/values/config.xml b/res/values/config.xml index 299c80ef8b..04c359ede3 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -76,6 +76,9 @@ + + + diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 8076b27300..67f2a9eb32 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -31,6 +31,7 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.Point; import android.graphics.Rect; +import android.os.Bundle; import android.os.Parcelable; import android.os.Process; import android.text.Selection; @@ -82,6 +83,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo Insettable, OnDeviceProfileChangeListener, OnActivePageChangedListener, ScrimView.ScrimDrawingController { + private static final String BUNDLE_KEY_CURRENT_PAGE = "launcher.allapps.current_page"; + public static final float PULL_MULTIPLIER = .02f; public static final float FLING_VELOCITY_MULTIPLIER = 1200f; @@ -181,6 +184,23 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo } catch (Exception e) { Log.e("AllAppsContainerView", "restoreInstanceState viewId = 0", e); } + Bundle state = (Bundle) sparseArray.get(R.id.work_tab_state_id, null); + if (state != null) { + int currentPage = state.getInt(BUNDLE_KEY_CURRENT_PAGE, 0); + if (currentPage != 0) { + rebindAdapters(true); + mViewPager.setCurrentPage(currentPage); + } + } + } + + + @Override + protected void dispatchSaveInstanceState(SparseArray container) { + super.dispatchSaveInstanceState(container); + Bundle state = new Bundle(); + state.putInt(BUNDLE_KEY_CURRENT_PAGE, getCurrentPage()); + container.put(R.id.work_tab_state_id, state); } /** @@ -231,7 +251,9 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo private void resetWorkProfile() { boolean isEnabled = !mAllAppsStore.hasModelFlag(FLAG_QUIET_MODE_ENABLED); - mWorkModeSwitch.updateCurrentState(isEnabled); + if (mWorkModeSwitch != null) { + mWorkModeSwitch.updateCurrentState(isEnabled); + } mWorkAdapterProvider.updateCurrentState(isEnabled); mAH[AdapterHolder.WORK].applyPadding(); } diff --git a/src/com/android/launcher3/allapps/WorkModeSwitch.java b/src/com/android/launcher3/allapps/WorkModeSwitch.java index 6d57aa61a9..a800d34758 100644 --- a/src/com/android/launcher3/allapps/WorkModeSwitch.java +++ b/src/com/android/launcher3/allapps/WorkModeSwitch.java @@ -67,6 +67,7 @@ public class WorkModeSwitch extends Button implements Insettable, View.OnClickLi @Override protected void onFinishInflate() { super.onFinishInflate(); + setSelected(true); setOnClickListener(this); if (Utilities.ATLEAST_R) { mKeyboardInsetAnimationCallback = new KeyboardInsetAnimationCallback(this); diff --git a/src/com/android/launcher3/views/SpringRelativeLayout.java b/src/com/android/launcher3/views/SpringRelativeLayout.java index 8e3ac20574..8f814a1949 100644 --- a/src/com/android/launcher3/views/SpringRelativeLayout.java +++ b/src/com/android/launcher3/views/SpringRelativeLayout.java @@ -108,8 +108,6 @@ public class SpringRelativeLayout extends RelativeLayout { switch (direction) { case DIRECTION_TOP: return new EdgeEffectProxy(getContext(), mEdgeGlowTop); - case DIRECTION_BOTTOM: - return new EdgeEffectProxy(getContext(), mEdgeGlowBottom); } return super.createEdgeEffect(view, direction); } diff --git a/src/com/android/launcher3/workprofile/PersonalWorkSlidingTabStrip.java b/src/com/android/launcher3/workprofile/PersonalWorkSlidingTabStrip.java index b35c75b429..df5d465d96 100644 --- a/src/com/android/launcher3/workprofile/PersonalWorkSlidingTabStrip.java +++ b/src/com/android/launcher3/workprofile/PersonalWorkSlidingTabStrip.java @@ -127,7 +127,7 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout implements PageInd @Override public void setActiveMarker(int activePage) { updateTabTextColor(activePage); - updateIndicatorPosition(activePage); + updateIndicatorPosition(mIsRtl ? 1 - activePage : activePage); if (mOnActivePageChangedListener != null && mLastActivePage != activePage) { mOnActivePageChangedListener.onActivePageChanged(activePage); }