From c87f1fbc35dcb19ed598008a88997e6547a1caca Mon Sep 17 00:00:00 2001 From: Android Dialer Date: Thu, 26 Apr 2018 15:38:04 -0700 Subject: Fix impression logging for spam blocking promo dialog shown in after call notification. Test: N/A PiperOrigin-RevId: 194465415 Change-Id: Ica9301f4315b549c343112a824c8f7c51213bb99 --- .../app/calllog/BlockReportSpamListener.java | 27 ++++++++++--- .../dialer/spam/promo/SpamBlockingPromoHelper.java | 28 +++----------- .../incallui/spam/SpamNotificationActivity.java | 45 +++++++++++++++++----- 3 files changed, 62 insertions(+), 38 deletions(-) (limited to 'java') diff --git a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java index 551791850..987615f5f 100644 --- a/java/com/android/dialer/app/calllog/BlockReportSpamListener.java +++ b/java/com/android/dialer/app/calllog/BlockReportSpamListener.java @@ -206,11 +206,28 @@ public class BlockReportSpamListener implements CallLogListItemViewHolder.OnClic } private void showSpamBlockingPromoDialog() { - if (spamBlockingPromoHelper.shouldShowSpamBlockingPromo()) { - spamBlockingPromoHelper.showSpamBlockingPromoDialog( - fragmentManager, - success -> spamBlockingPromoHelper.showModifySettingOnCompleteSnackbar(rootView, success), - null /* onDissmissListener */); + if (!spamBlockingPromoHelper.shouldShowSpamBlockingPromo()) { + return; } + + Logger.get(context).logImpression(DialerImpression.Type.SPAM_BLOCKING_CALL_LOG_PROMO_SHOWN); + spamBlockingPromoHelper.showSpamBlockingPromoDialog( + fragmentManager, + () -> { + Logger.get(context) + .logImpression(DialerImpression.Type.SPAM_BLOCKING_ENABLED_THROUGH_CALL_LOG_PROMO); + spamSettings.modifySpamBlockingSetting( + true, + success -> { + if (!success) { + Logger.get(context) + .logImpression( + DialerImpression.Type + .SPAM_BLOCKING_MODIFY_FAILURE_THROUGH_CALL_LOG_PROMO); + } + spamBlockingPromoHelper.showModifySettingOnCompleteSnackbar(rootView, success); + }); + }, + null /* onDismissListener */); } } diff --git a/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java b/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java index 891ac44ad..6a8cde864 100644 --- a/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java +++ b/java/com/android/dialer/spam/promo/SpamBlockingPromoHelper.java @@ -34,14 +34,14 @@ import com.android.dialer.logging.Logger; import com.android.dialer.notification.DialerNotificationManager; import com.android.dialer.notification.NotificationChannelId; import com.android.dialer.spam.SpamSettings; -import com.android.dialer.spam.SpamSettings.ModifySettingListener; +import com.android.dialer.spam.promo.SpamBlockingPromoDialogFragment.OnEnableListener; /** Helper class for showing spam blocking on-boarding promotions. */ public class SpamBlockingPromoHelper { static final String SPAM_BLOCKING_PROMO_PERIOD_MILLIS = "spam_blocking_promo_period_millis"; static final String SPAM_BLOCKING_PROMO_LAST_SHOW_MILLIS = "spam_blocking_promo_last_show_millis"; - static final String ENABLE_SPAM_BLOCKING_PROMO = "enable_spam_blocking_promo"; + public static final String ENABLE_SPAM_BLOCKING_PROMO = "enable_spam_blocking_promo"; private final Context context; private final SpamSettings spamSettings; @@ -81,33 +81,15 @@ public class SpamBlockingPromoHelper { * Shows a spam blocking promo dialog. * * @param fragmentManager the fragment manager to show the dialog. - * @param modifySettingListener the listener called after spam blocking setting is modified. + * @param onEnableListener the listener called when enable button is clicked. * @param onDismissListener the listener called when the dialog is dismissed. */ public void showSpamBlockingPromoDialog( FragmentManager fragmentManager, - ModifySettingListener modifySettingListener, + OnEnableListener onEnableListener, OnDismissListener onDismissListener) { updateLastShowSpamTimestamp(); - Logger.get(context).logImpression(DialerImpression.Type.SPAM_BLOCKING_CALL_LOG_PROMO_SHOWN); - SpamBlockingPromoDialogFragment.newInstance( - () -> { - Logger.get(context) - .logImpression( - DialerImpression.Type.SPAM_BLOCKING_ENABLED_THROUGH_CALL_LOG_PROMO); - spamSettings.modifySpamBlockingSetting( - true, - success -> { - if (!success) { - Logger.get(context) - .logImpression( - DialerImpression.Type - .SPAM_BLOCKING_MODIFY_FAILURE_THROUGH_CALL_LOG_PROMO); - } - modifySettingListener.onComplete(success); - }); - }, - onDismissListener) + SpamBlockingPromoDialogFragment.newInstance(onEnableListener, onDismissListener) .show(fragmentManager, SpamBlockingPromoDialogFragment.SPAM_BLOCKING_PROMO_DIALOG_TAG); } diff --git a/java/com/android/incallui/spam/SpamNotificationActivity.java b/java/com/android/incallui/spam/SpamNotificationActivity.java index c04a071a1..e10dea381 100644 --- a/java/com/android/incallui/spam/SpamNotificationActivity.java +++ b/java/com/android/incallui/spam/SpamNotificationActivity.java @@ -43,6 +43,7 @@ import com.android.dialer.logging.ReportingLocation; import com.android.dialer.notification.DialerNotificationManager; import com.android.dialer.phonenumberutil.PhoneNumberHelper; import com.android.dialer.spam.SpamComponent; +import com.android.dialer.spam.SpamSettings; import com.android.dialer.spam.promo.SpamBlockingPromoHelper; import com.android.incallui.call.DialerCall; @@ -86,6 +87,8 @@ public class SpamNotificationActivity extends FragmentActivity { } }; private FilteredNumberAsyncQueryHandler filteredNumberAsyncQueryHandler; + private SpamSettings spamSettings; + private SpamBlockingPromoHelper spamBlockingPromoHelper; /** * Creates an intent to start this activity. @@ -160,6 +163,8 @@ public class SpamNotificationActivity extends FragmentActivity { super.onCreate(savedInstanceState); setFinishOnTouchOutside(true); filteredNumberAsyncQueryHandler = new FilteredNumberAsyncQueryHandler(this); + spamSettings = SpamComponent.get(this).spamSettings(); + spamBlockingPromoHelper = new SpamBlockingPromoHelper(getApplicationContext(), spamSettings); cancelNotification(); } @@ -417,7 +422,7 @@ public class SpamNotificationActivity extends FragmentActivity { dismiss(); spamNotificationActivity.maybeShowBlockReportSpamDialog( number, contactLookupResultType); - spamNotificationActivity.showSpamBlockingPromoDialog(); + spamNotificationActivity.maybeShowSpamBlockingPromoAndFinish(); } }) .setNegativeButton( @@ -515,23 +520,43 @@ public class SpamNotificationActivity extends FragmentActivity { dismiss(); spamNotificationActivity.maybeShowBlockReportSpamDialog( number, contactLookupResultType); + spamNotificationActivity.maybeShowSpamBlockingPromoAndFinish(); } }) .create(); } } - private void showSpamBlockingPromoDialog() { - SpamBlockingPromoHelper spamBlockingPromoHelper = - new SpamBlockingPromoHelper( - getApplicationContext(), SpamComponent.get(this).spamSettings()); + private void maybeShowSpamBlockingPromoAndFinish() { if (!spamBlockingPromoHelper.shouldShowSpamBlockingPromo()) { finish(); - } else { - spamBlockingPromoHelper.showSpamBlockingPromoDialog( - getFragmentManager(), - success -> spamBlockingPromoHelper.showModifySettingOnCompleteToast(success), - dialog -> finish()); + return; } + Logger.get(this) + .logImpression(DialerImpression.Type.SPAM_BLOCKING_AFTER_CALL_NOTIFICATION_PROMO_SHOWN); + showSpamBlockingPromoDialog(); + } + + private void showSpamBlockingPromoDialog() { + spamBlockingPromoHelper.showSpamBlockingPromoDialog( + getFragmentManager(), + () -> { + Logger.get(this) + .logImpression( + DialerImpression.Type + .SPAM_BLOCKING_ENABLED_THROUGH_AFTER_CALL_NOTIFICATION_PROMO); + spamSettings.modifySpamBlockingSetting( + true, + success -> { + if (!success) { + Logger.get(this) + .logImpression( + DialerImpression.Type + .SPAM_BLOCKING_MODIFY_FAILURE_THROUGH_AFTER_CALL_NOTIFICATION_PROMO); + } + spamBlockingPromoHelper.showModifySettingOnCompleteToast(success); + }); + }, + dialog -> finish()); } } -- cgit v1.2.3