summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.txt3
-rw-r--r--core/java/android/database/AbstractCursor.java4
-rw-r--r--core/java/android/database/Cursor.java10
-rw-r--r--core/java/android/database/CursorWrapper.java4
-rw-r--r--test-runner/src/android/test/mock/MockCursor.java7
5 files changed, 24 insertions, 4 deletions
diff --git a/api/current.txt b/api/current.txt
index fb487b2..f3c654c 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -7634,6 +7634,7 @@ package android.database {
method public abstract float getFloat(int);
method public abstract int getInt(int);
method public abstract long getLong(int);
+ method public abstract android.net.Uri getNotificationUri();
method public abstract int getPosition();
method public abstract short getShort(int);
method public abstract java.lang.String getString(int);
@@ -7739,6 +7740,7 @@ package android.database {
method public float getFloat(int);
method public int getInt(int);
method public long getLong(int);
+ method public android.net.Uri getNotificationUri();
method public int getPosition();
method public short getShort(int);
method public java.lang.String getString(int);
@@ -22628,6 +22630,7 @@ package android.test.mock {
method public float getFloat(int);
method public int getInt(int);
method public long getLong(int);
+ method public android.net.Uri getNotificationUri();
method public int getPosition();
method public short getShort(int);
method public java.lang.String getString(int);
diff --git a/core/java/android/database/AbstractCursor.java b/core/java/android/database/AbstractCursor.java
index 300b4d1..b5b89dd 100644
--- a/core/java/android/database/AbstractCursor.java
+++ b/core/java/android/database/AbstractCursor.java
@@ -369,7 +369,9 @@ public abstract class AbstractCursor implements CrossProcessCursor {
}
public Uri getNotificationUri() {
- return mNotifyUri;
+ synchronized (mSelfObserverLock) {
+ return mNotifyUri;
+ }
}
public boolean getWantsAllOnMoveCalls() {
diff --git a/core/java/android/database/Cursor.java b/core/java/android/database/Cursor.java
index 907833d..7381e2c 100644
--- a/core/java/android/database/Cursor.java
+++ b/core/java/android/database/Cursor.java
@@ -425,6 +425,16 @@ public interface Cursor extends Closeable {
void setNotificationUri(ContentResolver cr, Uri uri);
/**
+ * Return the URI at which notifications of changes in this Cursor's data
+ * will be delivered, as previously set by {@link #setNotificationUri}.
+ * @return Returns a URI that can be used with
+ * {@link ContentResolver#registerContentObserver(android.net.Uri, boolean, ContentObserver)
+ * ContentResolver.registerContentObserver} to find out about changes to this Cursor's
+ * data. May be null if no notification URI has been set.
+ */
+ Uri getNotificationUri();
+
+ /**
* onMove() will only be called across processes if this method returns true.
* @return whether all cursor movement should result in a call to onMove().
*/
diff --git a/core/java/android/database/CursorWrapper.java b/core/java/android/database/CursorWrapper.java
index 7baeb8c..d8fcb17 100644
--- a/core/java/android/database/CursorWrapper.java
+++ b/core/java/android/database/CursorWrapper.java
@@ -194,6 +194,10 @@ public class CursorWrapper implements Cursor {
mCursor.setNotificationUri(cr, uri);
}
+ public Uri getNotificationUri() {
+ return mCursor.getNotificationUri();
+ }
+
public void unregisterContentObserver(ContentObserver observer) {
mCursor.unregisterContentObserver(observer);
}
diff --git a/test-runner/src/android/test/mock/MockCursor.java b/test-runner/src/android/test/mock/MockCursor.java
index baa150a..5b8a4f4 100644
--- a/test-runner/src/android/test/mock/MockCursor.java
+++ b/test-runner/src/android/test/mock/MockCursor.java
@@ -177,17 +177,18 @@ public class MockCursor implements Cursor {
throw new UnsupportedOperationException("unimplemented mock method");
}
- @SuppressWarnings("deprecation")
public void setNotificationUri(ContentResolver cr, Uri uri) {
throw new UnsupportedOperationException("unimplemented mock method");
}
- @SuppressWarnings("deprecation")
+ public Uri getNotificationUri() {
+ throw new UnsupportedOperationException("unimplemented mock method");
+ }
+
public void unregisterContentObserver(ContentObserver observer) {
throw new UnsupportedOperationException("unimplemented mock method");
}
- @SuppressWarnings("deprecation")
public void unregisterDataSetObserver(DataSetObserver observer) {
throw new UnsupportedOperationException("unimplemented mock method");
}