summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/LauncherApplication.java
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2009-08-17 11:03:03 -0400
committerJoe Onorato <joeo@android.com>2009-08-24 14:58:44 -0400
commit9c1289cb3bfb74f86e53ec7ac6dd76bb39666b2d (patch)
treebb6f3ea57e53ccf695bd7cf2e3db33786506be5c /src/com/android/launcher2/LauncherApplication.java
parent02e638e6bf6dac903396a67029d4d48e3cfa87d9 (diff)
downloadandroid_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.java61
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;
}
}