Add persistent upgrade Session ID button for V1 users

This commit is contained in:
Niels Andriesse
2020-12-16 14:50:27 +11:00
parent 23c973d316
commit 3cd1f0acff
2 changed files with 40 additions and 30 deletions

View File

@@ -159,23 +159,6 @@
android:gravity="center"
android:text="@string/activity_settings_chats_button_title" />
<View
android:id="@+id/linkedDevicesButtonTopSeparator"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="?android:dividerHorizontal" />
<TextView
android:id="@+id/linkedDevicesButton"
android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"
android:background="@drawable/setting_button_background"
android:textColor="@color/text"
android:textSize="@dimen/medium_font_size"
android:textStyle="bold"
android:gravity="center"
android:text="@string/activity_settings_devices_button_title" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
@@ -193,7 +176,23 @@
android:text="Invite" />
<View
android:id="@+id/seedButtonTopSeparator"
android:id="@+id/upgradeSessionIDButtonTopSeparator"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="?android:dividerHorizontal" />
<TextView
android:id="@+id/upgradeSessionIDButton"
android:layout_width="match_parent"
android:layout_height="@dimen/setting_button_height"
android:background="@drawable/setting_button_background"
android:textColor="@color/text"
android:textSize="@dimen/medium_font_size"
android:textStyle="bold"
android:gravity="center"
android:text="Upgrade Session ID" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:background="?android:dividerHorizontal" />

View File

@@ -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("Youre 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")
}