[DLC vNext] Update logging for CheckInRetry

This should be submitted together with ag/25952661.

Bug: b/259302076, b/319892231
Change-Id: I96c1753e8222602995ed69a022d4eedfd91d8b75
diff --git a/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInHelper.java b/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInHelper.java
index 74a6852..e92d08a 100644
--- a/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInHelper.java
+++ b/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInHelper.java
@@ -27,8 +27,8 @@
 import static com.android.devicelockcontroller.common.DeviceLockConstants.TOTAL_DEVICE_ID_TYPES;
 import static com.android.devicelockcontroller.receivers.CheckInBootCompletedReceiver.disableCheckInBootCompletedReceiver;
 import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.CONFIG_UNAVAILABLE;
-import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.PAST_CHECKIN_DATE;
-import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.UNSPECIFIED;
+import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.NETWORK_TIME_UNAVAILABLE;
+import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.RESPONSE_UNSPECIFIED;
 
 import android.content.Context;
 import android.content.Intent;
@@ -159,7 +159,7 @@
                     return true;
                 } catch (DateTimeException e) {
                     LogUtil.e(TAG, "No network time is available!");
-                    mStatsLogger.logCheckInRetry(UNSPECIFIED);
+                    mStatsLogger.logCheckInRetry(NETWORK_TIME_UNAVAILABLE);
                     return false;
                 }
             case STOP_CHECK_IN:
@@ -183,7 +183,7 @@
                 return true;
             case STATUS_UNSPECIFIED:
             default:
-                mStatsLogger.logCheckInRetry(UNSPECIFIED);
+                mStatsLogger.logCheckInRetry(RESPONSE_UNSPECIFIED);
                 return false;
         }
     }
diff --git a/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInWorker.java b/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInWorker.java
index 5323463..472dea8 100644
--- a/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInWorker.java
+++ b/DeviceLockController/src/com/android/devicelockcontroller/provision/worker/DeviceCheckInWorker.java
@@ -105,7 +105,7 @@
                             LogUtil.w(TAG, "Check-in failed w/ recoverable error" + response
                                     + "\nRetrying...");
                             mStatsLogger.logCheckInRetry(
-                                    StatsLogger.CheckInRetryReason.UNSPECIFIED);
+                                    StatsLogger.CheckInRetryReason.RPC_FAILURE);
                             return Result.retry();
                         }
                         if (response.isSuccessful()) {
@@ -125,7 +125,8 @@
                         LogUtil.e(TAG, "CheckIn failed: " + response + "\nRetry check-in in: "
                                 + RETRY_ON_FAILURE_DELAY);
                         scheduler.scheduleRetryCheckInWork(RETRY_ON_FAILURE_DELAY);
-                        mStatsLogger.logCheckInRetry(StatsLogger.CheckInRetryReason.UNSPECIFIED);
+                        mStatsLogger.logCheckInRetry(
+                                StatsLogger.CheckInRetryReason.RPC_FAILURE);
                         return Result.failure();
                     }, mExecutorService);
                 }, mExecutorService);
diff --git a/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLogger.java b/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLogger.java
index 028ab73..46f3d8e 100644
--- a/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLogger.java
+++ b/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLogger.java
@@ -93,13 +93,15 @@
     // TODO(bojiandu): update this definition after updating the atom to match the new design
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({
-            CheckInRetryReason.UNSPECIFIED,
+            CheckInRetryReason.RESPONSE_UNSPECIFIED,
             CheckInRetryReason.CONFIG_UNAVAILABLE,
-            CheckInRetryReason.PAST_CHECKIN_DATE
+            CheckInRetryReason.NETWORK_TIME_UNAVAILABLE,
+            CheckInRetryReason.RPC_FAILURE
     })
     @interface CheckInRetryReason {
-        int UNSPECIFIED = 0;
+        int RESPONSE_UNSPECIFIED = 0;
         int CONFIG_UNAVAILABLE = 1;
-        int PAST_CHECKIN_DATE = 2;
+        int NETWORK_TIME_UNAVAILABLE = 2;
+        int RPC_FAILURE = 3;
     }
 }
diff --git a/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLoggerImpl.java b/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLoggerImpl.java
index 3b79ce2..72064d2 100644
--- a/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLoggerImpl.java
+++ b/DeviceLockController/src/com/android/devicelockcontroller/stats/StatsLoggerImpl.java
@@ -17,8 +17,9 @@
 package com.android.devicelockcontroller.stats;
 
 import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__COUNFIGURATION_UNAVAILABLE;
-import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__PAST_CHECK_IN_DATE;
-import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__UNSPECIFIED;
+import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__NETWORK_TIME_UNAVAILABLE;
+import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__RESPONSE_UNSPECIFIED;
+import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__RPC_FAILURE;
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED__TYPE__GET_DEVICE_CHECK_IN_STATUS;
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED__TYPE__IS_DEVICE_IN_APPROVED_COUNTRY;
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED__TYPE__PAUSE_DEVICE_PROVISIONING;
@@ -27,8 +28,9 @@
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED;
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED;
 import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.CONFIG_UNAVAILABLE;
