diff options
| author | Philip P. Moltmann <moltmann@google.com> | 2016-01-14 14:45:04 -0800 |
|---|---|---|
| committer | Philip P. Moltmann <moltmann@google.com> | 2016-01-14 15:59:44 -0800 |
| commit | cdf2b400349ca22fedfeb5a2deb8a043791b22ef (patch) | |
| tree | b4f87721bc788f5fea633125769176ff7f841ede /core/java/android | |
| parent | cde1c2a7174833dc9c73c261ea6d6be9f7a4634b (diff) | |
Enforce non-nullness in PrinterId and exploit it.
Change-Id: Ifdf3b2329548a665d609dd66b738baab5c765b54
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/print/PrinterId.java | 28 | ||||
| -rw-r--r-- | core/java/android/printservice/PrintService.java | 3 |
2 files changed, 15 insertions, 16 deletions
diff --git a/core/java/android/print/PrinterId.java b/core/java/android/print/PrinterId.java index 83efe8020d98..ff9c0df58f91 100644 --- a/core/java/android/print/PrinterId.java +++ b/core/java/android/print/PrinterId.java @@ -20,16 +20,17 @@ import android.annotation.NonNull; import android.content.ComponentName; import android.os.Parcel; import android.os.Parcelable; -import android.text.TextUtils; + +import com.android.internal.util.Preconditions; /** * This class represents the unique id of a printer. */ public final class PrinterId implements Parcelable { - private final ComponentName mServiceName; + private final @NonNull ComponentName mServiceName; - private final String mLocalId; + private final @NonNull String mLocalId; /** * Creates a new instance. @@ -39,14 +40,14 @@ public final class PrinterId implements Parcelable { * * @hide */ - public PrinterId(ComponentName serviceName, String localId) { + public PrinterId(@NonNull ComponentName serviceName, @NonNull String localId) { mServiceName = serviceName; mLocalId = localId; } - private PrinterId(Parcel parcel) { - mServiceName = parcel.readParcelable(null); - mLocalId = parcel.readString(); + private PrinterId(@NonNull Parcel parcel) { + mServiceName = Preconditions.checkNotNull((ComponentName) parcel.readParcelable(null)); + mLocalId = Preconditions.checkNotNull(parcel.readString()); } /** @@ -56,7 +57,7 @@ public final class PrinterId implements Parcelable { * * @hide */ - public ComponentName getServiceName() { + public @NonNull ComponentName getServiceName() { return mServiceName; } @@ -93,14 +94,10 @@ public final class PrinterId implements Parcelable { return false; } PrinterId other = (PrinterId) object; - if (mServiceName == null) { - if (other.mServiceName != null) { - return false; - } - } else if (!mServiceName.equals(other.mServiceName)) { + if (!mServiceName.equals(other.mServiceName)) { return false; } - if (!TextUtils.equals(mLocalId, other.mLocalId)) { + if (!mLocalId.equals(other.mLocalId)) { return false; } return true; @@ -110,8 +107,7 @@ public final class PrinterId implements Parcelable { public int hashCode() { final int prime = 31; int hashCode = 1; - hashCode = prime * hashCode + ((mServiceName != null) - ? mServiceName.hashCode() : 1); + hashCode = prime * hashCode + mServiceName.hashCode(); hashCode = prime * hashCode + mLocalId.hashCode(); return hashCode; } diff --git a/core/java/android/printservice/PrintService.java b/core/java/android/printservice/PrintService.java index d0037b762560..310449222a0b 100644 --- a/core/java/android/printservice/PrintService.java +++ b/core/java/android/printservice/PrintService.java @@ -30,6 +30,8 @@ import android.print.PrintJobInfo; import android.print.PrinterId; import android.util.Log; +import com.android.internal.util.Preconditions; + import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -346,6 +348,7 @@ public abstract class PrintService extends Service { */ public final PrinterId generatePrinterId(String localId) { throwIfNotCalledOnMainThread(); + localId = Preconditions.checkNotNull(localId, "localId cannot be null"); return new PrinterId(new ComponentName(getPackageName(), getClass().getName()), localId); } |
