Make the widget option on the PopupContainer full width
The width of the PopupContainer grows if there are multiple SystemShortcuts and we where not updating the width of all the options. Fix: 227538975 Test: Long press an app like Google Maps on the HomeScreen to see the menu. All the options should have the same width. Change-Id: I25310d74aa1af17be37b53c27d2334f86bef325a
This commit is contained in:
@@ -62,8 +62,7 @@ public class LauncherPopupLiveUpdateHandler extends PopupLiveUpdateHandler<Launc
|
||||
R.layout.widget_shortcut_container,
|
||||
mPopupContainerWithArrow));
|
||||
}
|
||||
mPopupContainerWithArrow.initializeSystemShortcut(
|
||||
R.layout.system_shortcut,
|
||||
mPopupContainerWithArrow.initializeWidgetShortcut(
|
||||
mPopupContainerWithArrow.getWidgetContainer(),
|
||||
widgetInfo);
|
||||
} else {
|
||||
|
||||
@@ -90,6 +90,7 @@ public class PopupContainerWithArrow<T extends Context & ActivityContext>
|
||||
private BubbleTextView mOriginalIcon;
|
||||
private int mNumNotifications;
|
||||
private NotificationContainer mNotificationContainer;
|
||||
private int mContainerWidth;
|
||||
|
||||
private ViewGroup mWidgetContainer;
|
||||
|
||||
@@ -104,6 +105,7 @@ public class PopupContainerWithArrow<T extends Context & ActivityContext>
|
||||
super(context, attrs, defStyleAttr);
|
||||
mStartDragThreshold = getResources().getDimensionPixelSize(
|
||||
R.dimen.deep_shortcuts_start_drag_threshold);
|
||||
mContainerWidth = getResources().getDimensionPixelSize(R.dimen.bg_popup_item_width);
|
||||
}
|
||||
|
||||
public PopupContainerWithArrow(Context context, AttributeSet attrs) {
|
||||
@@ -246,14 +248,15 @@ public class PopupContainerWithArrow<T extends Context & ActivityContext>
|
||||
mOriginalIcon = originalIcon;
|
||||
|
||||
boolean hasDeepShortcuts = shortcutCount > 0;
|
||||
int containerWidth = (int) getResources().getDimension(R.dimen.bg_popup_item_width);
|
||||
mContainerWidth = getResources().getDimensionPixelSize(R.dimen.bg_popup_item_width);
|
||||
|
||||
// if there are deep shortcuts, we might want to increase the width of shortcuts to fit
|
||||
// horizontally laid out system shortcuts.
|
||||
if (hasDeepShortcuts) {
|
||||
containerWidth = (int) Math.max(containerWidth,
|
||||
systemShortcuts.size() * getResources().getDimension(
|
||||
R.dimen.system_shortcut_header_icon_touch_size));
|
||||
mContainerWidth = Math.max(mContainerWidth,
|
||||
systemShortcuts.size() * getResources()
|
||||
.getDimensionPixelSize(R.dimen.system_shortcut_header_icon_touch_size)
|
||||
);
|
||||
}
|
||||
// Add views
|
||||
if (mNumNotifications > 0) {
|
||||
@@ -277,7 +280,7 @@ public class PopupContainerWithArrow<T extends Context & ActivityContext>
|
||||
|
||||
for (int i = shortcutCount; i > 0; i--) {
|
||||
DeepShortcutView v = inflateAndAdd(R.layout.deep_shortcut, mDeepShortcutContainer);
|
||||
v.getLayoutParams().width = containerWidth;
|
||||
v.getLayoutParams().width = mContainerWidth;
|
||||
mShortcuts.add(v);
|
||||
}
|
||||
updateHiddenShortcuts();
|
||||
@@ -289,8 +292,7 @@ public class PopupContainerWithArrow<T extends Context & ActivityContext>
|
||||
mWidgetContainer = inflateAndAdd(R.layout.widget_shortcut_container,
|
||||
this);
|
||||
}
|
||||
initializeSystemShortcut(R.layout.system_shortcut, mWidgetContainer,
|
||||
shortcut);
|
||||
initializeWidgetShortcut(mWidgetContainer, shortcut);
|
||||
}
|
||||
}
|
||||
mSystemShortcutContainer = inflateAndAdd(R.layout.system_shortcut_icons, this);
|
||||
@@ -384,7 +386,12 @@ public class PopupContainerWithArrow<T extends Context & ActivityContext>
|
||||
}
|
||||
}
|
||||
|
||||
protected void initializeSystemShortcut(int resId, ViewGroup container, SystemShortcut info) {
|
||||
protected void initializeWidgetShortcut(ViewGroup container, SystemShortcut info) {
|
||||
View view = initializeSystemShortcut(R.layout.system_shortcut, container, info);
|
||||
view.getLayoutParams().width = mContainerWidth;
|
||||
}
|
||||
|
||||
protected View initializeSystemShortcut(int resId, ViewGroup container, SystemShortcut info) {
|
||||
View view = inflateAndAdd(
|
||||
resId, container, getInsertIndexForSystemShortcut(container, info));
|
||||
if (view instanceof DeepShortcutView) {
|
||||
@@ -398,6 +405,7 @@ public class PopupContainerWithArrow<T extends Context & ActivityContext>
|
||||
}
|
||||
view.setTag(info);
|
||||
view.setOnClickListener(info);
|
||||
return view;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user