diff options
author | Tyler Gunn <tgunn@google.com> | 2014-12-09 15:09:38 -0800 |
---|---|---|
committer | Tyler Gunn <tgunn@google.com> | 2014-12-09 15:09:38 -0800 |
commit | 5c52bb885d49475ad8c8ed2d49fc669c9d865431 (patch) | |
tree | 71231eeef8d2f0d6b8b739a8cbe8998b1c21a3d5 /src | |
parent | f5dc3a523b76722e7696831edb8b4555f7430a7d (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.java | 22 |
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)); } /** |