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

Commit afd8a64b authored by linyuh's avatar linyuh Committed by Copybara-Service
Browse files

Set the correct reporting location when reporting spam in the new call log.

Bug: 73816729
Test: Existing tests
PiperOrigin-RevId: 187230516
Change-Id: I59d70b9676e2972b80f124f29f2c1cb1858efef8
parent 2e2b29a7
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.content.Context;
import android.content.Intent;
import android.support.v4.content.LocalBroadcastManager;
import com.android.dialer.common.LogUtil;
import com.android.dialer.logging.ReportingLocation;

/**
 * Notifies that a dialog for blocking a number and/or marking it as spam/not spam should be shown.
@@ -35,9 +36,15 @@ public final class ShowBlockReportSpamDialogNotifier {
   * @param normalizedNumber The number to be blocked/marked as spam
   * @param countryIso The ISO 3166-1 two letters country code for the number
   * @param callType Call type defined in {@link android.provider.CallLog.Calls}
   * @param reportingLocation The location where the number is reported. See {@link
   *     ReportingLocation.Type}.
   */
  public static void notifyShowDialogToBlockNumberAndOptionallyReportSpam(
      Context context, String normalizedNumber, String countryIso, int callType) {
      Context context,
      String normalizedNumber,
      String countryIso,
      int callType,
      ReportingLocation.Type reportingLocation) {
    LogUtil.enterBlock(
        "ShowBlockReportSpamDialogNotifier.notifyShowDialogToBlockNumberAndOptionallyReportSpam");

@@ -49,6 +56,8 @@ public final class ShowBlockReportSpamDialogNotifier {
    intent.putExtra(ShowBlockReportSpamDialogReceiver.EXTRA_NUMBER, normalizedNumber);
    intent.putExtra(ShowBlockReportSpamDialogReceiver.EXTRA_COUNTRY_ISO, countryIso);
    intent.putExtra(ShowBlockReportSpamDialogReceiver.EXTRA_CALL_TYPE, callType);
    intent.putExtra(
        ShowBlockReportSpamDialogReceiver.EXTRA_REPORTING_LOCATION, reportingLocation.getNumber());

    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
  }
@@ -60,9 +69,15 @@ public final class ShowBlockReportSpamDialogNotifier {
   * @param normalizedNumber The number to be reported as not spam
   * @param countryIso The ISO 3166-1 two letters country code for the number
   * @param callType Call type defined in {@link android.provider.CallLog.Calls}
   * @param reportingLocation The location where the number is reported. See {@link
   *     ReportingLocation.Type}.
   */
  public static void notifyShowDialogToReportNotSpam(
      Context context, String normalizedNumber, String countryIso, int callType) {
      Context context,
      String normalizedNumber,
      String countryIso,
      int callType,
      ReportingLocation.Type reportingLocation) {
    LogUtil.enterBlock("ShowBlockReportSpamDialogNotifier.notifyShowDialogToReportNotSpam");

    Intent intent = new Intent();
@@ -70,6 +85,7 @@ public final class ShowBlockReportSpamDialogNotifier {
    intent.putExtra(ShowBlockReportSpamDialogReceiver.EXTRA_NUMBER, normalizedNumber);
    intent.putExtra(ShowBlockReportSpamDialogReceiver.EXTRA_COUNTRY_ISO, countryIso);
    intent.putExtra(ShowBlockReportSpamDialogReceiver.EXTRA_CALL_TYPE, callType);
    intent.putExtra(ShowBlockReportSpamDialogReceiver.EXTRA_REPORTING_LOCATION, reportingLocation);

    LocalBroadcastManager.getInstance(context).sendBroadcast(intent);
  }
+15 −2
Original line number Diff line number Diff line
@@ -46,6 +46,7 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver {
  static final String EXTRA_NUMBER = "number";
  static final String EXTRA_COUNTRY_ISO = "country_iso";
  static final String EXTRA_CALL_TYPE = "call_type";
  static final String EXTRA_REPORTING_LOCATION = "reporting_location";

  /** {@link FragmentManager} needed to show a {@link android.app.DialogFragment}. */
  private final FragmentManager fragmentManager;
@@ -87,10 +88,16 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver {
    Assert.checkArgument(intent.hasExtra(EXTRA_NUMBER));
    Assert.checkArgument(intent.hasExtra(EXTRA_COUNTRY_ISO));
    Assert.checkArgument(intent.hasExtra(EXTRA_CALL_TYPE));
    Assert.checkArgument(intent.hasExtra(EXTRA_REPORTING_LOCATION));

    String normalizedNumber = intent.getStringExtra(EXTRA_NUMBER);
    String countryIso = intent.getStringExtra(EXTRA_COUNTRY_ISO);
    int callType = intent.getIntExtra(EXTRA_CALL_TYPE, 0);
    ReportingLocation.Type reportingLocation =
        ReportingLocation.Type.forNumber(
            intent.getIntExtra(
                EXTRA_REPORTING_LOCATION,
                ReportingLocation.Type.UNKNOWN_REPORTING_LOCATION.getNumber()));

    Spam spam = SpamComponent.get(context).spam();

@@ -113,7 +120,7 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver {
                normalizedNumber,
                countryIso,
                callType,
                ReportingLocation.Type.UNKNOWN_REPORTING_LOCATION /* TODO(a bug): Fix. */,
                reportingLocation,
                ContactSource.Type.UNKNOWN_SOURCE_TYPE /* TODO(a bug): Fix. */);
          }

@@ -140,10 +147,16 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver {
    Assert.checkArgument(intent.hasExtra(EXTRA_NUMBER));
    Assert.checkArgument(intent.hasExtra(EXTRA_COUNTRY_ISO));
    Assert.checkArgument(intent.hasExtra(EXTRA_CALL_TYPE));
    Assert.checkArgument(intent.hasExtra(EXTRA_REPORTING_LOCATION));

    String normalizedNumber = intent.getStringExtra(EXTRA_NUMBER);
    String countryIso = intent.getStringExtra(EXTRA_COUNTRY_ISO);
    int callType = intent.getIntExtra(EXTRA_CALL_TYPE, 0);
    ReportingLocation.Type reportingLocation =
        ReportingLocation.Type.forNumber(
            intent.getIntExtra(
                EXTRA_REPORTING_LOCATION,
                ReportingLocation.Type.UNKNOWN_REPORTING_LOCATION.getNumber()));

    // Set up the positive listener for the dialog.
    OnConfirmListener onConfirmListener =
@@ -158,7 +171,7 @@ public final class ShowBlockReportSpamDialogReceiver extends BroadcastReceiver {
                normalizedNumber,
                countryIso,
                callType,
                ReportingLocation.Type.UNKNOWN_REPORTING_LOCATION /* TODO(a bug): Fix. */,
                reportingLocation,
                ContactSource.Type.UNKNOWN_SOURCE_TYPE /* TODO(a bug): Fix. */);
          }
        };
+3 −1
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.dialer.contactactions.DividerModule;
import com.android.dialer.contactactions.IntentModule;
import com.android.dialer.contactactions.SharedModules;
import com.android.dialer.dialercontact.DialerContact;
import com.android.dialer.logging.ReportingLocation;
import com.android.dialer.phonenumberutil.PhoneNumberHelper;
import com.android.dialer.telecom.TelecomUtil;
import com.google.common.base.Optional;
@@ -79,7 +80,8 @@ final class Modules {
          row.number().getCountryIso(),
          row.callType(),
          row.numberAttributes().getIsBlocked(),
          row.numberAttributes().getIsSpam());
          row.numberAttributes().getIsSpam(),
          ReportingLocation.Type.CALL_LOG_HISTORY);
      SharedModules.maybeAddModuleForCopyingNumber(context, modules, normalizedNumber);
    }

+18 −7
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import android.widget.Toast;
import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.blockreportspam.ShowBlockReportSpamDialogNotifier;
import com.android.dialer.clipboard.ClipboardUtils;
import com.android.dialer.logging.ReportingLocation;
import com.android.dialer.util.IntentUtil;
import com.android.dialer.util.UriUtils;
import java.util.List;
@@ -118,6 +119,8 @@ public class SharedModules {
   * @param normalizedNumber The number to be blocked / unblocked / marked as spam/not spam
   * @param countryIso The ISO 3166-1 two letters country code for the number
   * @param callType Call type defined in {@link android.provider.CallLog.Calls}
   * @param reportingLocation The location where the number is reported. See {@link
   *     ReportingLocation.Type}.
   */
  public static void addModulesHandlingBlockedOrSpamNumber(
      Context context,
@@ -126,12 +129,14 @@ public class SharedModules {
      String countryIso,
      int callType,
      boolean isBlocked,
      boolean isSpam) {
      boolean isSpam,
      ReportingLocation.Type reportingLocation) {
    // For a spam number, add two options:
    // (1) "Not spam" and "Block", or
    // (2) "Not spam" and "Unblock".
    if (isSpam) {
      addModuleForMarkingNumberAsNonSpam(context, modules, normalizedNumber, countryIso, callType);
      addModuleForMarkingNumberAsNonSpam(
          context, modules, normalizedNumber, countryIso, callType, reportingLocation);
      addModuleForBlockingOrUnblockingNumber(context, modules, normalizedNumber, isBlocked);
      return;
    }
@@ -144,7 +149,7 @@ public class SharedModules {

    // For a number that is neither a spam number nor blocked, add "Block/Report spam" option.
    addModuleForBlockingNumberAndOptionallyReportingSpam(
        context, modules, normalizedNumber, countryIso, callType);
        context, modules, normalizedNumber, countryIso, callType, reportingLocation);
  }

  /**
@@ -153,13 +158,16 @@ public class SharedModules {
   * @param normalizedNumber The number to be marked as not spam
   * @param countryIso The ISO 3166-1 two letters country code for the number
   * @param callType Call type defined in {@link android.provider.CallLog.Calls}
   * @param reportingLocation The location where the number is reported. See {@link
   *     ReportingLocation.Type}.
   */
  private static void addModuleForMarkingNumberAsNonSpam(
      Context context,
      List<ContactActionModule> modules,
      String normalizedNumber,
      String countryIso,
      int callType) {
      int callType,
      ReportingLocation.Type reportingLocation) {
    modules.add(
        new ContactActionModule() {
          @Override
@@ -175,7 +183,7 @@ public class SharedModules {
          @Override
          public boolean onClick() {
            ShowBlockReportSpamDialogNotifier.notifyShowDialogToReportNotSpam(
                context, normalizedNumber, countryIso, callType);
                context, normalizedNumber, countryIso, callType, reportingLocation);
            return true; // Close the bottom sheet.
          }
        });
@@ -222,13 +230,16 @@ public class SharedModules {
   * @param normalizedNumber The number to be blocked / unblocked / marked as spam/not spam
   * @param countryIso The ISO 3166-1 two letters country code for the number
   * @param callType Call type defined in {@link android.provider.CallLog.Calls}
   * @param reportingLocation The location where the number is reported. See {@link
   *     ReportingLocation.Type}.
   */
  private static void addModuleForBlockingNumberAndOptionallyReportingSpam(
      Context context,
      List<ContactActionModule> modules,
      String normalizedNumber,
      String countryIso,
      int callType) {
      int callType,
      ReportingLocation.Type reportingLocation) {
    modules.add(
        new ContactActionModule() {
          @Override
@@ -244,7 +255,7 @@ public class SharedModules {
          @Override
          public boolean onClick() {
            ShowBlockReportSpamDialogNotifier.notifyShowDialogToBlockNumberAndOptionallyReportSpam(
                context, normalizedNumber, countryIso, callType);
                context, normalizedNumber, countryIso, callType, reportingLocation);
            return true; // Close the bottom sheet.
          }
        });
+1 −0
Original line number Diff line number Diff line
@@ -14,5 +14,6 @@ message ReportingLocation {
    UNKNOWN_REPORTING_LOCATION = 0;
    CALL_LOG_HISTORY = 1;
    FEEDBACK_PROMPT = 2;
    VOICEMAIL_HISTORY = 3;
  }
}
Loading