Adding menu to jump to shortcuts page in widgets tab

- Fixing bug in PagedView when setting the current page
- Fixing small visual issue with flashing scroll indicator
- Fixing slightly offset holographic icons

Change-Id: Ic6ce6365daca41cb5a73706c7c4b078f33a4e39c
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 714e7f9..d07b321 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -181,6 +181,7 @@
     private int mWidgetWidthGap, mWidgetHeightGap;
     private int mShortcutCountX, mShortcutCountY;
     private int mShortcutWidthGap, mShortcutHeightGap;
+    private int mNumWidgetPages, mNumShortcutPages;
     private final int mWidgetPreviewIconPaddedDimension;
     private final float sWidgetPreviewIconPaddingPercentage = 0.25f;
     private PagedViewCellLayout mWidgetSpacingLayout;
@@ -287,12 +288,16 @@
         mShortcutCountX = Math.max(1, (int) Math.round(mCellCountX / 2f));
         mShortcutCountY = Math.max(1, (int) Math.round(mCellCountY / 2f));
 
+        mNumWidgetPages = (int) Math.ceil(mWidgets.size() /
+                (float) (mWidgetCountX * mWidgetCountY));
+        mNumShortcutPages = (int) Math.ceil(mShortcuts.size() /
+                (float) (mShortcutCountX * mShortcutCountY));
+
         // Force a measure to update recalculate the gaps
         int widthSpec = MeasureSpec.makeMeasureSpec(getMeasuredWidth(), MeasureSpec.AT_MOST);
         int heightSpec = MeasureSpec.makeMeasureSpec(getMeasuredHeight(), MeasureSpec.AT_MOST);
         mWidgetSpacingLayout.measure(widthSpec, heightSpec);
         mContentWidth = mWidgetSpacingLayout.getContentWidth();
-
         invalidatePageData();
     }
 
@@ -495,14 +500,20 @@
 
     public void setContentType(ContentType type) {
         mContentType = type;
-        setCurrentPage(0);
-        invalidatePageData();
+        invalidatePageData(0);
     }
 
     public boolean isContentType(ContentType type) {
         return (mContentType == type);
     }
 
+    public void setCurrentPageToWidgets() {
+        invalidatePageData(0);
+    }
+    public void setCurrentPageToShortcuts() {
+        invalidatePageData(mNumWidgetPages);
+    }
+
     /*
      * Apps PagedView implementation
      */
@@ -848,14 +859,10 @@
         Context context = getContext();
         int[] countX = { mWidgetCountX, mShortcutCountX };
         int[] countY = { mWidgetCountY, mShortcutCountY };
-        Object[] collection = { mWidgets, mShortcuts };
+        int[] numPages = { mNumWidgetPages, mNumShortcutPages };
         for (int i = 0; i < 2; ++i) {
-            ArrayList<Object> list = (ArrayList<Object>) collection[i];
-            int numItemsPerPage = countX[i] * countY[i];
-            int numItemPages = (int) Math.ceil(list.size() / (float) numItemsPerPage);
-            for (int j = 0; j < numItemPages; ++j) {
-                PagedViewGridLayout layout = new PagedViewGridLayout(context, countX[i],
-                        countY[i]);
+            for (int j = 0; j < numPages[i]; ++j) {
+                PagedViewGridLayout layout = new PagedViewGridLayout(context, countX[i], countY[i]);
                 setupPage(layout);
                 addView(layout);
             }
@@ -1130,10 +1137,9 @@
             // Reset to the first page of the Apps pane
             AppsCustomizeTabHost tabs = (AppsCustomizeTabHost)
                     mLauncher.findViewById(R.id.apps_customize_pane);
-            tabs.setCurrentTabByTag(tabs.getTabTagForContentType(ContentType.Applications));
+            tabs.selectAppsTab();
         } else if (getCurrentPage() != 0) {
-            setCurrentPage(0);
-            invalidatePageData();
+            invalidatePageData(0);
         }
     }
     @Override