Make SWEAB work with M38 branch

Change-Id: I01cee135afdcde2f7dab53a9f45c0413a6cb813b
diff --git a/src/com/android/browser/PhoneUi.java b/src/com/android/browser/PhoneUi.java
index 78b3cc8..c789eba 100644
--- a/src/com/android/browser/PhoneUi.java
+++ b/src/com/android/browser/PhoneUi.java
@@ -25,6 +25,7 @@
 import android.graphics.Bitmap;
 import android.graphics.Canvas;
 import android.graphics.Matrix;
+import android.graphics.Rect;
 import android.os.Message;
 import android.util.Log;
 import android.util.TypedValue;
@@ -35,6 +36,7 @@
 import android.view.MenuItem;
 import android.view.View;
 import android.view.accessibility.AccessibilityEvent;
+import android.webkit.ValueCallback;
 import org.codeaurora.swe.WebView;
 import android.widget.ImageView;
 
@@ -122,7 +124,7 @@
             if (mAnimScreen == null) {
                 mAnimScreen = new AnimScreen(mActivity);
                 // initialize bitmaps
-                mAnimScreen.set(getTitleBar(), getWebView());
+                //mAnimScreen.set(getTitleBar(), getWebView());
             }
         }
     }
@@ -271,6 +273,19 @@
         mShowNav = true;
         dismissIME();
         mUiController.setBlockEvents(true);
+
+        getWebView()
+            .getContentBitmapAsync(1.0f,
+                new Rect(),
+                new ValueCallback<Bitmap>() {
+                    @Override
+                    public void onReceiveValue(Bitmap bitmap) {
+                        onShowNavScreenContinue(bitmap);
+                    }});
+    }
+
+    void onShowNavScreenContinue(Bitmap viewportBitmap) {
+
         if (mNavScreen == null) {
             mNavScreen = new NavScreen(mActivity, mUiController, this);
             mCustomViewContainer.addView(mNavScreen, COVER_SCREEN_PARAMS);
@@ -287,7 +302,7 @@
             mAnimScreen.mTitle.setAlpha(1f);
             mAnimScreen.setScaleFactor(1f);
         }
-        mAnimScreen.set(getTitleBar(), getWebView());
+        mAnimScreen.set(getTitleBar(), viewportBitmap);
         if (mAnimScreen.mMain.getParent() == null) {
             mCustomViewContainer.addView(mAnimScreen.mMain, COVER_SCREEN_PARAMS);
         }
@@ -383,7 +398,7 @@
         }
         int width = mContentView.getWidth();
         int height = mContentView.getHeight();
-        Bitmap bm = tab.getFullScreenshot();
+        Bitmap bm = tab.getScreenshot();
         if (bm == null)
             bm = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
         mAnimScreen.set(bm);
@@ -503,6 +518,7 @@
         mNavScreen.setVisibility(View.GONE);
         mCustomViewContainer.setAlpha(1f);
         mCustomViewContainer.setVisibility(View.GONE);
+        mAnimScreen.set(null);
     }
 
     @Override
@@ -543,8 +559,8 @@
             setScaleFactor(getScaleFactor());
         }
 
-        public void set(TitleBar tbar, WebView web) {
-            if (tbar == null || web == null) {
+        public void set(TitleBar tbar, Bitmap viewportBitmap) {
+            if (tbar == null) {
                 return;
             }
             int embTbarHeight = tbar.getEmbeddedHeight();
@@ -566,29 +582,8 @@
             }
             mTitle.setImageBitmap(mTitleBarBitmap);
             mTitle.setVisibility(View.VISIBLE);
-            // SWE: WebView.draw() wouldn't draw anything if SurfaceView is enabled.
-            if (mContentBitmap != null) {
-                mContentBitmap.recycle();
-                mContentBitmap = null;
-            }
-            mContentBitmap = web.getViewportBitmap();
-            if (mContentBitmap == null) {
-                int h = web.getHeight() - embTbarHeight;
-                if (mContentBitmap == null
-                        || mContentBitmap.getWidth() != web.getWidth()
-                        || mContentBitmap.getHeight() != h) {
-                    mContentBitmap = safeCreateBitmap(web.getWidth(), h);
-                }
-                if (mContentBitmap != null) {
-                        Canvas c = new Canvas(mContentBitmap);
-                        int tx = web.getScrollX();
-                        int ty = web.getScrollY();
-                        c.translate(-tx, -ty - embTbarHeight);
-                        web.draw(c);
-                        c.setBitmap(null);
-                }
-            }
-            mContent.setImageBitmap(mContentBitmap);
+
+            mContent.setImageBitmap(viewportBitmap);
         }
 
         private Bitmap safeCreateBitmap(int width, int height) {