Log database UUID onUpgrade and onDowngrade

We log database schema change onUpgrade and onDowngrade, added
additional field to log database UUID

Bug: 192102594
Test: Manual. Verified that we add persistent logging for UUID on
database upgrade and downgrade
Test: Sample log: "Changed schema version on internal from 1301 to 1302,
69 items taking 86ms UUID 61a23787-050d-4cd1-b33e-48338717c4a9 "

Change-Id: I6a9968bf11bb13a5f352a4590e65a593b545046e
diff --git a/src/com/android/providers/media/DatabaseHelper.java b/src/com/android/providers/media/DatabaseHelper.java
index 53c579d..7f863bd 100644
--- a/src/com/android/providers/media/DatabaseHelper.java
+++ b/src/com/android/providers/media/DatabaseHelper.java
@@ -141,7 +141,7 @@
 
     public interface OnSchemaChangeListener {
         public void onSchemaChange(@NonNull String volumeName, int versionFrom, int versionTo,
-                long itemCount, long durationMillis);
+                long itemCount, long durationMillis, String databaseUuid);
     }
 
     public interface OnFilesChangeListener {
@@ -1827,7 +1827,7 @@
         final long elapsedMillis = (SystemClock.elapsedRealtime() - startTime);
         if (mSchemaListener != null) {
             mSchemaListener.onSchemaChange(mVolumeName, fromVersion, toVersion,
-                    getItemCount(db), elapsedMillis);
+                    getItemCount(db), elapsedMillis, getOrCreateUuid(db));
         }
     }
 
@@ -1840,7 +1840,7 @@
         final long elapsedMillis = (SystemClock.elapsedRealtime() - startTime);
         if (mSchemaListener != null) {
             mSchemaListener.onSchemaChange(mVolumeName, fromVersion, toVersion,
-                    getItemCount(db), elapsedMillis);
+                    getItemCount(db), elapsedMillis, getOrCreateUuid(db));
         }
     }
 
diff --git a/src/com/android/providers/media/util/Metrics.java b/src/com/android/providers/media/util/Metrics.java
index 410da3a..024151d 100644
--- a/src/com/android/providers/media/util/Metrics.java
+++ b/src/com/android/providers/media/util/Metrics.java
@@ -111,10 +111,10 @@
     }
 
     public static void logSchemaChange(@NonNull String volumeName, int versionFrom, int versionTo,
-            long itemCount, long durationMillis) {
+            long itemCount, long durationMillis, @NonNull String databaseUuid) {
         Logging.logPersistent(String.format(
-                "Changed schema version on %s from %d to %d, %d items taking %dms",
-                volumeName, versionFrom, versionTo, itemCount, durationMillis));
+                "Changed schema version on %s from %d to %d, %d items taking %dms UUID %s",
+                volumeName, versionFrom, versionTo, itemCount, durationMillis, databaseUuid));
 
         final float normalizedDurationMillis = ((float) durationMillis) / itemCount;
 
diff --git a/tests/src/com/android/providers/media/util/MetricsTest.java b/tests/src/com/android/providers/media/util/MetricsTest.java
index 688e2e9..264cb1b 100644
--- a/tests/src/com/android/providers/media/util/MetricsTest.java
+++ b/tests/src/com/android/providers/media/util/MetricsTest.java
@@ -45,7 +45,7 @@
         Metrics.logDeletion(volumeName, 42, packageName, 42, new int[] { 42 });
         Metrics.logPermissionGranted(volumeName, 42, packageName, 42);
         Metrics.logPermissionDenied(volumeName, 42, packageName, 42);
-        Metrics.logSchemaChange(volumeName, 42, 42, 42, 42);
+        Metrics.logSchemaChange(volumeName, 42, 42, 42, 42, "UUID");
         Metrics.logIdleMaintenance(volumeName, 42, 42, 42, 42);
     }
 }