Fix some bugs in SettingsProvider that I introduced the other day.

BUG=2953979

Change-Id: Ic9813e0ce629c56050d626ed52de67e6ab1ab07e
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 81d82de..ade93da 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -311,7 +311,7 @@
                     cache.setFullyMatchesDisk(false);
                     Log.d(TAG, "row count exceeds max cache entries for table " + table);
                 }
-                Log.d(TAG, "cache for settings table '" + table + "' fullycached=" +
+                Log.d(TAG, "cache for settings table '" + table + "' rows=" + rows + "; fullycached=" +
                       cache.fullyMatchesDisk());
             }
         } finally {
@@ -598,7 +598,7 @@
         int count = db.delete(args.table, args.where, args.args);
         sKnownMutationsInFlight.decrementAndGet();
         if (count > 0) {
-            SettingsCache.wipe(args.table);  // before we notify
+            SettingsCache.invalidate(args.table);  // before we notify
             sendNotify(url);
         }
         startAsyncCachePopulation();
@@ -616,10 +616,10 @@
 
         sKnownMutationsInFlight.incrementAndGet();
         SQLiteDatabase db = mOpenHelper.getWritableDatabase();
-        sKnownMutationsInFlight.decrementAndGet();
         int count = db.update(args.table, initialValues, args.where, args.args);
+        sKnownMutationsInFlight.decrementAndGet();
         if (count > 0) {
-            SettingsCache.wipe(args.table);  // before we notify
+            SettingsCache.invalidate(args.table);  // before we notify
             sendNotify(url);
         }
         startAsyncCachePopulation();
@@ -828,14 +828,14 @@
          * Used for wiping a whole cache on deletes when we're not
          * sure what exactly was deleted or changed.
          */
-        public static void wipe(String tableName) {
+        public static void invalidate(String tableName) {
             SettingsCache cache = SettingsCache.forTable(tableName);
             if (cache == null) {
                 return;
             }
             synchronized (cache) {
                 cache.clear();
-                cache.mCacheFullyMatchesDisk = true;
+                cache.mCacheFullyMatchesDisk = false;
             }
         }