diff options
author | Joe Onorato <joeo@android.com> | 2009-08-17 11:03:03 -0400 |
---|---|---|
committer | Joe Onorato <joeo@android.com> | 2009-08-24 14:58:44 -0400 |
commit | 9c1289cb3bfb74f86e53ec7ac6dd76bb39666b2d (patch) | |
tree | bb6f3ea57e53ccf695bd7cf2e3db33786506be5c /src/com/android/launcher2/LauncherApplication.java | |
parent | 02e638e6bf6dac903396a67029d4d48e3cfa87d9 (diff) | |
download | android_packages_apps_Trebuchet-9c1289cb3bfb74f86e53ec7ac6dd76bb39666b2d.tar.gz android_packages_apps_Trebuchet-9c1289cb3bfb74f86e53ec7ac6dd76bb39666b2d.tar.bz2 android_packages_apps_Trebuchet-9c1289cb3bfb74f86e53ec7ac6dd76bb39666b2d.zip |
Redo the launcher loading code and put the real app icons into rollo.
Diffstat (limited to 'src/com/android/launcher2/LauncherApplication.java')
-rw-r--r-- | src/com/android/launcher2/LauncherApplication.java | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/src/com/android/launcher2/LauncherApplication.java b/src/com/android/launcher2/LauncherApplication.java index 03fe5626d..ee6006c5b 100644 --- a/src/com/android/launcher2/LauncherApplication.java +++ b/src/com/android/launcher2/LauncherApplication.java @@ -17,13 +17,74 @@ package com.android.launcher2; import android.app.Application; +import android.content.BroadcastReceiver; +import android.content.ContentResolver; +import android.content.Context; +import android.content.Intent; +import android.content.IntentFilter; +import android.database.ContentObserver; +import android.os.Handler; import dalvik.system.VMRuntime; public class LauncherApplication extends Application { + public static final LauncherModel sModel = new LauncherModel(); + @Override public void onCreate() { VMRuntime.getRuntime().setMinimumHeapSize(4 * 1024 * 1024); super.onCreate(); + + // Register intent receivers + IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); + filter.addAction(Intent.ACTION_PACKAGE_REMOVED); + filter.addAction(Intent.ACTION_PACKAGE_CHANGED); + filter.addDataScheme("package"); + registerReceiver(mApplicationsReceiver, filter); + + // Register for changes to the favorites + ContentResolver resolver = getContentResolver(); + resolver.registerContentObserver(LauncherSettings.Favorites.CONTENT_URI, true, + mFavoritesObserver); + } + + /** + * There's no guarantee that this function is ever called. + */ + @Override + public void onTerminate() { + super.onTerminate(); + + unregisterReceiver(mApplicationsReceiver); + + 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); + } + }; + + LauncherModel setLauncher(Launcher launcher) { + sModel.initialize(launcher); + return sModel; } } |