diff options
| author | John Reck <jreck@google.com> | 2011-01-11 15:36:01 -0800 |
|---|---|---|
| committer | John Reck <jreck@google.com> | 2011-01-12 16:35:11 -0800 |
| commit | 1537b774a62042a8b86100e1e6b0988bed70c385 (patch) | |
| tree | b1ec5561d8fa4f679699fff9b80bba2731e35285 /src | |
| parent | dcc1cd118d4db2b47ecd93c00608441375ced6b5 (diff) | |
| download | packages_apps_Browser-1537b774a62042a8b86100e1e6b0988bed70c385.tar.gz packages_apps_Browser-1537b774a62042a8b86100e1e6b0988bed70c385.tar.bz2 packages_apps_Browser-1537b774a62042a8b86100e1e6b0988bed70c385.zip | |
Replace old list widget with new thumbnail widget
Bug: 3336562
Change-Id: Ic612b5309f185658f4515bbc90cc44d8b9ccf1e0
Diffstat (limited to 'src')
| -rw-r--r-- | src/com/android/browser/widget/BookmarkThumbnailWidgetProvider.java (renamed from src/com/android/browser/widget/BookmarkListWidgetProvider.java) | 28 | ||||
| -rw-r--r-- | src/com/android/browser/widget/BookmarkThumbnailWidgetService.java (renamed from src/com/android/browser/widget/BookmarkListWidgetService.java) | 73 |
2 files changed, 41 insertions, 60 deletions
diff --git a/src/com/android/browser/widget/BookmarkListWidgetProvider.java b/src/com/android/browser/widget/BookmarkThumbnailWidgetProvider.java index 99daaa1c0..14e1c8903 100644 --- a/src/com/android/browser/widget/BookmarkListWidgetProvider.java +++ b/src/com/android/browser/widget/BookmarkThumbnailWidgetProvider.java @@ -16,7 +16,6 @@ package com.android.browser.widget; -import com.android.browser.BrowserActivity; import com.android.browser.R; import android.app.PendingIntent; @@ -31,7 +30,7 @@ import android.widget.RemoteViews; /** * Widget that shows a preview of the user's bookmarks. */ -public class BookmarkListWidgetProvider extends AppWidgetProvider { +public class BookmarkThumbnailWidgetProvider extends AppWidgetProvider { static final String ACTION_BOOKMARK_APPWIDGET_UPDATE = "com.android.browser.BOOKMARK_APPWIDGET_UPDATE"; @@ -60,46 +59,37 @@ public class BookmarkListWidgetProvider extends AppWidgetProvider { @Override public void onEnabled(Context context) { // Start the backing service - context.startService(new Intent(context, BookmarkListWidgetService.class)); + context.startService(new Intent(context, BookmarkThumbnailWidgetService.class)); } @Override public void onDisabled(Context context) { // Stop the backing service - context.stopService(new Intent(context, BookmarkListWidgetService.class)); + context.stopService(new Intent(context, BookmarkThumbnailWidgetService.class)); } @Override public void onDeleted(Context context, int[] appWidgetIds) { super.onDeleted(context, appWidgetIds); - context.startService(new Intent(BookmarkListWidgetService.ACTION_REMOVE_FACTORIES, - null, context, BookmarkListWidgetService.class) + context.startService(new Intent(BookmarkThumbnailWidgetService.ACTION_REMOVE_FACTORIES, + null, context, BookmarkThumbnailWidgetService.class) .putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, appWidgetIds)); } private void performUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { - Intent launchBrowser = new Intent(BrowserActivity.ACTION_SHOW_BROWSER, - null, context, BrowserActivity.class); - Intent launchBookmarks = new Intent(BrowserActivity.ACTION_SHOW_BOOKMARKS, - null, context, BrowserActivity.class); - // Update the widgets for (int appWidgetId : appWidgetIds) { - Intent updateIntent = new Intent(context, BookmarkListWidgetService.class); + Intent updateIntent = new Intent(context, BookmarkThumbnailWidgetService.class); updateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); updateIntent.setData(Uri.parse(updateIntent.toUri(Intent.URI_INTENT_SCHEME))); RemoteViews views = new RemoteViews(context.getPackageName(), - R.layout.bookmarklistwidget); + R.layout.bookmarkthumbnailwidget); views.setRemoteAdapter(R.id.bookmarks_list, updateIntent); appWidgetManager.notifyAppWidgetViewDataChanged(appWidgetId, R.id.bookmarks_list); - Intent ic = new Intent(context, BookmarkListWidgetService.class); + Intent ic = new Intent(context, BookmarkThumbnailWidgetService.class); views.setPendingIntentTemplate(R.id.bookmarks_list, PendingIntent.getService(context, 0, ic, PendingIntent.FLAG_UPDATE_CURRENT)); - views.setOnClickPendingIntent(R.id.header_browser, PendingIntent - .getActivity(context, 0, launchBrowser, PendingIntent.FLAG_CANCEL_CURRENT)); - views.setOnClickPendingIntent(R.id.header_bookmarks, PendingIntent - .getActivity(context, 0, launchBookmarks, PendingIntent.FLAG_CANCEL_CURRENT)); appWidgetManager.updateAppWidget(appWidgetId, views); } } @@ -109,6 +99,6 @@ public class BookmarkListWidgetProvider extends AppWidgetProvider { * {@link AppWidgetProvider} */ static ComponentName getComponentName(Context context) { - return new ComponentName(context, BookmarkListWidgetProvider.class); + return new ComponentName(context, BookmarkThumbnailWidgetProvider.class); } } diff --git a/src/com/android/browser/widget/BookmarkListWidgetService.java b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java index 4d72d4159..fcd210332 100644 --- a/src/com/android/browser/widget/BookmarkListWidgetService.java +++ b/src/com/android/browser/widget/BookmarkThumbnailWidgetService.java @@ -16,7 +16,6 @@ package com.android.browser.widget; -import com.android.browser.BookmarkUtils; import com.android.browser.BrowserBookmarksPage; import com.android.browser.R; @@ -49,9 +48,9 @@ import java.util.List; import java.util.Map; import java.util.Stack; -public class BookmarkListWidgetService extends RemoteViewsService { +public class BookmarkThumbnailWidgetService extends RemoteViewsService { - static final String TAG = "BookmarkListWidgetService"; + static final String TAG = "BookmarkThumbnailWidgetService"; static final boolean USE_FOLDERS = true; static final String ACTION_REMOVE_FACTORIES @@ -66,13 +65,15 @@ public class BookmarkListWidgetService extends RemoteViewsService { BrowserContract.Bookmarks.FAVICON, BrowserContract.Bookmarks.IS_FOLDER, BrowserContract.Bookmarks.TOUCH_ICON, - BrowserContract.Bookmarks.POSITION /* needed for order by */}; + BrowserContract.Bookmarks.POSITION, /* needed for order by */ + BrowserContract.Bookmarks.THUMBNAIL}; 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 static final int BOOKMARK_INDEX_THUMBNAIL = 7; private Map<Integer, BookmarkFactory> mFactories; private Handler mUiHandler; @@ -223,12 +224,12 @@ public class BookmarkListWidgetService extends RemoteViewsService { Breadcrumb folder = mBreadcrumbs.empty() ? null : mBreadcrumbs.peek(); RemoteViews views = new RemoteViews( - mContext.getPackageName(), R.layout.bookmarklistwidget_item); + mContext.getPackageName(), R.layout.bookmarkthumbnailwidget_item); Intent fillin; if (res.mIsFolder) { long nfi = res.mId; fillin = new Intent(ACTION_CHANGE_FOLDER, null, - mContext, BookmarkListWidgetService.class) + mContext, BookmarkThumbnailWidgetService.class) .putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mWidgetId) .putExtra(Bookmarks._ID, nfi); } else { @@ -244,21 +245,26 @@ public class BookmarkListWidgetService extends RemoteViewsService { displayTitle = res.mUrl; } views.setTextViewText(R.id.label, displayTitle); - views.setDrawableParameters(R.id.list_item, true, 0, -1, null, -1); if (res.mIsFolder) { if (folder != null && res.mId == folder.mId) { - views.setImageViewResource(R.id.thumb, R.drawable.btn_ic_back_bookmark_widget_holo_dark); - views.setDrawableParameters(R.id.list_item, true, 255, -1, null, -1); + views.setImageViewResource(R.id.thumb, R.drawable.thumb_bookmark_widget_folder_back_holo); } else { - views.setImageViewResource(R.id.thumb, R.drawable.ic_folder_bookmark_widget_holo_dark); + views.setImageViewResource(R.id.thumb, R.drawable.thumb_bookmark_widget_folder_holo); } + views.setImageViewResource(R.id.favicon, R.drawable.ic_bookmark_widget_bookmark_holo_dark); } else { - if (res.mBitmap != null) { - views.setImageViewBitmap(R.id.thumb, res.mBitmap); + if (res.mThumbnail != null) { + views.setImageViewBitmap(R.id.thumb, res.mThumbnail); } else { views.setImageViewResource(R.id.thumb, R.drawable.browser_thumbnail); } + if (res.mIcon != null) { + views.setImageViewBitmap(R.id.favicon, res.mIcon); + } else { + views.setImageViewResource(R.id.favicon, + R.drawable.app_web_browser_sm); + } } return views; } @@ -364,35 +370,19 @@ public class BookmarkListWidgetService extends RemoteViewsService { // RemoteViews require a valid bitmap config Options options = new Options(); options.inPreferredConfig = Config.ARGB_8888; - Bitmap favIcon = null; - Bitmap touchIcon = null; - byte[] blob = c.getBlob(BOOKMARK_INDEX_TOUCH_ICON); + Bitmap thumbnail = null, favicon = null; + byte[] blob = c.getBlob(BOOKMARK_INDEX_THUMBNAIL); if (blob != null && blob.length > 0) { - touchIcon = BitmapFactory.decodeByteArray( + thumbnail = BitmapFactory.decodeByteArray( blob, 0, blob.length, options); - } else { - blob = c.getBlob(BOOKMARK_INDEX_FAVICON); - if (blob != null && blob.length > 0) { - favIcon = BitmapFactory.decodeByteArray( - blob, 0, blob.length, options); - } - } - - if (favIcon == null) { - favIcon = BitmapFactory.decodeResource( - mContext.getResources(), - R.drawable.app_web_browser_sm); } - if (touchIcon != null || favIcon != null) { - res.mBitmap = BookmarkUtils.createListWidgetIcon( - mContext, touchIcon, favIcon); - } - if (touchIcon != null) { - touchIcon.recycle(); - } - if (favIcon != null) { - favIcon.recycle(); + blob = c.getBlob(BOOKMARK_INDEX_FAVICON); + if (blob != null && blob.length > 0) { + favicon = BitmapFactory.decodeByteArray( + blob, 0, blob.length, options); } + res.mThumbnail = thumbnail; + res.mIcon = favicon; } bookmarks.add(res); } @@ -412,9 +402,9 @@ public class BookmarkListWidgetService extends RemoteViewsService { // Do a bit of house cleaning for the system if (mBookmarks != null) { for (RenderResult res : mBookmarks) { - if (res.mBitmap != null) { - res.mBitmap.recycle(); - res.mBitmap = null; + if (res.mThumbnail != null) { + res.mThumbnail.recycle(); + res.mThumbnail = null; } } } @@ -440,7 +430,8 @@ public class BookmarkListWidgetService extends RemoteViewsService { private static class RenderResult { final String mTitle; final String mUrl; - Bitmap mBitmap; + Bitmap mThumbnail; + Bitmap mIcon; boolean mIsFolder; long mId; |
