diff options
author | Joe Onorato <joeo@android.com> | 2009-10-31 17:27:36 -0400 |
---|---|---|
committer | Joe Onorato <joeo@android.com> | 2009-10-31 17:27:36 -0400 |
commit | f99f8c1ad265cf7bea7e30476911d730b7d0eaae (patch) | |
tree | 9844b0a1a75570e5dfd42af81bfc3cb8de2e2542 /src/com/android/launcher2/LauncherApplication.java | |
parent | cb9f79889485e3e1cbea8ba8fda8b7cb6472bb8a (diff) | |
download | android_packages_apps_Trebuchet-f99f8c1ad265cf7bea7e30476911d730b7d0eaae.tar.gz android_packages_apps_Trebuchet-f99f8c1ad265cf7bea7e30476911d730b7d0eaae.tar.bz2 android_packages_apps_Trebuchet-f99f8c1ad265cf7bea7e30476911d730b7d0eaae.zip |
Fix 2223769 - Uninstalling a widget (via adb uninstall) crashed launcher2 and com.cooliris.media
If we haven't even initialized yet, don't respond to app list changes.
I think this will fix that bug. It's possible that there's some other race in there somehow.
Diffstat (limited to 'src/com/android/launcher2/LauncherApplication.java')
-rw-r--r-- | src/com/android/launcher2/LauncherApplication.java | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/src/com/android/launcher2/LauncherApplication.java b/src/com/android/launcher2/LauncherApplication.java index ee6006c5b..9b6352433 100644 --- a/src/com/android/launcher2/LauncherApplication.java +++ b/src/com/android/launcher2/LauncherApplication.java @@ -17,7 +17,6 @@ package com.android.launcher2; import android.app.Application; -import android.content.BroadcastReceiver; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; @@ -27,7 +26,11 @@ import android.os.Handler; import dalvik.system.VMRuntime; public class LauncherApplication extends Application { - public static final LauncherModel sModel = new LauncherModel(); + public final LauncherModel mModel; + + public LauncherApplication() { + mModel = new LauncherModel(this); + } @Override public void onCreate() { @@ -40,7 +43,7 @@ public class LauncherApplication extends Application { filter.addAction(Intent.ACTION_PACKAGE_REMOVED); filter.addAction(Intent.ACTION_PACKAGE_CHANGED); filter.addDataScheme("package"); - registerReceiver(mApplicationsReceiver, filter); + registerReceiver(mModel, filter); // Register for changes to the favorites ContentResolver resolver = getContentResolver(); @@ -55,36 +58,26 @@ public class LauncherApplication extends Application { public void onTerminate() { super.onTerminate(); - unregisterReceiver(mApplicationsReceiver); + unregisterReceiver(mModel); ContentResolver resolver = getContentResolver(); resolver.unregisterContentObserver(mFavoritesObserver); } /** - * Receives notifications when applications are added/removed. - */ - private final BroadcastReceiver mApplicationsReceiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - sModel.onReceiveIntent(LauncherApplication.this, intent); - } - }; - - /** * Receives notifications whenever the user favorites have changed. */ private final ContentObserver mFavoritesObserver = new ContentObserver(new Handler()) { @Override public void onChange(boolean selfChange) { // TODO: lockAllApps(); - sModel.setWorkspaceDirty(); - sModel.startLoader(LauncherApplication.this, false); + mModel.setWorkspaceDirty(); + mModel.startLoader(LauncherApplication.this, false); } }; LauncherModel setLauncher(Launcher launcher) { - sModel.initialize(launcher); - return sModel; + mModel.initialize(launcher); + return mModel; } } |