diff --git a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java index 14ab8be120..f9a583fdea 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java +++ b/app/src/main/java/org/thoughtcrime/securesms/ApplicationContext.java @@ -77,7 +77,6 @@ import org.thoughtcrime.securesms.loki.api.SessionProtocolImpl; import org.thoughtcrime.securesms.loki.database.LokiAPIDatabase; import org.thoughtcrime.securesms.loki.database.LokiThreadDatabase; import org.thoughtcrime.securesms.loki.database.LokiUserDatabase; -import org.thoughtcrime.securesms.loki.protocol.MultiDeviceProtocol; import org.thoughtcrime.securesms.loki.utilities.Broadcaster; import org.thoughtcrime.securesms.loki.utilities.FcmUtils; import org.thoughtcrime.securesms.loki.utilities.UiModeUtilities; @@ -216,7 +215,6 @@ public class ApplicationContext extends MultiDexApplication implements Dependenc startPollingIfNeeded(); publicChatManager.markAllAsNotCaughtUp(); publicChatManager.startPollersIfNeeded(); - MultiDeviceProtocol.syncConfigurationIfNeeded(this); } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt index b6254a5154..380c28609b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/HomeActivity.kt @@ -43,6 +43,7 @@ import org.thoughtcrime.securesms.database.DatabaseFactory import org.thoughtcrime.securesms.database.model.ThreadRecord import org.thoughtcrime.securesms.loki.dialogs.* import org.thoughtcrime.securesms.loki.protocol.ClosedGroupsProtocolV2 +import org.thoughtcrime.securesms.loki.protocol.MultiDeviceProtocol import org.thoughtcrime.securesms.loki.utilities.* import org.thoughtcrime.securesms.loki.views.ConversationView import org.thoughtcrime.securesms.loki.views.NewConversationButtonSetViewDelegate @@ -174,6 +175,9 @@ class HomeActivity : PassphraseRequiredActionBarActivity(), } showKeyPairMigrationSheetIfNeeded() showKeyPairMigrationSuccessSheetIfNeeded() + if (TextSecurePreferences.getConfigurationMessageSynced(this)) { + MultiDeviceProtocol.syncConfigurationIfNeeded(this) + } } private fun showKeyPairMigrationSheetIfNeeded() { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt index 799e185c88..074f216015 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/LinkDeviceActivity.kt @@ -48,6 +48,14 @@ class LinkDeviceActivity : BaseActionBarActivity(), ScanQRCodeWrapperFragmentDel override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setUpActionBarSessionLogo() + // Set the registration sync variables + TextSecurePreferences.apply { + setHasViewedSeed(this@LinkDeviceActivity, true) + setConfigurationMessageSynced(this@LinkDeviceActivity, false) + setRestorationTime(this@LinkDeviceActivity, System.currentTimeMillis()) + setLastConfigurationSyncTime(this@LinkDeviceActivity, 0) + } + // registration variables are synced setContentView(R.layout.activity_link_device) viewPager.adapter = adapter tabLayout.setupWithViewPager(viewPager) diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RecoveryPhraseRestoreActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RecoveryPhraseRestoreActivity.kt index 56e15c9026..8a7c1e229d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RecoveryPhraseRestoreActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RecoveryPhraseRestoreActivity.kt @@ -30,6 +30,14 @@ class RecoveryPhraseRestoreActivity : BaseActionBarActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setUpActionBarSessionLogo() + // Set the registration sync variables + TextSecurePreferences.apply { + setHasViewedSeed(this@RecoveryPhraseRestoreActivity, true) + setConfigurationMessageSynced(this@RecoveryPhraseRestoreActivity, false) + setRestorationTime(this@RecoveryPhraseRestoreActivity, System.currentTimeMillis()) + setLastConfigurationSyncTime(this@RecoveryPhraseRestoreActivity, System.currentTimeMillis()) + } + // registration variables are synced setContentView(R.layout.activity_recovery_phrase_restore) mnemonicEditText.imeOptions = mnemonicEditText.imeOptions or 16777216 // Always use incognito keyboard restoreButton.setOnClickListener { restore() } @@ -69,10 +77,6 @@ class RecoveryPhraseRestoreActivity : BaseActionBarActivity() { val registrationID = KeyHelper.generateRegistrationId(false) TextSecurePreferences.setLocalRegistrationId(this, registrationID) TextSecurePreferences.setLocalNumber(this, userHexEncodedPublicKey) - TextSecurePreferences.setRestorationTime(this, System.currentTimeMillis()) - TextSecurePreferences.setLastProfileUpdateTime(this, System.currentTimeMillis()) - TextSecurePreferences.setConfigurationMessageSynced(this, true) - TextSecurePreferences.setHasViewedSeed(this, true) val intent = Intent(this, DisplayNameActivity::class.java) push(intent) } catch (e: Exception) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt index 9af309ba0a..bf43908efa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/loki/activities/RegisterActivity.kt @@ -18,14 +18,15 @@ import android.widget.Toast import com.goterl.lazycode.lazysodium.utils.KeyPair import kotlinx.android.synthetic.main.activity_register.* import network.loki.messenger.R -import org.thoughtcrime.securesms.BaseActionBarActivity -import org.thoughtcrime.securesms.loki.utilities.KeyPairUtilities -import org.thoughtcrime.securesms.loki.utilities.push -import org.thoughtcrime.securesms.loki.utilities.setUpActionBarSessionLogo import org.session.libsession.utilities.TextSecurePreferences import org.session.libsignal.libsignal.ecc.ECKeyPair import org.session.libsignal.libsignal.util.KeyHelper import org.session.libsignal.service.loki.utilities.hexEncodedPublicKey +import org.thoughtcrime.securesms.BaseActionBarActivity +import org.thoughtcrime.securesms.loki.utilities.KeyPairUtilities +import org.thoughtcrime.securesms.loki.utilities.push +import org.thoughtcrime.securesms.loki.utilities.setUpActionBarSessionLogo +import java.util.* class RegisterActivity : BaseActionBarActivity() { private var seed: ByteArray? = null @@ -38,6 +39,14 @@ class RegisterActivity : BaseActionBarActivity() { super.onCreate(savedInstanceState) setContentView(R.layout.activity_register) setUpActionBarSessionLogo() + // Set the registration sync variables + TextSecurePreferences.apply { + setHasViewedSeed(this@RegisterActivity, false) + setConfigurationMessageSynced(this@RegisterActivity, true) + setRestorationTime(this@RegisterActivity, 0) + setLastConfigurationSyncTime(this@RegisterActivity, System.currentTimeMillis()) + } + // registration variables are synced registerButton.setOnClickListener { register() } copyButton.setOnClickListener { copyPublicKey() } val termsExplanation = SpannableStringBuilder("By using this service, you agree to our Terms of Service and Privacy Policy")