From 67e7cae5ad97ec5702bbd739c4272e3cfa17556d Mon Sep 17 00:00:00 2001 From: Anjali Koppal Date: Thu, 13 Mar 2014 12:14:12 -0700 Subject: Add LauncherProviderChangeListener Change-Id: I2333a157c488cd048a860982cc675ed9cec626ae --- src/com/android/launcher3/Launcher.java | 7 +++++-- src/com/android/launcher3/LauncherProvider.java | 9 +++++++++ src/com/android/launcher3/LauncherProviderChangeListener.java | 11 +++++++++++ 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/com/android/launcher3/LauncherProviderChangeListener.java diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index f1ce23524..e3b30cb90 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -120,7 +120,7 @@ import java.util.concurrent.atomic.AtomicInteger; */ public class Launcher extends Activity implements View.OnClickListener, OnLongClickListener, LauncherModel.Callbacks, - View.OnTouchListener, PageSwitchListener { + View.OnTouchListener, PageSwitchListener, LauncherProviderChangeListener { static final String TAG = "Launcher"; static final boolean LOGD = false; @@ -394,7 +394,7 @@ public class Launcher extends Activity LauncherAppState.setApplicationContext(getApplicationContext()); LauncherAppState app = LauncherAppState.getInstance(); - + LauncherAppState.getLauncherProvider().setLauncherProviderChangeListener(this); // Determine the dynamic grid properties Point smallestSize = new Point(); Point largestSize = new Point(); @@ -496,6 +496,9 @@ public class Launcher extends Activity } } + @Override + public void onLauncherProviderChange() { } + protected void onUserLeaveHint() { super.onUserLeaveHint(); sPausedFromUserAction = true; diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index e9e35958a..2a645255c 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -95,6 +95,8 @@ public class LauncherProvider extends ContentProvider { private static final String ACTION_APPWIDGET_DEFAULT_WORKSPACE_CONFIGURE = "com.android.launcher.action.APPWIDGET_DEFAULT_WORKSPACE_CONFIGURE"; + private LauncherProviderChangeListener mListener; + /** * {@link Uri} triggered at any registered {@link android.database.ContentObserver} when * {@link AppWidgetHost#deleteHost()} is called during database creation. @@ -118,6 +120,10 @@ public class LauncherProvider extends ContentProvider { return mOpenHelper.wasNewDbCreated(); } + public void setLauncherProviderChangeListener(LauncherProviderChangeListener listener) { + mListener = listener; + } + @Override public String getType(Uri uri) { SqlArguments args = new SqlArguments(uri, null, null); @@ -244,6 +250,9 @@ public class LauncherProvider extends ContentProvider { // always notify the backup agent LauncherBackupAgentHelper.dataChanged(getContext()); + if (mListener != null) { + mListener.onLauncherProviderChange(); + } } private void addModifiedTime(ContentValues values) { diff --git a/src/com/android/launcher3/LauncherProviderChangeListener.java b/src/com/android/launcher3/LauncherProviderChangeListener.java new file mode 100644 index 000000000..0de96fbc4 --- /dev/null +++ b/src/com/android/launcher3/LauncherProviderChangeListener.java @@ -0,0 +1,11 @@ +package com.android.launcher3; + +/** + * This class is a listener for {@link LauncherProvider} changes. It gets notified in the + * sendNotify method. This listener is needed because by default the Launcher suppresses + * standard data change callbacks. + */ +public interface LauncherProviderChangeListener { + + public void onLauncherProviderChange(); +} -- cgit v1.2.3