diff options
| author | Philip P. Moltmann <moltmann@google.com> | 2019-08-19 15:00:40 -0700 |
|---|---|---|
| committer | Philip P. Moltmann <moltmann@google.com> | 2019-10-17 14:15:07 -0700 |
| commit | 59076d89573ff4a155032b70d13dcfee12fd5f2b (patch) | |
| tree | 3c7e6d13bf09b757af0b58bc4374c0e5f18f4281 /core/java/android/util/LongSparseLongArray.java | |
| parent | 7e7af89246aab12b80170689a7a4098c65704853 (diff) | |
Add feature context
Currently only used by app-ops, but can be used by other modules too.
AppOps will collect app-ops based on feature. Only the most basic
parts of app-ops are supporting features yet. The rest will be added
later.
Test: atest CtsAppOpsTestCases
atest RunSettingsLibRoboTests
atest com.android.server.wm.ActivityStarterTests
m -j doc-comment-check-docs
Bug: 136595429
Change-Id: Ia664f4ff1c1c2ceea721d76dc491ec50c237e9ce
Diffstat (limited to 'core/java/android/util/LongSparseLongArray.java')
| -rw-r--r-- | core/java/android/util/LongSparseLongArray.java | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/core/java/android/util/LongSparseLongArray.java b/core/java/android/util/LongSparseLongArray.java index 7b7eea09e884..9ffd4f05bd47 100644 --- a/core/java/android/util/LongSparseLongArray.java +++ b/core/java/android/util/LongSparseLongArray.java @@ -17,9 +17,11 @@ package android.util; import android.annotation.UnsupportedAppUsage; +import android.os.Parcel; import com.android.internal.util.ArrayUtils; import com.android.internal.util.GrowingArrayUtils; +import com.android.internal.util.Preconditions; import libcore.util.EmptyArray; @@ -283,4 +285,49 @@ public class LongSparseLongArray implements Cloneable { buffer.append('}'); return buffer.toString(); } + + /** + * @hide + */ + public static class Parcelling implements com.android.internal.util.Parcelling { + @Override + public void parcel(Object item, Parcel dest, int parcelFlags) { + if (item == null) { + dest.writeInt(-1); + return; + } + + LongSparseLongArray array = (LongSparseLongArray) item; + dest.writeInt(array.mSize); + dest.writeLongArray(array.mKeys); + dest.writeLongArray(array.mValues); + } + + @Override + public Object unparcel(Parcel source) { + int size = source.readInt(); + if (size == -1) { + return null; + } + + LongSparseLongArray array = new LongSparseLongArray(0); + + array.mSize = size; + array.mKeys = source.createLongArray(); + array.mValues = source.createLongArray(); + + // Make sure array is sane + Preconditions.checkArgument(array.mKeys.length >= size); + Preconditions.checkArgument(array.mValues.length >= size); + + if (size > 0) { + long last = array.mKeys[0]; + for (int i = 1; i < size; i++) { + Preconditions.checkArgument(last < array.mKeys[i]); + } + } + + return array; + } + } } |
