Bug 1234967 - Pre: implement getBookmarkForID r?rnewman
MozReview-Commit-ID: 7lWNOC3sUoX
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserDB.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserDB.java
@@ -104,16 +104,24 @@ public interface BrowserDB {
public abstract void clearHistory(ContentResolver cr, boolean clearSearchHistory);
public abstract String getUrlForKeyword(ContentResolver cr, String keyword);
public abstract boolean isBookmark(ContentResolver cr, String uri);
public abstract boolean addBookmark(ContentResolver cr, String title, String uri);
+ public abstract Cursor getBookmarkForID(ContentResolver cr, int id);
+ /**
+ * Retrieve a (random) bookmark for a given URL. If there are multiple bookmarks with the same
+ * URL there is no guarantee as to what bookmark will be returned.
+ *
+ * @deprecated Use {@link #getBookmarkForID(ContentResolver, int)} instead to retrieve a specific bookmark.
+ */
+ @Deprecated
public abstract Cursor getBookmarkForUrl(ContentResolver cr, String url);
public abstract Cursor getBookmarksForPartialUrl(ContentResolver cr, String partialUrl);
public abstract void removeBookmarksWithURL(ContentResolver cr, String uri);
public abstract void removeBookmarkWithID(ContentResolver cr, int id);
public abstract void registerBookmarkObserver(ContentResolver cr, ContentObserver observer);
public abstract void updateBookmark(ContentResolver cr, int id, String uri, String title, String keyword);
public abstract boolean hasBookmarkWithGuid(ContentResolver cr, String guid);
--- a/mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java
@@ -1586,16 +1586,37 @@ public class LocalBrowserDB implements B
cr.delete(mBookmarksUriWithProfile,
Bookmarks.PARENT + " == ? AND " + Bookmarks.POSITION + " = ?",
new String[] {
String.valueOf(Bookmarks.FIXED_PINNED_LIST_ID),
Integer.toString(position)
});
}
+
+ @Override
+ @RobocopTarget
+ public Cursor getBookmarkForID(ContentResolver cr, int id) {
+ Cursor c = cr.query(bookmarksUriWithLimit(1),
+ new String[] { Bookmarks._ID,
+ Bookmarks.URL,
+ Bookmarks.TITLE,
+ Bookmarks.KEYWORD },
+ Bookmarks._ID + " = ?",
+ new String[] { String.valueOf(id) },
+ null);
+
+ if (c != null && c.getCount() == 0) {
+ c.close();
+ c = null;
+ }
+
+ return c;
+ }
+
@Override
@RobocopTarget
public Cursor getBookmarkForUrl(ContentResolver cr, String url) {
Cursor c = cr.query(bookmarksUriWithLimit(1),
new String[] { Bookmarks._ID,
Bookmarks.URL,
Bookmarks.TITLE,
Bookmarks.KEYWORD },
--- a/mobile/android/base/java/org/mozilla/gecko/db/StubBrowserDB.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/StubBrowserDB.java
@@ -398,16 +398,20 @@ public class StubBrowserDB implements Br
}
public void pinSite(ContentResolver cr, String url, String title, int position) {
}
public void unpinSite(ContentResolver cr, int position) {
}
+ public Cursor getBookmarkForID(ContentResolver cr, int id) {
+ return null;
+ }
+
@RobocopTarget
public Cursor getBookmarkForUrl(ContentResolver cr, String url) {
return null;
}
@Override
public Cursor getBookmarksForPartialUrl(ContentResolver cr, String partialUrl) {
return null;