Bug 1252960 - Rename UrlMetadata* table to UrlImageData* r?ahunt draft
authorTushar Saini (:shatur) <tushar.saini1285@gmail.com>
Thu, 02 Feb 2017 22:05:17 +0530
changeset 469719 97f20ef82b4ee2d2b62f09198cb58465e01e3eb0
parent 469617 823dc40ab5fe45344a611ff454212f8cf56e1435
child 544278 d74bc775079d65fda02709a79ab987ccb74cc3bf
push id43811
push userbmo:tushar.saini1285@gmail.com
push dateThu, 02 Feb 2017 16:42:39 +0000
reviewersahunt
bugs1252960
milestone54.0a1
Bug 1252960 - Rename UrlMetadata* table to UrlImageData* r?ahunt MozReview-Commit-ID: 2TNcctxAbRc
mobile/android/base/java/org/mozilla/gecko/db/BrowserDatabaseHelper.java
mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
mobile/android/base/java/org/mozilla/gecko/db/LocalURLMetadata.java
mobile/android/base/java/org/mozilla/gecko/db/URLImageDataTable.java
mobile/android/base/java/org/mozilla/gecko/db/URLMetadataTable.java
mobile/android/base/java/org/mozilla/gecko/home/TopSitesPanel.java
mobile/android/base/moz.build
mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testBrowserProvider.java
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserDatabaseHelper.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserDatabaseHelper.java
@@ -2073,17 +2073,17 @@ public final class BrowserDatabaseHelper
                 case 25:
                     upgradeDatabaseFrom24to25(db);
                     break;
 
                 case 26:
                     upgradeDatabaseFrom25to26(db);
                     break;
 
-                // case 27 occurs in UrlMetadataTable.onUpgrade
+                // case 27 occurs in URLImageDataTable.onUpgrade
 
                 case 28:
                     upgradeDatabaseFrom27to28(db);
                     break;
 
                 case 29:
                     upgradeDatabaseFrom28to29(db);
                     break;
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
@@ -159,18 +159,18 @@ public class BrowserProvider extends Sha
     static final Map<String, String> THUMBNAILS_PROJECTION_MAP;
     static final Map<String, String> URL_ANNOTATIONS_PROJECTION_MAP;
     static final Map<String, String> VISIT_PROJECTION_MAP;
     static final Map<String, String> PAGE_METADATA_PROJECTION_MAP;
     static final Table[] sTables;
 
     static {
         sTables = new Table[] {
-            // See awful shortcut assumption hack in getURLMetadataTable.
-            new URLMetadataTable()
+            // See awful shortcut assumption hack in getURLImageDataTable.
+            new URLImageDataTable()
         };
         // We will reuse this.
         HashMap<String, String> map;
 
         // Bookmarks
         URI_MATCHER.addURI(BrowserContract.AUTHORITY, "bookmarks", BOOKMARKS);
         URI_MATCHER.addURI(BrowserContract.AUTHORITY, "bookmarks/#", BOOKMARKS_ID);
         URI_MATCHER.addURI(BrowserContract.AUTHORITY, "bookmarks/parents", BOOKMARKS_PARENT);
@@ -365,18 +365,18 @@ public class BrowserProvider extends Sha
     public void shutdown() {
         LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mShrinkMemoryReceiver);
 
         super.shutdown();
     }
 
     // Convenience accessor.
     // Assumes structure of sTables!
