From f7197ca1de0fedf1de6b3c470d922f252c6d5818 Mon Sep 17 00:00:00 2001 From: Mikunj Date: Fri, 17 Jan 2020 12:51:37 +1100 Subject: [PATCH 1/3] Update how swarms are stored in the database. --- .../securesms/loki/LokiAPIDatabase.kt | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt b/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt index b65597dec7..5b2c3d6f1c 100644 --- a/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt +++ b/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt @@ -66,9 +66,13 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database( val database = databaseHelper.readableDatabase return database.get(swarmCache, "${Companion.hexEncodedPublicKey} = ?", wrap(hexEncodedPublicKey)) { cursor -> val swarmAsString = cursor.getString(cursor.getColumnIndexOrThrow(swarm)) - swarmAsString.split(", ").map { targetAsString -> - val components = targetAsString.split("?port=") - LokiAPITarget(components[0], components[1].toInt()) + swarmAsString.split(", ").mapNotNull { targetAsString -> + val components = targetAsString.split("-") + val address = components[0] + val port = components.getOrNull(1) ?: return@mapNotNull null + val identificationKey = components.getOrNull(2) ?: return@mapNotNull null + val encryptionKey = components.getOrNull(3)?: return@mapNotNull null + LokiAPITarget(address, port.toInt(), LokiAPITarget.Keys(identificationKey, encryptionKey)) } }?.toSet() } @@ -76,7 +80,12 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database( override fun setSwarmCache(hexEncodedPublicKey: String, newValue: Set) { val database = databaseHelper.writableDatabase val swarmAsString = newValue.joinToString(", ") { target -> - "${target.address}?port=${target.port}" + var string = "${target.address}-${target.port}" + val keys = target.publicKeys + if (keys != null) { + string += "-${keys.identification}-${keys.encryption}" + } + string } val row = wrap(mapOf( Companion.hexEncodedPublicKey to hexEncodedPublicKey, swarm to swarmAsString )) database.insertOrUpdate(swarmCache, row, "${Companion.hexEncodedPublicKey} = ?", wrap(hexEncodedPublicKey)) From 460f25629b8408cbf96472558adaf3e3bda29f76 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Tue, 28 Jan 2020 09:30:26 +1100 Subject: [PATCH 2/3] Don't show seed reminder after restoring from seed --- .../securesms/loki/redesign/activities/RegisterActivity.kt | 1 + .../securesms/loki/redesign/activities/RestoreActivity.kt | 1 + 2 files changed, 2 insertions(+) diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/RegisterActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/RegisterActivity.kt index ef7b7d2591..ed1f1951c8 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.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 70bc4aee56..87972cbd0b 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.setHasViewedSeed(this, true) val intent = Intent(this, DisplayNameActivity::class.java) push(intent) } catch (e: Exception) { From 438b33d35537d45434407cd2418a5f878b8aeb8d Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Tue, 28 Jan 2020 10:18:18 +1100 Subject: [PATCH 3/3] Clean --- .../thoughtcrime/securesms/loki/LokiAPIDatabase.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt b/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt index 5b2c3d6f1c..6057e1f8f1 100644 --- a/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt +++ b/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt @@ -69,10 +69,10 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database( swarmAsString.split(", ").mapNotNull { targetAsString -> val components = targetAsString.split("-") val address = components[0] - val port = components.getOrNull(1) ?: return@mapNotNull null - val identificationKey = components.getOrNull(2) ?: return@mapNotNull null + val port = components.getOrNull(1)?.toIntOrNull() ?: return@mapNotNull null + val idKey = components.getOrNull(2) ?: return@mapNotNull null val encryptionKey = components.getOrNull(3)?: return@mapNotNull null - LokiAPITarget(address, port.toInt(), LokiAPITarget.Keys(identificationKey, encryptionKey)) + LokiAPITarget(address, port, LokiAPITarget.KeySet(idKey, encryptionKey)) } }?.toSet() } @@ -81,9 +81,9 @@ class LokiAPIDatabase(context: Context, helper: SQLCipherOpenHelper) : Database( val database = databaseHelper.writableDatabase val swarmAsString = newValue.joinToString(", ") { target -> var string = "${target.address}-${target.port}" - val keys = target.publicKeys - if (keys != null) { - string += "-${keys.identification}-${keys.encryption}" + val keySet = target.publicKeySet + if (keySet != null) { + string += "-${keySet.idKey}-${keySet.encryptionKey}" } string }