summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Philip P. Moltmann <moltmann@google.com> 2019-03-04 20:14:29 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-03-04 20:14:29 +0000
commit6ce9003ef0c28c3ea9de43550dfa36e3d067c1d5 (patch)
tree7dcb1e51efeef5ee4b1520311b1fa40895aee58c
parente7979eb41fb7feceb31cd562c6f49fe07aa11311 (diff)
parent7622add87554168a7d5d8ae61596e378948f801f (diff)
Merge "Add null-checks: RuntimePermissionPresentationInfo"
-rw-r--r--api/system-current.txt2
-rw-r--r--core/java/android/permission/RuntimePermissionPresentationInfo.java21
2 files changed, 13 insertions, 10 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index 960b11a769d8..418dfb19ea2e 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -5707,7 +5707,7 @@ package android.permission {
}
public final class RuntimePermissionPresentationInfo implements android.os.Parcelable {
- ctor public RuntimePermissionPresentationInfo(CharSequence, boolean, boolean);
+ ctor public RuntimePermissionPresentationInfo(@NonNull CharSequence, boolean, boolean);
method public int describeContents();
method @NonNull public CharSequence getLabel();
method public boolean isGranted();
diff --git a/core/java/android/permission/RuntimePermissionPresentationInfo.java b/core/java/android/permission/RuntimePermissionPresentationInfo.java
index d66789fa1ac2..4fce14cef3f0 100644
--- a/core/java/android/permission/RuntimePermissionPresentationInfo.java
+++ b/core/java/android/permission/RuntimePermissionPresentationInfo.java
@@ -21,6 +21,8 @@ import android.annotation.SystemApi;
import android.os.Parcel;
import android.os.Parcelable;
+import com.android.internal.util.Preconditions;
+
/**
* This class contains information about how a runtime permission
* is to be presented in the UI. A single runtime permission
@@ -35,7 +37,7 @@ public final class RuntimePermissionPresentationInfo implements Parcelable {
private static final int FLAG_GRANTED = 1 << 0;
private static final int FLAG_STANDARD = 1 << 1;
- private final CharSequence mLabel;
+ private final @NonNull CharSequence mLabel;
private final int mFlags;
/**
@@ -45,8 +47,10 @@ public final class RuntimePermissionPresentationInfo implements Parcelable {
* @param granted Whether the permission is granted.
* @param standard Whether this is a platform-defined permission.
*/
- public RuntimePermissionPresentationInfo(CharSequence label,
+ public RuntimePermissionPresentationInfo(@NonNull CharSequence label,
boolean granted, boolean standard) {
+ Preconditions.checkNotNull(label);
+
mLabel = label;
int flags = 0;
if (granted) {
@@ -58,11 +62,6 @@ public final class RuntimePermissionPresentationInfo implements Parcelable {
mFlags = flags;
}
- private RuntimePermissionPresentationInfo(Parcel parcel) {
- mLabel = parcel.readCharSequence();
- mFlags = parcel.readInt();
- }
-
/**
* @return Whether the permission is granted.
*/
@@ -97,10 +96,14 @@ public final class RuntimePermissionPresentationInfo implements Parcelable {
parcel.writeInt(mFlags);
}
- public static final @android.annotation.NonNull Creator<RuntimePermissionPresentationInfo> CREATOR =
+ public static final @NonNull Creator<RuntimePermissionPresentationInfo> CREATOR =
new Creator<RuntimePermissionPresentationInfo>() {
public RuntimePermissionPresentationInfo createFromParcel(Parcel source) {
- return new RuntimePermissionPresentationInfo(source);
+ CharSequence label = source.readCharSequence();
+ int flags = source.readInt();
+
+ return new RuntimePermissionPresentationInfo(label, (flags & FLAG_GRANTED) != 0,
+ (flags & FLAG_STANDARD) != 0);
}
public RuntimePermissionPresentationInfo[] newArray(int size) {