-    private URLMetadataTable getURLMetadataTable() {
-        return (URLMetadataTable) sTables[0];
+    private URLImageDataTable getURLImageDataTable() {
+        return (URLImageDataTable) sTables[0];
     }
 
     private static boolean hasFaviconsInProjection(String[] projection) {
         if (projection == null) return true;
         for (int i = 0; i < projection.length; ++i) {
             if (projection[i].equals(FaviconColumns.FAVICON) ||
                 projection[i].equals(FaviconColumns.FAVICON_URL))
                 return true;
@@ -2199,17 +2199,17 @@ public class BrowserProvider extends Sha
                 + " AND " + History.URL + " IS NOT NULL"
                 + " UNION ALL SELECT " + Bookmarks.URL
                 + " FROM " + TABLE_BOOKMARKS
                 + " WHERE " + Bookmarks.IS_DELETED + " = 0"
                 + " AND " + Bookmarks.URL + " IS NOT NULL)";
 
         return deleteFavicons(uri, faviconSelection, null) +
                deleteThumbnails(uri, thumbnailSelection, null) +
-               getURLMetadataTable().deleteUnused(getWritableDatabase(uri));
+               getURLImageDataTable().deleteUnused(getWritableDatabase(uri));
     }
 
     @Override
     public ContentProviderResult[] applyBatch (ArrayList<ContentProviderOperation> operations)
         throws OperationApplicationException {
         final int numOperations = operations.size();
         final ContentProviderResult[] results = new ContentProviderResult[numOperations];
 
--- a/mobile/android/base/java/org/mozilla/gecko/db/LocalURLMetadata.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/LocalURLMetadata.java
@@ -29,27 +29,27 @@ import android.util.Log;
 import android.util.LruCache;
 
 // Holds metadata info about URLs. Supports some helper functions for getting back a HashMap of key value data.
 public class LocalURLMetadata implements URLMetadata {
     private static final String LOGTAG = "GeckoURLMetadata";
     private final Uri uriWithProfile;
 
     public LocalURLMetadata(String mProfile) {
-        uriWithProfile = DBUtils.appendProfileWithDefault(mProfile, URLMetadataTable.CONTENT_URI);
+        uriWithProfile = DBUtils.appendProfileWithDefault(mProfile, URLImageDataTable.CONTENT_URI);
     }
 
     // A list of columns in the table. It's used to simplify some loops for reading/writing data.
     private static final Set<String> COLUMNS;
     static {
         final HashSet<String> tempModel = new HashSet<>(4);
-        tempModel.add(URLMetadataTable.URL_COLUMN);
-        tempModel.add(URLMetadataTable.TILE_IMAGE_URL_COLUMN);
-        tempModel.add(URLMetadataTable.TILE_COLOR_COLUMN);
-        tempModel.add(URLMetadataTable.TOUCH_ICON_COLUMN);
+        tempModel.add(URLImageDataTable.URL_COLUMN);
+        tempModel.add(URLImageDataTable.TILE_IMAGE_URL_COLUMN);
+        tempModel.add(URLImageDataTable.TILE_COLOR_COLUMN);
+        tempModel.add(URLImageDataTable.TOUCH_ICON_COLUMN);
         COLUMNS = Collections.unmodifiableSet(tempModel);
     }
 
     // Store a cache of recent results. This number is chosen to match the max number of tiles on about:home
     private static final int CACHE_SIZE = 9;
     // Note: Members of this cache are unmodifiable.
     private final LruCache<String, Map<String, Object>> cache = new LruCache<String, Map<String, Object>>(CACHE_SIZE);
 
@@ -83,17 +83,17 @@ public class LocalURLMetadata implements
                 ArrayList<Integer> sizes = new ArrayList<Integer>(icons.length());
                 while (keys.hasNext()) {
                     sizes.add(new Integer(keys.next()));
                 }
 
                 final int bestSize = LoadFaviconResult.selectBestSizeFromList(sizes, preferredSize);
                 final String iconURL = icons.getString(Integer.toString(bestSize));
 
-                data.put(URLMetadataTable.TOUCH_ICON_COLUMN, iconURL);
+                data.put(URLImageDataTable.TOUCH_ICON_COLUMN, iconURL);
             }
         } catch (JSONException e) {
             Log.w(LOGTAG, "Exception processing touchIconList for LocalURLMetadata; ignoring.", e);
         }
 
         return Collections.unmodifiableMap(data);
     }
 
@@ -164,39 +164,39 @@ public class LocalURLMetadata implements
             }
         }
 
         // If everything was in the cache, we're done!
         if (urlsToQuery.size() == 0) {
             return Collections.unmodifiableMap(data);
         }
 
