Do not display the name change popup for a new installation

This commit is contained in:
Benoit Marty 2020-07-13 14:23:06 +02:00
parent bbbd45efcd
commit 0e28214b63
4 changed files with 23 additions and 12 deletions

View file

@ -20,6 +20,7 @@ interface LegacySessionImporter {
/** /**
* Will eventually import a session created by the legacy app. * Will eventually import a session created by the legacy app.
* @return true if a session has been imported
*/ */
fun process() fun process(): Boolean
} }

View file

@ -53,14 +53,14 @@ internal class DefaultLegacySessionImporter @Inject constructor(
private var DELETE_PREVIOUS_DATA = true private var DELETE_PREVIOUS_DATA = true
} }
override fun process() { override fun process(): Boolean {
Timber.d("Migration: Importing legacy session") Timber.d("Migration: Importing legacy session")
val list = loginStorage.credentialsList val list = loginStorage.credentialsList
Timber.d("Migration: found ${list.size} session(s).") Timber.d("Migration: found ${list.size} session(s).")
val legacyConfig = list.firstOrNull() ?: return val legacyConfig = list.firstOrNull() ?: return false
runBlocking { runBlocking {
Timber.d("Migration: importing a session") Timber.d("Migration: importing a session")
@ -97,6 +97,9 @@ internal class DefaultLegacySessionImporter @Inject constructor(
Timber.d("Migration: clear shared prefs - DEACTIVATED") Timber.d("Migration: clear shared prefs - DEACTIVATED")
} }
} }
// A session has been imported
return true
} }
private suspend fun importCredentials(legacyConfig: LegacyHomeServerConnectionConfig) { private suspend fun importCredentials(legacyConfig: LegacyHomeServerConnectionConfig) {

View file

@ -46,6 +46,7 @@ import im.vector.riotx.core.extensions.configureAndStart
import im.vector.riotx.core.rx.RxConfig import im.vector.riotx.core.rx.RxConfig
import im.vector.riotx.features.call.WebRtcPeerConnectionManager import im.vector.riotx.features.call.WebRtcPeerConnectionManager
import im.vector.riotx.features.configuration.VectorConfiguration import im.vector.riotx.features.configuration.VectorConfiguration
import im.vector.riotx.features.disclaimer.doNotShowDisclaimerDialog
import im.vector.riotx.features.lifecycle.VectorActivityLifecycleCallbacks import im.vector.riotx.features.lifecycle.VectorActivityLifecycleCallbacks
import im.vector.riotx.features.notifications.NotificationDrawerManager import im.vector.riotx.features.notifications.NotificationDrawerManager
import im.vector.riotx.features.notifications.NotificationUtils import im.vector.riotx.features.notifications.NotificationUtils
@ -132,7 +133,11 @@ class VectorApplication :
notificationUtils.createNotificationChannels() notificationUtils.createNotificationChannels()
// It can takes time, but do we care? // It can takes time, but do we care?
legacySessionImporter.process() val sessionImported = legacySessionImporter.process()
if (!sessionImported) {
// Do not display the name change popup
doNotShowDisclaimerDialog(this)
}
if (authenticationService.hasAuthenticatedSessions() && !activeSessionHolder.hasActiveSession()) { if (authenticationService.hasAuthenticatedSessions() && !activeSessionHolder.hasActiveSession()) {
val lastAuthenticatedSession = authenticationService.getLastAuthenticatedSession()!! val lastAuthenticatedSession = authenticationService.getLastAuthenticatedSession()!!

View file

@ -17,20 +17,14 @@
package im.vector.riotx.features.disclaimer package im.vector.riotx.features.disclaimer
import android.app.Activity import android.app.Activity
import android.content.DialogInterface import android.content.Context
import androidx.preference.PreferenceManager
import android.view.ViewGroup
import android.widget.TextView
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.content.edit import androidx.core.content.edit
import androidx.preference.PreferenceManager
import im.vector.riotx.BuildConfig import im.vector.riotx.BuildConfig
import im.vector.riotx.R import im.vector.riotx.R
import im.vector.riotx.core.dialogs.withColoredButton
import im.vector.riotx.core.extensions.setTextWithColoredPart
import im.vector.riotx.core.utils.displayInWebView import im.vector.riotx.core.utils.displayInWebView
import im.vector.riotx.core.utils.openPlayStore
import im.vector.riotx.features.settings.VectorSettingsUrls import im.vector.riotx.features.settings.VectorSettingsUrls
import im.vector.riotx.features.themes.ThemeUtils
// Increase this value to show again the disclaimer dialog after an upgrade of the application // Increase this value to show again the disclaimer dialog after an upgrade of the application
private const val CURRENT_DISCLAIMER_VALUE = 2 private const val CURRENT_DISCLAIMER_VALUE = 2
@ -57,3 +51,11 @@ fun showDisclaimerDialog(activity: Activity) {
.show() .show()
} }
} }
fun doNotShowDisclaimerDialog(context: Context) {
val sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context)
sharedPrefs.edit {
putInt(SHARED_PREF_KEY, CURRENT_DISCLAIMER_VALUE)
}
}