Merge "Make padding consistent between shortcuts and the app icon." into ub-launcher3-calgary
This commit is contained in:
@@ -19,6 +19,9 @@
|
|||||||
android:id="@+id/deep_shortcuts_container"
|
android:id="@+id/deep_shortcuts_container"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
|
android:paddingTop="8dp"
|
||||||
|
android:paddingBottom="8dp"
|
||||||
|
android:clipToPadding="false"
|
||||||
android:clipChildren="false"
|
android:clipChildren="false"
|
||||||
android:elevation="@dimen/deep_shortcuts_elevation"
|
android:elevation="@dimen/deep_shortcuts_elevation"
|
||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|||||||
@@ -134,6 +134,14 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void populateAndShow(final BubbleTextView originalIcon, final List<String> ids) {
|
public void populateAndShow(final BubbleTextView originalIcon, final List<String> ids) {
|
||||||
|
final Resources resources = getResources();
|
||||||
|
final int arrowWidth = resources.getDimensionPixelSize(R.dimen.deep_shortcuts_arrow_width);
|
||||||
|
final int arrowHeight = resources.getDimensionPixelSize(R.dimen.deep_shortcuts_arrow_height);
|
||||||
|
mArrowHorizontalOffset = resources.getDimensionPixelSize(
|
||||||
|
R.dimen.deep_shortcuts_arrow_horizontal_offset);
|
||||||
|
final int arrowVerticalOffset = resources.getDimensionPixelSize(
|
||||||
|
R.dimen.deep_shortcuts_arrow_vertical_offset);
|
||||||
|
|
||||||
// Add dummy views first, and populate with real shortcut info when ready.
|
// Add dummy views first, and populate with real shortcut info when ready.
|
||||||
final int spacing = getResources().getDimensionPixelSize(R.dimen.deep_shortcuts_spacing);
|
final int spacing = getResources().getDimensionPixelSize(R.dimen.deep_shortcuts_spacing);
|
||||||
final LayoutInflater inflater = mLauncher.getLayoutInflater();
|
final LayoutInflater inflater = mLauncher.getLayoutInflater();
|
||||||
@@ -151,16 +159,9 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
|||||||
numShortcuts, originalIcon.getContentDescription().toString()));
|
numShortcuts, originalIcon.getContentDescription().toString()));
|
||||||
|
|
||||||
measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
|
measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
|
||||||
orientAboutIcon(originalIcon);
|
orientAboutIcon(originalIcon, arrowHeight + arrowVerticalOffset);
|
||||||
|
|
||||||
// Add the arrow.
|
// Add the arrow.
|
||||||
final Resources resources = getResources();
|
|
||||||
final int arrowWidth = resources.getDimensionPixelSize(R.dimen.deep_shortcuts_arrow_width);
|
|
||||||
final int arrowHeight = resources.getDimensionPixelSize(R.dimen.deep_shortcuts_arrow_height);
|
|
||||||
mArrowHorizontalOffset = resources.getDimensionPixelSize(
|
|
||||||
R.dimen.deep_shortcuts_arrow_horizontal_offset);
|
|
||||||
final int arrowVerticalOffset = resources.getDimensionPixelSize(
|
|
||||||
R.dimen.deep_shortcuts_arrow_vertical_offset);
|
|
||||||
mArrow = addArrowView(mArrowHorizontalOffset, arrowVerticalOffset, arrowWidth, arrowHeight);
|
mArrow = addArrowView(mArrowHorizontalOffset, arrowVerticalOffset, arrowWidth, arrowHeight);
|
||||||
mArrow.setPivotX(arrowWidth / 2);
|
mArrow.setPivotX(arrowWidth / 2);
|
||||||
mArrow.setPivotY(mIsAboveIcon ? 0 : arrowHeight);
|
mArrow.setPivotY(mIsAboveIcon ? 0 : arrowHeight);
|
||||||
@@ -308,9 +309,9 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
|||||||
* So we always align left if there is enough horizontal space
|
* So we always align left if there is enough horizontal space
|
||||||
* and align above if there is enough vertical space.
|
* and align above if there is enough vertical space.
|
||||||
*/
|
*/
|
||||||
private void orientAboutIcon(BubbleTextView icon) {
|
private void orientAboutIcon(BubbleTextView icon, int arrowHeight) {
|
||||||
int width = getMeasuredWidth();
|
int width = getMeasuredWidth();
|
||||||
int height = getMeasuredHeight();
|
int height = getMeasuredHeight() + arrowHeight;
|
||||||
|
|
||||||
DragLayer dragLayer = mLauncher.getDragLayer();
|
DragLayer dragLayer = mLauncher.getDragLayer();
|
||||||
dragLayer.getDescendantRectRelativeToSelf(icon, mTempRect);
|
dragLayer.getDescendantRectRelativeToSelf(icon, mTempRect);
|
||||||
@@ -352,10 +353,12 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
|||||||
x += mIsLeftAligned ? xOffset : -xOffset;
|
x += mIsLeftAligned ? xOffset : -xOffset;
|
||||||
|
|
||||||
// Open above icon if there is room.
|
// Open above icon if there is room.
|
||||||
int y = mTempRect.top - height;
|
int iconHeight = icon.getIcon().getBounds().height();
|
||||||
mIsAboveIcon = mTempRect.top - height > dragLayer.getTop() + insets.top;
|
int y = mTempRect.top + icon.getPaddingTop() - height;
|
||||||
|
mIsAboveIcon = y > dragLayer.getTop() + insets.top;
|
||||||
if (!mIsAboveIcon) {
|
if (!mIsAboveIcon) {
|
||||||
y = mTempRect.bottom;
|
y = mTempRect.top + icon.getPaddingTop() + iconHeight;
|
||||||
|
icon.setTextVisibility(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insets are added later, so subtract them now.
|
// Insets are added later, so subtract them now.
|
||||||
@@ -715,6 +718,7 @@ public class DeepShortcutsContainer extends LinearLayout implements View.OnLongC
|
|||||||
mDeferContainerRemoval = false;
|
mDeferContainerRemoval = false;
|
||||||
// Make the original icon visible in All Apps, but not in Workspace or Folders.
|
// Make the original icon visible in All Apps, but not in Workspace or Folders.
|
||||||
cleanupDeferredDrag(mDeferredDragIcon.getTag() instanceof AppInfo);
|
cleanupDeferredDrag(mDeferredDragIcon.getTag() instanceof AppInfo);
|
||||||
|
mDeferredDragIcon.setTextVisibility(true);
|
||||||
mLauncher.getDragController().removeDragListener(this);
|
mLauncher.getDragController().removeDragListener(this);
|
||||||
mLauncher.getDragLayer().removeView(this);
|
mLauncher.getDragLayer().removeView(this);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user