From bb996d130473b062eac6c723862139251df447e1 Mon Sep 17 00:00:00 2001 From: Anushree Ganjam Date: Mon, 21 Oct 2024 16:59:11 -0700 Subject: [PATCH] Make RefreshRateTracker to be injected by Dagger (11/n) Bug: 361850561 Test: Manual Flag: EXEMPT Dagger Integration Change-Id: Ice5dc3364f90d2b9b99a0837702ae1d49a356f88 --- .../dagger/LauncherBaseAppComponent.java | 2 ++ .../util/window/RefreshRateTracker.java | 17 +++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java index 4da7c2716a..453778537f 100644 --- a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java +++ b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java @@ -23,6 +23,7 @@ import com.android.launcher3.util.DaggerSingletonTracker; import com.android.launcher3.util.PluginManagerWrapper; import com.android.launcher3.util.ScreenOnTracker; import com.android.launcher3.util.SettingsCache; +import com.android.launcher3.util.window.RefreshRateTracker; import com.android.launcher3.widget.custom.CustomWidgetManager; import dagger.BindsInstance; @@ -37,6 +38,7 @@ import dagger.BindsInstance; */ public interface LauncherBaseAppComponent { DaggerSingletonTracker getDaggerSingletonTracker(); + RefreshRateTracker getRefreshRateTracker(); InstallSessionHelper getInstallSessionHelper(); ScreenOnTracker getScreenOnTracker(); SettingsCache getSettingsCache(); diff --git a/src/com/android/launcher3/util/window/RefreshRateTracker.java b/src/com/android/launcher3/util/window/RefreshRateTracker.java index 7814617b9e..e3397d4359 100644 --- a/src/com/android/launcher3/util/window/RefreshRateTracker.java +++ b/src/com/android/launcher3/util/window/RefreshRateTracker.java @@ -26,25 +26,34 @@ import android.view.Display; import androidx.annotation.WorkerThread; -import com.android.launcher3.util.MainThreadInitializedObject; +import com.android.launcher3.dagger.ApplicationContext; +import com.android.launcher3.dagger.LauncherAppComponent; +import com.android.launcher3.dagger.LauncherAppSingleton; +import com.android.launcher3.util.DaggerSingletonObject; +import com.android.launcher3.util.DaggerSingletonTracker; import com.android.launcher3.util.SafeCloseable; +import javax.inject.Inject; + /** * Utility class to track refresh rate of the current device */ +@LauncherAppSingleton public class RefreshRateTracker implements DisplayListener, SafeCloseable { - private static final MainThreadInitializedObject INSTANCE = - new MainThreadInitializedObject<>(RefreshRateTracker::new); + private static final DaggerSingletonObject INSTANCE = + new DaggerSingletonObject<>(LauncherAppComponent::getRefreshRateTracker); private int mSingleFrameMs = 1; private final DisplayManager mDM; - private RefreshRateTracker(Context context) { + @Inject + RefreshRateTracker(@ApplicationContext Context context, DaggerSingletonTracker tracker) { mDM = context.getSystemService(DisplayManager.class); updateSingleFrameMs(); mDM.registerDisplayListener(this, UI_HELPER_EXECUTOR.getHandler()); + tracker.addCloseable(this); } /**