Add logging to Dialer Key/Value backup implemenation.

For Dolly our logging proved to be immensely valuable tool to identify the the framework bug. We were able to co-relate the issue with the backup and restore logging. We are adding this again for Key Value backup and restore.

Bug: 64363054
Test: DialerPersistentBackupAgentTest
PiperOrigin-RevId: 164754911
Change-Id: I15f97e1a2301703ced85df8f808cf20aae59c25e
diff --git a/java/com/android/dialer/backup/DialerPersistentBackupAgent.java b/java/com/android/dialer/backup/DialerPersistentBackupAgent.java
index dfe4ea3..085c343 100644
--- a/java/com/android/dialer/backup/DialerPersistentBackupAgent.java
+++ b/java/com/android/dialer/backup/DialerPersistentBackupAgent.java
@@ -23,6 +23,8 @@
 import android.util.ArrayMap;
 import com.android.dialer.common.Assert;
 import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.Logger;
 import com.google.android.libraries.backup.BackupKeyPredicate;
 import com.google.android.libraries.backup.BackupKeyPredicates;
 import com.google.android.libraries.backup.PersistentBackupAgentHelper;
@@ -39,6 +41,7 @@
   @VisibleForTesting(otherwise = VisibleForTesting.NONE)
   DialerPersistentBackupAgent(@NonNull String sharedPreferenceName) {
     this.sharedPrefsName = Assert.isNotNull(sharedPreferenceName);
+    Logger.get(this).logImpression(DialerImpression.Type.BACKUP_KEY_VALUE_BACKUP_AGENT_CONSTRUCTOR);
   }
 
   public DialerPersistentBackupAgent() {
@@ -48,6 +51,7 @@
   @Override
   public void onRestore(BackupDataInput data, int appVersionCode, ParcelFileDescriptor stateFile)
       throws IOException {
+    Logger.get(this).logImpression(DialerImpression.Type.BACKUP_KEY_VALUE_ON_RESTORE);
     LogUtil.i("DialerPersistentBackupAgent.onRestore", "restore from version: " + appVersionCode);
     super.onRestore(data, appVersionCode, stateFile);
   }
@@ -56,12 +60,14 @@
   public void onBackup(
       ParcelFileDescriptor oldState, BackupDataOutput data, ParcelFileDescriptor newState)
       throws IOException {
+    Logger.get(this).logImpression(DialerImpression.Type.BACKUP_KEY_VALUE_ON_BACKUP);
     LogUtil.i("DialerPersistentBackupAgent.onBackup", "onBackup being performed");
     super.onBackup(oldState, data, newState);
   }
 
   @Override
   public Map<String, BackupKeyPredicate> getBackupSpecification() {
+    Logger.get(this).logImpression(DialerImpression.Type.BACKUP_KEY_VALUE_GET_BACKUP_SPECIFICATION);
     LogUtil.i(
         "DialerPersistentBackupAgent.getBackupSpecification",
         "file being backed up: " + sharedPrefsName);
@@ -69,4 +75,10 @@
     backupSpecification.put(sharedPrefsName, BackupKeyPredicates.alwaysTrue());
     return backupSpecification;
   }
+
+  @Override
+  public void onRestoreFinished() {
+    Logger.get(this).logImpression(DialerImpression.Type.BACKUP_KEY_VALUE_ON_RESTORE_FINISHED);
+    super.onRestoreFinished();
+  }
 }
diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index 1b6f3c2..69be3e1 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -483,5 +483,12 @@
     BUBBLE_PRIMARY_BUTTON_EXPAND = 1237;
     // Bubble prinary button second click to return to call
     BUBBLE_PRIMARY_BUTTON_RETURN_TO_CALL = 1238;
+
+    // Dialer Key/Value Backup and Restore
+    BACKUP_KEY_VALUE_ON_BACKUP = 1239;
+    BACKUP_KEY_VALUE_ON_RESTORE = 1240;
+    BACKUP_KEY_VALUE_ON_RESTORE_FINISHED = 1241;
+    BACKUP_KEY_VALUE_GET_BACKUP_SPECIFICATION = 1242;
+    BACKUP_KEY_VALUE_BACKUP_AGENT_CONSTRUCTOR = 1243;
   }
 }