mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-18 10:18:20 +00:00
Move LauncherRestoreEventLogger to dagger
Helps us to delete ResourceBasedOverride class. Delete "launcher_restore_event_logger_class" resource from config. Bug: 361850561 Test: Presubmit Flag: EXEMPT dagger Change-Id: Ia11162979f016513bd09e06796346d29699b2efd
This commit is contained in:
@@ -16,8 +16,10 @@
|
||||
|
||||
package com.android.launcher3.dagger
|
||||
|
||||
import com.android.launcher3.backuprestore.LauncherRestoreEventLogger
|
||||
import com.android.launcher3.model.ModelDelegate
|
||||
import com.android.launcher3.model.QuickstepModelDelegate
|
||||
import com.android.quickstep.LauncherRestoreEventLoggerImpl
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
|
||||
@@ -29,4 +31,9 @@ import dagger.Module
|
||||
abstract class AppModule {
|
||||
|
||||
@Binds abstract fun bindModelDelegate(impl: QuickstepModelDelegate): ModelDelegate
|
||||
|
||||
@Binds
|
||||
abstract fun bindRestoreEventLogger(
|
||||
impl: LauncherRestoreEventLoggerImpl
|
||||
): LauncherRestoreEventLogger
|
||||
}
|
||||
|
||||
@@ -27,7 +27,6 @@
|
||||
<string name="taskbar_model_callbacks_factory_class" translatable="false">com.android.launcher3.taskbar.TaskbarModelCallbacksFactory</string>
|
||||
<string name="taskbar_view_callbacks_factory_class" translatable="false">com.android.launcher3.taskbar.TaskbarViewCallbacksFactory</string>
|
||||
<string name="taskbar_overlay_context_factory_class" translatable="false">com.android.launcher3.taskbar.overlay.TaskbarOverlayContextFactory</string>
|
||||
<string name="launcher_restore_event_logger_class" translatable="false">com.android.quickstep.LauncherRestoreEventLoggerImpl</string>
|
||||
<string name="taskbar_edu_tooltip_controller_class" translatable="false">com.android.launcher3.taskbar.TaskbarEduTooltipController</string>
|
||||
<string name="nav_handle_long_press_handler_class" translatable="false"></string>
|
||||
|
||||
|
||||
@@ -9,13 +9,17 @@ import androidx.annotation.VisibleForTesting
|
||||
import com.android.launcher3.Flags.enableLauncherBrMetricsFixed
|
||||
import com.android.launcher3.LauncherSettings.Favorites
|
||||
import com.android.launcher3.backuprestore.LauncherRestoreEventLogger
|
||||
import com.android.launcher3.dagger.ApplicationContext
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Concrete implementation for wrapper to log Restore event metrics for both success and failure to
|
||||
* restore Launcher workspace from a backup. This implementation accesses SystemApis so is only
|
||||
* available to QuickStep/NexusLauncher.
|
||||
*/
|
||||
class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEventLogger() {
|
||||
class LauncherRestoreEventLoggerImpl
|
||||
@Inject
|
||||
constructor(@ApplicationContext private val context: Context) : LauncherRestoreEventLogger() {
|
||||
companion object {
|
||||
const val TAG = "LauncherRestoreEventLoggerImpl"
|
||||
|
||||
@@ -43,7 +47,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven
|
||||
override fun logLauncherItemsRestoreFailed(
|
||||
@BackupRestoreDataType dataType: String,
|
||||
count: Int,
|
||||
@BackupRestoreError error: String?
|
||||
@BackupRestoreError error: String?,
|
||||
) {
|
||||
if (enableLauncherBrMetricsFixed()) {
|
||||
restoreEventLogger.logItemsRestoreFailed(dataType, count, error)
|
||||
@@ -93,7 +97,7 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven
|
||||
*/
|
||||
override fun logSingleFavoritesItemRestoreFailed(
|
||||
favoritesId: Int,
|
||||
@BackupRestoreError error: String?
|
||||
@BackupRestoreError error: String?,
|
||||
) {
|
||||
if (enableLauncherBrMetricsFixed()) {
|
||||
restoreEventLogger.logItemsRestoreFailed(favoritesIdToDataType(favoritesId), 1, error)
|
||||
@@ -110,13 +114,13 @@ class LauncherRestoreEventLoggerImpl(val context: Context) : LauncherRestoreEven
|
||||
override fun logFavoritesItemsRestoreFailed(
|
||||
favoritesId: Int,
|
||||
count: Int,
|
||||
@BackupRestoreError error: String?
|
||||
@BackupRestoreError error: String?,
|
||||
) {
|
||||
if (enableLauncherBrMetricsFixed()) {
|
||||
restoreEventLogger.logItemsRestoreFailed(
|
||||
favoritesIdToDataType(favoritesId),
|
||||
count,
|
||||
error
|
||||
error,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68,7 +68,6 @@
|
||||
<string name="taskbar_model_callbacks_factory_class" translatable="false"></string>
|
||||
<string name="taskbar_view_callbacks_factory_class" translatable="false"></string>
|
||||
<string name="taskbar_overlay_context_factory_class" translatable="false"></string>
|
||||
<string name="launcher_restore_event_logger_class" translatable="false"></string>
|
||||
<string name="taskbar_edu_tooltip_controller_class" translatable="false"></string>
|
||||
|
||||
<!-- Default packages -->
|
||||
|
||||
@@ -3,14 +3,14 @@ package com.android.launcher3.backuprestore
|
||||
import android.content.Context
|
||||
import androidx.annotation.StringDef
|
||||
import com.android.launcher3.LauncherSettings.Favorites
|
||||
import com.android.launcher3.R
|
||||
import com.android.launcher3.util.ResourceBasedOverride
|
||||
import com.android.launcher3.dagger.LauncherComponentProvider
|
||||
import javax.inject.Inject
|
||||
|
||||
/**
|
||||
* Wrapper for logging Restore event metrics for both success and failure to restore the Launcher
|
||||
* workspace from a backup.
|
||||
*/
|
||||
open class LauncherRestoreEventLogger : ResourceBasedOverride {
|
||||
open class LauncherRestoreEventLogger @Inject constructor() {
|
||||
|
||||
/** Enumeration of potential errors returned to calls of pause/resume app updates. */
|
||||
@Retention(AnnotationRetention.SOURCE)
|
||||
@@ -68,12 +68,8 @@ open class LauncherRestoreEventLogger : ResourceBasedOverride {
|
||||
companion object {
|
||||
const val TAG = "LauncherRestoreEventLogger"
|
||||
|
||||
fun newInstance(context: Context?): LauncherRestoreEventLogger {
|
||||
return ResourceBasedOverride.Overrides.getObject(
|
||||
LauncherRestoreEventLogger::class.java,
|
||||
context,
|
||||
R.string.launcher_restore_event_logger_class,
|
||||
)
|
||||
fun newInstance(context: Context): LauncherRestoreEventLogger {
|
||||
return LauncherComponentProvider.get(context).launcherRestoreEventLogger
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ import com.android.launcher3.InvariantDeviceProfile;
|
||||
import com.android.launcher3.LauncherAppState;
|
||||
import com.android.launcher3.LauncherPrefs;
|
||||
import com.android.launcher3.RemoveAnimationSettingsTracker;
|
||||
import com.android.launcher3.backuprestore.LauncherRestoreEventLogger;
|
||||
import com.android.launcher3.folder.FolderNameSuggestionLoader;
|
||||
import com.android.launcher3.graphics.GridCustomizationsProxy;
|
||||
import com.android.launcher3.graphics.ThemeManager;
|
||||
@@ -89,6 +90,8 @@ public interface LauncherBaseAppComponent {
|
||||
IconPool getIconPool();
|
||||
RemoveAnimationSettingsTracker getRemoveAnimationSettingsTracker();
|
||||
LauncherAppState getLauncherAppState();
|
||||
|
||||
LauncherRestoreEventLogger getLauncherRestoreEventLogger();
|
||||
GridCustomizationsProxy getGridCustomizationsProxy();
|
||||
FolderNameSuggestionLoader getFolderNameSuggestionLoader();
|
||||
LoaderCursorFactory getLoaderCursorFactory();
|
||||
|
||||
@@ -171,6 +171,7 @@ public class LoaderTask implements Runnable {
|
||||
private boolean mItemsDeleted = false;
|
||||
private String mDbName;
|
||||
private final Provider<FolderNameProvider> mFolderNameProviderFactory;
|
||||
private final Provider<LauncherRestoreEventLogger> mRestoreEventLoggerProvider;
|
||||
|
||||
@AssistedInject
|
||||
LoaderTask(
|
||||
@@ -187,7 +188,8 @@ public class LoaderTask implements Runnable {
|
||||
Provider<FolderNameProvider> folderNameProviderFactory,
|
||||
@Named("SAFE_MODE") boolean isSafeModeEnabled,
|
||||
@Assisted @NonNull BaseLauncherBinder launcherBinder,
|
||||
@Assisted UserManagerState userManagerState) {
|
||||
@Assisted UserManagerState userManagerState,
|
||||
Provider<LauncherRestoreEventLogger> restoreEventLoggerFactory) {
|
||||
mContext = context;
|
||||
mIDP = idp;
|
||||
mModel = model;
|
||||
@@ -206,6 +208,7 @@ public class LoaderTask implements Runnable {
|
||||
mUserManagerState = userManagerState;
|
||||
mInstallingPkgsCached = null;
|
||||
mFolderNameProviderFactory = folderNameProviderFactory;
|
||||
mRestoreEventLoggerProvider = restoreEventLoggerFactory;
|
||||
}
|
||||
|
||||
protected synchronized void waitForIdle() {
|
||||
@@ -272,7 +275,7 @@ public class LoaderTask implements Runnable {
|
||||
LauncherPrefs.get(mContext).get(IS_FIRST_LOAD_AFTER_RESTORE);
|
||||
LauncherRestoreEventLogger restoreEventLogger = null;
|
||||
if (enableLauncherBrMetricsFixed()) {
|
||||
restoreEventLogger = LauncherRestoreEventLogger.Companion.newInstance(mContext);
|
||||
restoreEventLogger = mRestoreEventLoggerProvider.get();
|
||||
}
|
||||
try (LauncherModel.LoaderTransaction transaction = mModel.beginLoader(this)) {
|
||||
List<CacheableShortcutInfo> allShortcuts = new ArrayList<>();
|
||||
|
||||
Reference in New Issue
Block a user