diff --git a/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt b/src/org/thoughtcrime/securesms/loki/LokiAPIDatabase.kt index b65597dec7..6057e1f8f1 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)?.toIntOrNull() ?: return@mapNotNull null + val idKey = components.getOrNull(2) ?: return@mapNotNull null + val encryptionKey = components.getOrNull(3)?: return@mapNotNull null + LokiAPITarget(address, port, LokiAPITarget.KeySet(idKey, 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 keySet = target.publicKeySet + if (keySet != null) { + string += "-${keySet.idKey}-${keySet.encryptionKey}" + } + string } val row = wrap(mapOf( Companion.hexEncodedPublicKey to hexEncodedPublicKey, swarm to swarmAsString )) database.insertOrUpdate(swarmCache, row, "${Companion.hexEncodedPublicKey} = ?", wrap(hexEncodedPublicKey)) 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) {