From 2ea009b05bc431eafec8f9e099bc4d4580cf9ff4 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Tue, 28 Jan 2020 10:52:06 +1100 Subject: [PATCH] Clean --- .../securesms/jobs/PushDecryptJob.java | 19 ++++++--------- .../securesms/loki/LokiThreadDatabase.kt | 6 ++--- .../loki/PushBackgroundMessageSendJob.kt | 23 +++++++------------ .../redesign/activities/RegisterActivity.kt | 1 + .../redesign/activities/RestoreActivity.kt | 1 + 5 files changed, 20 insertions(+), 30 deletions(-) diff --git a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index 523541fff9..9ec5d229a1 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -41,7 +41,6 @@ import org.thoughtcrime.securesms.crypto.storage.SignalProtocolStoreImpl; import org.thoughtcrime.securesms.crypto.storage.TextSecureSessionStore; import org.thoughtcrime.securesms.database.Address; import org.thoughtcrime.securesms.database.AttachmentDatabase; -import org.thoughtcrime.securesms.database.Database; import org.thoughtcrime.securesms.database.DatabaseFactory; import org.thoughtcrime.securesms.database.GroupDatabase; import org.thoughtcrime.securesms.database.GroupReceiptDatabase; @@ -282,7 +281,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType { // Loki - Ignore any friend requests that we got before restoration if (envelope.isFriendRequest() && envelope.getTimestamp() < TextSecurePreferences.getRestorationTime(context)) { - Log.i(TAG, "Ignoring friend request that was received before restoration"); + Log.d("Loki", "Ignoring friend request received before restoration."); return; } @@ -339,7 +338,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType { MultiDeviceUtilities.checkForRevocation(context); } } else { - // Loki - We shouldn't process session restore message any further + // Loki - Don't process session restore message any further if (message.isSessionRestore()) { return; } if (message.isEndSession()) handleEndSessionMessage(content, smsMessageId); else if (message.isGroupUpdate()) handleGroupMessage(content, message, smsMessageId); @@ -1199,18 +1198,18 @@ public class PushDecryptJob extends BaseJob implements InjectableType { ThreadDatabase threadDatabase = DatabaseFactory.getThreadDatabase(context); LokiThreadDatabase lokiThreadDatabase = DatabaseFactory.getLokiThreadDatabase(context); - // Store the latest PreKeyBundle + // Loki - Store the latest pre key bundle if (registrationID > 0) { Log.d("Loki", "Received a pre key bundle from: " + content.getSender() + "."); PreKeyBundle preKeyBundle = lokiMessage.getPreKeyBundleMessage().getPreKeyBundle(registrationID); lokiPreKeyBundleDatabase.setPreKeyBundle(content.getSender(), preKeyBundle); - // If we got a friend request and we were friends with this user then we need to reset our session + // Loki - If we received a friend request, but we were already friends with this user, then reset the session if (envelope.isFriendRequest()) { long threadID = threadDatabase.getThreadIdIfExistsFor(sender); if (lokiThreadDatabase.getFriendRequestStatus(threadID) == LokiThreadFriendRequestStatus.FRIENDS) { resetSession(content.getSender(), threadID); - // Let our other devices know that we have reset session + // Let our other devices know that we have reset the session MessageSender.syncContact(context, sender.getAddress()); } } @@ -1388,13 +1387,9 @@ public class PushDecryptJob extends BaseJob implements InjectableType { SmsDatabase smsDatabase = DatabaseFactory.getSmsDatabase(context); Recipient recipient = Recipient.from(context, Address.fromSerialized(sender), false); long threadID = DatabaseFactory.getThreadDatabase(context).getThreadIdIfExistsFor(recipient); - if (threadID < 0) { - return null; - } + if (threadID < 0) { return null; } int messageCount = smsDatabase.getMessageCountForThread(threadID); - if (messageCount <= 0) { - return null; - } + if (messageCount <= 0) { return null; } long lastMessageID = smsDatabase.getIDForMessageAtIndex(threadID, messageCount - 1); return smsDatabase.getMessage(lastMessageID); } catch (Exception e) { diff --git a/src/org/thoughtcrime/securesms/loki/LokiThreadDatabase.kt b/src/org/thoughtcrime/securesms/loki/LokiThreadDatabase.kt index dfc732474c..3dca0abaaa 100644 --- a/src/org/thoughtcrime/securesms/loki/LokiThreadDatabase.kt +++ b/src/org/thoughtcrime/securesms/loki/LokiThreadDatabase.kt @@ -154,9 +154,9 @@ class LokiThreadDatabase(context: Context, helper: SQLCipherOpenHelper) : Databa fun getSessionRestoreDevices(threadID: Long): Set { return TextSecurePreferences.getStringPreference(context, "session_restore_devices_$threadID", "") - .split(",") - .filter { PublicKeyValidation.isValid(it) } - .toSet() + .split(",") + .filter { PublicKeyValidation.isValid(it) } + .toSet() } fun removeAllSessionRestoreDevices(threadID: Long) { diff --git a/src/org/thoughtcrime/securesms/loki/PushBackgroundMessageSendJob.kt b/src/org/thoughtcrime/securesms/loki/PushBackgroundMessageSendJob.kt index 73ac0a9144..a7b1d081ad 100644 --- a/src/org/thoughtcrime/securesms/loki/PushBackgroundMessageSendJob.kt +++ b/src/org/thoughtcrime/securesms/loki/PushBackgroundMessageSendJob.kt @@ -13,30 +13,23 @@ import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage import org.whispersystems.signalservice.api.push.SignalServiceAddress import org.whispersystems.signalservice.internal.util.JsonUtil import java.io.IOException -import java.lang.IllegalStateException import java.util.concurrent.TimeUnit data class BackgroundMessage private constructor(val data: Map) { + companion object { + @JvmStatic fun create(recipient: String) = BackgroundMessage(mapOf("recipient" to recipient)) + @JvmStatic - fun createFriendRequest(recipient: String, messageBody: String) = BackgroundMessage(mapOf( - "recipient" to recipient, - "body" to messageBody, - "friendRequest" to true - )) + fun createFriendRequest(recipient: String, messageBody: String) = BackgroundMessage(mapOf( "recipient" to recipient, "body" to messageBody, "friendRequest" to true )) + @JvmStatic - fun createUnpairingRequest(recipient: String) = BackgroundMessage(mapOf( - "recipient" to recipient, - "unpairingRequest" to true - )) + fun createUnpairingRequest(recipient: String) = BackgroundMessage(mapOf( "recipient" to recipient, "unpairingRequest" to true )) + @JvmStatic - fun createSessionRestore(recipient: String) = BackgroundMessage(mapOf( - "recipient" to recipient, - "friendRequest" to true, - "sessionRestore" to true - )) + fun createSessionRestore(recipient: String) = BackgroundMessage(mapOf( "recipient" to recipient, "friendRequest" to true, "sessionRestore" to true )) internal fun parse(serialized: String): BackgroundMessage { val data = JsonUtil.fromJson(serialized, Map::class.java) as? Map ?: throw AssertionError("JSON parsing failed") diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/RegisterActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/RegisterActivity.kt index ed1f1951c8..50936cf3f9 100644 --- a/src/org/thoughtcrime/securesms/loki/redesign/activities/RegisterActivity.kt +++ b/src/org/thoughtcrime/securesms/loki/redesign/activities/RegisterActivity.kt @@ -129,6 +129,7 @@ class RegisterActivity : BaseActionBarActivity() { IdentityKeyUtil.getIdentityKeyPair(this).publicKey, IdentityDatabase.VerifiedStatus.VERIFIED, true, System.currentTimeMillis(), true) TextSecurePreferences.setLocalNumber(this, userHexEncodedPublicKey) + TextSecurePreferences.setRestorationTime(this, 0) TextSecurePreferences.setHasViewedSeed(this, false) val intent = Intent(this, DisplayNameActivity::class.java) push(intent) diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/RestoreActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/RestoreActivity.kt index 87972cbd0b..7bc10e7253 100644 --- a/src/org/thoughtcrime/securesms/loki/redesign/activities/RestoreActivity.kt +++ b/src/org/thoughtcrime/securesms/loki/redesign/activities/RestoreActivity.kt @@ -87,6 +87,7 @@ class RestoreActivity : BaseActionBarActivity() { IdentityKeyUtil.getIdentityKeyPair(this).publicKey, IdentityDatabase.VerifiedStatus.VERIFIED, true, System.currentTimeMillis(), true) TextSecurePreferences.setLocalNumber(this, userHexEncodedPublicKey) + TextSecurePreferences.setRestorationTime(this, System.currentTimeMillis()) TextSecurePreferences.setHasViewedSeed(this, true) val intent = Intent(this, DisplayNameActivity::class.java) push(intent)