summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/database/AbstractCursor.java22
-rw-r--r--core/java/android/database/CharArrayBuffer.java1
-rw-r--r--core/java/android/database/ContentObservable.java1
-rw-r--r--core/java/android/database/ContentObserver.java13
-rw-r--r--core/java/android/database/Cursor.java1
-rw-r--r--core/java/android/database/CursorIndexOutOfBoundsException.java1
-rw-r--r--core/java/android/database/CursorJoiner.java1
-rw-r--r--core/java/android/database/CursorWrapper.java1
-rw-r--r--core/java/android/database/DataSetObservable.java1
-rw-r--r--core/java/android/database/DataSetObserver.java1
-rw-r--r--core/java/android/database/MatrixCursor.java1
-rw-r--r--core/java/android/database/MergeCursor.java1
-rw-r--r--core/java/android/database/Observable.java1
-rw-r--r--ravenwood/ravenwood-annotation-allowed-classes.txt15
14 files changed, 55 insertions, 6 deletions
diff --git a/core/java/android/database/AbstractCursor.java b/core/java/android/database/AbstractCursor.java
index 69d573f84975..80f085f5b9fe 100644
--- a/core/java/android/database/AbstractCursor.java
+++ b/core/java/android/database/AbstractCursor.java
@@ -33,11 +33,11 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
-
/**
* This is an abstract cursor class that handles a lot of the common code
* that all cursors need to deal with and is provided for convenience reasons.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class AbstractCursor implements CrossProcessCursor {
private static final String TAG = "Cursor";
@@ -89,7 +89,7 @@ public abstract class AbstractCursor implements CrossProcessCursor {
private Bundle mExtras = Bundle.EMPTY;
/** CloseGuard to detect leaked cursor **/
- private final CloseGuard mCloseGuard = CloseGuard.get();
+ private final CloseGuard mCloseGuard;
/* -------------------------------------------------------- */
/* These need to be implemented by subclasses */
@@ -184,7 +184,9 @@ public abstract class AbstractCursor implements CrossProcessCursor {
mClosed = true;
mContentObservable.unregisterAll();
onDeactivateOrClose();
- mCloseGuard.close();
+ if (mCloseGuard != null) {
+ mCloseGuard.close();
+ }
}
/**
@@ -224,7 +226,19 @@ public abstract class AbstractCursor implements CrossProcessCursor {
/* Implementation */
public AbstractCursor() {
mPos = -1;
- mCloseGuard.open("AbstractCursor.close");
+ mCloseGuard = initCloseGuard();
+ if (mCloseGuard != null) {
+ mCloseGuard.open("AbstractCursor.close");
+ }
+ }
+
+ @android.ravenwood.annotation.RavenwoodReplace
+ private CloseGuard initCloseGuard() {
+ return CloseGuard.get();
+ }
+
+ private CloseGuard initCloseGuard$ravenwood() {
+ return null;
}
@Override
diff --git a/core/java/android/database/CharArrayBuffer.java b/core/java/android/database/CharArrayBuffer.java
index 73781b763c3d..4927654c38b9 100644
--- a/core/java/android/database/CharArrayBuffer.java
+++ b/core/java/android/database/CharArrayBuffer.java
@@ -19,6 +19,7 @@ package android.database;
/**
* This is used for {@link Cursor#copyStringToBuffer}
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class CharArrayBuffer {
public CharArrayBuffer(int size) {
data = new char[size];
diff --git a/core/java/android/database/ContentObservable.java b/core/java/android/database/ContentObservable.java
index 7692bb39da71..dc35b5af2a98 100644
--- a/core/java/android/database/ContentObservable.java
+++ b/core/java/android/database/ContentObservable.java
@@ -23,6 +23,7 @@ import android.net.Uri;
* that provides methods for sending notifications to a list of
* {@link ContentObserver} objects.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class ContentObservable extends Observable<ContentObserver> {
// Even though the generic method defined in Observable would be perfectly
// fine on its own, we can't delete this overridden method because it would
diff --git a/core/java/android/database/ContentObserver.java b/core/java/android/database/ContentObserver.java
index c27ee51b9315..39c9400e7064 100644
--- a/core/java/android/database/ContentObserver.java
+++ b/core/java/android/database/ContentObserver.java
@@ -36,6 +36,7 @@ import java.util.Collection;
* Receives call backs for changes to content.
* Must be implemented by objects which are added to a {@link ContentObservable}.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class ContentObserver {
/**
* Starting in {@link android.os.Build.VERSION_CODES#R}, there is a new
@@ -49,7 +50,6 @@ public abstract class ContentObserver {
@ChangeId
@EnabledAfter(targetSdkVersion=android.os.Build.VERSION_CODES.Q)
private static final long ADD_CONTENT_OBSERVER_FLAGS = 150939131L;
-
private final Object mLock = new Object();
private Transport mTransport; // guarded by mLock
@@ -216,7 +216,7 @@ public abstract class ContentObserver {
// There are dozens of people relying on the hidden API inside the
// system UID, so hard-code the old behavior for all of them; for
// everyone else we gate based on a specific change
- if (!CompatChanges.isChangeEnabled(ADD_CONTENT_OBSERVER_FLAGS)
+ if (!isChangeEnabledAddContentObserverFlags()
|| android.os.Process.myUid() == android.os.Process.SYSTEM_UID) {
// Deliver userId through argument to preserve hidden API behavior
onChange(selfChange, uris, flags, UserHandle.of(userId));
@@ -225,6 +225,15 @@ public abstract class ContentObserver {
}
}
+ @android.ravenwood.annotation.RavenwoodReplace
+ private static boolean isChangeEnabledAddContentObserverFlags() {
+ return CompatChanges.isChangeEnabled(ADD_CONTENT_OBSERVER_FLAGS);
+ }
+
+ private static boolean isChangeEnabledAddContentObserverFlags$ravenwood() {
+ return true;
+ }
+
/**
* Dispatches a change notification to the observer.
* <p>
diff --git a/core/java/android/database/Cursor.java b/core/java/android/database/Cursor.java
index afa1c209c811..cb1d3f5252b2 100644
--- a/core/java/android/database/Cursor.java
+++ b/core/java/android/database/Cursor.java
@@ -40,6 +40,7 @@ import java.util.List;
* Implementations should subclass {@link AbstractCursor}.
* </p>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public interface Cursor extends Closeable {
/*
* Values returned by {@link #getType(int)}.
diff --git a/core/java/android/database/CursorIndexOutOfBoundsException.java b/core/java/android/database/CursorIndexOutOfBoundsException.java
index 1f77d0047191..89d44182a886 100644
--- a/core/java/android/database/CursorIndexOutOfBoundsException.java
+++ b/core/java/android/database/CursorIndexOutOfBoundsException.java
@@ -19,6 +19,7 @@ package android.database;
/**
* An exception indicating that a cursor is out of bounds.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class CursorIndexOutOfBoundsException extends IndexOutOfBoundsException {
public CursorIndexOutOfBoundsException(int index, int size) {
diff --git a/core/java/android/database/CursorJoiner.java b/core/java/android/database/CursorJoiner.java
index a95263b67b43..2eb81a1eed5e 100644
--- a/core/java/android/database/CursorJoiner.java
+++ b/core/java/android/database/CursorJoiner.java
@@ -42,6 +42,7 @@ import java.util.Iterator;
* }
* </pre>
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class CursorJoiner
implements Iterator<CursorJoiner.Result>, Iterable<CursorJoiner.Result> {
private Cursor mCursorLeft;
diff --git a/core/java/android/database/CursorWrapper.java b/core/java/android/database/CursorWrapper.java
index 4496f805cc2e..6572f99cdd07 100644
--- a/core/java/android/database/CursorWrapper.java
+++ b/core/java/android/database/CursorWrapper.java
@@ -27,6 +27,7 @@ import java.util.List;
* Wrapper class for Cursor that delegates all calls to the actual cursor object. The primary
* use for this class is to extend a cursor while overriding only a subset of its methods.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class CursorWrapper implements Cursor {
/** @hide */
@UnsupportedAppUsage
diff --git a/core/java/android/database/DataSetObservable.java b/core/java/android/database/DataSetObservable.java
index ca77a13c2352..ff47f9a53a9a 100644
--- a/core/java/android/database/DataSetObservable.java
+++ b/core/java/android/database/DataSetObservable.java
@@ -21,6 +21,7 @@ package android.database;
* that provides methods for sending notifications to a list of
* {@link DataSetObserver} objects.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class DataSetObservable extends Observable<DataSetObserver> {
/**
* Invokes {@link DataSetObserver#onChanged} on each observer.
diff --git a/core/java/android/database/DataSetObserver.java b/core/java/android/database/DataSetObserver.java
index 28616c80bd5a..13469cbf2645 100644
--- a/core/java/android/database/DataSetObserver.java
+++ b/core/java/android/database/DataSetObserver.java
@@ -21,6 +21,7 @@ package android.database;
* that are observed are {@link Cursor}s or {@link android.widget.Adapter}s.
* DataSetObserver must be implemented by objects which are added to a DataSetObservable.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class DataSetObserver {
/**
* This method is called when the entire data set has changed,
diff --git a/core/java/android/database/MatrixCursor.java b/core/java/android/database/MatrixCursor.java
index 050a49ac959e..ad35b2f96eab 100644
--- a/core/java/android/database/MatrixCursor.java
+++ b/core/java/android/database/MatrixCursor.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
* {@link #newRow()} to add rows. Automatically expands internal capacity
* as needed.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MatrixCursor extends AbstractCursor {
private final String[] columnNames;
diff --git a/core/java/android/database/MergeCursor.java b/core/java/android/database/MergeCursor.java
index 272cfa24181c..5a5675694040 100644
--- a/core/java/android/database/MergeCursor.java
+++ b/core/java/android/database/MergeCursor.java
@@ -22,6 +22,7 @@ package android.database;
* may be different if that is desired. Calls to getColumns, getColumnIndex, etc will return the
* value for the row that the MergeCursor is currently pointing at.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public class MergeCursor extends AbstractCursor
{
private DataSetObserver mObserver = new DataSetObserver() {
diff --git a/core/java/android/database/Observable.java b/core/java/android/database/Observable.java
index aff32db1bf9f..a3057aca7936 100644
--- a/core/java/android/database/Observable.java
+++ b/core/java/android/database/Observable.java
@@ -26,6 +26,7 @@ import java.util.ArrayList;
*
* @param T The observer type.
*/
+@android.ravenwood.annotation.RavenwoodKeepWholeClass
public abstract class Observable<T> {
/**
* The list of observers. An observer can be in the list at most
diff --git a/ravenwood/ravenwood-annotation-allowed-classes.txt b/ravenwood/ravenwood-annotation-allowed-classes.txt
index 0290bbe64439..128155cc63df 100644
--- a/ravenwood/ravenwood-annotation-allowed-classes.txt
+++ b/ravenwood/ravenwood-annotation-allowed-classes.txt
@@ -20,3 +20,18 @@ android.content.ContentValues
android.content.Intent
android.content.IntentFilter
android.content.UriMatcher
+
+android.database.AbstractCursor
+android.database.CharArrayBuffer
+android.database.ContentObservable
+android.database.ContentObserver
+android.database.Cursor
+android.database.CursorIndexOutOfBoundsException
+android.database.CursorJoiner
+android.database.CursorWrapper
+android.database.DataSetObservable
+android.database.DataSetObserver
+android.database.MatrixCursor
+android.database.MatrixCursor$RowBuilder
+android.database.MergeCursor
+android.database.Observable