Bug 1234331 - Allow bookmarking readerview pages r=margaret
MozReview-Commit-ID: A9n1IA0d4H8
--- a/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -3202,17 +3202,16 @@ public class BrowserApp extends GeckoApp
MenuUtils.safeSetEnabled(aMenu, R.id.add_to_launcher, false);
return true;
}
final boolean inGuestMode = GeckoProfile.get(this).inGuestMode();
final boolean isAboutReader = AboutPages.isAboutReader(tab.getURL());
- bookmark.setEnabled(!isAboutReader);
bookmark.setVisible(!inGuestMode);
bookmark.setCheckable(true);
bookmark.setChecked(tab.isBookmark());
bookmark.setTitle(resolveBookmarkTitleID(tab.isBookmark()));
reader.setEnabled(isAboutReader || !AboutPages.isAboutPage(tab.getURL()));
reader.setVisible(!inGuestMode);
reader.setCheckable(true);
--- a/mobile/android/base/java/org/mozilla/gecko/Tab.java
+++ b/mobile/android/base/java/org/mozilla/gecko/Tab.java
@@ -523,18 +523,19 @@ public class Tab {
ThreadUtils.postToBackgroundThread(new Runnable() {
@Override
public void run() {
final String url = getURL();
if (url == null) {
return;
}
+ final String pageUrl = ReaderModeUtils.stripAboutReaderUrl(url);
- mBookmark = mDB.isBookmark(getContentResolver(), url);
+ mBookmark = mDB.isBookmark(getContentResolver(), pageUrl);
Tabs.getInstance().notifyListeners(Tab.this, Tabs.TabEvents.MENU_UPDATED);
}
});
}
void updateReadingList() {
if (getURL() == null) {
return;
@@ -550,38 +551,44 @@ public class Tab {
mIsInReadingList = mDB.getReadingListAccessor().isReadingListItem(getContentResolver(), url);
Tabs.getInstance().notifyListeners(Tab.this, Tabs.TabEvents.MENU_UPDATED);
}
});
}
public void addBookmark() {
+ final String url = getURL();
+ if (url == null) {
+ return;
+ }
+
+ final String pageUrl = ReaderModeUtils.stripAboutReaderUrl(getURL());
+
ThreadUtils.postToBackgroundThread(new Runnable() {
@Override
public void run() {
- String url = getURL();
- if (url == null)
- return;
-
- mDB.addBookmark(getContentResolver(), mTitle, url);
+ mDB.addBookmark(getContentResolver(), mTitle, pageUrl);
Tabs.getInstance().notifyListeners(Tab.this, Tabs.TabEvents.BOOKMARK_ADDED);
}
});
}
public void removeBookmark() {
+ final String url = getURL();
+ if (url == null) {
+ return;
+ }
+
+ final String pageUrl = ReaderModeUtils.stripAboutReaderUrl(getURL());
+
ThreadUtils.postToBackgroundThread(new Runnable() {
@Override
public void run() {
- String url = getURL();
- if (url == null)
- return;
-
- mDB.removeBookmarksWithURL(getContentResolver(), url);
+ mDB.removeBookmarksWithURL(getContentResolver(), pageUrl);
Tabs.getInstance().notifyListeners(Tab.this, Tabs.TabEvents.BOOKMARK_REMOVED);
}
});
}
public void addToReadingList() {
ThreadUtils.postToBackgroundThread(new Runnable() {
@Override