mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 11:28:06 +00:00
Added account setting to enable/disable CPIM in basic chat rooms when in interop mode
This commit is contained in:
parent
11cab8c4a4
commit
5aa949b42c
4 changed files with 42 additions and 1 deletions
|
|
@ -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<Boolean>()
|
||||
|
||||
val availableTransports = arrayListOf<String>()
|
||||
|
||||
val selectedTransport = MutableLiveData<TransportType>()
|
||||
|
|
@ -60,6 +63,8 @@ class AccountSettingsViewModel @UiThread constructor() : ViewModel() {
|
|||
|
||||
val bundleModeEnabled = MutableLiveData<Boolean>()
|
||||
|
||||
val cpimInBasicChatRooms = MutableLiveData<Boolean>()
|
||||
|
||||
val accountFoundEvent = MutableLiveData<Event<Boolean>>()
|
||||
|
||||
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(
|
||||
|
|
|
|||
|
|
@ -267,6 +267,34 @@
|
|||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/bundle_mode_switch"/>
|
||||
|
||||
<com.google.android.material.materialswitch.MaterialSwitch
|
||||
style="@style/material_switch_style"
|
||||
android:id="@+id/cpim_basic_chat_room_switch"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:checked="@={viewModel.cpimInBasicChatRooms}"
|
||||
android:visibility="@{viewModel.isAccountInSecureMode ? View.GONE : View.VISIBLE}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/bundle_mode_switch" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:id="@+id/cpim_basic_chat_room_title"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/account_settings_cpim_in_basic_conversations_title"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
android:visibility="@{viewModel.isAccountInSecureMode ? View.GONE : View.VISIBLE}"
|
||||
app:layout_constraintTop_toTopOf="@id/cpim_basic_chat_room_switch"
|
||||
app:layout_constraintBottom_toBottomOf="@id/cpim_basic_chat_room_switch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/cpim_basic_chat_room_switch"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:id="@+id/expire_title"
|
||||
|
|
@ -278,7 +306,7 @@
|
|||
android:text="@string/account_settings_expire_title"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintTop_toBottomOf="@id/bundle_mode_switch"
|
||||
app:layout_constraintTop_toBottomOf="@id/cpim_basic_chat_room_switch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
|
|
|
|||
|
|
@ -298,6 +298,7 @@
|
|||
<string name="account_settings_audio_video_conference_factory_uri_title">URI de l\'usine à conférences</string>
|
||||
<string name="account_settings_lime_server_url_title">URL du serveur d\'échange de clés de chiffrement</string>
|
||||
<string name="account_settings_bundle_mode_title">Mode "bundle"</string>
|
||||
<string name="account_settings_cpim_in_basic_conversations_title">Utiliser CPIM dans les conversations "basiques"</string>
|
||||
|
||||
<string name="account_settings_dialog_invalid_password_title">Autentification requise</string>
|
||||
<string name="account_settings_dialog_invalid_password_message">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.</string>
|
||||
|
|
|
|||
|
|
@ -335,6 +335,7 @@
|
|||
<string name="account_settings_audio_video_conference_factory_uri_title">Audio/video conference factory URI</string>
|
||||
<string name="account_settings_lime_server_url_title">E2E encryption keys server URL</string>
|
||||
<string name="account_settings_bundle_mode_title">Bundle mode</string>
|
||||
<string name="account_settings_cpim_in_basic_conversations_title">Use CPIM in "basic" conversations</string>
|
||||
|
||||
<string name="account_settings_dialog_invalid_password_title">Authentication needed</string>
|
||||
<string name="account_settings_dialog_invalid_password_message">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.</string>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue