From 1a6da88ce357ebacb9bf80aa01f9e2b6d287ca92 Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Tue, 9 Mar 2021 13:54:15 +1100 Subject: [PATCH] clean --- .../securesms/database/Storage.kt | 2 +- .../database/helpers/SQLCipherOpenHelper.java | 6 +- .../SignalCommunicationModule.java | 4 - .../securesms/jobs/JobManagerFactories.java | 2 - .../securesms/jobs/PushDecryptJob.java | 26 ---- .../securesms/jobs/RequestGroupInfoJob.java | 107 ----------------- .../jobs/SendDeliveryReceiptJob.java | 112 ------------------ 7 files changed, 5 insertions(+), 254 deletions(-) delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java delete mode 100644 app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt index c836b6a51a..d4096b1083 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/database/Storage.kt @@ -80,7 +80,7 @@ class Storage(context: Context, helper: SQLCipherOpenHelper) : Database(context, override fun getOrGenerateRegistrationID(): Int { var registrationID = TextSecurePreferences.getLocalRegistrationId(context) - if (registrationID == null) { + if (registrationID == 0) { registrationID = KeyHelper.generateRegistrationId(false) TextSecurePreferences.setLocalRegistrationId(context, registrationID) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java index 05ab718744..abf1a29063 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java +++ b/app/src/main/java/org/thoughtcrime/securesms/database/helpers/SQLCipherOpenHelper.java @@ -255,7 +255,8 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { "SmsSentJob", "SmsReceiveJob", "PushGroupUpdateJob", - "ResetThreadSessionJob"); + "ResetThreadSessionJob", + "SendDeliveryReceiptJob"); } if (oldVersion < lokiV22) { @@ -266,7 +267,8 @@ public class SQLCipherOpenHelper extends SQLiteOpenHelper { "PushTextSendJob", "SendReadReceiptJob", "TypingSendJob", - "AttachmentUploadJob"); + "AttachmentUploadJob", + "RequestGroupInfoJob"); } db.setTransactionSuccessful(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java index 704595c766..66cf7e68b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/SignalCommunicationModule.java @@ -10,9 +10,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.jobs.AttachmentDownloadJob; import org.thoughtcrime.securesms.jobs.AvatarDownloadJob; import org.thoughtcrime.securesms.jobs.PushDecryptJob; -import org.thoughtcrime.securesms.jobs.RequestGroupInfoJob; import org.thoughtcrime.securesms.jobs.RetrieveProfileAvatarJob; -import org.thoughtcrime.securesms.jobs.SendDeliveryReceiptJob; import org.thoughtcrime.securesms.linkpreview.LinkPreviewRepository; import org.thoughtcrime.securesms.loki.api.SessionProtocolImpl; import org.thoughtcrime.securesms.preferences.AppProtectionPreferenceFragment; @@ -22,11 +20,9 @@ import dagger.Module; import dagger.Provides; @Module(complete = false, injects = {AttachmentDownloadJob.class, - RequestGroupInfoJob.class, AvatarDownloadJob.class, RetrieveProfileAvatarJob.class, AppProtectionPreferenceFragment.class, - SendDeliveryReceiptJob.class, PushDecryptJob.class, LinkPreviewRepository.class}) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java index a93478442c..9efbac7f72 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/JobManagerFactories.java @@ -36,9 +36,7 @@ public final class JobManagerFactories { put(LocalBackupJob.KEY, new LocalBackupJob.Factory()); put(PushContentReceiveJob.KEY, new PushContentReceiveJob.Factory()); put(PushDecryptJob.KEY, new PushDecryptJob.Factory()); - put(RequestGroupInfoJob.KEY, new RequestGroupInfoJob.Factory()); put(RetrieveProfileAvatarJob.KEY, new RetrieveProfileAvatarJob.Factory(application)); - put(SendDeliveryReceiptJob.KEY, new SendDeliveryReceiptJob.Factory()); put(TrimThreadJob.KEY, new TrimThreadJob.Factory()); put(UpdateApkJob.KEY, new UpdateApkJob.Factory()); put(PrepareAttachmentAudioExtrasJob.KEY, new PrepareAttachmentAudioExtrasJob.Factory()); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index 3d1ee9d0ea..62a87e3769 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -232,17 +232,9 @@ public class PushDecryptJob extends BaseJob implements InjectableType { handleTextMessage(content, message, smsMessageId, Optional.absent()); } - if (message.getGroupInfo().isPresent() && groupDatabase.isUnknownGroup(GroupUtil.getEncodedId(message.getGroupInfo().get()))) { - handleUnknownGroupMessage(content, message.getGroupInfo().get()); - } - if (message.getProfileKey().isPresent() && message.getProfileKey().get().length == 32) { SessionMetaProtocol.handleProfileKeyUpdate(context, content); } - - if (SessionMetaProtocol.shouldSendDeliveryReceipt(message, Address.fromSerialized(content.getSender()))) { - handleNeedsDeliveryReceipt(content, message); - } } else if (content.getReceiptMessage().isPresent()) { SignalServiceReceiptMessage message = content.getReceiptMessage().get(); @@ -268,16 +260,6 @@ public class PushDecryptJob extends BaseJob implements InjectableType { } } - private void handleUnknownGroupMessage(@NonNull SignalServiceContent content, - @NonNull SignalServiceGroup group) - { - if (group.getGroupType() == SignalServiceGroup.GroupType.SIGNAL) { - ApplicationContext.getInstance(context) - .getJobManager() - .add(new RequestGroupInfoJob(content.getSender(), group.getGroupId())); - } - } - private void handleExpirationUpdate(@NonNull SignalServiceContent content, @NonNull SignalServiceDataMessage message, @NonNull Optional smsMessageId) @@ -608,14 +590,6 @@ public class PushDecryptJob extends BaseJob implements InjectableType { } } - private void handleNeedsDeliveryReceipt(@NonNull SignalServiceContent content, - @NonNull SignalServiceDataMessage message) - { - ApplicationContext.getInstance(context) - .getJobManager() - .add(new SendDeliveryReceiptJob(Address.fromSerialized(content.getSender()), message.getTimestamp())); - } - @SuppressLint("DefaultLocale") private void handleDeliveryReceipt(@NonNull SignalServiceContent content, @NonNull SignalServiceReceiptMessage message) diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java deleted file mode 100644 index fc216d68fb..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/RequestGroupInfoJob.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.thoughtcrime.securesms.jobs; - -import androidx.annotation.NonNull; - -import org.session.libsession.messaging.jobs.Data; -import org.session.libsession.messaging.threads.recipients.Recipient; -import org.session.libsession.messaging.threads.Address; -import org.session.libsession.utilities.GroupUtil; - -import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.thoughtcrime.securesms.dependencies.InjectableType; -import org.thoughtcrime.securesms.jobmanager.Job; -import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; -import org.session.libsignal.service.api.SignalServiceMessageSender; -import org.session.libsignal.service.api.messages.SignalServiceDataMessage; -import org.session.libsignal.service.api.messages.SignalServiceGroup; -import org.session.libsignal.service.api.messages.SignalServiceGroup.Type; -import org.session.libsignal.service.api.push.SignalServiceAddress; -import org.session.libsignal.service.api.push.exceptions.PushNetworkException; - -import java.io.IOException; -import java.util.concurrent.TimeUnit; - -import javax.inject.Inject; - -public class RequestGroupInfoJob extends BaseJob implements InjectableType { - - public static final String KEY = "RequestGroupInfoJob"; - - @SuppressWarnings("unused") - private static final String TAG = RequestGroupInfoJob.class.getSimpleName(); - - private static final String KEY_SOURCE = "source"; - private static final String KEY_GROUP_ID = "group_id"; - - @Inject SignalServiceMessageSender messageSender; - - private String source; - private byte[] groupId; - - public RequestGroupInfoJob(@NonNull String source, @NonNull byte[] groupId) { - this(new Job.Parameters.Builder() - .addConstraint(NetworkConstraint.KEY) - .setLifespan(TimeUnit.DAYS.toMillis(1)) - .setMaxAttempts(Parameters.UNLIMITED) - .build(), - source, - groupId); - - } - - private RequestGroupInfoJob(@NonNull Job.Parameters parameters, @NonNull String source, @NonNull byte[] groupId) { - super(parameters); - - this.source = source; - this.groupId = groupId; - } - - @Override - public @NonNull - Data serialize() { - return new Data.Builder().putString(KEY_SOURCE, source) - .putString(KEY_GROUP_ID, GroupUtil.getEncodedClosedGroupID(groupId)) - .build(); - } - - @Override - public @NonNull String getFactoryKey() { - return KEY; - } - - @Override - public void onRun() throws IOException { - SignalServiceGroup group = SignalServiceGroup.newBuilder(Type.REQUEST_INFO) - .withId(groupId, SignalServiceGroup.GroupType.SIGNAL) - .build(); - - SignalServiceDataMessage message = SignalServiceDataMessage.newBuilder() - .asGroupMessage(group) - .withTimestamp(System.currentTimeMillis()) - .build(); - - messageSender.sendMessage(0, new SignalServiceAddress(source), - UnidentifiedAccessUtil.getAccessFor(context, Recipient.from(context, Address.fromExternal(context, source), false)), - message, false); - } - - @Override - public boolean onShouldRetry(@NonNull Exception e) { - return e instanceof PushNetworkException; - } - - @Override - public void onCanceled() { - - } - - public static final class Factory implements Job.Factory { - - @Override - public @NonNull RequestGroupInfoJob create(@NonNull Parameters parameters, @NonNull Data data) { - return new RequestGroupInfoJob(parameters, - data.getString(KEY_SOURCE), - GroupUtil.getDecodedGroupIDAsData(data.getString(KEY_GROUP_ID))); - } - } -} diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java deleted file mode 100644 index f938691d24..0000000000 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/SendDeliveryReceiptJob.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.thoughtcrime.securesms.jobs; - - -import androidx.annotation.NonNull; - -import org.session.libsession.messaging.jobs.Data; -import org.thoughtcrime.securesms.crypto.UnidentifiedAccessUtil; -import org.session.libsession.messaging.threads.Address; -import org.thoughtcrime.securesms.dependencies.InjectableType; -import org.thoughtcrime.securesms.jobmanager.Job; -import org.thoughtcrime.securesms.jobmanager.impl.NetworkConstraint; -import org.session.libsignal.utilities.logging.Log; -import org.session.libsession.messaging.threads.recipients.Recipient; -import org.session.libsignal.service.api.SignalServiceMessageSender; -import org.session.libsignal.service.api.messages.SignalServiceReceiptMessage; -import org.session.libsignal.service.api.push.SignalServiceAddress; -import org.session.libsignal.service.api.push.exceptions.PushNetworkException; - -import java.io.IOException; -import java.util.Collections; -import java.util.concurrent.TimeUnit; - -import javax.inject.Inject; - -public class SendDeliveryReceiptJob extends BaseJob implements InjectableType { - - public static final String KEY = "SendDeliveryReceiptJob"; - - private static final String KEY_ADDRESS = "address"; - private static final String KEY_MESSAGE_ID = "message_id"; - private static final String KEY_TIMESTAMP = "timestamp"; - - private static final String TAG = "SendReadReceiptJob"; - - @Inject - transient SignalServiceMessageSender messageSender; - - private String address; - private long messageId; - private long timestamp; - - public SendDeliveryReceiptJob(@NonNull Address address, long messageId) { - this(new Job.Parameters.Builder() - .addConstraint(NetworkConstraint.KEY) - .setLifespan(TimeUnit.DAYS.toMillis(1)) - .setMaxAttempts(Parameters.UNLIMITED) - .build(), - address, - messageId, - System.currentTimeMillis()); - } - - private SendDeliveryReceiptJob(@NonNull Job.Parameters parameters, - @NonNull Address address, - long messageId, - long timestamp) - { - super(parameters); - - this.address = address.serialize(); - this.messageId = messageId; - this.timestamp = timestamp; - } - - @Override - public @NonNull - Data serialize() { - return new Data.Builder().putString(KEY_ADDRESS, address) - .putLong(KEY_MESSAGE_ID, messageId) - .putLong(KEY_TIMESTAMP, timestamp) - .build(); - } - - @Override - public @NonNull String getFactoryKey() { - return KEY; - } - - @Override - public void onRun() throws IOException { - Log.d("Loki", "Sending delivery receipt."); - SignalServiceAddress remoteAddress = new SignalServiceAddress(address); - SignalServiceReceiptMessage receiptMessage = new SignalServiceReceiptMessage(SignalServiceReceiptMessage.Type.DELIVERY, - Collections.singletonList(messageId), - timestamp); - - messageSender.sendReceipt(remoteAddress, - UnidentifiedAccessUtil.getAccessFor(context, Recipient.from(context, Address.fromSerialized(address), false)), - receiptMessage); - } - - @Override - public boolean onShouldRetry(@NonNull Exception e) { - if (e instanceof PushNetworkException) return true; - return false; - } - - @Override - public void onCanceled() { - Log.w(TAG, "Failed to send delivery receipt to: " + address); - } - - public static final class Factory implements Job.Factory { - @Override - public @NonNull SendDeliveryReceiptJob create(@NonNull Parameters parameters, @NonNull Data data) { - return new SendDeliveryReceiptJob(parameters, - Address.fromSerialized(data.getString(KEY_ADDRESS)), - data.getLong(KEY_MESSAGE_ID), - data.getLong(KEY_TIMESTAMP)); - } - } -}