Bug 1234967 - Pre: implement getBookmarkForID r?rnewman draft
authorAndrzej Hunt <andrzej@ahunt.org>
Tue, 29 Mar 2016 14:20:53 -0700
changeset 347698 f4f24c0ddb09b17714f5a7ff86c6c03ad793462d
parent 347697 b1ab061a6b1cc5df067d4c2bfb1afe9b1e131ba2
child 347699 3b700346c0288e7cbf309845bc3bba5d56474cab
push id14647
push userbmo:ahunt@mozilla.com
push dateTue, 05 Apr 2016 18:15:38 +0000
reviewersrnewman
bugs1234967
milestone48.0a1
Bug 1234967 - Pre: implement getBookmarkForID r?rnewman MozReview-Commit-ID: 7lWNOC3sUoX
mobile/android/base/java/org/mozilla/gecko/db/BrowserDB.java
mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java
mobile/android/base/java/org/mozilla/gecko/db/StubBrowserDB.java
--- 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;