From 754e73e2413cadbdd78a54d832982f5bd28d1bb7 Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Thu, 29 Aug 2019 10:21:23 +1000 Subject: [PATCH] Fix crash --- res/values/strings.xml | 9 +++--- .../securesms/loki/NewConversationActivity.kt | 30 ++++++++----------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 399a85a277..751fef857d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1561,20 +1561,20 @@ Your Seed Restore Using Seed Register a New Account - Copied to Clipboard + Copied to clipboard Register Restore Looks like you don\'t have any conversations yet. Get started by messaging a friend. - Copied to Clipboard + Copied to clipboard Share Public Key Show QR Code Show Seed Your Seed Copy OK - Copied to Clipboard + Copied to clipboard Set Your Display Name Your Display Name @@ -1590,7 +1590,8 @@ Enter the public key of the person you\'d like to securely message. They can share their public key with you by going into Loki Messenger\'s in-app settings and clicking \"Share Public Key\". Scan a QR Code Instead Next - Invalid Public Key + Invalid public key + Please enter the public key of the person you\'d like to message Accept Reject diff --git a/src/org/thoughtcrime/securesms/loki/NewConversationActivity.kt b/src/org/thoughtcrime/securesms/loki/NewConversationActivity.kt index 353f2a97c6..b4e218495d 100644 --- a/src/org/thoughtcrime/securesms/loki/NewConversationActivity.kt +++ b/src/org/thoughtcrime/securesms/loki/NewConversationActivity.kt @@ -8,17 +8,14 @@ import android.widget.Toast import network.loki.messenger.R import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity import org.thoughtcrime.securesms.conversation.ConversationActivity -import org.thoughtcrime.securesms.crypto.IdentityKeyUtil import org.thoughtcrime.securesms.database.Address import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.database.ThreadDatabase -import org.thoughtcrime.securesms.logging.Log import org.thoughtcrime.securesms.permissions.Permissions import org.thoughtcrime.securesms.qr.ScanListener import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.util.DynamicTheme import org.thoughtcrime.securesms.util.TextSecurePreferences -import org.whispersystems.signalservice.loki.api.LokiGroupChatAPI import org.whispersystems.signalservice.loki.utilities.PublicKeyValidation class NewConversationActivity : PassphraseRequiredActionBarActivity(), ScanListener { @@ -67,19 +64,18 @@ class NewConversationActivity : PassphraseRequiredActionBarActivity(), ScanListe } fun startNewConversationIfPossible(hexEncodedPublicKey: String) { - if (PublicKeyValidation.isValid(hexEncodedPublicKey)) { - val contact = Recipient.from(this, Address.fromSerialized(hexEncodedPublicKey), true) - val intent = Intent(this, ConversationActivity::class.java) - intent.putExtra(ConversationActivity.ADDRESS_EXTRA, contact.address) - intent.putExtra(ConversationActivity.TEXT_EXTRA, getIntent().getStringExtra(ConversationActivity.TEXT_EXTRA)) - intent.setDataAndType(getIntent().data, getIntent().type) - val existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(contact) - intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, existingThread) - intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT) - startActivity(intent) - finish() - } else { - Toast.makeText(this, R.string.fragment_new_conversation_invalid_public_key_message, Toast.LENGTH_SHORT).show() - } + if (!PublicKeyValidation.isValid(hexEncodedPublicKey)) { return Toast.makeText(this, R.string.fragment_new_conversation_invalid_public_key_message, Toast.LENGTH_SHORT).show() } + val userHexEncodedPublicKey = TextSecurePreferences.getLocalNumber(this) + if (hexEncodedPublicKey == userHexEncodedPublicKey) { return Toast.makeText(this, R.string.fragment_new_conversation_note_to_self_not_supported_message, Toast.LENGTH_SHORT).show() } + val contact = Recipient.from(this, Address.fromSerialized(hexEncodedPublicKey), true) + val intent = Intent(this, ConversationActivity::class.java) + intent.putExtra(ConversationActivity.ADDRESS_EXTRA, contact.address) + intent.putExtra(ConversationActivity.TEXT_EXTRA, getIntent().getStringExtra(ConversationActivity.TEXT_EXTRA)) + intent.setDataAndType(getIntent().data, getIntent().type) + val existingThread = DatabaseFactory.getThreadDatabase(this).getThreadIdIfExistsFor(contact) + intent.putExtra(ConversationActivity.THREAD_ID_EXTRA, existingThread) + intent.putExtra(ConversationActivity.DISTRIBUTION_TYPE_EXTRA, ThreadDatabase.DistributionTypes.DEFAULT) + startActivity(intent) + finish() } } \ No newline at end of file