Merge "Make the widget option on the PopupContainer full width" into tm-dev
diff --git a/src/com/android/launcher3/popup/LauncherPopupLiveUpdateHandler.java b/src/com/android/launcher3/popup/LauncherPopupLiveUpdateHandler.java
index 3e3f633..72956b0 100644
--- a/src/com/android/launcher3/popup/LauncherPopupLiveUpdateHandler.java
+++ b/src/com/android/launcher3/popup/LauncherPopupLiveUpdateHandler.java
@@ -62,8 +62,7 @@
                                     R.layout.widget_shortcut_container,
                                     mPopupContainerWithArrow));
                 }
-                mPopupContainerWithArrow.initializeSystemShortcut(
-                        R.layout.system_shortcut,
+                mPopupContainerWithArrow.initializeWidgetShortcut(
                         mPopupContainerWithArrow.getWidgetContainer(),
                         widgetInfo);
             } else {
diff --git a/src/com/android/launcher3/popup/PopupContainerWithArrow.java b/src/com/android/launcher3/popup/PopupContainerWithArrow.java
index 7692bbf..bd3778a 100644
--- a/src/com/android/launcher3/popup/PopupContainerWithArrow.java
+++ b/src/com/android/launcher3/popup/PopupContainerWithArrow.java
@@ -90,6 +90,7 @@
     private BubbleTextView mOriginalIcon;
     private int mNumNotifications;
     private NotificationContainer mNotificationContainer;
+    private int mContainerWidth;
 
     private ViewGroup mWidgetContainer;
 
@@ -104,6 +105,7 @@
         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 @@
         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 @@
 
             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 @@
                             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 @@
         }
     }
 
-    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 @@
         }
         view.setTag(info);
         view.setOnClickListener(info);
+        return view;
     }
 
     /**