diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountSettingsViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountSettingsViewModel.kt index e982700e4..1f4f16919 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountSettingsViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/AccountSettingsViewModel.kt @@ -29,6 +29,7 @@ import org.linphone.core.Account import org.linphone.core.NatPolicy import org.linphone.core.TransportType import org.linphone.core.tools.Log +import org.linphone.ui.main.model.isInSecureMode import org.linphone.utils.Event class AccountSettingsViewModel @UiThread constructor() : ViewModel() { @@ -36,6 +37,8 @@ class AccountSettingsViewModel @UiThread constructor() : ViewModel() { private const val TAG = "[Account Settings ViewModel]" } + val isAccountInSecureMode = MutableLiveData() + val availableTransports = arrayListOf() val selectedTransport = MutableLiveData() @@ -60,6 +63,8 @@ class AccountSettingsViewModel @UiThread constructor() : ViewModel() { val bundleModeEnabled = MutableLiveData() + val cpimInBasicChatRooms = MutableLiveData() + val accountFoundEvent = MutableLiveData>() private lateinit var account: Account @@ -81,6 +86,8 @@ class AccountSettingsViewModel @UiThread constructor() : ViewModel() { Log.i("$TAG Found matching account [$found]") account = found + isAccountInSecureMode.postValue(account.isInSecureMode()) + val params = account.params val transportType = params.serverAddress?.transport ?: TransportType.Tls @@ -97,6 +104,8 @@ class AccountSettingsViewModel @UiThread constructor() : ViewModel() { bundleModeEnabled.postValue(params.isRtpBundleEnabled) + cpimInBasicChatRooms.postValue(params.isCpimInBasicChatRoomEnabled) + expire.postValue(params.expires.toString()) conferenceFactoryUri.postValue(params.conferenceFactoryAddress?.asStringUriOnly()) @@ -145,6 +154,8 @@ class AccountSettingsViewModel @UiThread constructor() : ViewModel() { newParams.isRtpBundleEnabled = bundleModeEnabled.value == true + newParams.isCpimInBasicChatRoomEnabled = cpimInBasicChatRooms.value == true + newParams.expires = expire.value?.toInt() ?: 31536000 val conferenceFactoryAddress = core.interpretUrl( diff --git a/app/src/main/res/layout/account_settings_fragment.xml b/app/src/main/res/layout/account_settings_fragment.xml index c0bfbd47f..3460bc405 100644 --- a/app/src/main/res/layout/account_settings_fragment.xml +++ b/app/src/main/res/layout/account_settings_fragment.xml @@ -267,6 +267,34 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toStartOf="@id/bundle_mode_switch"/> + + + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 854e7adb9..7c5036c63 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -298,6 +298,7 @@ URI de l\'usine à conférences URL du serveur d\'échange de clés de chiffrement Mode "bundle" + Utiliser CPIM dans les conversations "basiques" Autentification requise La connexion a échoué pour le compte \n%s.\n\nVous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3ad8ee511..6ed869e38 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -335,6 +335,7 @@ Audio/video conference factory URI E2E encryption keys server URL Bundle mode + Use CPIM in "basic" conversations Authentication needed Connection failed because authentication is missing or invalid for account \n%s.\n\nYou can provide password again, or check your account configuration in the settings.