summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2014-12-09 15:09:38 -0800
committerTyler Gunn <tgunn@google.com>2014-12-09 15:09:38 -0800
commit5c52bb885d49475ad8c8ed2d49fc669c9d865431 (patch)
tree71231eeef8d2f0d6b8b739a8cbe8998b1c21a3d5 /src
parentf5dc3a523b76722e7696831edb8b4555f7430a7d (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/com/android/dialer/calllog/CallLogListItemHelper.java22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/com/android/dialer/calllog/CallLogListItemHelper.java b/src/com/android/dialer/calllog/CallLogListItemHelper.java
index 793a1755c..77ad333d9 100644
--- a/src/com/android/dialer/calllog/CallLogListItemHelper.java
+++ b/src/com/android/dialer/calllog/CallLogListItemHelper.java
@@ -21,6 +21,7 @@ import android.content.res.Resources;
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 @@ import com.android.dialer.R;
* 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 @@ import com.android.dialer.R;
* @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));
}
/**