diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index ad4497c9ea..8deb3f89aa 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -152,6 +152,8 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/res/drawable/ic_launcher_foreground.xml b/res/drawable/ic_launcher_foreground.xml
index 6f3372527e..a3203d25e9 100644
--- a/res/drawable/ic_launcher_foreground.xml
+++ b/res/drawable/ic_launcher_foreground.xml
@@ -1,11 +1,15 @@
-
-
-
+ android:viewportWidth="1018.39685"
+ android:viewportHeight="1019.1061">
+
+
+
+
+
diff --git a/res/layout/activity_home.xml b/res/layout/activity_home.xml
index b6239f1348..b7e57498f7 100644
--- a/res/layout/activity_home.xml
+++ b/res/layout/activity_home.xml
@@ -52,6 +52,11 @@
+
+
diff --git a/res/layout/activity_seed_v2.xml b/res/layout/activity_seed_v2.xml
new file mode 100644
index 0000000000..17a406b1f7
--- /dev/null
+++ b/res/layout/activity_seed_v2.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout/create_passphrase_activity.xml b/res/layout/create_passphrase_activity.xml
index 3a7db22d44..2df7ef51aa 100644
--- a/res/layout/create_passphrase_activity.xml
+++ b/res/layout/create_passphrase_activity.xml
@@ -4,7 +4,7 @@
android:id="@+id/prompt_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/loki_darkest_gray">
+ android:background="@drawable/default_session_background">
diff --git a/res/layout/fragment_enter_public_key.xml b/res/layout/fragment_enter_public_key.xml
index 012b61bb8b..a2e53ce92d 100644
--- a/res/layout/fragment_enter_public_key.xml
+++ b/res/layout/fragment_enter_public_key.xml
@@ -5,6 +5,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/default_session_background"
+ android:gravity="center_horizontal"
android:orientation="vertical">
diff --git a/res/layout/fragment_enter_session_id.xml b/res/layout/fragment_enter_session_id.xml
index da92a4320e..773561fd98 100644
--- a/res/layout/fragment_enter_session_id.xml
+++ b/res/layout/fragment_enter_session_id.xml
@@ -4,6 +4,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/default_session_background"
+ android:gravity="center_horizontal"
android:orientation="vertical">
diff --git a/res/layout/fragment_view_my_qr_code.xml b/res/layout/fragment_view_my_qr_code.xml
index 75a812ce8e..f0c997548c 100644
--- a/res/layout/fragment_view_my_qr_code.xml
+++ b/res/layout/fragment_view_my_qr_code.xml
@@ -14,6 +14,7 @@
android:id="@+id/contentView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
+ android:gravity="center_horizontal"
android:orientation="vertical">
diff --git a/res/layout/prompt_passphrase_activity.xml b/res/layout/prompt_passphrase_activity.xml
index 1829d3623b..7cec2f521c 100644
--- a/res/layout/prompt_passphrase_activity.xml
+++ b/res/layout/prompt_passphrase_activity.xml
@@ -6,7 +6,7 @@
android:id="@+id/prompt_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/loki_darkest_gray"
+ android:background="@drawable/default_session_background"
android:orientation="vertical">
-
+ android:padding="20dp">
-
+ android:layout_width="196dp"
+ android:layout_height="@dimen/medium_button_height"
+ android:text="Tap to Unlock" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/mipmap-hdpi/ic_launcher.png b/res/mipmap-hdpi/ic_launcher.png
index fe2a79fa87..6e73f903c6 100644
Binary files a/res/mipmap-hdpi/ic_launcher.png and b/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/res/mipmap-hdpi/ic_launcher_round.png b/res/mipmap-hdpi/ic_launcher_round.png
index a2e687b7f5..56aa6751b6 100644
Binary files a/res/mipmap-hdpi/ic_launcher_round.png and b/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/res/mipmap-mdpi/ic_launcher.png b/res/mipmap-mdpi/ic_launcher.png
index a0a89b4509..5074ce307a 100644
Binary files a/res/mipmap-mdpi/ic_launcher.png and b/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/res/mipmap-mdpi/ic_launcher_round.png b/res/mipmap-mdpi/ic_launcher_round.png
index 86d0e180d5..78a2aa5a5d 100644
Binary files a/res/mipmap-mdpi/ic_launcher_round.png and b/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/res/mipmap-xhdpi/ic_launcher.png b/res/mipmap-xhdpi/ic_launcher.png
index 7ac6dc5270..e460685434 100644
Binary files a/res/mipmap-xhdpi/ic_launcher.png and b/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/res/mipmap-xhdpi/ic_launcher_round.png b/res/mipmap-xhdpi/ic_launcher_round.png
index bd01db4adf..ac7fe59c88 100644
Binary files a/res/mipmap-xhdpi/ic_launcher_round.png and b/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/res/mipmap-xxhdpi/ic_launcher.png b/res/mipmap-xxhdpi/ic_launcher.png
index ea482d3efe..7a3b9ea8fa 100644
Binary files a/res/mipmap-xxhdpi/ic_launcher.png and b/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_round.png b/res/mipmap-xxhdpi/ic_launcher_round.png
index 88a3b0a832..02730bc43e 100644
Binary files a/res/mipmap-xxhdpi/ic_launcher_round.png and b/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher.png b/res/mipmap-xxxhdpi/ic_launcher.png
index 79397a94ed..532e748324 100644
Binary files a/res/mipmap-xxxhdpi/ic_launcher.png and b/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher_round.png b/res/mipmap-xxxhdpi/ic_launcher_round.png
index 14dd8e03c8..050ab2d6ef 100644
Binary files a/res/mipmap-xxxhdpi/ic_launcher_round.png and b/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 05256b7613..3622104343 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -18,6 +18,8 @@
#1B1B1B
#3F4146
#000000
+ #333132
+ #0AFFFFFF
diff --git a/res/values/ic_launcher_background.xml b/res/values/ic_launcher_background.xml
index 635da4bb7b..8e21cacbc4 100644
--- a/res/values/ic_launcher_background.xml
+++ b/res/values/ic_launcher_background.xml
@@ -1,4 +1,4 @@
- #0A0A0A
+ #333132
\ No newline at end of file
diff --git a/res/values/themes.xml b/res/values/themes.xml
index bad8e588e7..dffda525b1 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -9,6 +9,7 @@
- @color/action_bar_background
- @color/navigation_bar_background
- @style/Session.AlertDialog
+ - @drawable/default_session_background
diff --git a/src/org/thoughtcrime/securesms/BaseActionBarActivity.java b/src/org/thoughtcrime/securesms/BaseActionBarActivity.java
index 9c741c33cb..86b0840d3f 100644
--- a/src/org/thoughtcrime/securesms/BaseActionBarActivity.java
+++ b/src/org/thoughtcrime/securesms/BaseActionBarActivity.java
@@ -46,7 +46,7 @@ public abstract class BaseActionBarActivity extends AppCompatActivity {
DynamicLanguageActivityHelper.recreateIfNotInCorrectLanguage(this, TextSecurePreferences.getLanguage(this));
String name = getResources().getString(R.string.app_name);
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_foreground);
- int color = getResources().getColor(R.color.loki_darkest_gray);
+ int color = getResources().getColor(R.color.app_icon_background);
setTaskDescription(new ActivityManager.TaskDescription(name, icon, color));
}
diff --git a/src/org/thoughtcrime/securesms/BaseActivity.java b/src/org/thoughtcrime/securesms/BaseActivity.java
index f1999681bd..56d7547ff2 100644
--- a/src/org/thoughtcrime/securesms/BaseActivity.java
+++ b/src/org/thoughtcrime/securesms/BaseActivity.java
@@ -44,7 +44,7 @@ public abstract class BaseActivity extends FragmentActivity {
DynamicLanguageActivityHelper.recreateIfNotInCorrectLanguage(this, TextSecurePreferences.getLanguage(this));
String name = getResources().getString(R.string.app_name);
Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher_foreground);
- int color = getResources().getColor(R.color.loki_darkest_gray);
+ int color = getResources().getColor(R.color.app_icon_background);
setTaskDescription(new ActivityManager.TaskDescription(name, icon, color));
}
diff --git a/src/org/thoughtcrime/securesms/PassphrasePromptActivity.java b/src/org/thoughtcrime/securesms/PassphrasePromptActivity.java
index dd9bbb246a..16046287d9 100644
--- a/src/org/thoughtcrime/securesms/PassphrasePromptActivity.java
+++ b/src/org/thoughtcrime/securesms/PassphrasePromptActivity.java
@@ -43,13 +43,12 @@ import android.view.animation.Animation;
import android.view.animation.BounceInterpolator;
import android.view.animation.TranslateAnimation;
import android.view.inputmethod.EditorInfo;
+import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
-import com.dd.CircularProgressButton;
-
import org.thoughtcrime.securesms.animation.AnimationCompleteListener;
import org.thoughtcrime.securesms.components.AnimatingToggle;
import org.thoughtcrime.securesms.crypto.InvalidPassphraseException;
@@ -76,7 +75,7 @@ public class PassphrasePromptActivity extends PassphraseActivity {
private View passphraseAuthContainer;
private ImageView fingerprintPrompt;
- private CircularProgressButton lockScreenButton;
+ private Button lockScreenButton;
private EditText passphraseText;
private ImageButton showButton;
@@ -278,7 +277,7 @@ public class PassphrasePromptActivity extends PassphraseActivity {
fingerprintManager.authenticate(null, 0, fingerprintCancellationSignal, fingerprintListener, null);
} else if (Build.VERSION.SDK_INT >= 21){
Log.i(TAG, "firing intent...");
- Intent intent = keyguardManager.createConfirmDeviceCredentialIntent("Unlock Loki Messenger", "");
+ Intent intent = keyguardManager.createConfirmDeviceCredentialIntent("Unlock Session", "");
startActivityForResult(intent, 1);
} else {
Log.w(TAG, "Not compatible...");
diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt
index 9270279ba4..e7e2b34865 100644
--- a/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt
+++ b/src/org/thoughtcrime/securesms/loki/redesign/activities/HomeActivity.kt
@@ -16,6 +16,10 @@ import android.support.v4.content.Loader
import android.support.v7.widget.LinearLayoutManager
import android.support.v7.widget.RecyclerView
import android.support.v7.widget.helper.ItemTouchHelper
+import android.text.Spannable
+import android.text.SpannableString
+import android.text.style.ForegroundColorSpan
+import android.view.View
import kotlinx.android.synthetic.main.activity_home.*
import network.loki.messenger.R
import org.thoughtcrime.securesms.ApplicationContext
@@ -28,13 +32,14 @@ import org.thoughtcrime.securesms.loki.getColorWithID
import org.thoughtcrime.securesms.loki.redesign.utilities.push
import org.thoughtcrime.securesms.loki.redesign.utilities.show
import org.thoughtcrime.securesms.loki.redesign.views.ConversationView
+import org.thoughtcrime.securesms.loki.redesign.views.SeedReminderViewDelegate
import org.thoughtcrime.securesms.mms.GlideApp
import org.thoughtcrime.securesms.mms.GlideRequests
import org.thoughtcrime.securesms.notifications.MessageNotifier
import org.thoughtcrime.securesms.util.TextSecurePreferences
import kotlin.math.abs
-class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListener {
+class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListener, SeedReminderViewDelegate {
private lateinit var glide: GlideRequests
private val hexEncodedPublicKey: String
@@ -79,6 +84,19 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
profileButton.update()
profileButton.setOnClickListener { openSettings() }
joinPublicChatButton.setOnClickListener { joinPublicChat() }
+ // Set up seed reminder view
+ val isMasterDevice = (TextSecurePreferences.getMasterHexEncodedPublicKey(this) == null)
+ val hasViewedSeed = TextSecurePreferences.getHasViewedSeed(this)
+ if (!hasViewedSeed && isMasterDevice) {
+ val seedReminderViewTitle = SpannableString("You're almost finished! 80%")
+ seedReminderViewTitle.setSpan(ForegroundColorSpan(resources.getColorWithID(R.color.accent, theme)), 24, 27, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
+ seedReminderView.title = seedReminderViewTitle
+ seedReminderView.subtitle = "Secure your account by saving your recovery phrase"
+ seedReminderView.setProgress(80, false)
+ seedReminderView.delegate = this
+ } else {
+ seedReminderView.visibility = View.GONE
+ }
// Set up recycler view
val cursor = DatabaseFactory.getThreadDatabase(this).conversationList
val homeAdapter = HomeAdapter(this, cursor)
@@ -119,6 +137,21 @@ class HomeActivity : PassphraseRequiredActionBarActivity, ConversationClickListe
}
}
+ override fun onResume() {
+ super.onResume()
+ val isMasterDevice = (TextSecurePreferences.getMasterHexEncodedPublicKey(this) == null)
+ val hasViewedSeed = TextSecurePreferences.getHasViewedSeed(this)
+ if (hasViewedSeed || !isMasterDevice) {
+ seedReminderView.visibility = View.GONE
+ }
+ }
+ // endregion
+
+ override fun handleSeedReminderViewContinueButtonTapped() {
+ val intent = Intent(this, SeedActivity::class.java)
+ show(intent)
+ }
+
override fun onConversationClick(view: ConversationView) {
val thread = view.thread ?: return
openConversation(thread)
diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/SeedActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/SeedActivity.kt
new file mode 100644
index 0000000000..b15ecfcd14
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/loki/redesign/activities/SeedActivity.kt
@@ -0,0 +1,85 @@
+package org.thoughtcrime.securesms.loki.redesign.activities
+
+import android.content.ClipData
+import android.content.ClipboardManager
+import android.content.Context
+import android.os.Bundle
+import android.text.Spannable
+import android.text.SpannableString
+import android.text.style.ForegroundColorSpan
+import android.widget.LinearLayout
+import android.widget.Toast
+import kotlinx.android.synthetic.main.activity_seed_v2.*
+import network.loki.messenger.R
+import org.thoughtcrime.securesms.BaseActionBarActivity
+import org.thoughtcrime.securesms.crypto.IdentityKeyUtil
+import org.thoughtcrime.securesms.loki.getColorWithID
+import org.thoughtcrime.securesms.util.TextSecurePreferences
+import org.whispersystems.signalservice.loki.crypto.MnemonicCodec
+import org.whispersystems.signalservice.loki.utilities.hexEncodedPrivateKey
+import java.io.File
+
+class SeedActivity : BaseActionBarActivity() {
+
+ private val seed by lazy {
+ val languageFileDirectory = File(applicationInfo.dataDir)
+ var hexEncodedSeed = IdentityKeyUtil.retrieve(this, IdentityKeyUtil.lokiSeedKey)
+ if (hexEncodedSeed == null) {
+ hexEncodedSeed = IdentityKeyUtil.getIdentityKeyPair(this).hexEncodedPrivateKey // Legacy account
+ }
+ MnemonicCodec(languageFileDirectory).encode(hexEncodedSeed!!, MnemonicCodec.Language.Configuration.english)
+ }
+
+ // region Lifecycle
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_seed_v2)
+ supportActionBar!!.title = "Your Recovery Phrase"
+ val seedReminderViewTitle = SpannableString("You're almost finished! 90%")
+ seedReminderViewTitle.setSpan(ForegroundColorSpan(resources.getColorWithID(R.color.accent, theme)), 24, 27, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
+ seedReminderView.title = seedReminderViewTitle
+ seedReminderView.subtitle = "Press the redacted words to view your recovery phrase and secure your account"
+ seedReminderView.setProgress(90, false)
+ seedReminderView.hideContinueButton()
+ var redactedSeed = seed
+ var index = 0
+ for (character in seed) {
+ if (character.isLetter()) {
+ redactedSeed = redactedSeed.replaceRange(index, index + 1, "▆")
+ }
+ index += 1
+ }
+ seedTextView.setTextColor(resources.getColorWithID(R.color.accent, theme))
+ seedTextView.text = redactedSeed
+ seedTextView.setOnLongClickListener { revealSeed(); true }
+ revealButton.setOnLongClickListener { revealSeed(); true }
+ copyButton.setOnClickListener { copySeed() }
+ }
+ // endregion
+
+ // region Updating
+ private fun revealSeed() {
+ val seedReminderViewTitle = SpannableString("Account secured! 100%")
+ seedReminderViewTitle.setSpan(ForegroundColorSpan(resources.getColorWithID(R.color.accent, theme)), 17, 21, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
+ seedReminderView.title = seedReminderViewTitle
+ seedReminderView.subtitle = "Make sure to store your recovery phrase in a safe place"
+ seedReminderView.setProgress(100, true)
+ val seedTextViewLayoutParams = seedTextView.layoutParams as LinearLayout.LayoutParams
+ seedTextViewLayoutParams.height = seedTextView.height
+ seedTextView.layoutParams = seedTextViewLayoutParams
+ seedTextView.setTextColor(resources.getColorWithID(R.color.text, theme))
+ seedTextView.text = seed
+ TextSecurePreferences.setHasViewedSeed(this, true)
+ }
+ // endregion
+
+ // region Interaction
+ private fun copySeed() {
+ revealSeed()
+ val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+ val clip = ClipData.newPlainText("Seed", seed)
+ clipboard.primaryClip = clip
+ Toast.makeText(this, R.string.activity_register_public_key_copied_message, Toast.LENGTH_SHORT).show()
+ }
+ // endregion
+}
\ No newline at end of file
diff --git a/src/org/thoughtcrime/securesms/loki/redesign/activities/SettingsActivity.kt b/src/org/thoughtcrime/securesms/loki/redesign/activities/SettingsActivity.kt
index 6c52359c38..18ddec301c 100644
--- a/src/org/thoughtcrime/securesms/loki/redesign/activities/SettingsActivity.kt
+++ b/src/org/thoughtcrime/securesms/loki/redesign/activities/SettingsActivity.kt
@@ -23,6 +23,7 @@ import nl.komponents.kovenant.all
import nl.komponents.kovenant.deferred
import nl.komponents.kovenant.ui.alwaysUi
import org.thoughtcrime.securesms.ApplicationContext
+import org.thoughtcrime.securesms.ApplicationPreferencesActivity
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
import org.thoughtcrime.securesms.avatar.AvatarSelection
import org.thoughtcrime.securesms.crypto.ProfileKeyUtil
@@ -87,6 +88,7 @@ class SettingsActivity : PassphraseRequiredActionBarActivity() {
seedButtonTopSeparator.visibility = View.GONE
seedButton.visibility = View.GONE
}
+ privacyButton.setOnClickListener { showPrivacySettings() }
seedButton.setOnClickListener { showSeed() }
clearAllDataButton.setOnClickListener { clearAllData() }
}
@@ -247,6 +249,11 @@ class SettingsActivity : PassphraseRequiredActionBarActivity() {
startActivity(intent)
}
+ private fun showPrivacySettings() {
+ val intent = Intent(this, ApplicationPreferencesActivity::class.java)
+ push(intent)
+ }
+
private fun showSeed() {
SeedDialog().show(supportFragmentManager, "Recovery Phrase Dialog")
}
diff --git a/src/org/thoughtcrime/securesms/loki/redesign/views/SeedReminderView.kt b/src/org/thoughtcrime/securesms/loki/redesign/views/SeedReminderView.kt
new file mode 100644
index 0000000000..0b2e9e9ae9
--- /dev/null
+++ b/src/org/thoughtcrime/securesms/loki/redesign/views/SeedReminderView.kt
@@ -0,0 +1,60 @@
+package org.thoughtcrime.securesms.loki.redesign.views
+
+import android.content.Context
+import android.os.Build
+import android.util.AttributeSet
+import android.view.LayoutInflater
+import android.view.View
+import android.widget.FrameLayout
+import kotlinx.android.synthetic.main.view_seed_reminder.view.*
+import network.loki.messenger.R
+
+class SeedReminderView : FrameLayout {
+ var title: CharSequence
+ get() = titleTextView.text
+ set(value) { titleTextView.text = value }
+ var subtitle: CharSequence
+ get() = subtitleTextView.text
+ set(value) { subtitleTextView.text = value }
+ var delegate: SeedReminderViewDelegate? = null
+
+ constructor(context: Context) : super(context) {
+ setUpViewHierarchy()
+ }
+
+ constructor(context: Context, attrs: AttributeSet) : super(context, attrs) {
+ setUpViewHierarchy()
+ }
+
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) {
+ setUpViewHierarchy()
+ }
+
+ constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes) {
+ setUpViewHierarchy()
+ }
+
+ private fun setUpViewHierarchy() {
+ val inflater = context.applicationContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+ val contentView = inflater.inflate(R.layout.view_seed_reminder, null)
+ addView(contentView)
+ button.setOnClickListener { delegate?.handleSeedReminderViewContinueButtonTapped() }
+ }
+
+ fun setProgress(progress: Int, isAnimated: Boolean) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
+ progressBar.setProgress(progress, isAnimated)
+ } else {
+ progressBar.progress = progress
+ }
+ }
+
+ fun hideContinueButton() {
+ button.visibility = View.GONE
+ }
+}
+
+interface SeedReminderViewDelegate {
+
+ fun handleSeedReminderViewContinueButtonTapped()
+}
\ No newline at end of file
diff --git a/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java
index 00f334bc1a..d72dd23ee1 100644
--- a/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java
+++ b/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java
@@ -1195,6 +1195,14 @@ public class TextSecurePreferences {
setStringPreference(context, "master_hex_encoded_public_key", masterHexEncodedPublicKey.toLowerCase());
}
+ public static Boolean getHasViewedSeed(Context context) {
+ return getBooleanPreference(context, "has_viewed_seed", false);
+ }
+
+ public static void setHasViewedSeed(Context context, Boolean hasViewedSeed) {
+ setBooleanPreference(context, "has_viewed_seed", hasViewedSeed);
+ }
+
public static void setResetDatabase(Context context, boolean resetDatabase) {
// We do it this way so that it gets persisted in storage straight away
PreferenceManager.getDefaultSharedPreferences(context).edit().putBoolean("database_reset", resetDatabase).commit();