From 428cec9056234e32497a91da91d2f81e9309cd83 Mon Sep 17 00:00:00 2001 From: Brad Ebinger Date: Tue, 15 Mar 2016 14:23:44 -0700 Subject: [PATCH] Update docs to better document PhoneAccountHandle Warns developers to not create PhoneAccountHandles with null arguments. If they do, a log warning is printed, reminding them that the APIs should not be used in this manner. Bug: 26684527 Change-Id: I03895cac9d732ee618649d38176d48620f705a1b --- .../android/telecom/PhoneAccountHandle.java | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/telecomm/java/android/telecom/PhoneAccountHandle.java b/telecomm/java/android/telecom/PhoneAccountHandle.java index 6dc6e9cfd1222..77b510df8ff86 100644 --- a/telecomm/java/android/telecom/PhoneAccountHandle.java +++ b/telecomm/java/android/telecom/PhoneAccountHandle.java @@ -16,6 +16,7 @@ package android.telecom; +import android.annotation.NonNull; import android.content.ComponentName; import android.os.Parcel; import android.os.Parcelable; @@ -33,6 +34,9 @@ import java.util.Objects; * component name. * * + * Note: This Class requires a non-null {@link ComponentName} and {@link UserHandle} to operate + * properly. Passing in invalid parameters will generate a log warning. + * * See {@link PhoneAccount}, {@link TelecomManager}. */ public final class PhoneAccountHandle implements Parcelable { @@ -41,15 +45,16 @@ public final class PhoneAccountHandle implements Parcelable { private final UserHandle mUserHandle; public PhoneAccountHandle( - ComponentName componentName, - String id) { + @NonNull ComponentName componentName, + @NonNull String id) { this(componentName, id, Process.myUserHandle()); } public PhoneAccountHandle( - ComponentName componentName, - String id, - UserHandle userHandle) { + @NonNull ComponentName componentName, + @NonNull String id, + @NonNull UserHandle userHandle) { + checkParameters(componentName, userHandle); mComponentName = componentName; mId = id; mUserHandle = userHandle; @@ -136,6 +141,17 @@ public final class PhoneAccountHandle implements Parcelable { mUserHandle.writeToParcel(out, flags); } + private void checkParameters(ComponentName componentName, UserHandle userHandle) { + if(componentName == null) { + android.util.Log.w("PhoneAccountHandle", new Exception("PhoneAccountHandle has " + + "been created with null ComponentName!")); + } + if(userHandle == null) { + android.util.Log.w("PhoneAccountHandle", new Exception("PhoneAccountHandle has " + + "been created with null UserHandle!")); + } + } + public static final Creator CREATOR = new Creator() { @Override public PhoneAccountHandle createFromParcel(Parcel in) {