Merge "Fix ripple in GA" into rvc-dev am: bad91c0ea4 am: 7a2d48a813

Change-Id: Ie4f2aab5c24a1b4aee087c213b64ac297d583c69
This commit is contained in:
Fabian Kozynski
2020-05-28 13:59:22 +00:00
committed by Automerger Merge Worker
4 changed files with 25 additions and 21 deletions

View File

@@ -18,5 +18,7 @@
style="@style/Control.MenuItem" style="@style/Control.MenuItem"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="start" /> android:layout_gravity="start"
android:paddingStart="@dimen/control_menu_horizontal_padding"
android:paddingEnd="@dimen/control_menu_horizontal_padding"/>

View File

@@ -396,6 +396,7 @@
<style name="Theme.SystemUI.Dialog.Alert" parent="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert" /> <style name="Theme.SystemUI.Dialog.Alert" parent="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert" />
<style name="Theme.SystemUI.Dialog.GlobalActions" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen"> <style name="Theme.SystemUI.Dialog.GlobalActions" parent="@android:style/Theme.DeviceDefault.Light.NoActionBar.Fullscreen">
<item name="android:colorError">@*android:color/error_color_material_dark</item>
<item name="android:windowIsFloating">true</item> <item name="android:windowIsFloating">true</item>
</style> </style>

View File