-import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.PAST_CHECKIN_DATE;
-import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.UNSPECIFIED;
+import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.NETWORK_TIME_UNAVAILABLE;
+import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.RESPONSE_UNSPECIFIED;
+import static com.android.devicelockcontroller.stats.StatsLogger.CheckInRetryReason.RPC_FAILURE;
 
 import com.android.devicelockcontroller.DevicelockStatsLog;
 
@@ -117,10 +119,12 @@
         switch (reason) {
             case CONFIG_UNAVAILABLE -> checkInRetryReason =
                     CHECK_IN_RETRY_REPORTED__REASON__COUNFIGURATION_UNAVAILABLE;
-            case PAST_CHECKIN_DATE -> checkInRetryReason =
-                    CHECK_IN_RETRY_REPORTED__REASON__PAST_CHECK_IN_DATE;
-            case UNSPECIFIED -> checkInRetryReason = CHECK_IN_RETRY_REPORTED__REASON__UNSPECIFIED;
-            default -> checkInRetryReason = CHECK_IN_RETRY_REPORTED__REASON__UNSPECIFIED;
+            case NETWORK_TIME_UNAVAILABLE -> checkInRetryReason =
+                    CHECK_IN_RETRY_REPORTED__REASON__NETWORK_TIME_UNAVAILABLE;
+            case RESPONSE_UNSPECIFIED -> checkInRetryReason =
+                    CHECK_IN_RETRY_REPORTED__REASON__RESPONSE_UNSPECIFIED;
+            case RPC_FAILURE -> checkInRetryReason = CHECK_IN_RETRY_REPORTED__REASON__RPC_FAILURE;
+            default -> checkInRetryReason = CHECK_IN_RETRY_REPORTED__REASON__RESPONSE_UNSPECIFIED;
         }
         DevicelockStatsLog.write(DEVICE_LOCK_CHECK_IN_RETRY_REPORTED, checkInRetryReason);
     }
diff --git a/DeviceLockController/tests/android_test/src/com/android/devicelockcontroller/stats/StatsLoggerImplTest.java b/DeviceLockController/tests/android_test/src/com/android/devicelockcontroller/stats/StatsLoggerImplTest.java
index 7a472ca..0dea6cf 100644
--- a/DeviceLockController/tests/android_test/src/com/android/devicelockcontroller/stats/StatsLoggerImplTest.java
+++ b/DeviceLockController/tests/android_test/src/com/android/devicelockcontroller/stats/StatsLoggerImplTest.java
@@ -17,8 +17,9 @@
 package com.android.devicelockcontroller.stats;
 
 import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__COUNFIGURATION_UNAVAILABLE;
-import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__PAST_CHECK_IN_DATE;
-import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__UNSPECIFIED;
+import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__NETWORK_TIME_UNAVAILABLE;
+import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__RESPONSE_UNSPECIFIED;
+import static com.android.devicelockcontroller.DevicelockStatsLog.CHECK_IN_RETRY_REPORTED__REASON__RPC_FAILURE;
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED__TYPE__GET_DEVICE_CHECK_IN_STATUS;
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED__TYPE__IS_DEVICE_IN_APPROVED_COUNTRY;
 import static com.android.devicelockcontroller.DevicelockStatsLog.DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED__TYPE__PAUSE_DEVICE_PROVISIONING;
@@ -130,10 +131,10 @@
 
     @Test
     public void logCheckInRetry_shouldWriteCorrectLogWhenReasonUnspecified() {
-        mStatsLogger.logCheckInRetry(StatsLogger.CheckInRetryReason.UNSPECIFIED);
+        mStatsLogger.logCheckInRetry(StatsLogger.CheckInRetryReason.RESPONSE_UNSPECIFIED);
 
         verify(() -> DevicelockStatsLog.write(DEVICE_LOCK_CHECK_IN_RETRY_REPORTED,
-                CHECK_IN_RETRY_REPORTED__REASON__UNSPECIFIED));
+                CHECK_IN_RETRY_REPORTED__REASON__RESPONSE_UNSPECIFIED));
     }
 
     @Test
@@ -145,10 +146,18 @@
     }
 
     @Test
-    public void logCheckInRetry_shouldWriteCorrectLogWhenReasonPastCheckInDate() {
-        mStatsLogger.logCheckInRetry(StatsLogger.CheckInRetryReason.PAST_CHECKIN_DATE);
+    public void logCheckInRetry_shouldWriteCorrectLogWhenReasonNetworkTimeUnavailable() {
+        mStatsLogger.logCheckInRetry(StatsLogger.CheckInRetryReason.NETWORK_TIME_UNAVAILABLE);
 
         verify(() -> DevicelockStatsLog.write(DEVICE_LOCK_CHECK_IN_RETRY_REPORTED,
-                CHECK_IN_RETRY_REPORTED__REASON__PAST_CHECK_IN_DATE));
+                CHECK_IN_RETRY_REPORTED__REASON__NETWORK_TIME_UNAVAILABLE));
+    }
+
+    @Test
+    public void logCheckInRetry_shouldWriteCorrectLogWhenReasonRpcFailure() {
+        mStatsLogger.logCheckInRetry(StatsLogger.CheckInRetryReason.RPC_FAILURE);
+
+        verify(() -> DevicelockStatsLog.write(DEVICE_LOCK_CHECK_IN_RETRY_REPORTED,
+                CHECK_IN_RETRY_REPORTED__REASON__RPC_FAILURE));
     }
 }