From 7bce5f7988d63e6f64db4b8482f781cc63820246 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Tue, 24 Nov 2015 11:40:40 -0800 Subject: [PATCH] Tying LauncherAppState lifecycle with LauncherProvider The content provider is the first component started with the main process, which makes it ideal for initiating LauncherAppState Change-Id: I03db82a8949ad1376af53a0033592f421dbf0b15 --- src/com/android/launcher3/InstallShortcutReceiver.java | 1 - src/com/android/launcher3/Launcher.java | 1 - src/com/android/launcher3/LauncherProvider.java | 4 ++++ src/com/android/launcher3/WallpaperChangedReceiver.java | 4 +--- src/com/android/launcher3/compat/PackageInstallerCompatVL.java | 1 - 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/com/android/launcher3/InstallShortcutReceiver.java b/src/com/android/launcher3/InstallShortcutReceiver.java index 9a7519323..571d99a23 100644 --- a/src/com/android/launcher3/InstallShortcutReceiver.java +++ b/src/com/android/launcher3/InstallShortcutReceiver.java @@ -171,7 +171,6 @@ public class InstallShortcutReceiver extends BroadcastReceiver { private static void queuePendingShortcutInfo(PendingInstallShortcutInfo info, Context context) { // Queue the item up for adding if launcher has not loaded properly yet - LauncherAppState.setApplicationContext(context.getApplicationContext()); LauncherAppState app = LauncherAppState.getInstance(); boolean launcherNotLoaded = app.getModel().getCallback() == null; diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 97a4eed7e..7b335d15f 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -417,7 +417,6 @@ public class Launcher extends Activity super.onCreate(savedInstanceState); - LauncherAppState.setApplicationContext(getApplicationContext()); LauncherAppState app = LauncherAppState.getInstance(); // Load configuration-specific DeviceProfile diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index ef79cf85e..f095a054e 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -84,6 +84,10 @@ public class LauncherProvider extends ContentProvider { @Override public boolean onCreate() { final Context context = getContext(); + // The content provider exists for the entire duration of the launcher main process and + // is the first component to get created. Initializing application context here ensures + // that LauncherAppState always exists in the main process. + LauncherAppState.setApplicationContext(context.getApplicationContext()); StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites(); mOpenHelper = new DatabaseHelper(context); StrictMode.setThreadPolicy(oldPolicy); diff --git a/src/com/android/launcher3/WallpaperChangedReceiver.java b/src/com/android/launcher3/WallpaperChangedReceiver.java index 2d5612f12..c24fbffc6 100644 --- a/src/com/android/launcher3/WallpaperChangedReceiver.java +++ b/src/com/android/launcher3/WallpaperChangedReceiver.java @@ -22,8 +22,6 @@ import android.content.Intent; public class WallpaperChangedReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent data) { - LauncherAppState.setApplicationContext(context.getApplicationContext()); - LauncherAppState appState = LauncherAppState.getInstance(); - appState.onWallpaperChanged(); + LauncherAppState.getInstance().onWallpaperChanged(); } } diff --git a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java index 6424e0379..4aa667ed0 100644 --- a/src/com/android/launcher3/compat/PackageInstallerCompatVL.java +++ b/src/com/android/launcher3/compat/PackageInstallerCompatVL.java @@ -43,7 +43,6 @@ public class PackageInstallerCompatVL extends PackageInstallerCompat { PackageInstallerCompatVL(Context context) { mInstaller = context.getPackageManager().getPackageInstaller(); - LauncherAppState.setApplicationContext(context.getApplicationContext()); mCache = LauncherAppState.getInstance().getIconCache(); mWorker = new Handler(LauncherModel.getWorkerLooper()); -- 2.11.0