diff --git a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java index 8fe0409646..0e20f7591b 100644 --- a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java +++ b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java @@ -20,6 +20,7 @@ import android.content.Context; import com.android.launcher3.contextualeducation.ContextualEduStatsManager; import com.android.launcher3.graphics.IconShape; +import com.android.launcher3.model.ItemInstallQueue; import com.android.launcher3.pm.InstallSessionHelper; import com.android.launcher3.util.ApiWrapper; import com.android.launcher3.util.DaggerSingletonTracker; @@ -48,6 +49,7 @@ public interface LauncherBaseAppComponent { CustomWidgetManager getCustomWidgetManager(); IconShape getIconShape(); InstallSessionHelper getInstallSessionHelper(); + ItemInstallQueue getItemInstallQueue(); RefreshRateTracker getRefreshRateTracker(); ScreenOnTracker getScreenOnTracker(); SettingsCache getSettingsCache(); diff --git a/src/com/android/launcher3/model/ItemInstallQueue.java b/src/com/android/launcher3/model/ItemInstallQueue.java index 49f75eb167..f9c6e9632b 100644 --- a/src/com/android/launcher3/model/ItemInstallQueue.java +++ b/src/com/android/launcher3/model/ItemInstallQueue.java @@ -45,16 +45,18 @@ import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; import com.android.launcher3.LauncherSettings.Favorites; +import com.android.launcher3.dagger.ApplicationContext; +import com.android.launcher3.dagger.LauncherAppSingleton; +import com.android.launcher3.dagger.LauncherBaseAppComponent; import com.android.launcher3.logging.FileLog; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.LauncherAppWidgetInfo; import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.shortcuts.ShortcutKey; import com.android.launcher3.shortcuts.ShortcutRequest; -import com.android.launcher3.util.MainThreadInitializedObject; +import com.android.launcher3.util.DaggerSingletonObject; import com.android.launcher3.util.PersistedItemArray; import com.android.launcher3.util.Preconditions; -import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.widget.LauncherAppWidgetProviderInfo; import java.util.HashSet; @@ -62,10 +64,13 @@ import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; +import javax.inject.Inject; + /** * Class to maintain a queue of pending items to be added to the workspace. */ -public class ItemInstallQueue implements SafeCloseable { +@LauncherAppSingleton +public class ItemInstallQueue { private static final String LOG = "ItemInstallQueue"; @@ -81,9 +86,8 @@ public class ItemInstallQueue implements SafeCloseable { public static final int NEW_SHORTCUT_BOUNCE_DURATION = 450; public static final int NEW_SHORTCUT_STAGGER_DELAY = 85; - public static MainThreadInitializedObject INSTANCE = - new MainThreadInitializedObject<>(ItemInstallQueue::new); - + public static DaggerSingletonObject INSTANCE = + new DaggerSingletonObject<>(LauncherBaseAppComponent::getItemInstallQueue); private final PersistedItemArray mStorage = new PersistedItemArray<>(APPS_PENDING_INSTALL); private final Context mContext; @@ -95,13 +99,11 @@ public class ItemInstallQueue implements SafeCloseable { // Only accessed on worker thread private List mItems; - private ItemInstallQueue(Context context) { + @Inject + public ItemInstallQueue(@ApplicationContext Context context) { mContext = context; } - @Override - public void close() {} - @WorkerThread private void ensureQueueLoaded() { Preconditions.assertWorkerThread();