diff --git a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java index ecc5bb24a3..5d0c44e036 100644 --- a/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java +++ b/src/com/android/launcher3/dagger/LauncherBaseAppComponent.java @@ -21,6 +21,7 @@ import android.content.Context; import com.android.launcher3.pm.InstallSessionHelper; import com.android.launcher3.util.ApiWrapper; import com.android.launcher3.util.DaggerSingletonTracker; +import com.android.launcher3.util.PackageManagerHelper; import com.android.launcher3.util.PluginManagerWrapper; import com.android.launcher3.util.ScreenOnTracker; import com.android.launcher3.util.SettingsCache; @@ -46,6 +47,7 @@ public interface LauncherBaseAppComponent { SettingsCache getSettingsCache(); CustomWidgetManager getCustomWidgetManager(); PluginManagerWrapper getPluginManagerWrapper(); + PackageManagerHelper getPackageManagerHelper(); /** Builder for LauncherBaseAppComponent. */ interface Builder { diff --git a/src/com/android/launcher3/util/PackageManagerHelper.java b/src/com/android/launcher3/util/PackageManagerHelper.java index e51609ac6e..4b60d9804c 100644 --- a/src/com/android/launcher3/util/PackageManagerHelper.java +++ b/src/com/android/launcher3/util/PackageManagerHelper.java @@ -42,6 +42,9 @@ import androidx.annotation.Nullable; import com.android.launcher3.PendingAddItemInfo; import com.android.launcher3.R; import com.android.launcher3.Utilities; +import com.android.launcher3.dagger.ApplicationContext; +import com.android.launcher3.dagger.LauncherAppSingleton; +import com.android.launcher3.dagger.LauncherBaseAppComponent; import com.android.launcher3.model.data.AppInfo; import com.android.launcher3.model.data.ItemInfo; import com.android.launcher3.model.data.ItemInfoWithIcon; @@ -51,16 +54,19 @@ import com.android.launcher3.model.data.WorkspaceItemInfo; import java.util.List; import java.util.Objects; +import javax.inject.Inject; + /** * Utility methods using package manager */ -public class PackageManagerHelper implements SafeCloseable{ +@LauncherAppSingleton +public class PackageManagerHelper { private static final String TAG = "PackageManagerHelper"; @NonNull - public static final MainThreadInitializedObject INSTANCE = - new MainThreadInitializedObject<>(PackageManagerHelper::new); + public static DaggerSingletonObject INSTANCE = + new DaggerSingletonObject<>(LauncherBaseAppComponent::getPackageManagerHelper); @NonNull private final Context mContext; @@ -73,17 +79,15 @@ public class PackageManagerHelper implements SafeCloseable{ private final String[] mLegacyMultiInstanceSupportedApps; - public PackageManagerHelper(@NonNull final Context context) { + @Inject + public PackageManagerHelper(@ApplicationContext final Context context) { mContext = context; mPm = context.getPackageManager(); mLauncherApps = Objects.requireNonNull(context.getSystemService(LauncherApps.class)); mLegacyMultiInstanceSupportedApps = mContext.getResources().getStringArray( - R.array.config_appsSupportMultiInstancesSplit); + R.array.config_appsSupportMultiInstancesSplit); } - @Override - public void close() { } - /** * Returns the installing app package for the given package */