Moving Pause button to the left of the context menu header
See this mock:
https://www.google.com/url?q=https://docs.google.com/presentation/d/1AepsnLeKcRhjMW35SkB5yMKO3u6waigug8Tyfe0LO5o/edit%23slide%3Did.g455d187f2a_0_45&sa=D&ust=1542320415002000&usg=AFQjCNH-jsy5THG1WqxjeYbj628QFMJKvQ
Bug: 117888000
Test: Manual
Change-Id: I1edbc569347f09f0806ad6749735c3dec198277a
diff --git a/res/layout/system_shortcut_icons.xml b/res/layout/system_shortcut_icons.xml
index 4daf469..a340f4f 100644
--- a/res/layout/system_shortcut_icons.xml
+++ b/res/layout/system_shortcut_icons.xml
@@ -22,4 +22,10 @@
android:orientation="horizontal"
android:gravity="end|center_vertical"
android:background="?attr/popupColorSecondary"
- android:clipToPadding="true" />
+ android:clipToPadding="true">
+
+ <Space android:layout_width="0dp"
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:id="@+id/separator"/>
+</LinearLayout>
diff --git a/src/com/android/launcher3/popup/ArrowPopup.java b/src/com/android/launcher3/popup/ArrowPopup.java
index 0bb5e2a..ccc15f1 100644
--- a/src/com/android/launcher3/popup/ArrowPopup.java
+++ b/src/com/android/launcher3/popup/ArrowPopup.java
@@ -126,6 +126,12 @@
return (T) view;
}
+ public <T extends View> T inflateAndAdd(int resId, ViewGroup container, int index) {
+ View view = mInflater.inflate(resId, container, false);
+ container.addView(view, index);
+ return (T) view;
+ }
+
/**
* Called when all view inflation and reordering in complete.
*/
diff --git a/src/com/android/launcher3/popup/PopupContainerWithArrow.java b/src/com/android/launcher3/popup/PopupContainerWithArrow.java
index 12319f7..37a000d 100644
--- a/src/com/android/launcher3/popup/PopupContainerWithArrow.java
+++ b/src/com/android/launcher3/popup/PopupContainerWithArrow.java
@@ -391,7 +391,8 @@
}
private void initializeSystemShortcut(int resId, ViewGroup container, SystemShortcut info) {
- View view = inflateAndAdd(resId, container);
+ View view = inflateAndAdd(
+ resId, container, getInsertIndexForSystemShortcut(container, info));
if (view instanceof DeepShortcutView) {
// Expanded system shortcut, with both icon and text shown on white background.
final DeepShortcutView shortcutView = (DeepShortcutView) view;
@@ -406,6 +407,17 @@
}
/**
+ * Returns an index for inserting a shortcut into a container.
+ */
+ private int getInsertIndexForSystemShortcut(ViewGroup container, SystemShortcut shortcut) {
+ final View separator = container.findViewById(R.id.separator);
+
+ return separator != null && shortcut.isLeftGroup() ?
+ container.indexOfChild(separator) :
+ container.getChildCount();
+ }
+
+ /**
* Determines when the deferred drag should be started.
*
* Current behavior:
diff --git a/src/com/android/launcher3/popup/RemoteActionShortcut.java b/src/com/android/launcher3/popup/RemoteActionShortcut.java
index c76fb96..3e12429 100644
--- a/src/com/android/launcher3/popup/RemoteActionShortcut.java
+++ b/src/com/android/launcher3/popup/RemoteActionShortcut.java
@@ -76,4 +76,9 @@
LauncherLogProto.ControlType.REMOTE_ACTION_SHORTCUT, view);
};
}
+
+ @Override
+ public boolean isLeftGroup() {
+ return true;
+ }
}
diff --git a/src/com/android/launcher3/popup/SystemShortcut.java b/src/com/android/launcher3/popup/SystemShortcut.java
index f9a2007..fdc1b39 100644
--- a/src/com/android/launcher3/popup/SystemShortcut.java
+++ b/src/com/android/launcher3/popup/SystemShortcut.java
@@ -71,6 +71,13 @@
mAccessibilityActionId = other.mAccessibilityActionId;
}
+ /**
+ * Should be in the left group of icons in app's context menu header.
+ */
+ public boolean isLeftGroup() {
+ return false;
+ }
+
public void setIconAndLabelFor(View iconView, TextView labelView) {
if (mIcon != null) {
mIcon.loadDrawableAsync(iconView.getContext(),