summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherProvider.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2015-06-12 21:18:53 -0700
committerSunny Goyal <sunnygoyal@google.com>2015-06-16 10:31:43 -0700
commit383c507c47a5abf3258fc04220f37c366f983a97 (patch)
tree8cdd3e088ce1d185861666fcfbfa280a05dc50b8 /src/com/android/launcher3/LauncherProvider.java
parentc332934e27527107c7f9c50ba6b7af93979b8126 (diff)
downloadandroid_packages_apps_Trebuchet-383c507c47a5abf3258fc04220f37c366f983a97.tar.gz
android_packages_apps_Trebuchet-383c507c47a5abf3258fc04220f37c366f983a97.tar.bz2
android_packages_apps_Trebuchet-383c507c47a5abf3258fc04220f37c366f983a97.zip
Removing ContentObserver in launcher
> Using callback insted of using a content observer > Setting the listener in LauncherAppState to prevent resource leak Change-Id: Id23a4d5c8812e86178997e536226e09ec3740f84
Diffstat (limited to 'src/com/android/launcher3/LauncherProvider.java')
-rw-r--r--src/com/android/launcher3/LauncherProvider.java45
1 files changed, 22 insertions, 23 deletions
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index cb808c22b..71ddb1ab1 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -80,16 +80,7 @@ public class LauncherProvider extends ContentProvider {
private static final String RESTRICTION_PACKAGE_NAME = "workspace.configuration.package.name";
- private LauncherProviderChangeListener mListener;
-
- /**
- * {@link Uri} triggered at any registered {@link android.database.ContentObserver} when
- * {@link AppWidgetHost#deleteHost()} is called during database creation.
- * Use this to recall {@link AppWidgetHost#startListening()} if needed.
- */
- static final Uri CONTENT_APPWIDGET_RESET_URI =
- Uri.parse("content://" + AUTHORITY + "/appWidgetReset");
-
+ @Thunk LauncherProviderChangeListener mListener;
@Thunk DatabaseHelper mOpenHelper;
@Override
@@ -279,6 +270,18 @@ public class LauncherProvider extends ContentProvider {
}
}
+ @Thunk void notifyAppWidgetHostReset() {
+ new MainThreadExecutor().execute(new Runnable() {
+
+ @Override
+ public void run() {
+ if (mListener != null) {
+ mListener.onAppWidgetHostReset();
+ }
+ }
+ });
+ }
+
@Thunk static void addModifiedTime(ContentValues values) {
values.put(LauncherSettings.ChangeLogColumns.MODIFIED, System.currentTimeMillis());
}
@@ -455,17 +458,6 @@ public class LauncherProvider extends ContentProvider {
return mNewDbCreated;
}
- /**
- * Send notification that we've deleted the {@link AppWidgetHost},
- * probably as part of the initial database creation. The receiver may
- * want to re-call {@link AppWidgetHost#startListening()} to ensure
- * callbacks are correctly set.
- */
- private void sendAppWidgetResetNotify() {
- final ContentResolver resolver = mContext.getContentResolver();
- resolver.notifyChange(CONTENT_APPWIDGET_RESET_URI, null);
- }
-
@Override
public void onCreate(SQLiteDatabase db) {
if (LOGD) Log.d(TAG, "creating new launcher database");
@@ -509,7 +501,14 @@ public class LauncherProvider extends ContentProvider {
// Database was just created, so wipe any previous widgets
if (mAppWidgetHost != null) {
mAppWidgetHost.deleteHost();
- sendAppWidgetResetNotify();
+
+ /**
+ * Send notification that we've deleted the {@link AppWidgetHost},
+ * probably as part of the initial database creation. The receiver may
+ * want to re-call {@link AppWidgetHost#startListening()} to ensure
+ * callbacks are correctly set.
+ */
+ LauncherAppState.getLauncherProvider().notifyAppWidgetHostReset();
}
// Fresh and clean launcher DB.
@@ -517,7 +516,7 @@ public class LauncherProvider extends ContentProvider {
setFlagEmptyDbCreated();
// When a new DB is created, remove all previously stored managed profile information.
- ManagedProfileHeuristic.processAllUsers(Collections.EMPTY_LIST, mContext);
+ ManagedProfileHeuristic.processAllUsers(Collections.<UserHandleCompat>emptyList(), mContext);
}
private void addWorkspacesTable(SQLiteDatabase db) {