diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2015-11-23 11:47:50 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2015-12-01 14:43:32 -0800 |
commit | 9326461652c36c2ddd888d1452cf7f075a391868 (patch) | |
tree | 1ad864d2009abbed3c2749232352008f8cdf0e24 /src/com/android/launcher3 | |
parent | 0c2f0700a55080318a4c21457408abb8af26740d (diff) | |
download | android_packages_apps_Trebuchet-9326461652c36c2ddd888d1452cf7f075a391868.tar.gz android_packages_apps_Trebuchet-9326461652c36c2ddd888d1452cf7f075a391868.tar.bz2 android_packages_apps_Trebuchet-9326461652c36c2ddd888d1452cf7f075a391868.zip |
Adding margin to Drag layer instead of checking for right insets at every place
Bug: 25692432
Change-Id: I853f41a17c54b30b7772b9fd8556d9465de84752
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r-- | src/com/android/launcher3/InvariantDeviceProfile.java | 7 | ||||
-rw-r--r-- | src/com/android/launcher3/LauncherRootView.java | 33 | ||||
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 11 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 1 |
4 files changed, 33 insertions, 19 deletions
diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index e983eb116..0d183db37 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -17,7 +17,6 @@ package com.android.launcher3; import android.annotation.TargetApi; -import android.app.ActivityManager; import android.content.Context; import android.graphics.Point; import android.util.DisplayMetrics; @@ -84,9 +83,6 @@ public class InvariantDeviceProfile { DeviceProfile landscapeProfile; DeviceProfile portraitProfile; - // On Marshmallow the status bar is no longer opaque, when drawn on the right. - public boolean isRightInsetOpaque; - InvariantDeviceProfile() { } @@ -170,9 +166,6 @@ public class InvariantDeviceProfile { largeSide, smallSide, true /* isLandscape */); portraitProfile = new DeviceProfile(context, this, smallestSize, largestSize, smallSide, largeSide, false /* isLandscape */); - - isRightInsetOpaque = !Utilities.ATLEAST_MARSHMALLOW || - context.getSystemService(ActivityManager.class).isLowRamDevice(); } ArrayList<InvariantDeviceProfile> getPredefinedDeviceProfiles() { diff --git a/src/com/android/launcher3/LauncherRootView.java b/src/com/android/launcher3/LauncherRootView.java index 1c6ca8713..71ccd85fc 100644 --- a/src/com/android/launcher3/LauncherRootView.java +++ b/src/com/android/launcher3/LauncherRootView.java @@ -1,17 +1,22 @@ package com.android.launcher3; +import android.annotation.TargetApi; +import android.app.ActivityManager; import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.util.AttributeSet; +import android.view.View; public class LauncherRootView extends InsettableFrameLayout { private final Paint mOpaquePaint; private boolean mDrawRightInsetBar; + private View mAlignedView; + public LauncherRootView(Context context, AttributeSet attrs) { super(context, attrs); @@ -21,10 +26,32 @@ public class LauncherRootView extends InsettableFrameLayout { } @Override + protected void onFinishInflate() { + if (getChildCount() > 0) { + // LauncherRootView contains only one child, which should be aligned + // based on the horizontal insets. + mAlignedView = getChildAt(0); + } + super.onFinishInflate(); + } + + @TargetApi(23) + @Override protected boolean fitSystemWindows(Rect insets) { - setInsets(insets); - mDrawRightInsetBar = mInsets.right > 0 && LauncherAppState - .getInstance().getInvariantDeviceProfile().isRightInsetOpaque; + mDrawRightInsetBar = insets.right > 0 && + (!Utilities.ATLEAST_MARSHMALLOW || + getContext().getSystemService(ActivityManager.class).isLowRamDevice()); + setInsets(mDrawRightInsetBar ? new Rect(0, insets.top, 0, insets.bottom) : insets); + + if (mAlignedView != null) { + // Apply margins on aligned view to handle left/right insets. + MarginLayoutParams lp = (MarginLayoutParams) mAlignedView.getLayoutParams(); + if (lp.leftMargin != insets.left || lp.rightMargin != insets.right) { + lp.leftMargin = insets.left; + lp.rightMargin = insets.right; + mAlignedView.setLayoutParams(lp); + } + } return true; // I'll take it from here } diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 9258360fa..c34ac3a07 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -202,9 +202,6 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc protected final Rect mInsets = new Rect(); protected final boolean mIsRtl; - // When set to true, full screen content and overscroll effect is shited inside by right inset. - protected boolean mIgnoreRightInset; - // Edge effect private final LauncherEdgeEffect mEdgeGlowLeft = new LauncherEdgeEffect(); private final LauncherEdgeEffect mEdgeGlowRight = new LauncherEdgeEffect(); @@ -822,8 +819,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc childWidthMode = MeasureSpec.EXACTLY; childHeightMode = MeasureSpec.EXACTLY; - childWidth = getViewportWidth() - mInsets.left - - (mIgnoreRightInset ? mInsets.right : 0); + childWidth = getViewportWidth() - mInsets.left - mInsets.right; childHeight = getViewportHeight(); } if (referenceChildWidth == 0) { @@ -1182,9 +1178,8 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc getEdgeVerticalPostion(sTmpIntPoint); - int width = mIgnoreRightInset ? (display.width() - mInsets.right) : display.width(); - canvas.translate(sTmpIntPoint[0] - display.top, -width); - mEdgeGlowRight.setSize(sTmpIntPoint[1] - sTmpIntPoint[0], width); + canvas.translate(sTmpIntPoint[0] - display.top, -display.width()); + mEdgeGlowRight.setSize(sTmpIntPoint[1] - sTmpIntPoint[0], display.width()); if (mEdgeGlowRight.draw(canvas)) { postInvalidateOnAnimation(); } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index f046fbd3c..33dda33ac 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -455,7 +455,6 @@ public class Workspace extends PagedView setWallpaperDimension(); setEdgeGlowColor(getResources().getColor(R.color.workspace_edge_effect_color)); - mIgnoreRightInset = app.getInvariantDeviceProfile().isRightInsetOpaque; } private void setupLayoutTransition() { |