@@ -306,7 +306,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
RingerModeTracker ringerModeTracker, SysUiState sysUiState, @Main Handler handler, RingerModeTracker ringerModeTracker, SysUiState sysUiState, @Main Handler handler,
ControlsComponent controlsComponent, ControlsComponent controlsComponent,
CurrentUserContextTracker currentUserContextTracker) { CurrentUserContextTracker currentUserContextTracker) {
mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme); mContext = context;
mWindowManagerFuncs = windowManagerFuncs; mWindowManagerFuncs = windowManagerFuncs;
mAudioManager = audioManager; mAudioManager = audioManager;
mDreamManager = iDreamManager; mDreamManager = iDreamManager;
@@ -564,8 +564,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
mItems.clear(); mItems.clear();
mOverflowItems.clear(); mOverflowItems.clear();
String[] defaultActions = getDefaultActions();
String[] defaultActions = getDefaultActions();
// make sure emergency affordance action is first, if needed // make sure emergency affordance action is first, if needed
if (mEmergencyAffordanceManager.needsEmergencyAffordance()) { if (mEmergencyAffordanceManager.needsEmergencyAffordance()) {
addActionItem(new EmergencyAffordanceAction()); addActionItem(new EmergencyAffordanceAction());
@@ -1341,18 +1341,11 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
View view = convertView != null ? convertView View view = convertView != null ? convertView
: LayoutInflater.from(mContext).inflate(viewLayoutResource, parent, false); : LayoutInflater.from(mContext).inflate(viewLayoutResource, parent, false);
TextView textView = (TextView) view; TextView textView = (TextView) view;
textView.setOnClickListener(v -> onClickItem(position));
if (action.getMessageResId() != 0) { if (action.getMessageResId() != 0) {
textView.setText(action.getMessageResId()); textView.setText(action.getMessageResId());
} else { } else {
textView.setText(action.getMessage()); textView.setText(action.getMessage());
} }
if (action instanceof LongPressAction) {
textView.setOnLongClickListener(v -> onLongClickItem(position));
} else {
textView.setOnLongClickListener(null);
}
return textView; return textView;
} }
@@ -2064,11 +2057,15 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener,
} }
private ListPopupWindow createPowerOverflowPopup() { private ListPopupWindow createPowerOverflowPopup() {
ListPopupWindow popup = new GlobalActionsPopupMenu( GlobalActionsPopupMenu popup = new GlobalActionsPopupMenu(
new ContextThemeWrapper( new ContextThemeWrapper(
mContext, mContext,
com.android.systemui.R.style.Control_ListPopupWindow com.android.systemui.R.style.Control_ListPopupWindow
), false /* isDropDownMode */); ), false /* isDropDownMode */);
popup.setOnItemClickListener(
(parent, view, position, id) -> mOverflowAdapter.onClickItem(position));
popup.setOnItemLongClickListener(
(parent, view, position, id) -> mOverflowAdapter.onLongClickItem(position));
View overflowButton = View overflowButton =
findViewById(com.android.systemui.R.id.global_actions_overflow_button); findViewById(com.android.systemui.R.id.global_actions_overflow_button);
popup.setAnchorView(overflowButton); popup.setAnchorView(overflowButton);

View File

@@ -22,6 +22,7 @@ import android.content.res.Resources;
import android.view.View; import android.view.View;
import android.view.View.MeasureSpec; import android.view.View.MeasureSpec;
import android.view.WindowManager; import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ListAdapter; import android.widget.ListAdapter;
import android.widget.ListPopupWindow; import android.widget.ListPopupWindow;
import android.widget.ListView; import android.widget.ListView;
@@ -37,10 +38,10 @@ import com.android.systemui.R;
public class GlobalActionsPopupMenu extends ListPopupWindow { public class GlobalActionsPopupMenu extends ListPopupWindow {
private Context mContext; private Context mContext;
private boolean mIsDropDownMode; private boolean mIsDropDownMode;
private int mMenuHorizontalPadding = 0;
private int mMenuVerticalPadding = 0; private int mMenuVerticalPadding = 0;
private int mGlobalActionsSidePadding = 0; private int mGlobalActionsSidePadding = 0;
private ListAdapter mAdapter; private ListAdapter mAdapter;
private AdapterView.OnItemLongClickListener mOnItemLongClickListener;
public GlobalActionsPopupMenu(@NonNull Context context, boolean isDropDownMode) { public GlobalActionsPopupMenu(@NonNull Context context, boolean isDropDownMode) {
super(context); super(context);
@@ -57,8 +58,6 @@ public class GlobalActionsPopupMenu extends ListPopupWindow {
mGlobalActionsSidePadding = res.getDimensionPixelSize(R.dimen.global_actions_side_margin); mGlobalActionsSidePadding = res.getDimensionPixelSize(R.dimen.global_actions_side_margin);
if (!isDropDownMode) { if (!isDropDownMode) {
mMenuVerticalPadding = res.getDimensionPixelSize(R.dimen.control_menu_vertical_padding); mMenuVerticalPadding = res.getDimensionPixelSize(R.dimen.control_menu_vertical_padding);
mMenuHorizontalPadding =
res.getDimensionPixelSize(R.dimen.control_menu_horizontal_padding);
} }
} }
@@ -76,6 +75,9 @@ public class GlobalActionsPopupMenu extends ListPopupWindow {
public void show() { public void show() {
// need to call show() first in order to construct the listView // need to call show() first in order to construct the listView
super.show(); super.show();
if (mOnItemLongClickListener != null) {
getListView().setOnItemLongClickListener(mOnItemLongClickListener);
}
ListView listView = getListView(); ListView listView = getListView();
Resources res = mContext.getResources(); Resources res = mContext.getResources();
@@ -92,7 +94,7 @@ public class GlobalActionsPopupMenu extends ListPopupWindow {
// width should be between [.5, .9] of screen // width should be between [.5, .9] of screen
int parentWidth = res.getSystem().getDisplayMetrics().widthPixels; int parentWidth = res.getSystem().getDisplayMetrics().widthPixels;
int widthSpec = MeasureSpec.makeMeasureSpec( int widthSpec = MeasureSpec.makeMeasureSpec(
(int) (parentWidth * 0.9) - 2 * mMenuHorizontalPadding, MeasureSpec.AT_MOST); (int) (parentWidth * 0.9), MeasureSpec.AT_MOST);
int maxWidth = 0; int maxWidth = 0;
for (int i = 0; i < mAdapter.getCount(); i++) { for (int i = 0; i < mAdapter.getCount(); i++) {
View child = mAdapter.getView(i, null, listView); View child = mAdapter.getView(i, null, listView);
@@ -100,10 +102,8 @@ public class GlobalActionsPopupMenu extends ListPopupWindow {
int w = child.getMeasuredWidth(); int w = child.getMeasuredWidth();
maxWidth = Math.max(w, maxWidth); maxWidth = Math.max(w, maxWidth);
} }
int width = Math.max(maxWidth, (int) (parentWidth * 0.5) - 2 * mMenuHorizontalPadding) int width = Math.max(maxWidth, (int) (parentWidth * 0.5));
+ 2 * mMenuHorizontalPadding; listView.setPadding(0, mMenuVerticalPadding, 0, mMenuVerticalPadding);
listView.setPadding(mMenuHorizontalPadding, mMenuVerticalPadding,
mMenuHorizontalPadding, mMenuVerticalPadding);
setWidth(width); setWidth(width);
setHorizontalOffset(getAnchorView().getWidth() - mGlobalActionsSidePadding - width); setHorizontalOffset(getAnchorView().getWidth() - mGlobalActionsSidePadding - width);
@@ -111,4 +111,8 @@ public class GlobalActionsPopupMenu extends ListPopupWindow {
super.show(); super.show();
} }
public void setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener) {
mOnItemLongClickListener = listener;
}
} }