From 3768a7aa54bdcb14046df258585dfdbc5b04fbb8 Mon Sep 17 00:00:00 2001 From: wangqi Date: Fri, 4 May 2018 15:22:45 -0700 Subject: Fix bug that showing block option for private number. This happens when the number exists in call log, which usually shouldn't happen but some OEMs may have different behavior. Adding an additional check to align it with call action so block option won't show up if the number is not callable. Bug: 79202933 Test: verified on LG device. PiperOrigin-RevId: 195480184 Change-Id: Icde5f5b0914b2198d9031d188b22a65d6a3085cc --- .../android/dialer/app/calllog/CallLogListItemViewHolder.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java') diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java index 54748387e..b7781f343 100644 --- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java +++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java @@ -782,7 +782,7 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder callComposeButtonView.setVisibility(isCallComposerCapable ? View.VISIBLE : View.GONE); - updateBlockReportActions(isVoicemailNumber); + updateBlockReportActions(canPlaceCallToNumber, isVoicemailNumber); } private boolean isFullyUndialableVoicemail() { @@ -1172,14 +1172,15 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder } } - private void updateBlockReportActions(boolean isVoicemailNumber) { + private void updateBlockReportActions(boolean canPlaceCallToNumber, boolean isVoicemailNumber) { // Set block/spam actions. blockReportView.setVisibility(View.GONE); blockView.setVisibility(View.GONE); unblockView.setVisibility(View.GONE); reportNotSpamView.setVisibility(View.GONE); String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso); - if (isVoicemailNumber + if (!canPlaceCallToNumber + || isVoicemailNumber || !FilteredNumbersUtil.canBlockNumber(context, e164Number, number) || !FilteredNumberCompat.canAttemptBlockOperations(context)) { return; @@ -1260,7 +1261,9 @@ public final class CallLogListItemViewHolder extends RecyclerView.ViewHolder String e164Number = PhoneNumberUtils.formatNumberToE164(number, countryIso); boolean isVoicemailNumber = callLogCache.isVoicemailNumber(accountHandle, number); - if (!isVoicemailNumber + boolean canPlaceCallToNumber = PhoneNumberHelper.canPlaceCallsTo(number, numberPresentation); + if (canPlaceCallToNumber + && !isVoicemailNumber && FilteredNumbersUtil.canBlockNumber(context, e164Number, number) && FilteredNumberCompat.canAttemptBlockOperations(context)) { boolean isBlocked = blockId != null; -- cgit v1.2.3