Loading packages/SystemUI/res/layout/controls_more_item.xml +3 −1 Original line number Diff line number Diff line Loading @@ -18,5 +18,7 @@ style="@style/Control.MenuItem" android:layout_width="match_parent" 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"/> packages/SystemUI/res/values/styles.xml +1 −0 Original line number Diff line number Diff line Loading @@ -396,6 +396,7 @@ <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"> <item name="android:colorError">@*android:color/error_color_material_dark</item> <item name="android:windowIsFloating">true</item> </style> Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +9 −12 Original line number Diff line number Diff line Loading @@ -306,7 +306,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, RingerModeTracker ringerModeTracker, SysUiState sysUiState, @Main Handler handler, ControlsComponent controlsComponent, CurrentUserContextTracker currentUserContextTracker) { mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme); mContext = context; mWindowManagerFuncs = windowManagerFuncs; mAudioManager = audioManager; mDreamManager = iDreamManager; Loading Loading @@ -564,8 +564,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, mItems.clear(); mOverflowItems.clear(); String[] defaultActions = getDefaultActions(); String[] defaultActions = getDefaultActions(); // make sure emergency affordance action is first, if needed if (mEmergencyAffordanceManager.needsEmergencyAffordance()) { addActionItem(new EmergencyAffordanceAction()); Loading Loading @@ -1341,18 +1341,11 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, View view = convertView != null ? convertView : LayoutInflater.from(mContext).inflate(viewLayoutResource, parent, false); TextView textView = (TextView) view; textView.setOnClickListener(v -> onClickItem(position)); if (action.getMessageResId() != 0) { textView.setText(action.getMessageResId()); } else { textView.setText(action.getMessage()); } if (action instanceof LongPressAction) { textView.setOnLongClickListener(v -> onLongClickItem(position)); } else { textView.setOnLongClickListener(null); } return textView; } Loading Loading @@ -2064,11 +2057,15 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, } private ListPopupWindow createPowerOverflowPopup() { ListPopupWindow popup = new GlobalActionsPopupMenu( GlobalActionsPopupMenu popup = new GlobalActionsPopupMenu( new ContextThemeWrapper( mContext, com.android.systemui.R.style.Control_ListPopupWindow ), false /* isDropDownMode */); popup.setOnItemClickListener( (parent, view, position, id) -> mOverflowAdapter.onClickItem(position)); popup.setOnItemLongClickListener( (parent, view, position, id) -> mOverflowAdapter.onLongClickItem(position)); View overflowButton = findViewById(com.android.systemui.R.id.global_actions_overflow_button); popup.setAnchorView(overflowButton); Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsPopupMenu.java +12 −8 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.view.View; import android.view.View.MeasureSpec; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ListAdapter; import android.widget.ListPopupWindow; import android.widget.ListView; Loading @@ -37,10 +38,10 @@ import com.android.systemui.R; public class GlobalActionsPopupMenu extends ListPopupWindow { private Context mContext; private boolean mIsDropDownMode; private int mMenuHorizontalPadding = 0; private int mMenuVerticalPadding = 0; private int mGlobalActionsSidePadding = 0; private ListAdapter mAdapter; private AdapterView.OnItemLongClickListener mOnItemLongClickListener; public GlobalActionsPopupMenu(@NonNull Context context, boolean isDropDownMode) { super(context); Loading @@ -57,8 +58,6 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { mGlobalActionsSidePadding = res.getDimensionPixelSize(R.dimen.global_actions_side_margin); if (!isDropDownMode) { mMenuVerticalPadding = res.getDimensionPixelSize(R.dimen.control_menu_vertical_padding); mMenuHorizontalPadding = res.getDimensionPixelSize(R.dimen.control_menu_horizontal_padding); } } Loading @@ -76,6 +75,9 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { public void show() { // need to call show() first in order to construct the listView super.show(); if (mOnItemLongClickListener != null) { getListView().setOnItemLongClickListener(mOnItemLongClickListener); } ListView listView = getListView(); Resources res = mContext.getResources(); Loading @@ -92,7 +94,7 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { // width should be between [.5, .9] of screen int parentWidth = res.getSystem().getDisplayMetrics().widthPixels; int widthSpec = MeasureSpec.makeMeasureSpec( (int) (parentWidth * 0.9) - 2 * mMenuHorizontalPadding, MeasureSpec.AT_MOST); (int) (parentWidth * 0.9), MeasureSpec.AT_MOST); int maxWidth = 0; for (int i = 0; i < mAdapter.getCount(); i++) { View child = mAdapter.getView(i, null, listView); Loading @@ -100,10 +102,8 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { int w = child.getMeasuredWidth(); maxWidth = Math.max(w, maxWidth); } int width = Math.max(maxWidth, (int) (parentWidth * 0.5) - 2 * mMenuHorizontalPadding) + 2 * mMenuHorizontalPadding; listView.setPadding(mMenuHorizontalPadding, mMenuVerticalPadding, mMenuHorizontalPadding, mMenuVerticalPadding); int width = Math.max(maxWidth, (int) (parentWidth * 0.5)); listView.setPadding(0, mMenuVerticalPadding, 0, mMenuVerticalPadding); setWidth(width); setHorizontalOffset(getAnchorView().getWidth() - mGlobalActionsSidePadding - width); Loading @@ -111,4 +111,8 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { super.show(); } public void setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener) { mOnItemLongClickListener = listener; } } Loading
packages/SystemUI/res/layout/controls_more_item.xml +3 −1 Original line number Diff line number Diff line Loading @@ -18,5 +18,7 @@ style="@style/Control.MenuItem" android:layout_width="match_parent" 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"/>
packages/SystemUI/res/values/styles.xml +1 −0 Original line number Diff line number Diff line Loading @@ -396,6 +396,7 @@ <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"> <item name="android:colorError">@*android:color/error_color_material_dark</item> <item name="android:windowIsFloating">true</item> </style> Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialog.java +9 −12 Original line number Diff line number Diff line Loading @@ -306,7 +306,7 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, RingerModeTracker ringerModeTracker, SysUiState sysUiState, @Main Handler handler, ControlsComponent controlsComponent, CurrentUserContextTracker currentUserContextTracker) { mContext = new ContextThemeWrapper(context, com.android.systemui.R.style.qs_theme); mContext = context; mWindowManagerFuncs = windowManagerFuncs; mAudioManager = audioManager; mDreamManager = iDreamManager; Loading Loading @@ -564,8 +564,8 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, mItems.clear(); mOverflowItems.clear(); String[] defaultActions = getDefaultActions(); String[] defaultActions = getDefaultActions(); // make sure emergency affordance action is first, if needed if (mEmergencyAffordanceManager.needsEmergencyAffordance()) { addActionItem(new EmergencyAffordanceAction()); Loading Loading @@ -1341,18 +1341,11 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, View view = convertView != null ? convertView : LayoutInflater.from(mContext).inflate(viewLayoutResource, parent, false); TextView textView = (TextView) view; textView.setOnClickListener(v -> onClickItem(position)); if (action.getMessageResId() != 0) { textView.setText(action.getMessageResId()); } else { textView.setText(action.getMessage()); } if (action instanceof LongPressAction) { textView.setOnLongClickListener(v -> onLongClickItem(position)); } else { textView.setOnLongClickListener(null); } return textView; } Loading Loading @@ -2064,11 +2057,15 @@ public class GlobalActionsDialog implements DialogInterface.OnDismissListener, } private ListPopupWindow createPowerOverflowPopup() { ListPopupWindow popup = new GlobalActionsPopupMenu( GlobalActionsPopupMenu popup = new GlobalActionsPopupMenu( new ContextThemeWrapper( mContext, com.android.systemui.R.style.Control_ListPopupWindow ), false /* isDropDownMode */); popup.setOnItemClickListener( (parent, view, position, id) -> mOverflowAdapter.onClickItem(position)); popup.setOnItemLongClickListener( (parent, view, position, id) -> mOverflowAdapter.onLongClickItem(position)); View overflowButton = findViewById(com.android.systemui.R.id.global_actions_overflow_button); popup.setAnchorView(overflowButton); Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsPopupMenu.java +12 −8 Original line number Diff line number Diff line Loading @@ -22,6 +22,7 @@ import android.content.res.Resources; import android.view.View; import android.view.View.MeasureSpec; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.ListAdapter; import android.widget.ListPopupWindow; import android.widget.ListView; Loading @@ -37,10 +38,10 @@ import com.android.systemui.R; public class GlobalActionsPopupMenu extends ListPopupWindow { private Context mContext; private boolean mIsDropDownMode; private int mMenuHorizontalPadding = 0; private int mMenuVerticalPadding = 0; private int mGlobalActionsSidePadding = 0; private ListAdapter mAdapter; private AdapterView.OnItemLongClickListener mOnItemLongClickListener; public GlobalActionsPopupMenu(@NonNull Context context, boolean isDropDownMode) { super(context); Loading @@ -57,8 +58,6 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { mGlobalActionsSidePadding = res.getDimensionPixelSize(R.dimen.global_actions_side_margin); if (!isDropDownMode) { mMenuVerticalPadding = res.getDimensionPixelSize(R.dimen.control_menu_vertical_padding); mMenuHorizontalPadding = res.getDimensionPixelSize(R.dimen.control_menu_horizontal_padding); } } Loading @@ -76,6 +75,9 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { public void show() { // need to call show() first in order to construct the listView super.show(); if (mOnItemLongClickListener != null) { getListView().setOnItemLongClickListener(mOnItemLongClickListener); } ListView listView = getListView(); Resources res = mContext.getResources(); Loading @@ -92,7 +94,7 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { // width should be between [.5, .9] of screen int parentWidth = res.getSystem().getDisplayMetrics().widthPixels; int widthSpec = MeasureSpec.makeMeasureSpec( (int) (parentWidth * 0.9) - 2 * mMenuHorizontalPadding, MeasureSpec.AT_MOST); (int) (parentWidth * 0.9), MeasureSpec.AT_MOST); int maxWidth = 0; for (int i = 0; i < mAdapter.getCount(); i++) { View child = mAdapter.getView(i, null, listView); Loading @@ -100,10 +102,8 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { int w = child.getMeasuredWidth(); maxWidth = Math.max(w, maxWidth); } int width = Math.max(maxWidth, (int) (parentWidth * 0.5) - 2 * mMenuHorizontalPadding) + 2 * mMenuHorizontalPadding; listView.setPadding(mMenuHorizontalPadding, mMenuVerticalPadding, mMenuHorizontalPadding, mMenuVerticalPadding); int width = Math.max(maxWidth, (int) (parentWidth * 0.5)); listView.setPadding(0, mMenuVerticalPadding, 0, mMenuVerticalPadding); setWidth(width); setHorizontalOffset(getAnchorView().getWidth() - mGlobalActionsSidePadding - width); Loading @@ -111,4 +111,8 @@ public class GlobalActionsPopupMenu extends ListPopupWindow { super.show(); } public void setOnItemLongClickListener(AdapterView.OnItemLongClickListener listener) { mOnItemLongClickListener = listener; } }