summaryrefslogtreecommitdiffstats
path: root/core/java/android/database/ContentObserver.java
diff options
context:
space:
mode:
authorPedlar <pedlar88@gmail.com>2010-10-05 00:51:57 -0400
committerSteve Kondik <shade@chemlab.org>2010-10-17 01:04:47 -0400
commiteb0e39732842151e947f27cf64a00480d75e5631 (patch)
tree0dd9204ba0593c58ff964fdb49c5502591b5e42f /core/java/android/database/ContentObserver.java
parentc5efffd3ea508745ceba287e1444e69b36b7d6e9 (diff)
downloadframeworks_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.java32
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));
+ }
+ }
+
+
}