diff --git a/res/layout/activity_settings.xml b/res/layout/activity_settings.xml
index d393a1cff5..b5ea21b86a 100644
--- a/res/layout/activity_settings.xml
+++ b/res/layout/activity_settings.xml
@@ -159,23 +159,6 @@
android:gravity="center"
android:text="@string/activity_settings_chats_button_title" />
-
-
-
-
+
+
+
+
diff --git a/src/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt b/src/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt
index 7365827d12..abc9d8bb3e 100644
--- a/src/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt
+++ b/src/org/thoughtcrime/securesms/loki/activities/SettingsActivity.kt
@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.loki.activities
import android.Manifest
import android.app.Activity
+import android.app.AlertDialog
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
@@ -33,10 +34,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory
import org.thoughtcrime.securesms.loki.dialogs.ChangeUiModeDialog
import org.thoughtcrime.securesms.loki.dialogs.ClearAllDataDialog
import org.thoughtcrime.securesms.loki.dialogs.SeedDialog
-import org.thoughtcrime.securesms.loki.utilities.UiModeUtilities
-import org.thoughtcrime.securesms.loki.utilities.fadeIn
-import org.thoughtcrime.securesms.loki.utilities.fadeOut
-import org.thoughtcrime.securesms.loki.utilities.push
+import org.thoughtcrime.securesms.loki.utilities.*
import org.thoughtcrime.securesms.mms.GlideApp
import org.thoughtcrime.securesms.mms.GlideRequests
import org.thoughtcrime.securesms.permissions.Permissions
@@ -85,18 +83,18 @@ class SettingsActivity : PassphraseRequiredActionBarActivity() {
publicKeyTextView.text = hexEncodedPublicKey
copyButton.setOnClickListener { copyPublicKey() }
shareButton.setOnClickListener { sharePublicKey() }
- val isMasterDevice = (TextSecurePreferences.getMasterHexEncodedPublicKey(this) == null)
- linkedDevicesButtonTopSeparator.visibility = View.GONE
- linkedDevicesButton.visibility = View.GONE
- if (!isMasterDevice) {
- seedButtonTopSeparator.visibility = View.GONE
- seedButton.visibility = View.GONE
- }
privacyButton.setOnClickListener { showPrivacySettings() }
notificationsButton.setOnClickListener { showNotificationSettings() }
chatsButton.setOnClickListener { showChatSettings() }
-// linkedDevicesButton.setOnClickListener { showLinkedDevices() }
sendInvitationButton.setOnClickListener { sendInvitation() }
+ if (!KeyPairUtilities.hasV2KeyPair(this)) {
+ upgradeSessionIDButtonTopSeparator.visibility = View.VISIBLE
+ upgradeSessionIDButton.setOnClickListener { upgradeSessionID() }
+ upgradeSessionIDButton.visibility = View.VISIBLE
+ } else {
+ upgradeSessionIDButtonTopSeparator.visibility = View.GONE
+ upgradeSessionIDButton.visibility = View.GONE
+ }
seedButton.setOnClickListener { showSeed() }
clearAllDataButton.setOnClickListener { clearAllData() }
versionTextView.text = String.format(getString(R.string.version_s), "${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})")
@@ -302,6 +300,19 @@ class SettingsActivity : PassphraseRequiredActionBarActivity() {
startActivity(intent)
}
+ private fun upgradeSessionID() {
+ val applicationContext = this.applicationContext as ApplicationContext
+ val dialog = AlertDialog.Builder(this)
+ dialog.setMessage("You’re upgrading to a new Session ID. This will give you improved privacy and security, but it will clear ALL app data. Contacts and conversations will be lost. Proceed?")
+ dialog.setPositiveButton(R.string.yes) { _, _ ->
+ applicationContext.clearAllData()
+ }
+ dialog.setNegativeButton(R.string.cancel) { _, _ ->
+ // Do nothing
+ }
+ dialog.create().show()
+ }
+
private fun showSeed() {
SeedDialog().show(supportFragmentManager, "Recovery Phrase Dialog")
}