diff options
author | Pedlar <pedlar88@gmail.com> | 2010-10-05 00:51:57 -0400 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2010-10-17 01:04:47 -0400 |
commit | eb0e39732842151e947f27cf64a00480d75e5631 (patch) | |
tree | 0dd9204ba0593c58ff964fdb49c5502591b5e42f /core/java/android/database/ContentObserver.java | |
parent | c5efffd3ea508745ceba287e1444e69b36b7d6e9 (diff) | |
download | frameworks_base-eb0e39732842151e947f27cf64a00480d75e5631.zip frameworks_base-eb0e39732842151e947f27cf64a00480d75e5631.tar.gz frameworks_base-eb0e39732842151e947f27cf64a00480d75e5631.tar.bz2 |
Galaxy S Style Power Widget
- Finally Ready - Review at will
- This Depends on the following:
CMParts: http://review.cyanogenmod.com/2063
Diffstat (limited to 'core/java/android/database/ContentObserver.java')
-rw-r--r-- | core/java/android/database/ContentObserver.java | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/core/java/android/database/ContentObserver.java b/core/java/android/database/ContentObserver.java index 3b829a3..f8a9a1a 100644 --- a/core/java/android/database/ContentObserver.java +++ b/core/java/android/database/ContentObserver.java @@ -17,6 +17,7 @@ package android.database; import android.os.Handler; +import android.net.Uri; /** * Receives call backs for changes to content. Must be implemented by objects which are added @@ -34,13 +35,23 @@ public abstract class ContentObserver { private final class NotificationRunnable implements Runnable { private boolean mSelf; + private Uri mUri = null; public NotificationRunnable(boolean self) { mSelf = self; } + public NotificationRunnable(Uri uri, boolean self) { + mSelf = self; + mUri = uri; + } + public void run() { - ContentObserver.this.onChange(mSelf); + if(mUri != null) { + ContentObserver.this.onChangeUri(mUri, mSelf); + } else { + ContentObserver.this.onChange(mSelf); + } } } @@ -66,6 +77,13 @@ public abstract class ContentObserver { } } + public void onChangeUri(Uri uri, boolean selfChange) { + ContentObserver contentObserver = mContentObserver; + if (contentObserver != null) { + contentObserver.dispatchChange(uri, selfChange); + } + } + public void releaseContentObserver() { mContentObserver = null; } @@ -127,6 +145,8 @@ public abstract class ContentObserver { * cursor that is being observed. */ public void onChange(boolean selfChange) {} + /** @hide */ + public void onChangeUri(Uri uri, boolean selfChange) {} public final void dispatchChange(boolean selfChange) { if (mHandler == null) { @@ -135,4 +155,14 @@ public abstract class ContentObserver { mHandler.post(new NotificationRunnable(selfChange)); } } + /** @hide */ + public final void dispatchChange(Uri uri, boolean selfChange) { + if (mHandler == null) { + onChangeUri(uri, selfChange); + } else { + mHandler.post(new NotificationRunnable(uri, selfChange)); + } + } + + } |