summaryrefslogtreecommitdiff
path: root/core/java/android/util/LongSparseLongArray.java
diff options
context:
space:
mode:
authorPhilip P. Moltmann <moltmann@google.com>2019-08-19 15:00:40 -0700
committerPhilip P. Moltmann <moltmann@google.com>2019-10-17 14:15:07 -0700
commit59076d89573ff4a155032b70d13dcfee12fd5f2b (patch)
tree3c7e6d13bf09b757af0b58bc4374c0e5f18f4281 /core/java/android/util/LongSparseLongArray.java
parent7e7af89246aab12b80170689a7a4098c65704853 (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.java47
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;
+ }
+ }
}