diff options
author | Android Dialer <noreply@google.com> | 2018-03-23 21:10:59 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-26 22:22:40 -0700 |
commit | 07d6d00a5cc6c1aeb1befaccc1e832b3d5b398d8 (patch) | |
tree | 91cf3d0fc7f850ae7fcb334532ba54517e1b5108 /java | |
parent | 43293286a257c39e173b0dc9a93ff473276eba89 (diff) |
Move spam setting related methods out of spam interface into a separate spam
setting interface.
Test: All the existing tests
PiperOrigin-RevId: 190314880
Change-Id: I030acbd70120f508c5a4616757d89113524110fa
Diffstat (limited to 'java')
14 files changed, 221 insertions, 139 deletions
diff --git a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java index 5c7641c80..d52ac3241 100644 --- a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java +++ b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java @@ -32,6 +32,7 @@ import com.android.dialer.logging.Logger; import com.android.dialer.logging.ReportingLocation; import com.android.dialer.spam.Spam; import com.android.dialer.spam.SpamComponent; +import com.android.dialer.spam.SpamSettings; import com.android.dialer.spam.promo.SpamBlockingPromoHelper; /** Listener to show dialogs for block and report spam actions. */ @@ -43,6 +44,7 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic private final RecyclerView.Adapter adapter; private final FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler; private final Spam spam; + private final SpamSettings spamSettings; private final SpamBlockingPromoHelper spamBlockingPromoHelper; public BlockReportSpamListener( @@ -57,7 +59,8 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic this.adapter = adapter; this.filteredNumberAsyncQueryHandler = filteredNumberAsyncQueryHandler; spam = SpamComponent.get(context).spam(); - spamBlockingPromoHelper = new SpamBlockingPromoHelper(context, spam); + spamSettings = SpamComponent.get(context).spamSettings(); + spamBlockingPromoHelper = new SpamBlockingPromoHelper(context, spamSettings); } @Override @@ -69,10 +72,10 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic @NonNull final ContactSource.Type contactSourceType) { BlockReportSpamDialogs.DialogFragmentForBlockingNumberAndOptionallyReportingAsSpam.newInstance( displayNumber, - spam.isDialogReportSpamCheckedByDefault(), + spamSettings.isDialogReportSpamCheckedByDefault(), isSpamChecked -> { LogUtil.i("BlockReportSpamListener.onBlockReportSpam", "onClick"); - if (isSpamChecked && spam.isSpamEnabled()) { + if (isSpamChecked && spamSettings.isSpamEnabled()) { Logger.get(context) .logImpression( DialerImpression.Type @@ -110,10 +113,10 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic @NonNull final ContactSource.Type contactSourceType) { BlockReportSpamDialogs.DialogFragmentForBlockingNumberAndReportingAsSpam.newInstance( displayNumber, - spam.isSpamEnabled(), + spamSettings.isSpamEnabled(), () -> { LogUtil.i("BlockReportSpamListener.onBlock", "onClick"); - if (spam.isSpamEnabled()) { + if (spamSettings.isSpamEnabled()) { Logger.get(context) .logImpression( DialerImpression.Type @@ -154,7 +157,7 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic isSpam, () -> { LogUtil.i("BlockReportSpamListener.onUnblock", "onClick"); - if (isSpam && spam.isSpamEnabled()) { + if (isSpam && spamSettings.isSpamEnabled()) { Logger.get(context) .logImpression(DialerImpression.Type.REPORT_AS_NOT_SPAM_VIA_UNBLOCK_NUMBER); spam.reportNotSpamFromCallHistory( @@ -187,7 +190,7 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic displayNumber, () -> { LogUtil.i("BlockReportSpamListener.onReportNotSpam", "onClick"); - if (spam.isSpamEnabled()) { + if (spamSettings.isSpamEnabled()) { Logger.get(context) .logImpression(DialerImpression.Type.DIALOG_ACTION_CONFIRM_NUMBER_NOT_SPAM); spam.reportNotSpamFromCallHistory( diff --git a/java/com/android/dialer/app/calllog/CallLogAdapter.java b/java/com/android/dialer/app/calllog/CallLogAdapter.java index 376057ff5..de9b95e34 100644 --- a/java/com/android/dialer/app/calllog/CallLogAdapter.java +++ b/java/com/android/dialer/app/calllog/CallLogAdapter.java @@ -682,7 +682,7 @@ public class CallLogAdapter extends GroupingListAdapter contactInfoCache.start(); } contactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY); - isSpamEnabled = SpamComponent.get(activity).spam().isSpamEnabled(); + isSpamEnabled = SpamComponent.get(activity).spamSettings().isSpamEnabled(); getDuo().registerListener(this); notifyDataSetChanged(); } diff --git a/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java b/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java index 6d2581f46..4516382c5 100644 --- a/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java +++ b/java/com/android/dialer/app/calllog/VisualVoicemailUpdateTask.java @@ -36,7 +36,6 @@ import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.notification.DialerNotificationManager; import com.android.dialer.phonenumbercache.ContactInfo; -import com.android.dialer.spam.Spam; import com.android.dialer.spam.SpamComponent; import com.android.dialer.telecom.TelecomUtil; import java.util.ArrayList; @@ -48,7 +47,7 @@ class VisualVoicemailUpdateTask implements Worker<VisualVoicemailUpdateTask.Inpu @Nullable @Override public Void doInBackground(@NonNull Input input) throws Throwable { - updateNotification(input.context, input.queryHelper, input.queryHandler, input.spam); + updateNotification(input.context, input.queryHelper, input.queryHandler); return null; } @@ -62,8 +61,7 @@ class VisualVoicemailUpdateTask implements Worker<VisualVoicemailUpdateTask.Inpu private static void updateNotification( Context context, CallLogNotificationsQueryHelper queryHelper, - FilteredNumberAsyncQueryHandler queryHandler, - Spam spam) { + FilteredNumberAsyncQueryHandler queryHandler) { Assert.isWorkerThread(); LogUtil.enterBlock("VisualVoicemailUpdateTask.updateNotification"); @@ -79,7 +77,7 @@ class VisualVoicemailUpdateTask implements Worker<VisualVoicemailUpdateTask.Inpu "not filtering due to recent emergency call"); } else { voicemailsToNotify = filterBlockedNumbers(context, queryHandler, voicemailsToNotify); - voicemailsToNotify = filterSpamNumbers(context, spam, voicemailsToNotify); + voicemailsToNotify = filterSpamNumbers(context, voicemailsToNotify); } boolean shouldAlert = !voicemailsToNotify.isEmpty() @@ -197,23 +195,26 @@ class VisualVoicemailUpdateTask implements Worker<VisualVoicemailUpdateTask.Inpu } @WorkerThread - private static List<NewCall> filterSpamNumbers( - Context context, Spam spam, List<NewCall> newCalls) { + private static List<NewCall> filterSpamNumbers(Context context, List<NewCall> newCalls) { Assert.isWorkerThread(); - if (!spam.isSpamBlockingEnabled()) { + if (!SpamComponent.get(context).spamSettings().isSpamBlockingEnabled()) { + LogUtil.w("VisualVoicemailUpdateTask.wwwwwwwwwwwww", "NOT ENABLED"); return newCalls; } List<NewCall> result = new ArrayList<>(); for (NewCall newCall : newCalls) { Logger.get(context).logImpression(DialerImpression.Type.INCOMING_VOICEMAIL_SCREENED); - if (spam.checkSpamStatusSynchronous(newCall.number, newCall.countryIso)) { + if (SpamComponent.get(context) + .spam() + .checkSpamStatusSynchronous(newCall.number, newCall.countryIso)) { LogUtil.i( "VisualVoicemailUpdateTask.filterSpamNumbers", "found voicemail from spam number, suppressing notification"); Logger.get(context) .logImpression(DialerImpression.Type.INCOMING_VOICEMAIL_AUTO_BLOCKED_AS_SPAM); } else { + LogUtil.w("VisualVoicemailUpdateTask.wwwwwwwwwwwww", "NOT SPAM NUMBER"); result.add(newCall); } } @@ -234,8 +235,7 @@ class VisualVoicemailUpdateTask implements Worker<VisualVoicemailUpdateTask.Inpu new Input( context, CallLogNotificationsQueryHelper.getInstance(context), - new FilteredNumberAsyncQueryHandler(context), - SpamComponent.get(context).spam()); + new FilteredNumberAsyncQueryHandler(context)); DialerExecutorComponent.get(context) .dialerExecutorFactory() .createNonUiTaskBuilder(new VisualVoicemailUpdateTask()) @@ -257,17 +257,14 @@ class VisualVoicemailUpdateTask implements Worker<VisualVoicemailUpdateTask.Inpu @NonNull final Context context; @NonNull final CallLogNotificationsQueryHelper queryHelper; @NonNull final FilteredNumberAsyncQueryHandler queryHandler; - @NonNull final Spam spam; Input( Context context, CallLogNotificationsQueryHelper queryHelper, - FilteredNumberAsyncQueryHandler queryHandler, - Spam spam) { + FilteredNumberAsyncQueryHandler queryHandler) { this.context = context; this.queryHelper = queryHelper; this.queryHandler = queryHandler; - this.spam = spam; } } } diff --git a/java/com/android/dialer/blockreportspam/ShowBlockReportSpamDialogReceiver.java b/java/com/android/dialer/blockreportspam/ShowBlockReportSpamDialogReceiver.java index 02aa9943b..cc307b6b9 100644 --- a/java/com/android/dialer/blockreportspam/ShowBlockReportSpamDialogReceiver.java +++ b/java/com/android/dialer/blockreportspam/ShowBlockReportSpamDialogReceiver.java @@ -38,6 +38,7 @@ import com.android.dialer.logging.Logger; import com.android.dialer.protos.ProtoParsers; import com.android.dialer.spam.Spam; import com.android.dialer.spam.SpamComponent; +import com.android.dialer.spam.SpamSettings; import com.google.auto.value.AutoValue; /** @@ -104,6 +105,7 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver { intent, EXTRA_DIALOG_INFO, BlockReportSpamDialogInfo.getDefaultInstance()); Spam spam = SpamComponent.get(context).spam(); + SpamSettings spamSettings = SpamComponent.get(context).spamSettings(); FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler = new FilteredNumberAsyncQueryHandler(context); @@ -114,7 +116,7 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver { "ShowBlockReportSpamDialogReceiver.showDialogToBlockNumberAndOptionallyReportSpam", "confirmed"); - if (reportSpam && spam.isSpamEnabled()) { + if (reportSpam && spamSettings.isSpamEnabled()) { LogUtil.i( "ShowBlockReportSpamDialogReceiver.showDialogToBlockNumberAndOptionallyReportSpam", "report spam"); @@ -141,7 +143,7 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver { // Create and show the dialog. DialogFragmentForBlockingNumberAndOptionallyReportingAsSpam.newInstance( dialogInfo.getNormalizedNumber(), - spam.isDialogReportSpamCheckedByDefault(), + spamSettings.isDialogReportSpamCheckedByDefault(), onSpamDialogClickListener, /* dismissListener = */ null) .show(fragmentManager, BlockReportSpamDialogs.BLOCK_REPORT_SPAM_DIALOG_TAG); @@ -189,16 +191,17 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver { () -> { LogUtil.i("ShowBlockReportSpamDialogReceiver.showDialogToReportNotSpam", "confirmed"); - Spam spam = SpamComponent.get(context).spam(); - if (spam.isSpamEnabled()) { + if (SpamComponent.get(context).spamSettings().isSpamEnabled()) { Logger.get(context) .logImpression(DialerImpression.Type.DIALOG_ACTION_CONFIRM_NUMBER_NOT_SPAM); - spam.reportNotSpamFromCallHistory( - dialogInfo.getNormalizedNumber(), - dialogInfo.getCountryIso(), - dialogInfo.getCallType(), - dialogInfo.getReportingLocation(), - dialogInfo.getContactSource()); + SpamComponent.get(context) + .spam() + .reportNotSpamFromCallHistory( + dialogInfo.getNormalizedNumber(), + dialogInfo.getCountryIso(), + dialogInfo.getCallType(), + dialogInfo.getReportingLocation(), + dialogInfo.getContactSource()); } }; diff --git a/java/com/android/dialer/spam/Spam.java b/java/com/android/dialer/spam/Spam.java index 09b7ce9c6..c22f541d8 100644 --- a/java/com/android/dialer/spam/Spam.java +++ b/java/com/android/dialer/spam/Spam.java @@ -16,8 +16,6 @@ package com.android.dialer.spam; -import android.content.Context; -import android.content.Intent; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import com.android.dialer.DialerPhoneNumber; @@ -31,23 +29,6 @@ import com.google.common.util.concurrent.ListenableFuture; /** Allows the container application to mark calls as spam. */ public interface Spam { - boolean isSpamEnabled(); - - boolean isSpamNotificationEnabled(); - - boolean isSpamBlockingAvailable(); - - boolean isSpamBlockingEnabled(); - - boolean isDialogEnabledForSpamNotification(); - - boolean isDialogReportSpamCheckedByDefault(); - - /** @return what percentage of aftercall notifications to show to the user */ - int percentOfSpamNotificationsToShow(); - - int percentOfNonSpamNotificationsToShow(); - /** * Checks if each of numbers in the given list is suspected of being a spam. * @@ -184,28 +165,10 @@ public interface Spam { ReportingLocation.Type from, ContactSource.Type contactSourceType); - /** - * Modifies spam blocking setting. - * - * @param enabled Whether to enable or disable the setting. - * @param listener The callback to be invoked after setting change is done. - */ - void modifySpamBlockingSetting(boolean enabled, ModifySettingListener listener); - - /** Returns an intent to start spam blocking setting */ - Intent getSpamBlockingSettingIntent(Context context); - /** Callback to be invoked when data is fetched. */ interface Listener { /** Called when data is fetched. */ void onComplete(boolean isSpam); } - - /** Callback to be invoked when setting change completes. */ - interface ModifySettingListener { - - /** Called when setting change completes. */ - void onComplete(boolean success); - } } diff --git a/java/com/android/dialer/spam/SpamComponent.java b/java/com/android/dialer/spam/SpamComponent.java index 0bcdafac8..2b70b6fe1 100644 --- a/java/com/android/dialer/spam/SpamComponent.java +++ b/java/com/android/dialer/spam/SpamComponent.java @@ -26,6 +26,8 @@ public abstract class SpamComponent { public abstract Spam spam(); + public abstract SpamSettings spamSettings(); + public static SpamComponent get(Context context) { return ((SpamComponent.HasComponent) ((HasRootComponent) context.getApplicationContext()).component()) diff --git a/java/com/android/dialer/spam/SpamSettings.java b/java/com/android/dialer/spam/SpamSettings.java new file mode 100644 index 000000000..e0c06828f --- /dev/null +++ b/java/com/android/dialer/spam/SpamSettings.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.spam; + +import android.content.Context; +import android.content.Intent; + +/** Allows the container application to interact with spam settings. */ +public interface SpamSettings { + + /** @return if spam module is enabled */ + boolean isSpamEnabled(); + + /** @return if spam after call notification is enabled */ + boolean isSpamNotificationEnabled(); + + /** @return if spam blocking is enabled */ + boolean isSpamBlockingEnabled(); + + /** @return if spam blocking user setting is controlled by carrier */ + boolean isSpamBlockingControlledByCarrier(); + + /** @return if spam blocking module is enabled by flag */ + boolean isSpamBlockingEnabledByFlag(); + + /** @return if spam blocking setting is enabled by user */ + boolean isSpamBlockingEnabledByUser(); + + /** @return if dialog is used by default for spam after call notification */ + boolean isDialogEnabledForSpamNotification(); + + /** @return if report spam is checked by default in block/report dialog */ + boolean isDialogReportSpamCheckedByDefault(); + + /** @return percentage of after call notifications for spam numbers to show to the user */ + int percentOfSpamNotificationsToShow(); + + /** @return percentage of after call notifications for nonspam numbers to show to the user */ + int percentOfNonSpamNotificationsToShow(); + + /** + * Modifies spam blocking setting. + * + * @param enabled Whether to enable or disable the setting. + * @param listener The callback to be invoked after setting change is done. + */ + void modifySpamBlockingSetting(boolean enabled, ModifySettingListener listener); + + /** @return an intent to start spam blocking setting */ + Intent getSpamBlockingSettingIntent(Context context); + + /** Callback to be invoked when setting change completes. */ + interface ModifySettingListener { + + /** Called when setting change completes. */ + void onComplete(boolean success); + } +} diff --git a/java/com/android/dialer/spam/SpamSettingsStub.java b/java/com/android/dialer/spam/SpamSettingsStub.java new file mode 100644 index 000000000..905daa45c --- /dev/null +++ b/java/com/android/dialer/spam/SpamSettingsStub.java @@ -0,0 +1,88 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.dialer.spam; + +import android.content.Context; +import android.content.Intent; +import javax.inject.Inject; + +/** Default implementation of SpamSettings. */ +public class SpamSettingsStub implements SpamSettings { + + @Inject + public SpamSettingsStub() {} + + @Override + public boolean isSpamEnabled() { + return false; + } + + @Override + public boolean isSpamNotificationEnabled() { + return false; + } + + @Override + public boolean isSpamBlockingEnabledByFlag() { + return false; + } + + @Override + public boolean isSpamBlockingControlledByCarrier() { + return false; + } + + @Override + public boolean isSpamBlockingEnabled() { + return false; + } + + @Override + public boolean isSpamBlockingEnabledByUser() { + return false; + } + + @Override + public boolean isDialogEnabledForSpamNotification() { + return false; + } + + @Override + public boolean isDialogReportSpamCheckedByDefault() { + return false; + } + + @Override + public int percentOfSpamNotificationsToShow() { + return 0; + } + + @Override + public int percentOfNonSpamNotificationsToShow() { + return 0; + } + + @Override + public void modifySpamBlockingSetting(boolean enabled, ModifySettingListener listener) { + listener.onComplete(false); + } + + @Override + public Intent getSpamBlockingSettingIntent(Context context) { + return new Intent(); + } +} diff --git a/java/com/android/dialer/spam/SpamStub.java b/java/com/android/dialer/spam/SpamStub.java index 39b05fc58..28f26d13b 100644 --- a/java/com/android/dialer/spam/SpamStub.java +++ b/java/com/android/dialer/spam/SpamStub.java @@ -16,8 +16,6 @@ package com.android.dialer.spam; -import android.content.Context; -import android.content.Intent; import com.android.dialer.DialerPhoneNumber; import com.android.dialer.common.concurrent.Annotations.BackgroundExecutor; import com.android.dialer.logging.ContactLookupResult; @@ -42,46 +40,6 @@ public class SpamStub implements Spam { } @Override - public boolean isSpamEnabled() { - return false; - } - - @Override - public boolean isSpamNotificationEnabled() { - return false; - } - - @Override - public boolean isSpamBlockingAvailable() { - return false; - } - - @Override - public boolean isSpamBlockingEnabled() { - return false; - } - - @Override - public boolean isDialogEnabledForSpamNotification() { - return false; - } - - @Override - public boolean isDialogReportSpamCheckedByDefault() { - return false; - } - - @Override - public int percentOfSpamNotificationsToShow() { - return 0; - } - - @Override - public int percentOfNonSpamNotificationsToShow() { - return 0; - } - - @Override public ListenableFuture<ImmutableMap<DialerPhoneNumber, SpamStatus>> batchCheckSpamStatus( ImmutableSet<DialerPhoneNumber> dialerPhoneNumbers) { return backgroundExecutorService.submit( @@ -168,14 +126,4 @@ public class SpamStub implements Spam { int callType, ReportingLocation.Type from, ContactSource.Type contactSourceType) {} - - @Override - public void modifySpamBlockingSetting(boolean enabled, ModifySettingListener listener) { - listener.onComplete(false); - } - - @Override - public Intent getSpamBlockingSettingIntent(Context context) { - return new Intent(); - } } diff --git a/java/com/android/dialer/spam/StubSpamModule.java b/java/com/android/dialer/spam/StubSpamModule.java index 0d3b917d2..5540408ad 100644 --- a/java/com/android/dialer/spam/StubSpamModule.java +++ b/java/com/android/dialer/spam/StubSpamModule.java @@ -25,4 +25,7 @@ public abstract class StubSpamModule { @Binds public abstract Spam bindSpam(SpamStub stub); + + @Binds + public abstract SpamSettings bindSpamSettings(SpamSettingsStub stub); } diff --git a/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java b/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java index 9349577c5..cba94e00d 100644 --- a/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java +++ b/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java @@ -25,7 +25,7 @@ import android.view.View; import com.android.dialer.configprovider.ConfigProviderBindings; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; -import com.android.dialer.spam.Spam; +import com.android.dialer.spam.SpamSettings; /** Helper class for showing spam blocking on-boarding promotions. */ public class SpamBlockingPromoHelper { @@ -34,11 +34,11 @@ public class SpamBlockingPromoHelper { static final String SPAM_BLOCKING_PROMO_LAST_SHOW_MILLIS = "spam_blocking_promo_last_show_millis"; private final Context context; - private final Spam spam; + private final SpamSettings spamSettings; - public SpamBlockingPromoHelper(Context context, Spam spam) { + public SpamBlockingPromoHelper(Context context, SpamSettings spamSettings) { this.context = context; - this.spam = spam; + this.spamSettings = spamSettings; } /** Shows a spam blocking promo dialog with on complete snackbar if all the prerequisites meet. */ @@ -54,7 +54,7 @@ public class SpamBlockingPromoHelper { Logger.get(context) .logImpression( DialerImpression.Type.SPAM_BLOCKING_ENABLED_THROUGH_CALL_LOG_PROMO); - spam.modifySpamBlockingSetting( + spamSettings.modifySpamBlockingSetting( true, success -> showModifySettingOnCompleteSnackbar(view, success)); }) .show(fragmentManager, SpamBlockingPromoDialogFragment.SPAM_BLOCKING_PROMO_DIALOG_TAG); @@ -71,7 +71,9 @@ public class SpamBlockingPromoHelper { */ @VisibleForTesting boolean shouldShowSpamBlockingPromo() { - if (!spam.isSpamEnabled() || !spam.isSpamBlockingAvailable() || spam.isSpamBlockingEnabled()) { + if (!spamSettings.isSpamEnabled() + || !spamSettings.isSpamBlockingEnabledByFlag() + || spamSettings.isSpamBlockingEnabledByUser()) { return false; } @@ -109,7 +111,7 @@ public class SpamBlockingPromoHelper { Snackbar.make(view, snackBarText, Snackbar.LENGTH_LONG) .setAction( R.string.spam_blocking_setting_prompt, - v -> context.startActivity(spam.getSpamBlockingSettingIntent(context))) + v -> context.startActivity(spamSettings.getSpamBlockingSettingIntent(context))) .setActionTextColor( context.getResources().getColor(R.color.dialer_snackbar_action_text_color)) .show(); diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java index 9a0902639..f639e5bdb 100644 --- a/java/com/android/incallui/call/CallList.java +++ b/java/com/android/incallui/call/CallList.java @@ -144,7 +144,7 @@ public class CallList implements DialerCallDelegate { Trace.beginSection("checkSpam"); call.addListener(new DialerCallListenerImpl(call)); LogUtil.d("CallList.onCallAdded", "callState=" + call.getState()); - if (SpamComponent.get(context).spam().isSpamEnabled()) { + if (SpamComponent.get(context).spamSettings().isSpamEnabled()) { String number = TelecomCallUtil.getNumber(telecomCall); SpamComponent.get(context) .spam() diff --git a/java/com/android/incallui/spam/SpamCallListListener.java b/java/com/android/incallui/spam/SpamCallListListener.java index 9ef65d877..e852f3d2c 100644 --- a/java/com/android/incallui/spam/SpamCallListListener.java +++ b/java/com/android/incallui/spam/SpamCallListListener.java @@ -205,7 +205,7 @@ public class SpamCallListListener implements CallList.Listener { /** Determines if the after call notification should be shown for the specified call. */ private boolean shouldShowAfterCallNotification(DialerCall call) { - if (!SpamComponent.get(context).spam().isSpamNotificationEnabled()) { + if (!SpamComponent.get(context).spamSettings().isSpamNotificationEnabled()) { return false; } @@ -305,7 +305,8 @@ public class SpamCallListListener implements CallList.Listener { private boolean shouldThrottleSpamNotification() { int randomNumber = random.nextInt(100); - int thresholdForShowing = SpamComponent.get(context).spam().percentOfSpamNotificationsToShow(); + int thresholdForShowing = + SpamComponent.get(context).spamSettings().percentOfSpamNotificationsToShow(); if (thresholdForShowing == 0) { LogUtil.d( "SpamCallListListener.shouldThrottleSpamNotification", @@ -329,7 +330,7 @@ public class SpamCallListListener implements CallList.Listener { private boolean shouldThrottleNonSpamNotification() { int randomNumber = random.nextInt(100); int thresholdForShowing = - SpamComponent.get(context).spam().percentOfNonSpamNotificationsToShow(); + SpamComponent.get(context).spamSettings().percentOfNonSpamNotificationsToShow(); if (thresholdForShowing == 0) { LogUtil.d( "SpamCallListListener.shouldThrottleNonSpamNotification", @@ -418,7 +419,7 @@ public class SpamCallListListener implements CallList.Listener { */ private PendingIntent createBlockReportSpamPendingIntent(DialerCall call) { String action = SpamNotificationActivity.ACTION_MARK_NUMBER_AS_SPAM; - return SpamComponent.get(context).spam().isDialogEnabledForSpamNotification() + return SpamComponent.get(context).spamSettings().isDialogEnabledForSpamNotification() ? createActivityPendingIntent(call, action) : createServicePendingIntent(call, action); } @@ -429,7 +430,7 @@ public class SpamCallListListener implements CallList.Listener { */ private PendingIntent createNotSpamPendingIntent(DialerCall call) { String action = SpamNotificationActivity.ACTION_MARK_NUMBER_AS_NOT_SPAM; - return SpamComponent.get(context).spam().isDialogEnabledForSpamNotification() + return SpamComponent.get(context).spamSettings().isDialogEnabledForSpamNotification() ? createActivityPendingIntent(call, action) : createServicePendingIntent(call, action); } diff --git a/java/com/android/incallui/spam/SpamNotificationActivity.java b/java/com/android/incallui/spam/SpamNotificationActivity.java index 61d04a0d6..cb5f8e514 100644 --- a/java/com/android/incallui/spam/SpamNotificationActivity.java +++ b/java/com/android/incallui/spam/SpamNotificationActivity.java @@ -197,7 +197,7 @@ public class SpamNotificationActivity extends FragmentActivity { /** Creates and displays the dialog for whitelisting a number. */ private void maybeShowNotSpamDialog( final String number, final ContactLookupResult.Type contactLookupResultType) { - if (SpamComponent.get(this).spam().isDialogEnabledForSpamNotification()) { + if (SpamComponent.get(this).spamSettings().isDialogEnabledForSpamNotification()) { DialogFragmentForReportingNotSpam.newInstance( getFormattedNumber(number, this), new BlockReportSpamDialogs.OnConfirmListener() { @@ -216,7 +216,7 @@ public class SpamNotificationActivity extends FragmentActivity { /** Creates and displays the dialog for blocking/reporting a number as spam. */ private void maybeShowBlockReportSpamDialog( final String number, final ContactLookupResult.Type contactLookupResultType) { - if (SpamComponent.get(this).spam().isDialogEnabledForSpamNotification()) { + if (SpamComponent.get(this).spamSettings().isDialogEnabledForSpamNotification()) { String displayNumber = getFormattedNumber(number, this); maybeShowBlockNumberMigrationDialog( new BlockedNumbersMigrator.Listener() { @@ -225,7 +225,7 @@ public class SpamNotificationActivity extends FragmentActivity { DialogFragmentForBlockingNumberAndOptionallyReportingAsSpam.newInstance( displayNumber, SpamComponent.get(SpamNotificationActivity.this) - .spam() + .spamSettings() .isDialogReportSpamCheckedByDefault(), new BlockReportSpamDialogs.OnSpamDialogClickListener() { @Override @@ -319,7 +319,7 @@ public class SpamNotificationActivity extends FragmentActivity { } private void assertDialogsEnabled() { - if (!SpamComponent.get(this).spam().isDialogEnabledForSpamNotification()) { + if (!SpamComponent.get(this).spamSettings().isDialogEnabledForSpamNotification()) { throw new IllegalStateException( "Cannot start this activity with given action because dialogs are not enabled."); } |