From ee506ae30e8df1a13af215676e9e29a07bd8d75a Mon Sep 17 00:00:00 2001 From: linyuh Date: Fri, 18 May 2018 14:33:33 -0700 Subject: Don't show an outgoing call to a spam number as spam. Bug: 79770053 Test: SpamTest + Existing tests PiperOrigin-RevId: 197201496 Change-Id: Iff2eb03d00d3b559d2a008487b19a2d044b2cb5b --- .../dialer/calllogutils/CallLogEntryText.java | 36 ++++++++++++---------- .../dialer/calllogutils/PhotoInfoBuilder.java | 12 ++++++-- 2 files changed, 29 insertions(+), 19 deletions(-) (limited to 'java/com/android/dialer/calllogutils') diff --git a/java/com/android/dialer/calllogutils/CallLogEntryText.java b/java/com/android/dialer/calllogutils/CallLogEntryText.java index 54b1e195a..acf8ef932 100644 --- a/java/com/android/dialer/calllogutils/CallLogEntryText.java +++ b/java/com/android/dialer/calllogutils/CallLogEntryText.java @@ -21,6 +21,7 @@ import android.provider.CallLog.Calls; import android.text.TextUtils; import com.android.dialer.calllog.model.CoalescedRow; import com.android.dialer.duo.DuoComponent; +import com.android.dialer.spam.Spam; import com.android.dialer.time.Clock; import com.google.common.base.Optional; import com.google.common.collect.Collections2; @@ -80,13 +81,15 @@ public final class CallLogEntryText { *

Rules: * *

* *

Examples: @@ -119,7 +122,7 @@ public final class CallLogEntryText { if (row.getNumberAttributes().getIsBlocked()) { components.add(context.getText(R.string.new_call_log_secondary_blocked)); } - if (row.getNumberAttributes().getIsSpam()) { + if (Spam.shouldShowAsSpam(row.getNumberAttributes().getIsSpam(), row.getCallType())) { components.add(context.getText(R.string.new_call_log_secondary_spam)); } @@ -141,15 +144,15 @@ public final class CallLogEntryText { public static CharSequence buildSecondaryTextForBottomSheet(Context context, CoalescedRow row) { /* * Rules: - * For emergency numbers: + * For an emergency number: * Number - * For numbers that are not spam or blocked: + * Number - not blocked, call - not spam: * $Label(, Duo video|Carrier video)?|$Location [• NumberIfNoName]? - * For blocked non-spam numbers: + * Number - blocked, call - not spam: * Blocked • $Label(, Duo video|Carrier video)?|$Location [• NumberIfNoName]? - * For spam but not blocked numbers: + * Number - not blocked, call - spam: * Spam • $Label(, Duo video|Carrier video)? [• NumberIfNoName]? - * For blocked spam numbers: + * Number - blocked, call - spam: * Blocked • Spam • $Label(, Duo video|Carrier video)? [• NumberIfNoName]? * * The number is shown at the end if there is no name for the entry. (It is shown in primary @@ -178,7 +181,7 @@ public final class CallLogEntryText { if (row.getNumberAttributes().getIsBlocked()) { components.add(context.getText(R.string.new_call_log_secondary_blocked)); } - if (row.getNumberAttributes().getIsSpam()) { + if (Spam.shouldShowAsSpam(row.getNumberAttributes().getIsSpam(), row.getCallType())) { components.add(context.getText(R.string.new_call_log_secondary_spam)); } @@ -234,8 +237,9 @@ public final class CallLogEntryText { // Show the location if // (1) there is no number type label, and - // (2) the number is not spam. - if (TextUtils.isEmpty(numberTypeLabel) && !row.getNumberAttributes().getIsSpam()) { + // (2) the call should not be shown as spam. + if (TextUtils.isEmpty(numberTypeLabel) + && !Spam.shouldShowAsSpam(row.getNumberAttributes().getIsSpam(), row.getCallType())) { // If number attributes contain a location (obtained from a PhoneLookup), use it instead // of the one from the annotated call log. String location = diff --git a/java/com/android/dialer/calllogutils/PhotoInfoBuilder.java b/java/com/android/dialer/calllogutils/PhotoInfoBuilder.java index 8d193bfd3..0677c9114 100644 --- a/java/com/android/dialer/calllogutils/PhotoInfoBuilder.java +++ b/java/com/android/dialer/calllogutils/PhotoInfoBuilder.java @@ -21,6 +21,7 @@ import android.support.v4.os.BuildCompat; import com.android.dialer.NumberAttributes; import com.android.dialer.calllog.model.CoalescedRow; import com.android.dialer.glidephotomanager.PhotoInfo; +import com.android.dialer.spam.Spam; import com.android.dialer.voicemail.model.VoicemailEntry; /** Builds {@link PhotoInfo} from other data types. */ @@ -31,6 +32,9 @@ public final class PhotoInfoBuilder { return fromNumberAttributes(coalescedRow.getNumberAttributes()) .setFormattedNumber(coalescedRow.getFormattedNumber()) .setIsVoicemail(coalescedRow.getIsVoicemailCall()) + .setIsSpam( + Spam.shouldShowAsSpam( + coalescedRow.getNumberAttributes().getIsSpam(), coalescedRow.getCallType())) .setIsVideo((coalescedRow.getFeatures() & Calls.FEATURES_VIDEO) == Calls.FEATURES_VIDEO) .setIsRtt( BuildCompat.isAtLeastP() @@ -40,7 +44,10 @@ public final class PhotoInfoBuilder { /** Returns a {@link PhotoInfo.Builder} with info from {@link VoicemailEntry}. */ public static PhotoInfo.Builder fromVoicemailEntry(VoicemailEntry voicemailEntry) { return fromNumberAttributes(voicemailEntry.getNumberAttributes()) - .setFormattedNumber(voicemailEntry.getFormattedNumber()); + .setFormattedNumber(voicemailEntry.getFormattedNumber()) + .setIsSpam( + Spam.shouldShowAsSpam( + voicemailEntry.getNumberAttributes().getIsSpam(), voicemailEntry.getCallType())); } /** Returns a {@link PhotoInfo.Builder} with info from {@link NumberAttributes}. */ @@ -51,7 +58,6 @@ public final class PhotoInfoBuilder { .setPhotoId(numberAttributes.getPhotoId()) .setLookupUri(numberAttributes.getLookupUri()) .setIsBusiness(numberAttributes.getIsBusiness()) - .setIsBlocked(numberAttributes.getIsBlocked()) - .setIsSpam(numberAttributes.getIsSpam()); + .setIsBlocked(numberAttributes.getIsBlocked()); } } -- cgit v1.2.3