-        final String selection = DBUtils.computeSQLInClause(urlsToQuery.size(), URLMetadataTable.URL_COLUMN);
+        final String selection = DBUtils.computeSQLInClause(urlsToQuery.size(), URLImageDataTable.URL_COLUMN);
         List<String> columns = requestedColumns;
         // We need the url to build our final HashMap, so we force it to be included in the query.
-        if (!columns.contains(URLMetadataTable.URL_COLUMN)) {
+        if (!columns.contains(URLImageDataTable.URL_COLUMN)) {
             // The requestedColumns may be immutable (e.g. if the caller used Collections.singletonList), hence
             // we have to create a copy.
             columns = new ArrayList<String>(columns);
-            columns.add(URLMetadataTable.URL_COLUMN);
+            columns.add(URLImageDataTable.URL_COLUMN);
         }
 
         final Cursor cursor = cr.query(uriWithProfile,
                                        columns.toArray(new String[columns.size()]), // columns,
                                        selection, // selection
                                        urlsToQuery.toArray(new String[urlsToQuery.size()]), // selectionargs
                                        null);
         try {
             if (!cursor.moveToFirst()) {
                 return Collections.unmodifiableMap(data);
             }
 
             do {
                 final Map<String, Object> metadata = fromCursor(cursor);
-                final String url = cursor.getString(cursor.getColumnIndexOrThrow(URLMetadataTable.URL_COLUMN));
+                final String url = cursor.getString(cursor.getColumnIndexOrThrow(URLImageDataTable.URL_COLUMN));
 
                 data.put(url, metadata);
                 cache.put(url, metadata);
             } while (cursor.moveToNext());
 
         } finally {
             cursor.close();
         }
@@ -225,16 +225,16 @@ public class LocalURLMetadata implements
 
             if (values.size() == 0) {
                 return;
             }
 
             Uri uri = uriWithProfile.buildUpon()
                                  .appendQueryParameter(BrowserContract.PARAM_INSERT_IF_NEEDED, "true")
                                  .build();
-            cr.update(uri, values, URLMetadataTable.URL_COLUMN + "=?", new String[] {
-                (String) data.get(URLMetadataTable.URL_COLUMN)
+            cr.update(uri, values, URLImageDataTable.URL_COLUMN + "=?", new String[] {
+                (String) data.get(URLImageDataTable.URL_COLUMN)
             });
         } catch (Exception ex) {
             Log.e(LOGTAG, "error saving", ex);
         }
     }
 }
rename from mobile/android/base/java/org/mozilla/gecko/db/URLMetadataTable.java
rename to mobile/android/base/java/org/mozilla/gecko/db/URLImageDataTable.java
--- a/mobile/android/base/java/org/mozilla/gecko/db/URLMetadataTable.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/URLImageDataTable.java
@@ -8,33 +8,33 @@ package org.mozilla.gecko.db;
 
 import org.mozilla.gecko.db.BrowserContract.Bookmarks;
 import org.mozilla.gecko.db.BrowserContract.History;
 
 import android.database.sqlite.SQLiteDatabase;
 import android.net.Uri;
 
 // Holds metadata info about urls. Supports some helper functions for getting back a HashMap of key value data.
