Bug 1080232 review changes -r=:Grisha Kruglov draft
authorShubham <shubham2892@gmail.com>
Mon, 17 Oct 2016 00:05:59 -0400
changeset 425786 1a56ffe63fb9a113e92e67d12116dbbf9f624796
parent 420299 92338a20fe470932999cc04b613801f286642785
child 533997 3c72c902474aa387e9ab827b35dd3210b5f5fb9d
push id32510
push userbmo:shubham2892@gmail.com
push dateMon, 17 Oct 2016 04:14:40 +0000
bugs1080232
milestone51.0a1
Bug 1080232 review changes -r=:Grisha Kruglov MozReview-Commit-ID: 1nT19xdFVos *** Bug 1080232 review changes checkstyle -r=:Grisha Kruglov MozReview-Commit-ID: 6aG1TYB21AM
mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.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/BrowserApp.java
+++ b/mobile/android/base/java/org/mozilla/gecko/BrowserApp.java
@@ -22,17 +22,16 @@ import org.mozilla.gecko.annotation.Robo
 import org.mozilla.gecko.AppConstants.Versions;
 import org.mozilla.gecko.DynamicToolbar.VisibilityTransition;
 import org.mozilla.gecko.Tabs.TabEvents;
 import org.mozilla.gecko.animation.PropertyAnimator;
 import org.mozilla.gecko.animation.ViewHelper;
 import org.mozilla.gecko.cleanup.FileCleanupController;
 import org.mozilla.gecko.db.BrowserContract;
 import org.mozilla.gecko.db.BrowserDB;
-import org.mozilla.gecko.db.LocalBrowserDB;
 import org.mozilla.gecko.db.SuggestedSites;
 import org.mozilla.gecko.delegates.BrowserAppDelegate;
 import org.mozilla.gecko.delegates.OfflineTabStatusDelegate;
 import org.mozilla.gecko.delegates.ScreenshotDelegate;
 import org.mozilla.gecko.distribution.Distribution;
 import org.mozilla.gecko.distribution.DistributionStoreCallback;
 import org.mozilla.gecko.distribution.PartnerBrowserCustomizationsClient;
 import org.mozilla.gecko.dlc.DownloadContentService;
@@ -1630,20 +1629,40 @@ public class BrowserApp extends GeckoApp
 
         if (mTabStrip != null) {
             mTabStrip.refresh();
         }
 
         mBrowserToolbar.refresh();
     }
 
