am 6a2326cf: am bad51817: am 87b1490c: Potential fix for bug 4479399

* commit '6a2326cff955d692c4f89f6ca7ffea036a3efb15':
  Potential fix for bug 4479399
diff --git a/src/com/android/launcher2/AllAppsPagedView.java b/src/com/android/launcher2/AllAppsPagedView.java
index 64e6f98..94e6af4 100644
--- a/src/com/android/launcher2/AllAppsPagedView.java
+++ b/src/com/android/launcher2/AllAppsPagedView.java
@@ -72,6 +72,7 @@
 
     private int mLastMeasureWidth = -1;
     private int mLastMeasureHeight = -1;
+    private boolean mWaitingToInitPages = true;
 
     private int mMaxCellCountY;
 
@@ -119,13 +120,16 @@
             mCellCountY = determineCellCountY(height, layout);
             mLastMeasureWidth = width;
             mLastMeasureHeight = height;
+            removeAllViews();
+            invalidatePageData();
         }
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
     }
 
     @Override
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-        if (mFirstLayout) {
+        if (mWaitingToInitPages) {
+            mWaitingToInitPages = false;
             invalidatePageData();
 
             // invalidatePageData() is what causes the child pages to be created. We need the
@@ -567,12 +571,17 @@
     }
 
     @Override
-    public void syncPages() {
-        if (mCellCountX <= 0 || mCellCountY <= 0) {
+    protected void invalidatePageData() {
+        if (mWaitingToInitPages || mCellCountX <= 0 || mCellCountY <= 0) {
             // We don't know our size yet, which means we haven't calculated cell count x/y;
             // onMeasure will call us once we figure out our size
             return;
         }
+        super.invalidatePageData();
+    }
+
+    @Override
+    public void syncPages() {
         // ensure that we have the right number of pages (min of 1, since we have placeholders)
         int numPages = Math.max(1,
                 (int) Math.ceil((float) mFilteredApps.size() / (mCellCountX * mCellCountY)));
diff --git a/src/com/android/launcher2/CustomizePagedView.java b/src/com/android/launcher2/CustomizePagedView.java
index 5ac261f..e1256d0 100644
--- a/src/com/android/launcher2/CustomizePagedView.java
+++ b/src/com/android/launcher2/CustomizePagedView.java
@@ -151,6 +151,8 @@
 
     private AllAppsPagedView mAllAppsPagedView;
 
+    private boolean mWaitingToInitPages = true;
+
     public CustomizePagedView(Context context) {
         this(context, null, 0);
     }
@@ -208,6 +210,8 @@
             mPageContentWidth = layout.getContentWidth();
             mPageContentHeight = layout.getContentHeight();
             mMinPageWidth = layout.getWidthBeforeFirstLayout();
+            removeAllViews();
+            invalidatePageData();
         }
         if (mPageContentHeight > 0) {
             // Lock our height to the size of the page content
@@ -220,7 +224,8 @@
 
     @Override
     protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
-        if (mFirstLayout) {
+        if (mWaitingToInitPages) {
+            mWaitingToInitPages = false;
             invalidatePageData();
 
             // invalidatePageData() is what causes the child pages to be created. We need the
@@ -1138,12 +1143,17 @@
     }
 
     @Override
-    public void syncPages() {
-        if (mFirstMeasure) {
+    protected void invalidatePageData() {
+        if (mWaitingToInitPages || mCellCountX <= 0 || mCellCountY <= 0) {
             // We don't know our size yet, which means we haven't calculated cell count x/y;
             // onMeasure will call us once we figure out our size
             return;
         }
+        super.invalidatePageData();
+    }
+
+    @Override
+    public void syncPages() {
         boolean enforceMinimumPagedWidths = false;
         boolean centerPagedViewCellLayouts = false;
         switch (mCustomizationType) {
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java
index bd41e02..79f647a 100644
--- a/src/com/android/launcher2/PagedView.java
+++ b/src/com/android/launcher2/PagedView.java
@@ -113,8 +113,8 @@
     protected int mPageLayoutWidthGap;
     protected int mPageLayoutHeightGap;
     protected int mPageLayoutMaxHeight;
-    protected int mCellCountX = -1;
-    protected int mCellCountY = -1;
+    protected int mCellCountX = 0;
+    protected int mCellCountY = 0;
     protected boolean mCenterPagesVertically;
     protected boolean mAllowOverScroll = true;
     protected int mUnboundedScrollX;