Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3768a7aa authored by wangqi's avatar wangqi Committed by Copybara-Service
Browse files

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
parent f3d253b1
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
@@ -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;