+    private static void addHistoryAndBookmarkCountsToTelemetry(final BrowserDB db, ContentResolver cr) {
+        final Cursor cur = db.getAllCounts(cr);
+        if (cur == null) {
+            Log.d(LOGTAG, "Count cursor is unexpectedly null");
+            return;
+        }
+        try {
+            if (!cur.moveToFirst()) {
+                Log.d(LOGTAG, "Count unavailable");
+                return;
+            }
+            Telemetry.addToHistogram("PLACES_PAGES_COUNT", cur.getInt(cur.getColumnIndexOrThrow
+                    ("history")));
+            Telemetry.addToHistogram("FENNEC_BOOKMARKS_COUNT", cur.getInt(cur.getColumnIndexOrThrow
+                    ("bookmarks")));
+
+        } finally {
+            cur.close();
+        }
+    }
+
     @Override
     public void handleMessage(final String event, final NativeJSObject message,
                               final EventCallback callback) {
-
         if ("CharEncoding:Data".equals(event)) {
             final NativeJSObject[] charsets = message.getObjectArray("charsets");
             final int selected = message.getInt("selected");
 
             final String[] titleArray = new String[charsets.length];
             final String[] codeArray = new String[charsets.length];
             for (int i = 0; i < charsets.length; i++) {
                 final NativeJSObject charset = charsets[i];
@@ -1741,31 +1760,19 @@ public class BrowserApp extends GeckoApp
 
             // Don't use a transition to settings if we're on a device where that
             // would look bad.
             if (HardwareUtils.IS_KINDLE_DEVICE) {
                 overridePendingTransition(0, 0);
             }
 
         } else if ("Telemetry:Gather".equals(event)) {
+            final ContentResolver cr = getContentResolver();
             final BrowserDB db = getProfile().getDB();
-            final ContentResolver cr = getContentResolver();
-            Cursor cur = db.getAllCounts(cr);
-            try {
-                if (cur != null && cur.moveToFirst()) {
-                    Telemetry.addToHistogram("PLACES_PAGES_COUNT", cur.getInt(cur.getColumnIndex
-                            ("history")));
-                    Telemetry.addToHistogram("FENNEC_BOOKMARKS_COUNT", cur.getInt(cur.getColumnIndex
-                            ("bookmarks")));
-                }
-            } finally {
-                if (cur != null) {
-                    cur.close();
-                }
-            }
+            addHistoryAndBookmarkCountsToTelemetry(db, cr);
             Telemetry.addToHistogram("BROWSER_IS_USER_DEFAULT", (isDefaultBrowser(Intent.ACTION_VIEW) ? 1 : 0));
             Telemetry.addToHistogram("FENNEC_CUSTOM_HOMEPAGE", (TextUtils.isEmpty(getHomepage()) ? 0 : 1));
             final SharedPreferences prefs = GeckoSharedPrefs.forProfile(getContext());
             final boolean hasCustomHomepanels = prefs.contains(HomeConfigPrefsBackend.PREFS_CONFIG_KEY) || prefs.contains(HomeConfigPrefsBackend.PREFS_CONFIG_KEY_OLD);
             Telemetry.addToHistogram("FENNEC_HOMEPANELS_CUSTOM", hasCustomHomepanels ? 1 : 0);
 
             Telemetry.addToHistogram("FENNEC_READER_VIEW_CACHE_SIZE", SavedReaderViewHelper.getSavedReaderViewHelper(getContext()).getDiskSpacedUsedKB());
 
--- a/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/BrowserProvider.java
@@ -1079,49 +1079,45 @@ public class BrowserProvider extends Sha
     public Cursor query(Uri uri, String[] projection, String selection,
             String[] selectionArgs, String sortOrder) {
         final int match = URI_MATCHER.match(uri);
 
         if (match == TOPSITES) {
             return getTopSites(uri);
         }
         SQLiteDatabase db = getReadableDatabase(uri);
-        if(match == COUNTS){
-            String history_table ;
+        if (match == COUNTS) {
+            String history_table;
             String bookmark_table;
-            if (hasFaviconsInProjection(projection))
+            final boolean isFavIconsInProjection = hasFaviconsInProjection(projection);
+            if (isFavIconsInProjection) {
                 history_table = VIEW_HISTORY_WITH_FAVICONS;
-            else
+            } else {
                 history_table = TABLE_HISTORY;
-
-            if (hasFaviconsInProjection(projection)) {
+            }
+            if (isFavIconsInProjection) {
                 bookmark_table = VIEW_BOOKMARKS_WITH_FAVICONS;
             } else if (selection != null && selection.contains(Bookmarks.ANNOTATION_KEY)) {
                 bookmark_table = VIEW_BOOKMARKS_WITH_ANNOTATIONS;
-
             } else {
                 bookmark_table = TABLE_BOOKMARKS;
             }
-
-            final String query = "SELECT "+
-                    "(SELECT count(_ID) from " + history_table + " WHERE visits > 0) AS " +
-                    "history, "+
-                    "(SELECT count(_ID) from " + bookmark_table + " WHERE type = " + Bookmarks
-                    .TYPE_BOOKMARK + ") AS " + "bookmarks;";
-
-            return db.rawQuery(query,null);
+            final String query = "SELECT " +
+                    "(SELECT COUNT(" + History._ID + ") FROM " + history_table + " WHERE " + History
+                    .VISITS + " > 0) AS history, " +
+                    "(SELECT COUNT(" + Bookmarks._ID + ") FROM " + bookmark_table + " WHERE " +
+                    Bookmarks.TYPE + " = " + Bookmarks.TYPE_BOOKMARK + ") AS " + "bookmarks;";
+            return db.rawQuery(query, null);
         }
 
         SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
         String limit = uri.getQueryParameter(BrowserContract.PARAM_LIMIT);
         String groupBy = null;
 
         switch (match) {
-
-
             case BOOKMARKS_FOLDER_ID:
             case BOOKMARKS_ID:
             case BOOKMARKS: {
                 debug("Query is on bookmarks: " + uri);
 
                 if (match == BOOKMARKS_ID) {
                     selection = DBUtils.concatenateWhere(selection, Bookmarks._ID + " = ?");
                     selectionArgs = DBUtils.appendSelectionArgs(selectionArgs,
@@ -1261,17 +1257,16 @@ public class BrowserProvider extends Sha
                 trace("Update TABLE: " + uri);
                 return table.query(db, uri, match, projection, selection, selectionArgs, sortOrder, groupBy, limit);
             }
         }
 
         trace("Running built query.");
         Cursor cursor = qb.query(db, projection, selection, selectionArgs, groupBy,
                 null, sortOrder, limit);
-
         cursor.setNotificationUri(getContext().getContentResolver(),
                 BrowserContract.AUTHORITY_URI);
 
         return cursor;
     }
 
     /**
      * Update the positions of bookmarks in batches.
--- a/mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/LocalBrowserDB.java
@@ -130,17 +130,17 @@ public class LocalBrowserDB implements B
         mBookmarksUriWithProfile = DBUtils.appendProfile(profile, Bookmarks.CONTENT_URI);
         mParentsUriWithProfile = DBUtils.appendProfile(profile, Bookmarks.PARENTS_CONTENT_URI);
         mHistoryUriWithProfile = DBUtils.appendProfile(profile, History.CONTENT_URI);
         mHistoryExpireUriWithProfile = DBUtils.appendProfile(profile, History.CONTENT_OLD_URI);
         mCombinedUriWithProfile = DBUtils.appendProfile(profile, Combined.CONTENT_URI);
         mFaviconsUriWithProfile = DBUtils.appendProfile(profile, Favicons.CONTENT_URI);
         mTopSitesUriWithProfile = DBUtils.appendProfile(profile, TopSites.CONTENT_URI);
         mThumbnailsUriWithProfile = DBUtils.appendProfile(profile, Thumbnails.CONTENT_URI);
-        mAllCountsUriWithProfile = DBUtils.appendProfile(profile ,Combined.COUNTS_URI);
+        mAllCountsUriWithProfile = DBUtils.appendProfile(profile, Combined.COUNTS_URI);
 
         mSearchHistoryUri = BrowserContract.SearchHistory.CONTENT_URI;
 
         mUpdateHistoryUriWithProfile =
                 mHistoryUriWithProfile.buildUpon()
                                       .appendQueryParameter(BrowserContract.PARAM_INCREMENT_VISITS, "true")
                                       .appendQueryParameter(BrowserContract.PARAM_INSERT_IF_NEEDED, "true")
                                       .build();
--- a/mobile/android/base/java/org/mozilla/gecko/db/StubBrowserDB.java
+++ b/mobile/android/base/java/org/mozilla/gecko/db/StubBrowserDB.java
@@ -154,18 +154,16 @@ class StubUrlAnnotations implements UrlA
  */
 public class StubBrowserDB implements BrowserDB {
     private final StubSearches searches = new StubSearches();
     private final StubTabsAccessor tabsAccessor = new StubTabsAccessor();
     private final StubURLMetadata urlMetadata = new StubURLMetadata();
     private final StubUrlAnnotations urlAnnotations = new StubUrlAnnotations();
     private SuggestedSites suggestedSites = null;
 
-
-
     @Override
     public Searches getSearches() {
         return searches;
     }
 
     @Override
     public TabsAccessor getTabsAccessor() {
         return tabsAccessor;