Merge "Fix ripple in GA" into rvc-dev am: bad91c0ea4 am: 7a2d48a813
Change-Id: Ie4f2aab5c24a1b4aee087c213b64ac297d583c69
This commit is contained in:
@@ -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"/>
|
||||||
|
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user