summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorPhilip P. Moltmann <moltmann@google.com>2016-01-14 14:45:04 -0800
committerPhilip P. Moltmann <moltmann@google.com>2016-01-14 15:59:44 -0800
commitcdf2b400349ca22fedfeb5a2deb8a043791b22ef (patch)
treeb4f87721bc788f5fea633125769176ff7f841ede /core/java/android
parentcde1c2a7174833dc9c73c261ea6d6be9f7a4634b (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.java28
-rw-r--r--core/java/android/printservice/PrintService.java3
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);
}