Bug 1250707 - Register url annotations table with BrowserProvider; add query. r=sebastian draft
authorMichael Comella <michael.l.comella@gmail.com>
Thu, 25 Feb 2016 15:27:46 -0800
changeset 334987 39f3f523c3fcaa71dc99fa2561d279b7ca117477
parent 334986 15b0970474da780b86cc7817b62023d3e95d6c58
child 334988 5369686567ff03734015ae3e0fd6ab26c57d2f86
push id11691
push usermichael.l.comella@gmail.com
push dateFri, 26 Feb 2016 17:31:24 +0000
reviewerssebastian
bugs1250707
milestone47.0a1
Bug 1250707 - Register url annotations table with BrowserProvider; add query. r=sebastian MozReview-Commit-ID: FnU7D8p3H1O
mobile/android/base/java/org/mozilla/gecko/db/BrowserContract.java
mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserContract.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserContract.java
@@ -480,20 +480,22 @@ public class BrowserContract {
 
     @RobocopTarget
     public static final class SuggestedSites implements CommonColumns, URLColumns {
         private SuggestedSites() {}
 
         public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, "suggestedsites");
     }
 
+    @RobocopTarget
     public static final class UrlAnnotations implements CommonColumns, DateSyncColumns {
         private UrlAnnotations() {}
 
         public static final String TABLE_NAME = "urlannotations";
+        public static final Uri CONTENT_URI = Uri.withAppendedPath(AUTHORITY_URI, TABLE_NAME);
 
         public static final String URL = "url";
         public static final String KEY = "key";
         public static final String VALUE = "value";
         public static final String SYNC_STATUS = "sync_status";
 
         public enum SyncStatus {
             // We use a parameter, rather than ordinal(), as defensive coding: we can't let the
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
@@ -13,16 +13,17 @@ import java.util.Map;
 import org.mozilla.gecko.db.BrowserContract.Bookmarks;
 import org.mozilla.gecko.db.BrowserContract.Combined;
 import org.mozilla.gecko.db.BrowserContract.FaviconColumns;
 import org.mozilla.gecko.db.BrowserContract.Favicons;
 import org.mozilla.gecko.db.BrowserContract.History;
 import org.mozilla.gecko.db.BrowserContract.Schema;
 import org.mozilla.gecko.db.BrowserContract.Tabs;
 import org.mozilla.gecko.db.BrowserContract.Thumbnails;
+import org.mozilla.gecko.db.BrowserContract.UrlAnnotations;
 import org.mozilla.gecko.db.DBUtils.UpdateOperation;
 import org.mozilla.gecko.sync.Utils;
 
 import android.content.ContentProviderOperation;
 import android.content.ContentProviderResult;
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.OperationApplicationException;
@@ -55,16 +56,17 @@ public class BrowserProvider extends Sha
     // Minimum number of thumbnails to keep around.
     static final int DEFAULT_EXPIRY_THUMBNAIL_COUNT = 15;
 
     static final String TABLE_BOOKMARKS = Bookmarks.TABLE_NAME;
     static final String TABLE_HISTORY = History.TABLE_NAME;
     static final String TABLE_FAVICONS = Favicons.TABLE_NAME;
     static final String TABLE_THUMBNAILS = Thumbnails.TABLE_NAME;
     static final String TABLE_TABS = Tabs.TABLE_NAME;
+    static final String TABLE_URL_ANNOTATIONS = UrlAnnotations.TABLE_NAME;
 
     static final String VIEW_COMBINED = Combined.VIEW_NAME;
     static final String VIEW_BOOKMARKS_WITH_FAVICONS = Bookmarks.VIEW_WITH_FAVICONS;
     static final String VIEW_HISTORY_WITH_FAVICONS = History.VIEW_WITH_FAVICONS;
     static final String VIEW_COMBINED_WITH_FAVICONS = Combined.VIEW_WITH_FAVICONS;
 
     // Bookmark matches
     static final int BOOKMARKS = 100;
@@ -93,30 +95,33 @@ public class BrowserProvider extends Sha
 
     // Search Suggest matches. Obsolete.
     static final int SEARCH_SUGGEST = 700;
 
     // Thumbnail matches
     static final int THUMBNAILS = 800;
     static final int THUMBNAIL_ID = 801;
 
+    static final int URL_ANNOTATIONS = 900;
+
     static final String DEFAULT_BOOKMARKS_SORT_ORDER = Bookmarks.TYPE
             + " ASC, " + Bookmarks.POSITION + " ASC, " + Bookmarks._ID
             + " ASC";
 
     static final String DEFAULT_HISTORY_SORT_ORDER = History.DATE_LAST_VISITED + " DESC";
 
     static final UriMatcher URI_MATCHER = new UriMatcher(UriMatcher.NO_MATCH);
 
     static final Map<String, String> BOOKMARKS_PROJECTION_MAP;
     static final Map<String, String> HISTORY_PROJECTION_MAP;
     static final Map<String, String> COMBINED_PROJECTION_MAP;
     static final Map<String, String> SCHEMA_PROJECTION_MAP;
     static final Map<String, String> FAVICONS_PROJECTION_MAP;
     static final Map<String, String> THUMBNAILS_PROJECTION_MAP;
+    static final Map<String, String> URL_ANNOTATIONS_PROJECTION_MAP;
     static final Table[] sTables;
 
     static {
         sTables = new Table[] {
             // See awful shortcut assumption hack in getURLMetadataTable.
             new URLMetadataTable()
         };
         // We will reuse this.
@@ -185,16 +190,29 @@ public class BrowserProvider extends Sha
         URI_MATCHER.addURI(BrowserContract.AUTHORITY, "thumbnails/#", THUMBNAIL_ID);
 
         map = new HashMap<String, String>();
         map.put(Thumbnails._ID, Thumbnails._ID);
         map.put(Thumbnails.URL, Thumbnails.URL);
         map.put(Thumbnails.DATA, Thumbnails.DATA);
         THUMBNAILS_PROJECTION_MAP = Collections.unmodifiableMap(map);
 
+        // Url annotations
+        URI_MATCHER.addURI(BrowserContract.AUTHORITY, TABLE_URL_ANNOTATIONS, URL_ANNOTATIONS);
+
+        map = new HashMap<>();
+        map.put(UrlAnnotations._ID, UrlAnnotations._ID);
+        map.put(UrlAnnotations.URL, UrlAnnotations.URL);
+        map.put(UrlAnnotations.KEY, UrlAnnotations.KEY);
+        map.put(UrlAnnotations.VALUE, UrlAnnotations.VALUE);
+        map.put(UrlAnnotations.DATE_CREATED, UrlAnnotations.DATE_CREATED);
+        map.put(UrlAnnotations.DATE_MODIFIED, UrlAnnotations.DATE_MODIFIED);
+        map.put(UrlAnnotations.SYNC_STATUS, UrlAnnotations.SYNC_STATUS);
+        URL_ANNOTATIONS_PROJECTION_MAP = Collections.unmodifiableMap(map);
+
         // Combined bookmarks and history
         URI_MATCHER.addURI(BrowserContract.AUTHORITY, "combined", COMBINED);
 
         map = new HashMap<String, String>();
         map.put(Combined._ID, Combined._ID);
         map.put(Combined.BOOKMARK_ID, Combined.BOOKMARK_ID);
         map.put(Combined.HISTORY_ID, Combined.HISTORY_ID);
         map.put(Combined.URL, Combined.URL);
@@ -731,16 +749,23 @@ public class BrowserProvider extends Sha
                 debug("Query is on thumbnails: " + uri);
 
                 qb.setProjectionMap(THUMBNAILS_PROJECTION_MAP);
                 qb.setTables(TABLE_THUMBNAILS);
 
                 break;
             }
 
+            case URL_ANNOTATIONS:
+                debug("Query is on url annotations: " + uri);
+
+                qb.setProjectionMap(URL_ANNOTATIONS_PROJECTION_MAP);
+                qb.setTables(TABLE_URL_ANNOTATIONS);
+                break;
+
             case SCHEMA: {
                 debug("Query is on schema.");
                 MatrixCursor schemaCursor = new MatrixCursor(new String[] { Schema.VERSION });
                 schemaCursor.newRow().add(BrowserDatabaseHelper.DATABASE_VERSION);
 
                 return schemaCursor;
             }