-public class URLMetadataTable extends BaseTable {
-    private static final String LOGTAG = "GeckoURLMetadataTable";
+public class URLImageDataTable extends BaseTable {
+    private static final String LOGTAG = "GeckoURLImageDataTable";
 
     private static final String TABLE = "metadata"; // Name of the table in the db
     private static final int TABLE_ID_NUMBER = BrowserProvider.METADATA;
 
     // Uri for querying this table
     public static final Uri CONTENT_URI = Uri.withAppendedPath(BrowserContract.AUTHORITY_URI, "metadata");
 
     // Columns in the table
     public static final String ID_COLUMN = "id";
     public static final String URL_COLUMN = "url";
     public static final String TILE_IMAGE_URL_COLUMN = "tileImage";
     public static final String TILE_COLOR_COLUMN = "tileColor";
     public static final String TOUCH_ICON_COLUMN = "touchIcon";
 
-    URLMetadataTable() { }
+    URLImageDataTable() { }
 
     @Override
     protected String getTable() {
         return TABLE;
     }
 
     @Override
     public void onCreate(SQLiteDatabase db) {
--- a/mobile/android/base/java/org/mozilla/gecko/home/TopSitesPanel.java
+++ b/mobile/android/base/java/org/mozilla/gecko/home/TopSitesPanel.java
@@ -1,17 +1,17 @@
 /* -*- Mode: Java; c-basic-offset: 4; tab-width: 20; indent-tabs-mode: nil; -*-
  * This Source Code Form is subject to the terms of the Mozilla Public
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 
 package org.mozilla.gecko.home;
 
-import static org.mozilla.gecko.db.URLMetadataTable.TILE_COLOR_COLUMN;
-import static org.mozilla.gecko.db.URLMetadataTable.TILE_IMAGE_URL_COLUMN;
+import static org.mozilla.gecko.db.URLImageDataTable.TILE_COLOR_COLUMN;
+import static org.mozilla.gecko.db.URLImageDataTable.TILE_IMAGE_URL_COLUMN;
 
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.EnumSet;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.Future;
--- a/mobile/android/base/moz.build
+++ b/mobile/android/base/moz.build
@@ -377,18 +377,18 @@ gbjar.sources += ['java/org/mozilla/geck
     'db/SearchHistoryProvider.java',
     'db/SharedBrowserDatabaseProvider.java',
     'db/SQLiteBridgeContentProvider.java',
     'db/SuggestedSites.java',
     'db/Table.java',
     'db/TabsAccessor.java',
     'db/TabsProvider.java',
     'db/UrlAnnotations.java',
+    'db/URLImageDataTable.java',
     'db/URLMetadata.java',
-    'db/URLMetadataTable.java',
     'delegates/BookmarkStateChangeDelegate.java',
     'delegates/BrowserAppDelegate.java',
     'delegates/BrowserAppDelegateWithReference.java',
     'delegates/OfflineTabStatusDelegate.java',
     'delegates/ScreenshotDelegate.java',
     'delegates/TabsTrayVisibilityAwareDelegate.java',
     'DevToolsAuthHelper.java',
     'distribution/Distribution.java',
--- a/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testBrowserProvider.java
+++ b/mobile/android/tests/browser/robocop/src/org/mozilla/gecko/tests/testBrowserProvider.java
@@ -11,17 +11,17 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Random;
 
 import org.mozilla.gecko.db.BrowserContract;
 import org.mozilla.gecko.db.BrowserContract.UrlAnnotations.SyncStatus;
 import org.mozilla.gecko.db.BrowserDB;
 import org.mozilla.gecko.db.URLMetadata;
-import org.mozilla.gecko.db.URLMetadataTable;
+import org.mozilla.gecko.db.URLImageDataTable;
 
 import android.content.ContentProviderOperation;
 import android.content.ContentProviderResult;
 import android.content.ContentUris;
 import android.content.ContentValues;
 import android.content.OperationApplicationException;
 import android.database.Cursor;
 import android.net.Uri;
@@ -193,20 +193,20 @@ public class testBrowserProvider extends
         thumbnailEntry.put(BrowserContract.Thumbnails.DATA, data.getBytes("UTF8"));
 
         return thumbnailEntry;
     }
 
     private ContentValues createUrlMetadataEntry(final String url, final String tileImage, final String tileColor,
                 final String touchIcon) {
         final ContentValues values = new ContentValues();
-        values.put(URLMetadataTable.URL_COLUMN, url);
-        values.put(URLMetadataTable.TILE_IMAGE_URL_COLUMN, tileImage);
-        values.put(URLMetadataTable.TILE_COLOR_COLUMN, tileColor);
-        values.put(URLMetadataTable.TOUCH_ICON_COLUMN, touchIcon);
+        values.put(URLImageDataTable.URL_COLUMN, url);
+        values.put(URLImageDataTable.TILE_IMAGE_URL_COLUMN, tileImage);
+        values.put(URLImageDataTable.TILE_COLOR_COLUMN, tileColor);
+        values.put(URLImageDataTable.TOUCH_ICON_COLUMN, touchIcon);
         return values;
     }
 
     private ContentValues createUrlAnnotationEntry(final String url, final String key, final String value,
                 final long dateCreated) {
         final ContentValues values = new ContentValues();
         values.put(BrowserContract.UrlAnnotations.URL, url);
         values.put(BrowserContract.UrlAnnotations.KEY, key);
@@ -256,18 +256,18 @@ public class testBrowserProvider extends
     private Cursor getUrlAnnotationByUrl(final String url) throws Exception {
         return mProvider.query(BrowserContract.UrlAnnotations.CONTENT_URI, null,
                 BrowserContract.UrlAnnotations.URL + " = ?",
                 new String[] { url },
                 null);
     }
 
     private Cursor getUrlMetadataByUrl(final String url) throws Exception {
-        return mProvider.query(URLMetadataTable.CONTENT_URI, null,
-                URLMetadataTable.URL_COLUMN + " = ?",
+        return mProvider.query(URLImageDataTable.CONTENT_URI, null,
+                URLImageDataTable.URL_COLUMN + " = ?",
                 new String[] { url },
                 null);
     }
 
     @Override
     public void setUp() throws Exception {
         super.setUp(sBrowserProviderCallable, BrowserContract.AUTHORITY, "browser.db");
 
@@ -1530,19 +1530,19 @@ public class testBrowserProvider extends
         final String url2 = "http://hello.org";
 
         private void testInsertionViaContentProvider() throws Exception {
             final String tileImage = "http://mozilla.org/tileImage.png";
             final String tileColor = "#FF0000";
             final String touchIcon = "http://mozilla.org/touchIcon.png";
 
             // We can only use update since the redirection machinery doesn't exist for insert
-            mProvider.update(URLMetadataTable.CONTENT_URI.buildUpon().appendQueryParameter(BrowserContract.PARAM_INSERT_IF_NEEDED, "true").build(),
+            mProvider.update(URLImageDataTable.CONTENT_URI.buildUpon().appendQueryParameter(BrowserContract.PARAM_INSERT_IF_NEEDED, "true").build(),
                     createUrlMetadataEntry(url1, tileImage, tileColor, touchIcon),
-                    URLMetadataTable.URL_COLUMN + "=?",
+                    URLImageDataTable.URL_COLUMN + "=?",
                     new String[] {url1}
             );
 
             final Cursor c = getUrlMetadataByUrl(url1);
             try {
                 mAsserter.is(c.getCount(), 1, "URL metadata inserted via Content Provider not found");
             } finally {
                 c.close();
@@ -1550,20 +1550,20 @@ public class testBrowserProvider extends
         }
 
         private void testInsertionViaUrlMetadata() throws Exception {
             final String tileImage = "http://hello.org/tileImage.png";
             final String tileColor = "#FF0000";
             final String touchIcon = "http://hello.org/touchIcon.png";
 
             final Map<String, Object> data = new HashMap<>();
-            data.put(URLMetadataTable.URL_COLUMN, url2);
-            data.put(URLMetadataTable.TILE_IMAGE_URL_COLUMN, tileImage);
-            data.put(URLMetadataTable.TILE_COLOR_COLUMN, tileColor);
-            data.put(URLMetadataTable.TOUCH_ICON_COLUMN, touchIcon);
+            data.put(URLImageDataTable.URL_COLUMN, url2);
+            data.put(URLImageDataTable.TILE_IMAGE_URL_COLUMN, tileImage);
+            data.put(URLImageDataTable.TILE_COLOR_COLUMN, tileColor);
+            data.put(URLImageDataTable.TOUCH_ICON_COLUMN, touchIcon);
 
             BrowserDB.from(getTestProfile()).getURLMetadata().save(mResolver, data);
 
             final Cursor c = getUrlMetadataByUrl(url2);
             try {
                 mAsserter.is(c.moveToFirst(), true, "URL metadata inserted via UrlMetadata not found");
             } finally {
                 c.close();
@@ -1581,53 +1581,53 @@ public class testBrowserProvider extends
             URLMetadata metadata = BrowserDB.from(getTestProfile()).getURLMetadata();
 
             Map<String, Map<String, Object>> results;
             Map<String, Object> urlData;
 
             // 1: retrieve just touch Icons for URL 1
             results = metadata.getForURLs(mResolver,
                     Collections.singletonList(url1),
-                    Collections.singletonList(URLMetadataTable.TOUCH_ICON_COLUMN));
+                    Collections.singletonList(URLImageDataTable.TOUCH_ICON_COLUMN));
 
             mAsserter.is(results.containsKey(url1), true, "URL 1 not found in results");
 
             urlData = results.get(url1);
-            mAsserter.is(urlData.containsKey(URLMetadataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results");
+            mAsserter.is(urlData.containsKey(URLImageDataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results");
 
             // 2: retrieve just tile color for URL 2
             results = metadata.getForURLs(mResolver,
                     Collections.singletonList(url2),
-                    Collections.singletonList(URLMetadataTable.TILE_COLOR_COLUMN));
+                    Collections.singletonList(URLImageDataTable.TILE_COLOR_COLUMN));
 
             mAsserter.is(results.containsKey(url2), true, "URL 2 not found in results");
 
             urlData = results.get(url2);
-            mAsserter.is(urlData.containsKey(URLMetadataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results");
+            mAsserter.is(urlData.containsKey(URLImageDataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results");
 
 
             // 3: retrieve all columns for both URLs
             final List<String> urls = Arrays.asList(url1, url2);
 
             results = metadata.getForURLs(mResolver,
                     urls,
-                    Arrays.asList(URLMetadataTable.TILE_IMAGE_URL_COLUMN,
-                            URLMetadataTable.TILE_COLOR_COLUMN,
-                            URLMetadataTable.TOUCH_ICON_COLUMN
+                    Arrays.asList(URLImageDataTable.TILE_IMAGE_URL_COLUMN,
+                            URLImageDataTable.TILE_COLOR_COLUMN,
+                            URLImageDataTable.TOUCH_ICON_COLUMN
                     ));
 
             mAsserter.is(results.containsKey(url1), true, "URL 1 not found in results");
             mAsserter.is(results.containsKey(url2), true, "URL 2 not found in results");
 
 
             for (final String url : urls) {
                 urlData = results.get(url);
-                mAsserter.is(urlData.containsKey(URLMetadataTable.TILE_IMAGE_URL_COLUMN), true, "touchIcon column missing in UrlMetadata results");
-                mAsserter.is(urlData.containsKey(URLMetadataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results");
-                mAsserter.is(urlData.containsKey(URLMetadataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results");
+                mAsserter.is(urlData.containsKey(URLImageDataTable.TILE_IMAGE_URL_COLUMN), true, "touchIcon column missing in UrlMetadata results");
+                mAsserter.is(urlData.containsKey(URLImageDataTable.TILE_COLOR_COLUMN), true, "touchIcon column missing in UrlMetadata results");
+                mAsserter.is(urlData.containsKey(URLImageDataTable.TOUCH_ICON_COLUMN), true, "touchIcon column missing in UrlMetadata results");
             }
         }
     }
 
     private class TestCombinedView extends TestCase {
         @Override
         public void test() throws Exception {
             final String TITLE_1 = "Test Page 1";