Fixes to Edge Navigation for missing bitmaps

- Show prominent color from favicon when bitmap capture of a
  navigation entry is missing
- More active purging of bitmaps on navigation

Change-Id: I2c137385bd1b1179dbbb16c0c3e933783d499c34
diff --git a/src/com/android/browser/EdgeSwipeController.java b/src/com/android/browser/EdgeSwipeController.java
index 5d6edd5..b9c2568 100644
--- a/src/com/android/browser/EdgeSwipeController.java
+++ b/src/com/android/browser/EdgeSwipeController.java
@@ -159,7 +159,7 @@
         if (!mbCurrBMSynced) {
             Bitmap currBM = mModel.readSnapshot(mCurrIndex);
             if (currBM != null) {
-                mView.setStationaryViewBitmap(currBM);
+                mView.setStationaryViewBitmap(currBM, mModel.getColor(mCurrIndex));
                 mbCurrBMSynced = true;
             }
         }
@@ -168,7 +168,7 @@
     private void showCurrBMInSlidingView() {
         if (!mbCurrBMSynced) {
             Bitmap currBM = mModel.readSnapshot(mCurrIndex);
-            mView.setSlidingViewBitmap(currBM);
+            mView.setSlidingViewBitmap(currBM, mModel.getColor(mCurrIndex));
             if (currBM != null) {
                 mbCurrBMSynced = true;
             }
@@ -224,12 +224,14 @@
                         switch (mFromEdge) {
                             case ViewDragHelper.EDGE_LEFT:
                                 mView.setSlidingViewBitmap(
-                                        getGrayscale(getSnapshotOrFavicon(pageIndex)));
+                                        getGrayscale(getSnapshotOrFavicon(pageIndex)),
+                                        mModel.getColor(pageIndex));
                                 mGrayBM = true;
                                 break;
                             case ViewDragHelper.EDGE_RIGHT:
                                 mView.setStationaryViewBitmap(
-                                        getGrayscale(getSnapshotOrFavicon(pageIndex)));
+                                        getGrayscale(getSnapshotOrFavicon(pageIndex)),
+                                        mModel.getColor(pageIndex));
                                 mGrayBM = true;
                                 break;
                         }
@@ -238,7 +240,8 @@
                             return;
                         }
                         mView.setStationaryViewBitmap(
-                                getGrayscale(getSnapshotOrFavicon(pageIndex)));
+                                getGrayscale(getSnapshotOrFavicon(pageIndex)),
+                                mModel.getColor(pageIndex));
                         mGrayBM = true;
                     }
                 }
@@ -325,7 +328,8 @@
             mView.hideSlidingViews();
 
             if (mbNavigated) {
-                mView.setStationaryViewBitmap(getSnapshotOrFavicon(mCurrIndex));
+                mView.setStationaryViewBitmap(getSnapshotOrFavicon(mCurrIndex),
+                        mModel.getColor(mCurrIndex));
             } else {
                 swipeSessionCleanup();
             }
@@ -402,7 +406,8 @@
 
                     if (mPrevIndex >= 0) {
                         if (!mView.stationaryViewHasImage()) {
-                            mView.setStationaryViewBitmap(getSnapshotOrFavicon(mPrevIndex));
+                            mView.setStationaryViewBitmap(getSnapshotOrFavicon(mPrevIndex),
+                                    mModel.getColor(mPrevIndex));
                         }
                     }
                     break;
@@ -412,7 +417,8 @@
                         mView.moveShadowView(mView.getMeasuredWidth() + left);
 
                         if (!mView.slidingViewHasImage() && mNextIndex < mMaxIndex) {
-                            mView.setSlidingViewBitmap(getSnapshotOrFavicon(mNextIndex));
+                            mView.setSlidingViewBitmap(getSnapshotOrFavicon(mNextIndex),
+                                    mModel.getColor(mNextIndex));
                         }
 
                         showCurrBMInStationaryView();
@@ -451,13 +457,15 @@
                     mView.showSlidingViews();
                     mView.goDormant();
                     mPrevIndex = mCurrIndex - 1;
-                    mView.setStationaryViewBitmap(getSnapshotOrFavicon(mPrevIndex));
+                    mView.setStationaryViewBitmap(getSnapshotOrFavicon(mPrevIndex),
+                            mModel.getColor(mPrevIndex));
                     showCurrBMInSlidingView();
                     break;
                 case ViewDragHelper.EDGE_RIGHT:
                     mView.showSlidingViews();
                     mNextIndex = mCurrIndex + 1;
-                    mView.setSlidingViewBitmap(getSnapshotOrFavicon(mNextIndex));
+                    mView.setSlidingViewBitmap(getSnapshotOrFavicon(mNextIndex),
+                            mModel.getColor(mNextIndex));
                     showCurrBMInStationaryView();
                     if (mbCurrBMSynced)
                         mView.goDormant();