Use touch icon in the widget if available
Bug: 3289421
Change-Id: I45f435e2949f2749b9221e007037dedd69781cd6
diff --git a/res/layout/bookmarklistwidget_item.xml b/res/layout/bookmarklistwidget_item.xml
index 039bc2c..9d1f8ec 100644
--- a/res/layout/bookmarklistwidget_item.xml
+++ b/res/layout/bookmarklistwidget_item.xml
@@ -28,7 +28,7 @@
android:layout_width="32dp"
android:layout_gravity="center_vertical"
android:layout_marginLeft="16dp"
- android:scaleType="fitXY"/>
+ android:scaleType="fitCenter"/>
<TextView
android:id="@+id/label"
android:layout_width="0dip"
diff --git a/src/com/android/browser/widget/BookmarkListWidgetService.java b/src/com/android/browser/widget/BookmarkListWidgetService.java
index 8cf63a3..30671fc 100644
--- a/src/com/android/browser/widget/BookmarkListWidgetService.java
+++ b/src/com/android/browser/widget/BookmarkListWidgetService.java
@@ -64,8 +64,14 @@
BrowserContract.Bookmarks.URL,
BrowserContract.Bookmarks.FAVICON,
BrowserContract.Bookmarks.IS_FOLDER,
- BrowserContract.Bookmarks.PARENT,
- BrowserContract.Bookmarks.POSITION};
+ BrowserContract.Bookmarks.TOUCH_ICON,
+ BrowserContract.Bookmarks.POSITION /* needed for order by */};
+ private static final int BOOKMARK_INDEX_ID = 0;
+ private static final int BOOKMARK_INDEX_TITLE = 1;
+ private static final int BOOKMARK_INDEX_URL = 2;
+ private static final int BOOKMARK_INDEX_FAVICON = 3;
+ private static final int BOOKMARK_INDEX_IS_FOLDER = 4;
+ private static final int BOOKMARK_INDEX_TOUCH_ICON = 5;
private Map<Integer, BookmarkFactory> mFactories;
private Handler mUiHandler;
@@ -350,19 +356,24 @@
bookmarks.add(res);
}
while (c.moveToNext()) {
- long id = c.getLong(0);
- String title = c.getString(1);
- String url = c.getString(2);
+ long id = c.getLong(BOOKMARK_INDEX_ID);
+ String title = c.getString(BOOKMARK_INDEX_TITLE);
+ String url = c.getString(BOOKMARK_INDEX_URL);
RenderResult res = new RenderResult(id, title, url);
- byte[] blob = c.getBlob(3);
- if (blob != null) {
- // RemoteViews require a valid bitmap config
- Options options = new Options();
- options.inPreferredConfig = Config.ARGB_8888;
- res.mBitmap = BitmapFactory.decodeByteArray(
- blob, 0, blob.length, options);
+ res.mIsFolder = c.getInt(BOOKMARK_INDEX_IS_FOLDER) != 0;
+ if (!res.mIsFolder) {
+ byte[] blob = c.getBlob(BOOKMARK_INDEX_TOUCH_ICON);
+ if (blob == null || blob.length == 0) {
+ blob = c.getBlob(BOOKMARK_INDEX_FAVICON);
+ }
+ if (blob != null) {
+ // RemoteViews require a valid bitmap config
+ Options options = new Options();
+ options.inPreferredConfig = Config.ARGB_8888;
+ res.mBitmap = BitmapFactory.decodeByteArray(
+ blob, 0, blob.length, options);
+ }
}
- res.mIsFolder = c.getInt(4) != 0;
bookmarks.add(res);
}
return bookmarks;