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
This commit is contained in:
Vadim Tryshev 2018-11-15 15:13:53 -08:00
parent b2f9c1f0c1
commit fdfeb6dd3b
5 changed files with 38 additions and 2 deletions

View File

@ -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>

View File

@ -126,6 +126,12 @@ public abstract class ArrowPopup extends AbstractFloatingView {
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.
*/

View File

@ -391,7 +391,8 @@ public class PopupContainerWithArrow extends ArrowPopup implements DragSource,
}
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;
@ -405,6 +406,17 @@ public class PopupContainerWithArrow extends ArrowPopup implements DragSource,
(ItemInfo) mOriginalIcon.getTag()));
}
/**
* 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.
*

View File

@ -76,4 +76,9 @@ public class RemoteActionShortcut extends SystemShortcut<Launcher> {
LauncherLogProto.ControlType.REMOTE_ACTION_SHORTCUT, view);
};
}
@Override
public boolean isLeftGroup() {
return true;
}
}

View File

@ -71,6 +71,13 @@ public abstract class SystemShortcut<T extends BaseDraggingActivity> extends Ite
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(),