Fix potential NPE when generating accessibility text.

Traced through the original bug report; the problem is that a call to
TextUtils.expandTemplate was being made with a null 2nd parameter.
I traced through the callers to find out where a null could be introduced
and I was unable to identify a potential source.  This change introduces
a last-ditch null check to protect against problems upstream.

Bug: 18684529
Change-Id: I7b608dfedf052d6933e94d1f23a658763b66059a
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index 793a175..77ad333 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -21,6 +21,7 @@
 import android.provider.CallLog.Calls;
 import android.text.SpannableStringBuilder;
 import android.text.TextUtils;
+import android.util.Log;
 
 import com.android.contacts.common.CallUtil;
 import com.android.dialer.PhoneCallDetails;
@@ -31,6 +32,8 @@
  * Helper class to fill in the views of a call log entry.
  */
 /* package */class CallLogListItemHelper {
+    private static final String TAG = "CallLogListItemHelper";
+
     /** Helper for populating the details of a phone call. */
     private final PhoneCallDetailsHelper mPhoneCallDetailsHelper;
     /** Helper for handling phone numbers. */
@@ -79,25 +82,30 @@
      * @param views The views associated with the current call log entry.
      */
     public void setActionContentDescriptions(CallLogListItemViews views) {
+        if (views.nameOrNumber == null) {
+            Log.e(TAG, "setActionContentDescriptions; name or number is null.");
+        }
+
+        // Calling expandTemplate with a null parameter will cause a NullPointerException.
+        // Although we don't expect a null name or number, it is best to protect against it.
+        CharSequence nameOrNumber = views.nameOrNumber == null ? "" : views.nameOrNumber;
+
         views.callBackButtonView.setContentDescription(
                 TextUtils.expandTemplate(
-                        mResources.getString(R.string.description_call_back_action),
-                        views.nameOrNumber));
+                        mResources.getString(R.string.description_call_back_action), nameOrNumber));
 
         views.videoCallButtonView.setContentDescription(
                 TextUtils.expandTemplate(
                         mResources.getString(R.string.description_video_call_action),
-                        views.nameOrNumber));
+                        nameOrNumber));
 
         views.voicemailButtonView.setContentDescription(
                 TextUtils.expandTemplate(
-                        mResources.getString(R.string.description_voicemail_action),
-                        views.nameOrNumber));
+                        mResources.getString(R.string.description_voicemail_action), nameOrNumber));
 
         views.detailsButtonView.setContentDescription(
                 TextUtils.expandTemplate(
-                        mResources.getString(R.string.description_details_action),
-                        views.nameOrNumber));
+                        mResources.getString(R.string.description_details_action), nameOrNumber));
     }
 
     /**