Bug 1234967 - Pre: implement deleting bookmarks by ID r?rnewman draft
authorAndrzej Hunt <andrzej@ahunt.org>
Tue, 29 Mar 2016 11:19:24 -0700
changeset 347697 b1ab061a6b1cc5df067d4c2bfb1afe9b1e131ba2
parent 347696 318b0b7b813cb3d45a51aa0ff6e2adfcad90a77c
child 347698 f4f24c0ddb09b17714f5a7ff86c6c03ad793462d
push id14647
push userbmo:ahunt@mozilla.com
push dateTue, 05 Apr 2016 18:15:38 +0000
reviewersrnewman
bugs1234967
milestone48.0a1
Bug 1234967 - Pre: implement deleting bookmarks by ID r?rnewman MozReview-Commit-ID: Ejyuw7KcPAi
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
@@ -107,16 +107,17 @@ public interface BrowserDB {
 
     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 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);
 
     /**
      * Can return <code>null</code>.
      */
     public abstract Cursor getBookmarksInFolder(ContentResolver cr, long folderId);
--- a/mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java
@@ -1077,16 +1077,29 @@ public class LocalBrowserDB implements B
 
         final String[] urlArgs = new String[] { uri, String.valueOf(Bookmarks.FIXED_PINNED_LIST_ID) };
         final String urlEquals = Bookmarks.URL + " = ? AND " + Bookmarks.PARENT + " != ? ";
 
         cr.delete(contentUri, urlEquals, urlArgs);
     }
 
     @Override
+    public void removeBookmarkWithID(ContentResolver cr, int id) {
+        final Uri contentUri = mBookmarksUriWithProfile;
+
+        // Do this now so that the items still exist!
+        bumpParents(cr, Bookmarks._ID, String.valueOf(id));
+
+        cr.delete(contentUri,
+                Bookmarks._ID + " = ?",
+                new String[] { String.valueOf(id) });
+
+    }
+
+    @Override
     public void registerBookmarkObserver(ContentResolver cr, ContentObserver observer) {
         cr.registerContentObserver(mBookmarksUriWithProfile, false, observer);
     }
 
     @Override
     @RobocopTarget
     public void updateBookmark(ContentResolver cr, int id, String uri, String title, String keyword) {
         ContentValues values = new ContentValues();
--- a/mobile/android/base/java/org/mozilla/gecko/db/StubBrowserDB.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/StubBrowserDB.java
@@ -44,16 +44,19 @@ class StubReadingListAccessor implements
     }
 
     @Override
     public boolean isReadingListItem(ContentResolver cr, String uri) {
         return false;
     }
 
     @Override
+    public void removeBookmarkWithID(ContentResolver cr, int id) {}
+
+    @Override
     public long addReadingListItem(ContentResolver cr, ContentValues values) {
         return 0L;
     }
 
     @Override
     public long addBasicReadingListItem(ContentResolver cr, String url, String title) {
         return 0L;
     }