From a4240c72c0a2d866ef8da8adde9487ea397d4bc1 Mon Sep 17 00:00:00 2001 From: Charlie Anderson Date: Thu, 4 Jan 2024 17:33:17 -0500 Subject: [PATCH] Adds a legacy flag to enable Launcher BR metrics. This is necessary because the aconfig flag requires reboot to enable, however backup/restore happens on the first load so the flag will not be ready. Flag: LEGACY ENABLE_LAUNCHER_BR_METRICS TEAMFOOD Test: compilation / presubmit Bug: 305984208 Change-Id: Ida90b1bd485fb037ebf3dde7ad17bf4e462661e6 --- .../quickstep/LauncherRestoreEventLoggerImpl.kt | 17 +++++++++-------- .../android/launcher3/config/FeatureFlags.java | 2 ++ .../launcher3/provider/RestoreDbTask.java | 5 +++-- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/quickstep/src/com/android/quickstep/LauncherRestoreEventLoggerImpl.kt b/quickstep/src/com/android/quickstep/LauncherRestoreEventLoggerImpl.kt index fc450f0e96..0913fcac77 100644 --- a/quickstep/src/com/android/quickstep/LauncherRestoreEventLoggerImpl.kt +++ b/quickstep/src/com/android/quickstep/LauncherRestoreEventLoggerImpl.kt @@ -5,9 +5,10 @@ import android.app.backup.BackupRestoreEventLogger import android.app.backup.BackupRestoreEventLogger.BackupRestoreDataType import android.app.backup.BackupRestoreEventLogger.BackupRestoreError import android.content.Context -import com.android.launcher3.Flags +import com.android.launcher3.Flags.enableLauncherBrMetrics import com.android.launcher3.LauncherSettings.Favorites import com.android.launcher3.backuprestore.LauncherRestoreEventLogger +import com.android.launcher3.config.FeatureFlags.ENABLE_LAUNCHER_BR_METRICS /** * Concrete implementation for wrapper to log Restore event metrics for both success and failure to @@ -44,7 +45,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven count: Int, @BackupRestoreError error: String? ) { - if (Flags.enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { restoreEventLogger.logItemsRestoreFailed(dataType, count, error) } } @@ -56,7 +57,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven * @param count the number of data items restored. */ override fun logLauncherItemsRestored(@BackupRestoreDataType dataType: String, count: Int) { - if (Flags.enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { restoreEventLogger.logItemsRestored(dataType, count) } } @@ -67,7 +68,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven * @param favoritesId The id of the item type from [Favorites] that was restored. */ override fun logSingleFavoritesItemRestored(favoritesId: Int) { - if (Flags.enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { restoreEventLogger.logItemsRestored(favoritesIdToDataType(favoritesId), 1) } } @@ -79,7 +80,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven * @param count number of items that restored. */ override fun logFavoritesItemsRestored(favoritesId: Int, count: Int) { - if (Flags.enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { restoreEventLogger.logItemsRestored(favoritesIdToDataType(favoritesId), count) } } @@ -94,7 +95,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven favoritesId: Int, @BackupRestoreError error: String? ) { - if (Flags.enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { restoreEventLogger.logItemsRestoreFailed(favoritesIdToDataType(favoritesId), 1, error) } } @@ -111,7 +112,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven count: Int, @BackupRestoreError error: String? ) { - if (Flags.enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { restoreEventLogger.logItemsRestoreFailed( favoritesIdToDataType(favoritesId), count, @@ -125,7 +126,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven * done restoring items for Launcher. */ override fun reportLauncherRestoreResults() { - if (Flags.enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { BackupManager(context).reportDelayedRestoreResult(restoreEventLogger) } } diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index aa6d1f2d29..16a2ac8789 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -167,6 +167,8 @@ public final class FeatureFlags { "Enable the ability to generate monochromatic icons, if it is not provided by the app"); // TODO(Block 8): Clean up flags + public static final BooleanFlag ENABLE_LAUNCHER_BR_METRICS = getDebugFlag(305984208, + "ENABLE_LAUNCHER_BR_METRICS", TEAMFOOD, "Enable metrics for Launcher restore"); // TODO(Block 9): Clean up flags public static final BooleanFlag MULTI_SELECT_EDIT_MODE = getDebugFlag(270709220, diff --git a/src/com/android/launcher3/provider/RestoreDbTask.java b/src/com/android/launcher3/provider/RestoreDbTask.java index 97c99e793c..a969c8f1f9 100644 --- a/src/com/android/launcher3/provider/RestoreDbTask.java +++ b/src/com/android/launcher3/provider/RestoreDbTask.java @@ -30,6 +30,7 @@ import static com.android.launcher3.LauncherSettings.Favorites.ITEM_TYPE_APPWIDG import static com.android.launcher3.backuprestore.LauncherRestoreEventLogger.RESTORE_ERROR_PROFILE_NOT_RESTORED; import static com.android.launcher3.backuprestore.LauncherRestoreEventLogger.RESTORE_ERROR_WIDGETS_DISABLED; import static com.android.launcher3.backuprestore.LauncherRestoreEventLogger.RESTORE_ERROR_WIDGET_REMOVED; +import static com.android.launcher3.config.FeatureFlags.ENABLE_LAUNCHER_BR_METRICS; import static com.android.launcher3.provider.LauncherDbUtils.dropTable; import static com.android.launcher3.widget.LauncherWidgetHolder.APPWIDGET_HOST_ID; @@ -198,7 +199,7 @@ public class RestoreDbTask { Arrays.fill(args, "?"); final String where = "profileId NOT IN (" + TextUtils.join(", ", Arrays.asList(args)) + ")"; logFavoritesTable(db, "items to delete from unrestored profiles:", where, profileIds); - if (enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { reportUnrestoredProfiles(db, where, profileIds, restoreEventLogger); } int itemsDeletedCount = db.delete(Favorites.TABLE_NAME, where, profileIds); @@ -360,7 +361,7 @@ public class RestoreDbTask { DeviceGridState deviceGridState = new DeviceGridState(context); FileLog.d(TAG, "restore initiated from backup: DeviceGridState=" + deviceGridState); LauncherPrefs.get(context).putSync(RESTORE_DEVICE.to(deviceGridState.getDeviceType())); - if (enableLauncherBrMetrics()) { + if (enableLauncherBrMetrics() || ENABLE_LAUNCHER_BR_METRICS.get()) { LauncherPrefs.get(context).putSync(IS_FIRST_LOAD_AFTER_RESTORE.to(true)); } }