summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2018-01-18 14:02:47 -0800
committerSunny Goyal <sunnygoyal@google.com>2018-01-18 14:03:19 -0800
commitce8809a5883bb869e8b1fb991821876b498c18c5 (patch)
treecbe995e903b46545697f1d9dc0235bf1e5a7e885
parentf12cfaa1563856710f390b245acb88fc96c80036 (diff)
downloadandroid_packages_apps_Trebuchet-ce8809a5883bb869e8b1fb991821876b498c18c5.tar.gz
android_packages_apps_Trebuchet-ce8809a5883bb869e8b1fb991821876b498c18c5.tar.bz2
android_packages_apps_Trebuchet-ce8809a5883bb869e8b1fb991821876b498c18c5.zip
Reapplying state UI when the insets change
Change-Id: Ief9588400f332b2c5b084a8a11c3102b2c20c4ea
-rw-r--r--quickstep/src/com/android/launcher3/uioverrides/OverviewState.java4
-rw-r--r--src/com/android/launcher3/LauncherRootView.java4
-rw-r--r--src/com/android/launcher3/LauncherStateManager.java8
-rw-r--r--src/com/android/launcher3/PagedView.java12
-rw-r--r--src/com/android/launcher3/Workspace.java12
5 files changed, 36 insertions, 4 deletions
diff --git a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java
index d2057cf74..68f6eedc2 100644
--- a/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java
+++ b/quickstep/src/com/android/launcher3/uioverrides/OverviewState.java
@@ -100,12 +100,12 @@ public class OverviewState extends LauncherState {
float scale = pageRect.height() / childHeight;
Rect insets = launcher.getDragLayer().getInsets();
- float halfHeight = ws.getHeight() / 2;
+ float halfHeight = ws.getExpectedHeight() / 2;
float childTop = halfHeight - scale * (halfHeight - ws.getPaddingTop() - insets.top);
float translationY = pageRect.top - childTop;
// Align the workspace horizontally centered with the task rect
- float halfWidth = ws.getWidth() / 2;
+ float halfWidth = ws.getExpectedWidth() / 2;
float childCenter = halfWidth -
scale * (halfWidth - ws.getPaddingLeft() - insets.left - childWidth / 2);
float translationX = pageRect.exactCenterX() - childCenter;
diff --git a/src/com/android/launcher3/LauncherRootView.java b/src/com/android/launcher3/LauncherRootView.java
index 1a1bec684..290c51734 100644
--- a/src/com/android/launcher3/LauncherRootView.java
+++ b/src/com/android/launcher3/LauncherRootView.java
@@ -66,6 +66,7 @@ public class LauncherRootView extends InsettableFrameLayout {
// Update device profile before notifying th children.
mLauncher.getDeviceProfile().updateInsets(insets);
+ boolean resetState = !insets.equals(mInsets);
setInsets(insets);
if (mAlignedView != null) {
@@ -77,6 +78,9 @@ public class LauncherRootView extends InsettableFrameLayout {
mAlignedView.setLayoutParams(lp);
}
}
+ if (resetState) {
+ mLauncher.getStateManager().reapplyState();
+ }
return true; // I'll take it from here
}
diff --git a/src/com/android/launcher3/LauncherStateManager.java b/src/com/android/launcher3/LauncherStateManager.java
index bcb6252b3..8eeeec3df 100644
--- a/src/com/android/launcher3/LauncherStateManager.java
+++ b/src/com/android/launcher3/LauncherStateManager.java
@@ -146,6 +146,14 @@ public class LauncherStateManager {
goToState(state, true, delay, null);
}
+ public void reapplyState() {
+ if (mConfig.mCurrentAnimation == null) {
+ for (StateHandler handler : getStateHandlers()) {
+ handler.setState(mState);
+ }
+ }
+ }
+
private void goToState(LauncherState state, boolean animated, long delay,
Runnable onCompleteRunnable) {
if (mLauncher.isInState(state) && mConfig.mCurrentAnimation == null) {
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index 4c3085331..ad94a6b5f 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -563,13 +563,21 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
computeScrollHelper();
}
+ public int getExpectedHeight() {
+ return getMeasuredHeight();
+ }
+
public int getNormalChildHeight() {
- return getMeasuredHeight() - getPaddingTop() - getPaddingBottom()
+ return getExpectedHeight() - getPaddingTop() - getPaddingBottom()
- mInsets.top - mInsets.bottom;
}
+ public int getExpectedWidth() {
+ return getMeasuredWidth();
+ }
+
public int getNormalChildWidth() {
- return getMeasuredWidth() - getPaddingLeft() - getPaddingRight()
+ return getExpectedWidth() - getPaddingLeft() - getPaddingRight()
- mInsets.left - mInsets.right;
}
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index de3b09a4a..c946a4479 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -3447,6 +3447,18 @@ public class Workspace extends PagedView
}
@Override
+ public int getExpectedHeight() {
+ return getMeasuredHeight() <= 0
+ ? mLauncher.getDeviceProfile().heightPx : getMeasuredHeight();
+ }
+
+ @Override
+ public int getExpectedWidth() {
+ return getMeasuredWidth() <= 0
+ ? mLauncher.getDeviceProfile().widthPx : getMeasuredWidth();
+ }
+
+ @Override
protected String getPageIndicatorDescription() {
return getResources().getString(R.string.all_apps_button_label);
}