diff options
| author | 2019-03-04 20:14:29 +0000 | |
|---|---|---|
| committer | 2019-03-04 20:14:29 +0000 | |
| commit | 6ce9003ef0c28c3ea9de43550dfa36e3d067c1d5 (patch) | |
| tree | 7dcb1e51efeef5ee4b1520311b1fa40895aee58c | |
| parent | e7979eb41fb7feceb31cd562c6f49fe07aa11311 (diff) | |
| parent | 7622add87554168a7d5d8ae61596e378948f801f (diff) | |
Merge "Add null-checks: RuntimePermissionPresentationInfo"
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/permission/RuntimePermissionPresentationInfo.java | 21 |
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) { |