Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetService.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetService.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetService.java |
| index 7f97254ba4618c43d6a18aa9c310bbec2b149216..476d503a5ef87264bf87ce25ca97246c64572f58 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetService.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarkswidget/BookmarkWidgetService.java |
| @@ -35,11 +35,9 @@ import org.chromium.chrome.browser.favicon.LargeIconBridge.LargeIconCallback; |
| import org.chromium.chrome.browser.init.ChromeBrowserInitializer; |
| import org.chromium.chrome.browser.partnerbookmarks.PartnerBookmarksShim; |
| import org.chromium.chrome.browser.profiles.Profile; |
| -import org.chromium.chrome.browser.tab.Tab; |
| import org.chromium.chrome.browser.util.IntentUtils; |
| import org.chromium.chrome.browser.widget.RoundedIconGenerator; |
| import org.chromium.components.bookmarks.BookmarkId; |
| -import org.chromium.components.bookmarks.BookmarkType; |
| import java.util.ArrayList; |
| import java.util.Collections; |
| @@ -64,7 +62,7 @@ public class BookmarkWidgetService extends RemoteViewsService { |
| private static final String TAG = "BookmarkWidget"; |
| private static final String ACTION_CHANGE_FOLDER_SUFFIX = ".CHANGE_FOLDER"; |
| - private static final String PREF_CURRENT_FOLDER = "current_folder"; |
| + private static final String PREF_CURRENT_FOLDER = "bookmarkswidget.current_folder"; |
|
Ted C
2016/06/03 03:16:39
has this pref ever changed? did it change when we
|
| private static final String EXTRA_FOLDER_ID = "folderId"; |
| @UiThread |
| @@ -101,10 +99,10 @@ public class BookmarkWidgetService extends RemoteViewsService { |
| static void changeFolder(Context context, Intent intent) { |
| int widgetId = IntentUtils.safeGetIntExtra(intent, AppWidgetManager.EXTRA_APPWIDGET_ID, -1); |
| - long folderId = IntentUtils.safeGetLongExtra(intent, EXTRA_FOLDER_ID, -1); |
| - if (widgetId >= 0 && folderId >= 0) { |
| + String serializedFolder = IntentUtils.safeGetStringExtra(intent, EXTRA_FOLDER_ID); |
| + if (widgetId >= 0 && serializedFolder != null) { |
| SharedPreferences prefs = getWidgetState(context, widgetId); |
| - prefs.edit().putLong(PREF_CURRENT_FOLDER, folderId).apply(); |
| + prefs.edit().putString(PREF_CURRENT_FOLDER, serializedFolder).apply(); |
| AppWidgetManager.getInstance(context) |
| .notifyAppWidgetViewDataChanged(widgetId, R.id.bookmarks_list); |
| } |
| @@ -124,11 +122,6 @@ public class BookmarkWidgetService extends RemoteViewsService { |
| public static Bookmark fromBookmarkItem(BookmarkItem item) { |
| if (item == null) return null; |
| - // The bookmarks widget doesn't support showing partner bookmarks. The main hurdle is |
| - // that the current folder ID is stored in shared prefs as a long, not a BookmarkId. |
| - // This support could be added if there's a strong desire. |
| - if (item.getId().getType() == BookmarkType.PARTNER) return null; |
| - |
| Bookmark bookmark = new Bookmark(); |
| bookmark.title = item.getTitle(); |
| bookmark.url = item.getUrl(); |
| @@ -333,8 +326,8 @@ public class BookmarkWidgetService extends RemoteViewsService { |
| private boolean isWidgetNewlyCreated() { |
| // This method relies on the fact that PREF_CURRENT_FOLDER is not yet |
| // set when onCreate is called for a newly created widget. |
| - long currentFolder = mPreferences.getLong(PREF_CURRENT_FOLDER, Tab.INVALID_BOOKMARK_ID); |
| - return currentFolder == Tab.INVALID_BOOKMARK_ID; |
| + String serializedFolder = mPreferences.getString(PREF_CURRENT_FOLDER, null); |
| + return serializedFolder == null; |
| } |
| @UiThread |
| @@ -374,18 +367,11 @@ public class BookmarkWidgetService extends RemoteViewsService { |
| @BinderThread |
| private void updateBookmarkList() { |
| - long folderIdLong = mPreferences.getLong(PREF_CURRENT_FOLDER, Tab.INVALID_BOOKMARK_ID); |
| - BookmarkId folderId = folderIdLong != Tab.INVALID_BOOKMARK_ID |
| - ? new BookmarkId(folderIdLong, BookmarkType.NORMAL) |
| - : null; |
| - |
| + BookmarkId folderId = BookmarkId |
| + .getBookmarkIdFromString(mPreferences.getString(PREF_CURRENT_FOLDER, null)); |
| mCurrentFolder = loadBookmarks(folderId); |
| - |
| - mPreferences.edit() |
| - .putLong(PREF_CURRENT_FOLDER, mCurrentFolder != null |
| - ? mCurrentFolder.folder.id.getId() |
| - : Tab.INVALID_BOOKMARK_ID) |
| - .apply(); |
| + mPreferences.edit().putString(PREF_CURRENT_FOLDER, mCurrentFolder.folder.id.toString()) |
| + .apply(); |
| } |
| @BinderThread |
| @@ -469,9 +455,9 @@ public class BookmarkWidgetService extends RemoteViewsService { |
| String title = bookmark.title; |
| String url = bookmark.url; |
| - long id = (bookmark == mCurrentFolder.folder) |
| - ? mCurrentFolder.parent.id.getId() |
| - : bookmark.id.getId(); |
| + BookmarkId id = (bookmark == mCurrentFolder.folder) |
| + ? mCurrentFolder.parent.id |
| + : bookmark.id; |
| RemoteViews views = new RemoteViews(mContext.getPackageName(), |
| R.layout.bookmark_widget_item); |
| @@ -491,7 +477,7 @@ public class BookmarkWidgetService extends RemoteViewsService { |
| if (bookmark.isFolder) { |
| fillIn = new Intent(getChangeFolderAction(mContext)) |
| .putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, mWidgetId) |
| - .putExtra(EXTRA_FOLDER_ID, id); |
| + .putExtra(EXTRA_FOLDER_ID, id.toString()); |
| } else { |
| fillIn = new Intent(Intent.ACTION_VIEW); |
| if (!TextUtils.isEmpty(url)) { |