diff options
-rw-r--r-- | core/java/android/database/AbstractCursor.java | 22 | ||||
-rw-r--r-- | core/java/android/database/CharArrayBuffer.java | 1 | ||||
-rw-r--r-- | core/java/android/database/ContentObservable.java | 1 | ||||
-rw-r--r-- | core/java/android/database/ContentObserver.java | 13 | ||||
-rw-r--r-- | core/java/android/database/Cursor.java | 1 | ||||
-rw-r--r-- | core/java/android/database/CursorIndexOutOfBoundsException.java | 1 | ||||
-rw-r--r-- | core/java/android/database/CursorJoiner.java | 1 | ||||
-rw-r--r-- | core/java/android/database/CursorWrapper.java | 1 | ||||
-rw-r--r-- | core/java/android/database/DataSetObservable.java | 1 | ||||
-rw-r--r-- | core/java/android/database/DataSetObserver.java | 1 | ||||
-rw-r--r-- | core/java/android/database/MatrixCursor.java | 1 | ||||
-rw-r--r-- | core/java/android/database/MergeCursor.java | 1 | ||||
-rw-r--r-- | core/java/android/database/Observable.java | 1 | ||||
-rw-r--r-- | ravenwood/ravenwood-annotation-allowed-classes.txt | 15 |
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 |