Merge "If a download finishes while the contextmenu is open, update it."
diff --git a/res/drawable-hdpi/ic_launcher_shortcut_browser_bookmark.png b/res/drawable-hdpi/ic_launcher_shortcut_browser_bookmark.png
index f861650..7b2c680 100644
--- a/res/drawable-hdpi/ic_launcher_shortcut_browser_bookmark.png
+++ b/res/drawable-hdpi/ic_launcher_shortcut_browser_bookmark.png
Binary files differ
diff --git a/res/drawable-hdpi/ic_launcher_shortcut_browser_bookmark_icon.png b/res/drawable-hdpi/ic_launcher_shortcut_browser_bookmark_icon.png
new file mode 100644
index 0000000..57fc915
--- /dev/null
+++ b/res/drawable-hdpi/ic_launcher_shortcut_browser_bookmark_icon.png
Binary files differ
diff --git a/res/drawable-mdpi/ic_launcher_shortcut_browser_bookmark_icon.png b/res/drawable-mdpi/ic_launcher_shortcut_browser_bookmark_icon.png
new file mode 100644
index 0000000..ba82911
--- /dev/null
+++ b/res/drawable-mdpi/ic_launcher_shortcut_browser_bookmark_icon.png
Binary files differ
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index dd5579a..f860b1f 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -73,6 +73,7 @@
 import android.text.format.DateFormat;
 import android.util.AttributeSet;
 import android.util.Log;
+import android.util.Patterns;
 import android.view.ContextMenu;
 import android.view.Gravity;
 import android.view.KeyEvent;
@@ -110,7 +111,6 @@
 import android.accounts.OperationCanceledException;
 import android.accounts.AccountManagerCallback;
 
-import com.android.common.Patterns;
 import com.android.common.Search;
 import com.android.common.speech.LoggingEvents;
 
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index d835f84..1183b70 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -30,6 +30,7 @@
 import android.graphics.Path;
 import android.graphics.PorterDuff;
 import android.graphics.PorterDuffXfermode;
+import android.graphics.Rect;
 import android.graphics.RectF;
 import android.net.Uri;
 import android.os.Bundle;
@@ -445,7 +446,7 @@
                                 R.drawable.ic_launcher_shortcut_browser_bookmark));
             } else {
                 Bitmap icon = BitmapFactory.decodeResource(getResources(),
-                        R.drawable.ic_launcher_shortcut_browser_bookmark);
+                        R.drawable.ic_launcher_shortcut_browser_bookmark_icon);
 
                 // Make a copy of the regular icon so we can modify the pixels.
                 Bitmap copy = icon.copy(Bitmap.Config.ARGB_8888, true);
@@ -458,13 +459,22 @@
                 p.setStyle(Paint.Style.FILL_AND_STROKE);
                 p.setColor(Color.WHITE);
 
-                float density = getResources().getDisplayMetrics().density;
+                final float density =
+                        getResources().getDisplayMetrics().density;
                 // Create a rectangle that is slightly wider than the favicon
                 final float iconSize = 16 * density; // 16x16 favicon
-                final float padding = 2; // white padding around icon
+                final float padding = 2 * density; // white padding around icon
                 final float rectSize = iconSize + 2 * padding;
-                final float y = icon.getHeight() - rectSize;
-                RectF r = new RectF(0, y, rectSize, y + rectSize);
+
+                final Rect iconBounds =
+                        new Rect(0, 0, icon.getWidth(), icon.getHeight());
+                final float x = iconBounds.exactCenterX() - (rectSize / 2);
+                // Note: Subtract 2 dip from the y position since the box is
+                // slightly higher than center. Use padding since it is already
+                // 2 * density.
+                final float y = iconBounds.exactCenterY() - (rectSize / 2)
+                        - padding;
+                RectF r = new RectF(x, y, x + rectSize, y + rectSize);
 
                 // Draw a white rounded rectangle behind the favicon
                 canvas.drawRoundRect(r, 2, 2, p);
diff --git a/src/com/android/browser/BrowserProvider.java b/src/com/android/browser/BrowserProvider.java
index f22cf86..94d7eca 100644
--- a/src/com/android/browser/BrowserProvider.java
+++ b/src/com/android/browser/BrowserProvider.java
@@ -46,10 +46,10 @@
 import android.speech.RecognizerResultsIntent;
 import android.text.TextUtils;
 import android.util.Log;
+import android.util.Patterns;
 import android.util.TypedValue;
 import android.webkit.GeolocationPermissions;
 
-import com.android.common.Patterns;
 
 import java.io.File;
 import java.io.FilenameFilter;
diff --git a/src/com/android/browser/DownloadTouchIcon.java b/src/com/android/browser/DownloadTouchIcon.java
index 22ed73c..e2d4594 100644
--- a/src/com/android/browser/DownloadTouchIcon.java
+++ b/src/com/android/browser/DownloadTouchIcon.java
@@ -22,11 +22,11 @@
 import android.database.Cursor;
 import android.graphics.Bitmap;
 import android.graphics.BitmapFactory;
+import android.net.http.AndroidHttpClient;
 import android.os.AsyncTask;
 import android.provider.Browser;
 import android.webkit.WebView;
 
-import com.android.common.AndroidHttpClient;
 
 import org.apache.http.HttpEntity;
 import org.apache.http.HttpResponse;
diff --git a/src/com/android/browser/FetchUrlMimeType.java b/src/com/android/browser/FetchUrlMimeType.java
index 9e34736..1e4debf 100644
--- a/src/com/android/browser/FetchUrlMimeType.java
+++ b/src/com/android/browser/FetchUrlMimeType.java
@@ -18,7 +18,7 @@
 
 import android.content.ContentValues;
 import android.net.Uri;
-import com.android.common.AndroidHttpClient;
+import android.net.http.AndroidHttpClient;
 
 import org.apache.http.HttpResponse;
 import org.apache.http.Header;