Merge "Allow AllApps to restore current selected tab on activity recreate" into sc-dev am: f44a9ca6f0
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/15014304 Change-Id: Ifbedb11e2c42d66e04093f0ddc7dd983ab27c1b7
This commit is contained in:
commit
485796e814
|
@ -76,6 +76,9 @@
|
||||||
<!-- View IDs to store item highlight information -->
|
<!-- View IDs to store item highlight information -->
|
||||||
<item type="id" name="view_unhighlight_background" />
|
<item type="id" name="view_unhighlight_background" />
|
||||||
|
|
||||||
|
<!-- view ID used to restore work tab state -->
|
||||||
|
<item type="id" name="work_tab_state_id" />
|
||||||
|
|
||||||
<!-- Menu id for feature flags -->
|
<!-- Menu id for feature flags -->
|
||||||
<item type="id" name="menu_apply_flags" />
|
<item type="id" name="menu_apply_flags" />
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,7 @@ import android.graphics.Color;
|
||||||
import android.graphics.Paint;
|
import android.graphics.Paint;
|
||||||
import android.graphics.Point;
|
import android.graphics.Point;
|
||||||
import android.graphics.Rect;
|
import android.graphics.Rect;
|
||||||
|
import android.os.Bundle;
|
||||||
import android.os.Parcelable;
|
import android.os.Parcelable;
|
||||||
import android.os.Process;
|
import android.os.Process;
|
||||||
import android.text.Selection;
|
import android.text.Selection;
|
||||||
|
@ -82,6 +83,8 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
|
||||||
Insettable, OnDeviceProfileChangeListener, OnActivePageChangedListener,
|
Insettable, OnDeviceProfileChangeListener, OnActivePageChangedListener,
|
||||||
ScrimView.ScrimDrawingController {
|
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 PULL_MULTIPLIER = .02f;
|
||||||
public static final float FLING_VELOCITY_MULTIPLIER = 1200f;
|
public static final float FLING_VELOCITY_MULTIPLIER = 1200f;
|
||||||
|
|
||||||
|
@ -181,6 +184,23 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e("AllAppsContainerView", "restoreInstanceState viewId = 0", 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<Parcelable> 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() {
|
private void resetWorkProfile() {
|
||||||
boolean isEnabled = !mAllAppsStore.hasModelFlag(FLAG_QUIET_MODE_ENABLED);
|
boolean isEnabled = !mAllAppsStore.hasModelFlag(FLAG_QUIET_MODE_ENABLED);
|
||||||
mWorkModeSwitch.updateCurrentState(isEnabled);
|
if (mWorkModeSwitch != null) {
|
||||||
|
mWorkModeSwitch.updateCurrentState(isEnabled);
|
||||||
|
}
|
||||||
mWorkAdapterProvider.updateCurrentState(isEnabled);
|
mWorkAdapterProvider.updateCurrentState(isEnabled);
|
||||||
mAH[AdapterHolder.WORK].applyPadding();
|
mAH[AdapterHolder.WORK].applyPadding();
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,7 @@ public class WorkModeSwitch extends Button implements Insettable, View.OnClickLi
|
||||||
@Override
|
@Override
|
||||||
protected void onFinishInflate() {
|
protected void onFinishInflate() {
|
||||||
super.onFinishInflate();
|
super.onFinishInflate();
|
||||||
|
setSelected(true);
|
||||||
setOnClickListener(this);
|
setOnClickListener(this);
|
||||||
if (Utilities.ATLEAST_R) {
|
if (Utilities.ATLEAST_R) {
|
||||||
mKeyboardInsetAnimationCallback = new KeyboardInsetAnimationCallback(this);
|
mKeyboardInsetAnimationCallback = new KeyboardInsetAnimationCallback(this);
|
||||||
|
|
|
@ -108,8 +108,6 @@ public class SpringRelativeLayout extends RelativeLayout {
|
||||||
switch (direction) {
|
switch (direction) {
|
||||||
case DIRECTION_TOP:
|
case DIRECTION_TOP:
|
||||||
return new EdgeEffectProxy(getContext(), mEdgeGlowTop);
|
return new EdgeEffectProxy(getContext(), mEdgeGlowTop);
|
||||||
case DIRECTION_BOTTOM:
|
|
||||||
return new EdgeEffectProxy(getContext(), mEdgeGlowBottom);
|
|
||||||
}
|
}
|
||||||
return super.createEdgeEffect(view, direction);
|
return super.createEdgeEffect(view, direction);
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,7 +127,7 @@ public class PersonalWorkSlidingTabStrip extends LinearLayout implements PageInd
|
||||||
@Override
|
@Override
|
||||||
public void setActiveMarker(int activePage) {
|
public void setActiveMarker(int activePage) {
|
||||||
updateTabTextColor(activePage);
|
updateTabTextColor(activePage);
|
||||||
updateIndicatorPosition(activePage);
|
updateIndicatorPosition(mIsRtl ? 1 - activePage : activePage);
|
||||||
if (mOnActivePageChangedListener != null && mLastActivePage != activePage) {
|
if (mOnActivePageChangedListener != null && mLastActivePage != activePage) {
|
||||||
mOnActivePageChangedListener.onActivePageChanged(activePage);
|
mOnActivePageChangedListener.onActivePageChanged(activePage);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue