From 086e3ed4ecba91cdbbd0a3a1df08feae9e93e1bb Mon Sep 17 00:00:00 2001 From: Chris Eager <79161849+eager-signal@users.noreply.github.com> Date: Wed, 30 Mar 2022 09:50:22 -0700 Subject: [PATCH] Update message reporting to use sender ACI instead of E164. Co-authored-by: Greyson Parrelli --- .../org/thoughtcrime/securesms/jobs/ReportSpamJob.java | 10 ++++++---- .../signalservice/api/SignalServiceAccountManager.java | 4 ++-- .../signalservice/internal/push/PushServiceSocket.java | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java index 45e3594fd0..81e299f5a5 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ReportSpamJob.java @@ -12,6 +12,7 @@ import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; import org.thoughtcrime.securesms.keyvalue.SignalStore; import org.thoughtcrime.securesms.recipients.Recipient; import org.whispersystems.signalservice.api.SignalServiceAccountManager; +import org.whispersystems.signalservice.api.push.ServiceId; import org.whispersystems.signalservice.api.push.exceptions.NonSuccessfulResponseCodeException; import org.whispersystems.signalservice.api.push.exceptions.ServerRejectedException; @@ -71,12 +72,13 @@ public class ReportSpamJob extends BaseJob { List reportSpamData = SignalDatabase.mmsSms().getReportSpamMessageServerData(threadId, timestamp, MAX_MESSAGE_COUNT); SignalServiceAccountManager signalServiceAccountManager = ApplicationDependencies.getSignalServiceAccountManager(); for (ReportSpamData data : reportSpamData) { - Optional e164 = Recipient.resolved(data.getRecipientId()).getE164(); - if (e164.isPresent()) { - signalServiceAccountManager.reportSpam(e164.get(), data.getServerGuid()); + Optional serviceId = Recipient.resolved(data.getRecipientId()).getServiceId(); + + if (serviceId.isPresent() && !serviceId.get().isUnknown()) { + signalServiceAccountManager.reportSpam(serviceId.get(), data.getServerGuid()); count++; } else { - Log.w(TAG, "Unable to report spam without an e164 for " + data.getRecipientId()); + Log.w(TAG, "Unable to report spam without an ACI for " + data.getRecipientId()); } } Log.i(TAG, "Reported " + count + " out of " + reportSpamData.size() + " messages in thread " + threadId + " as spam"); diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java index 9e216729af..5db1f259ca 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceAccountManager.java @@ -804,8 +804,8 @@ public class SignalServiceAccountManager { return this.pushServiceSocket.getCurrencyConversions(); } - public void reportSpam(String e164, String serverGuid) throws IOException { - this.pushServiceSocket.reportSpam(e164, serverGuid); + public void reportSpam(ServiceId serviceId, String serverGuid) throws IOException { + this.pushServiceSocket.reportSpam(serviceId, serverGuid); } /** diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java index 56df090ffc..d74fbcddfe 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/internal/push/PushServiceSocket.java @@ -2477,10 +2477,10 @@ public class PushServiceSocket { } } - public void reportSpam(String e164, String serverGuid) + public void reportSpam(ServiceId serviceId, String serverGuid) throws NonSuccessfulResponseCodeException, MalformedResponseException, PushNetworkException { - makeServiceRequest(String.format(REPORT_SPAM, e164, serverGuid), "POST", ""); + makeServiceRequest(String.format(REPORT_SPAM, serviceId.toString(), serverGuid), "POST", ""); } private static class VerificationCodeResponseHandler implements ResponseCodeHandler {