Merge "Debug settings changes"
diff --git a/res/mipmap-xlarge/ic_launcher_browser.png b/res/mipmap-xlarge/ic_launcher_browser.png
new file mode 100644
index 0000000..2ca92c8
--- /dev/null
+++ b/res/mipmap-xlarge/ic_launcher_browser.png
Binary files differ
diff --git a/res/mipmap-xlarge/ic_launcher_shortcut_browser_bookmark.png b/res/mipmap-xlarge/ic_launcher_shortcut_browser_bookmark.png
new file mode 100644
index 0000000..7b2c680
--- /dev/null
+++ b/res/mipmap-xlarge/ic_launcher_shortcut_browser_bookmark.png
Binary files differ
diff --git a/res/values-xlarge/dimensions.xml b/res/values-xlarge/dimensions.xml
index c335c19..5b86c86 100644
--- a/res/values-xlarge/dimensions.xml
+++ b/res/values-xlarge/dimensions.xml
@@ -13,4 +13,5 @@
 <resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <dimen name="bookmarkThumbnailWidth">180dip</dimen>
     <dimen name="bookmarkThumbnailHeight">120dip</dimen>
-</resources>
\ No newline at end of file
+    <dimen name="favicon_padded_size">24dip</dimen>
+</resources>
diff --git a/res/values/dimensions.xml b/res/values/dimensions.xml
index 404b2ac..d51ab33 100644
--- a/res/values/dimensions.xml
+++ b/res/values/dimensions.xml
@@ -24,4 +24,6 @@
     <dimen name="add_bookmark_width">500dip</dimen>
     <dimen name="folder_selector_height">300dip</dimen>
     <dimen name="widgetItemMinHeight">48dip</dimen>
+    <dimen name="favicon_size">16dip</dimen>
+    <dimen name="favicon_padded_size">20dip</dimen>
 </resources>
diff --git a/src/com/android/browser/BookmarkUtils.java b/src/com/android/browser/BookmarkUtils.java
index a63b90f..c72cbd1 100644
--- a/src/com/android/browser/BookmarkUtils.java
+++ b/src/com/android/browser/BookmarkUtils.java
@@ -70,14 +70,14 @@
 
             if (icon != null) {
                 // Now draw the correct icon background into our new bitmap.
-                canvas.drawBitmap(icon, null, iconBounds, null);
+                Paint p = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
+                canvas.drawBitmap(icon, null, iconBounds, p);
             }
 
             // If we have a favicon, overlay it in a nice rounded white box on top of the
             // background.
             if (favicon != null) {
-                drawFaviconToCanvas(favicon, canvas, iconBounds,
-                        context.getResources().getDisplayMetrics().density);
+                drawFaviconToCanvas(context, favicon, canvas, iconBounds);
             }
         }
         return bm;
@@ -139,8 +139,8 @@
         canvas.drawPath(path, paint);
     }
 
-    private static void drawFaviconToCanvas(Bitmap favicon, Canvas canvas, Rect iconBounds,
-            float density) {
+    private static void drawFaviconToCanvas(Context context, Bitmap favicon, Canvas canvas,
+            Rect iconBounds) {
         // Make a Paint for the white background rectangle and for
         // filtering the favicon.
         Paint p = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
@@ -148,15 +148,16 @@
         p.setColor(Color.WHITE);
 
         // Create a rectangle that is slightly wider than the favicon
-        final float iconSize = 16 * density; // 16x16 favicon
-        final float padding = 2 * density; // white padding around icon
-        final float rectSize = iconSize + 2 * padding;
-        final float x = iconBounds.exactCenterX() - (rectSize / 2);
-        // Note: Subtract 2 dip from the y position since the box is
+        int faviconDimension = context.getResources().getDimensionPixelSize(R.dimen.favicon_size);
+        int faviconPaddedRectDimension = context.getResources().getDimensionPixelSize(
+                R.dimen.favicon_padded_size);
+        float padding = (faviconPaddedRectDimension - faviconDimension) / 2;
+        final float x = iconBounds.exactCenterX() - (faviconPaddedRectDimension / 2);
+        // Note: Subtract 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);
+        // device independent.
+        final float y = iconBounds.exactCenterY() - (faviconPaddedRectDimension / 2) - padding;
+        RectF r = new RectF(x, y, x + faviconPaddedRectDimension, y + faviconPaddedRectDimension);
 
         // Draw a white rounded rectangle behind the favicon
         canvas.drawRoundRect(r, 2, 2, p);
@@ -165,7 +166,7 @@
         // rectangle but inset by the padding
         // (results in a 16x16 favicon).
         r.inset(padding, padding);
-        canvas.drawBitmap(favicon, null, r, p);
+        canvas.drawBitmap(favicon, null, r, null);
     }
 
     /* package */ static Uri getBookmarksUri(Context context) {
diff --git a/src/com/android/browser/BreadCrumbView.java b/src/com/android/browser/BreadCrumbView.java
index 4939b48..d0ba8ad 100644
--- a/src/com/android/browser/BreadCrumbView.java
+++ b/src/com/android/browser/BreadCrumbView.java
@@ -240,7 +240,7 @@
     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
         int height = mSeparatorDrawable.getIntrinsicHeight();
-        if (mMeasuredHeight < height) {
+        if (getMeasuredHeight() < height) {
             // This should only be an issue if there are currently no separators
             // showing; i.e. if there is one crumb and no back button.
             int mode = View.MeasureSpec.getMode(heightMeasureSpec);
@@ -255,7 +255,7 @@
                 default:
                     break;
             }
-            setMeasuredDimension(mMeasuredWidth, height);
+            setMeasuredDimension(getMeasuredWidth(), height);
         }
     }
 
diff --git a/src/com/android/browser/BrowserBookmarksPage.java b/src/com/android/browser/BrowserBookmarksPage.java
index 4887f3f..74385f9 100644
--- a/src/com/android/browser/BrowserBookmarksPage.java
+++ b/src/com/android/browser/BrowserBookmarksPage.java
@@ -357,8 +357,6 @@
         }
         BookmarkItem header = new BookmarkItem(activity);
         populateBookmarkItem(cursor, header, isFolder);
-        new LookupBookmarkCount(getActivity(), header)
-                .execute(cursor.getLong(BookmarksLoader.COLUMN_INDEX_ID));
         menu.setHeaderView(header);
 
         int count = menu.size();
@@ -374,6 +372,8 @@
             Bitmap bitmap =
                 BitmapFactory.decodeResource(getResources(), R.drawable.ic_folder);
             item.setFavicon(bitmap);
+            new LookupBookmarkCount(getActivity(), item)
+                    .execute(cursor.getLong(BookmarksLoader.COLUMN_INDEX_ID));
         } else {
             String url = cursor.getString(BookmarksLoader.COLUMN_INDEX_URL);
             item.setUrl(url);