Loading res/values/dimens.xml +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ <dimen name="dynamic_grid_overview_bar_item_width">80dp</dimen> <dimen name="dynamic_grid_overview_bar_spacer_width">25dp</dimen> <dimen name="dynamic_grid_hotseat_height">88dp</dimen> <dimen name="dynamic_grid_hotseat_top_padding">12dp</dimen> <dimen name="dynamic_grid_hotseat_top_padding">8dp</dimen> <dimen name="dynamic_grid_hotseat_gutter_width">24dp</dimen> <dimen name="dynamic_grid_workspace_top_padding">12dp</dimen> <dimen name="dynamic_grid_workspace_page_spacing">8dp</dimen> Loading src/com/android/launcher3/CellLayout.java +2 −1 Original line number Diff line number Diff line Loading @@ -406,7 +406,8 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler { mTouchFeedbackView.animate().cancel(); } else { if (mTouchFeedbackView.setBitmap(background)) { mTouchFeedbackView.alignWithIconView(icon, mShortcutsAndWidgets); mTouchFeedbackView.alignWithIconView(icon, mShortcutsAndWidgets, null /* clipAgainstView */); mTouchFeedbackView.animateShadow(); } } Loading src/com/android/launcher3/ClickShadowView.java +16 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; Loading Loading @@ -91,13 +92,27 @@ public class ClickShadowView extends View { * Aligns the shadow with {@param view} * @param viewParent immediate parent of {@param view}. It must be a sibling of this view. */ public void alignWithIconView(BubbleTextView view, ViewGroup viewParent) { public void alignWithIconView(BubbleTextView view, ViewGroup viewParent, View clipAgainstView) { float leftShift = view.getLeft() + viewParent.getLeft() - getLeft(); float topShift = view.getTop() + viewParent.getTop() - getTop(); int iconWidth = view.getRight() - view.getLeft(); int iconHeight = view.getBottom() - view.getTop(); int iconHSpace = iconWidth - view.getCompoundPaddingRight() - view.getCompoundPaddingLeft(); float drawableWidth = view.getIcon().getBounds().width(); if (clipAgainstView != null) { // Set the bounds to clip against int[] coords = new int[] {0, 0}; Utilities.getDescendantCoordRelativeToAncestor(clipAgainstView, (View) getParent(), coords, false); int clipLeft = (int) Math.max(0, coords[0] - leftShift - mShadowPadding); int clipTop = (int) Math.max(0, coords[1] - topShift - mShadowPadding) ; setClipBounds(new Rect(clipLeft, clipTop, clipLeft + iconWidth, clipTop + iconHeight)); } else { // Reset the clip bounds setClipBounds(null); } setTranslationX(leftShift + viewParent.getTranslationX() + view.getCompoundPaddingLeft() * view.getScaleX() Loading src/com/android/launcher3/DeviceProfile.java +9 −11 Original line number Diff line number Diff line Loading @@ -460,7 +460,7 @@ public class DeviceProfile { qsbContainer.setLayoutParams(lp); // Layout the hotseat View hotseat = launcher.findViewById(R.id.hotseat); Hotseat hotseat = (Hotseat) launcher.findViewById(R.id.hotseat); lp = (FrameLayout.LayoutParams) hotseat.getLayoutParams(); // We want the edges of the hotseat to line up with the edges of the workspace, but the // icons in the hotseat are a different size, and so don't line up perfectly. To account for Loading @@ -475,27 +475,25 @@ public class DeviceProfile { lp.gravity = Gravity.RIGHT; lp.width = hotseatBarHeightPx + mInsets.left + mInsets.right; lp.height = LayoutParams.MATCH_PARENT; hotseat.findViewById(R.id.layout).setPadding(0, 2 * edgeMarginPx, 0, 2 * edgeMarginPx); hotseat.setPadding(mInsets.left, 0, mInsets.right, 0); hotseat.getLayout().setPadding(mInsets.left, mInsets.top, mInsets.right, workspacePadding.bottom); } else if (isTablet) { // Pad the hotseat with the workspace padding calculated above lp.gravity = Gravity.BOTTOM; lp.width = LayoutParams.MATCH_PARENT; lp.height = hotseatBarHeightPx + mInsets.bottom; hotseat.findViewById(R.id.layout).setPadding( hotseatAdjustment + workspacePadding.left, 0, hotseatAdjustment + workspacePadding.right, 2 * edgeMarginPx); hotseat.setPadding(0, hotseatBarTopPaddingPx, 0, mInsets.bottom); hotseat.getLayout().setPadding(hotseatAdjustment + workspacePadding.left, hotseatBarTopPaddingPx, hotseatAdjustment + workspacePadding.right, mInsets.bottom); } else { // For phones, layout the hotseat without any bottom margin // to ensure that we have space for the folders lp.gravity = Gravity.BOTTOM; lp.width = LayoutParams.MATCH_PARENT; lp.height = hotseatBarHeightPx + mInsets.bottom; hotseat.findViewById(R.id.layout).setPadding( hotseatAdjustment + workspacePadding.left, 0, hotseatAdjustment + workspacePadding.right, 0); hotseat.setPadding(0, hotseatBarTopPaddingPx, 0, mInsets.bottom); hotseat.getLayout().setPadding(hotseatAdjustment + workspacePadding.left, hotseatBarTopPaddingPx, hotseatAdjustment + workspacePadding.right, mInsets.bottom); } hotseat.setLayoutParams(lp); Loading src/com/android/launcher3/Utilities.java +2 −2 Original line number Diff line number Diff line Loading @@ -113,8 +113,8 @@ public final class Utilities { && "NMR1".compareTo(VERSION.CODENAME) <= 0; } // TODO: use Build.VERSION_CODES when available public static final boolean ATLEAST_MARSHMALLOW = Build.VERSION.SDK_INT >= 23; public static final boolean ATLEAST_MARSHMALLOW = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M; public static final boolean ATLEAST_LOLLIPOP_MR1 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1; Loading Loading
res/values/dimens.xml +1 −1 Original line number Diff line number Diff line Loading @@ -28,7 +28,7 @@ <dimen name="dynamic_grid_overview_bar_item_width">80dp</dimen> <dimen name="dynamic_grid_overview_bar_spacer_width">25dp</dimen> <dimen name="dynamic_grid_hotseat_height">88dp</dimen> <dimen name="dynamic_grid_hotseat_top_padding">12dp</dimen> <dimen name="dynamic_grid_hotseat_top_padding">8dp</dimen> <dimen name="dynamic_grid_hotseat_gutter_width">24dp</dimen> <dimen name="dynamic_grid_workspace_top_padding">12dp</dimen> <dimen name="dynamic_grid_workspace_page_spacing">8dp</dimen> Loading
src/com/android/launcher3/CellLayout.java +2 −1 Original line number Diff line number Diff line Loading @@ -406,7 +406,8 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler { mTouchFeedbackView.animate().cancel(); } else { if (mTouchFeedbackView.setBitmap(background)) { mTouchFeedbackView.alignWithIconView(icon, mShortcutsAndWidgets); mTouchFeedbackView.alignWithIconView(icon, mShortcutsAndWidgets, null /* clipAgainstView */); mTouchFeedbackView.animateShadow(); } } Loading
src/com/android/launcher3/ClickShadowView.java +16 −1 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import android.view.View; import android.view.ViewDebug; import android.view.ViewGroup; Loading Loading @@ -91,13 +92,27 @@ public class ClickShadowView extends View { * Aligns the shadow with {@param view} * @param viewParent immediate parent of {@param view}. It must be a sibling of this view. */ public void alignWithIconView(BubbleTextView view, ViewGroup viewParent) { public void alignWithIconView(BubbleTextView view, ViewGroup viewParent, View clipAgainstView) { float leftShift = view.getLeft() + viewParent.getLeft() - getLeft(); float topShift = view.getTop() + viewParent.getTop() - getTop(); int iconWidth = view.getRight() - view.getLeft(); int iconHeight = view.getBottom() - view.getTop(); int iconHSpace = iconWidth - view.getCompoundPaddingRight() - view.getCompoundPaddingLeft(); float drawableWidth = view.getIcon().getBounds().width(); if (clipAgainstView != null) { // Set the bounds to clip against int[] coords = new int[] {0, 0}; Utilities.getDescendantCoordRelativeToAncestor(clipAgainstView, (View) getParent(), coords, false); int clipLeft = (int) Math.max(0, coords[0] - leftShift - mShadowPadding); int clipTop = (int) Math.max(0, coords[1] - topShift - mShadowPadding) ; setClipBounds(new Rect(clipLeft, clipTop, clipLeft + iconWidth, clipTop + iconHeight)); } else { // Reset the clip bounds setClipBounds(null); } setTranslationX(leftShift + viewParent.getTranslationX() + view.getCompoundPaddingLeft() * view.getScaleX() Loading
src/com/android/launcher3/DeviceProfile.java +9 −11 Original line number Diff line number Diff line Loading @@ -460,7 +460,7 @@ public class DeviceProfile { qsbContainer.setLayoutParams(lp); // Layout the hotseat View hotseat = launcher.findViewById(R.id.hotseat); Hotseat hotseat = (Hotseat) launcher.findViewById(R.id.hotseat); lp = (FrameLayout.LayoutParams) hotseat.getLayoutParams(); // We want the edges of the hotseat to line up with the edges of the workspace, but the // icons in the hotseat are a different size, and so don't line up perfectly. To account for Loading @@ -475,27 +475,25 @@ public class DeviceProfile { lp.gravity = Gravity.RIGHT; lp.width = hotseatBarHeightPx + mInsets.left + mInsets.right; lp.height = LayoutParams.MATCH_PARENT; hotseat.findViewById(R.id.layout).setPadding(0, 2 * edgeMarginPx, 0, 2 * edgeMarginPx); hotseat.setPadding(mInsets.left, 0, mInsets.right, 0); hotseat.getLayout().setPadding(mInsets.left, mInsets.top, mInsets.right, workspacePadding.bottom); } else if (isTablet) { // Pad the hotseat with the workspace padding calculated above lp.gravity = Gravity.BOTTOM; lp.width = LayoutParams.MATCH_PARENT; lp.height = hotseatBarHeightPx + mInsets.bottom; hotseat.findViewById(R.id.layout).setPadding( hotseatAdjustment + workspacePadding.left, 0, hotseatAdjustment + workspacePadding.right, 2 * edgeMarginPx); hotseat.setPadding(0, hotseatBarTopPaddingPx, 0, mInsets.bottom); hotseat.getLayout().setPadding(hotseatAdjustment + workspacePadding.left, hotseatBarTopPaddingPx, hotseatAdjustment + workspacePadding.right, mInsets.bottom); } else { // For phones, layout the hotseat without any bottom margin // to ensure that we have space for the folders lp.gravity = Gravity.BOTTOM; lp.width = LayoutParams.MATCH_PARENT; lp.height = hotseatBarHeightPx + mInsets.bottom; hotseat.findViewById(R.id.layout).setPadding( hotseatAdjustment + workspacePadding.left, 0, hotseatAdjustment + workspacePadding.right, 0); hotseat.setPadding(0, hotseatBarTopPaddingPx, 0, mInsets.bottom); hotseat.getLayout().setPadding(hotseatAdjustment + workspacePadding.left, hotseatBarTopPaddingPx, hotseatAdjustment + workspacePadding.right, mInsets.bottom); } hotseat.setLayoutParams(lp); Loading
src/com/android/launcher3/Utilities.java +2 −2 Original line number Diff line number Diff line Loading @@ -113,8 +113,8 @@ public final class Utilities { && "NMR1".compareTo(VERSION.CODENAME) <= 0; } // TODO: use Build.VERSION_CODES when available public static final boolean ATLEAST_MARSHMALLOW = Build.VERSION.SDK_INT >= 23; public static final boolean ATLEAST_MARSHMALLOW = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M; public static final boolean ATLEAST_LOLLIPOP_MR1 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1; Loading