Merge "Handle endpoint name nullability in constructor"
diff --git a/telecomm/java/android/telecom/CallEndpoint.java b/telecomm/java/android/telecom/CallEndpoint.java
index 0b2211d..ed4bf40 100644
--- a/telecomm/java/android/telecom/CallEndpoint.java
+++ b/telecomm/java/android/telecom/CallEndpoint.java
@@ -61,6 +61,13 @@
     /** Indicates that the type of endpoint through which call media flows is an external. */
     public static final int TYPE_STREAMING     = 5;
 
+    /**
+     * Error message attached to IllegalArgumentException when the endpoint name or id is null.
+     * @hide
+     */
+    private static final String CALLENDPOINT_NAME_ID_NULL_ERROR =
+            "CallEndpoint name cannot be null.";
+
     private final CharSequence mName;
     private final int mType;
     private final ParcelUuid mIdentifier;
@@ -81,6 +88,11 @@
      */
     public CallEndpoint(@NonNull CharSequence name, @EndpointType int type,
             @NonNull ParcelUuid id) {
+        // Ensure that endpoint name and id are non-null.
+        if (name == null || id == null) {
+            throw new IllegalArgumentException(CALLENDPOINT_NAME_ID_NULL_ERROR);
+        }
+
         this.mName = name;
         this.mType = type;
         this.mIdentifier = id;
@@ -93,6 +105,11 @@
 
     /** @hide */
     public CallEndpoint(CallEndpoint endpoint) {
+        // Ensure that endpoint name and id are non-null.
+        if (endpoint.getEndpointName() == null || endpoint.getIdentifier() == null) {
+            throw new IllegalArgumentException(CALLENDPOINT_NAME_ID_NULL_ERROR);
+        }
+
         mName = endpoint.getEndpointName();
         mType = endpoint.getEndpointType();
         mIdentifier = endpoint.getIdentifier();