diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt index 76e157c38..d062ea524 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/SettingsViewModel.kt @@ -46,10 +46,14 @@ class SettingsViewModel @UiThread constructor() : ViewModel() { } val expandCalls = MutableLiveData() + val expandConversations = MutableLiveData() + val expandMeetings = MutableLiveData() val expandNetwork = MutableLiveData() val expandUserInterface = MutableLiveData() // Calls settings + val hideVideoCallSetting = MutableLiveData() + val echoCancellerEnabled = MutableLiveData() val routeAudioToBluetooth = MutableLiveData() val videoEnabled = MutableLiveData() @@ -64,6 +68,12 @@ class SettingsViewModel @UiThread constructor() : ViewModel() { val autoRecordCalls = MutableLiveData() + // Conversations settings + val showConversationsSettings = MutableLiveData() + + // Meetings settings + val showMeetingsSettings = MutableLiveData() + // Network settings val useWifiOnly = MutableLiveData() @@ -84,7 +94,15 @@ class SettingsViewModel @UiThread constructor() : ViewModel() { } init { + coreContext.postOnCoreThread { core -> + hideVideoCallSetting.postValue(!core.isVideoEnabled) + showConversationsSettings.postValue(!corePreferences.disableChat) + showMeetingsSettings.postValue(!corePreferences.disableMeetings) + } + expandCalls.value = false + expandConversations.value = false + expandMeetings.value = false expandNetwork.value = false expandUserInterface.value = false @@ -273,6 +291,16 @@ class SettingsViewModel @UiThread constructor() : ViewModel() { expandCalls.value = expandCalls.value == false } + @UiThread + fun toggleConversationsExpand() { + expandConversations.value = expandConversations.value == false + } + + @UiThread + fun toggleMeetingsExpand() { + expandMeetings.value = expandMeetings.value == false + } + @UiThread fun toggleNetworkExpand() { expandNetwork.value = expandNetwork.value == false diff --git a/app/src/main/res/layout/settings_calls.xml b/app/src/main/res/layout/settings_calls.xml index 207e9b7ee..f02cf528c 100644 --- a/app/src/main/res/layout/settings_calls.xml +++ b/app/src/main/res/layout/settings_calls.xml @@ -20,7 +20,6 @@ style="@style/settings_title_style" android:onClick="@{() -> viewModel.toggleEchoCanceller()}" android:id="@+id/echo_canceller_title" - android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" @@ -37,7 +36,6 @@ style="@style/settings_subtitle_style" android:onClick="@{() -> viewModel.toggleEchoCanceller()}" android:id="@+id/echo_canceller_subtitle" - android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" @@ -52,7 +50,6 @@ style="@style/material_switch_style" android:id="@+id/echo_canceller_switch" android:onClick="@{() -> viewModel.toggleEchoCanceller()}" - android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" @@ -65,7 +62,6 @@ style="@style/settings_title_style" android:onClick="@{() -> viewModel.toggleRouteAudioToBluetooth()}" android:id="@+id/route_audio_to_bluetooth_title" - android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" @@ -82,7 +78,6 @@ style="@style/material_switch_style" android:id="@+id/route_audio_to_bluetooth_switch" android:onClick="@{() -> viewModel.toggleRouteAudioToBluetooth()}" - android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" @@ -95,7 +90,7 @@ style="@style/settings_title_style" android:onClick="@{() -> viewModel.toggleEnableVideo()}" android:id="@+id/enable_video_title" - android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}" + android:visibility="@{!viewModel.hideVideoCallSetting ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" @@ -112,7 +107,7 @@ style="@style/material_switch_style" android:id="@+id/enable_video_switch" android:onClick="@{() -> viewModel.toggleEnableVideo()}" - android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}" + android:visibility="@{!viewModel.hideVideoCallSetting ? View.VISIBLE : View.GONE}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" @@ -124,7 +119,6 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/settings_fragment.xml b/app/src/main/res/layout/settings_fragment.xml index 5356b9bc5..2abac7d31 100644 --- a/app/src/main/res/layout/settings_fragment.xml +++ b/app/src/main/res/layout/settings_fragment.xml @@ -86,6 +86,66 @@ app:layout_constraintTop_toBottomOf="@id/calls" bind:viewModel="@{viewModel}"/> + + + + + + + + + app:layout_constraintTop_toBottomOf="@id/meetings_settings"/> + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/settings_network.xml b/app/src/main/res/layout/settings_network.xml index 42139c8a6..578f918d6 100644 --- a/app/src/main/res/layout/settings_network.xml +++ b/app/src/main/res/layout/settings_network.xml @@ -20,7 +20,6 @@ style="@style/settings_title_style" android:onClick="@{() -> viewModel.toggleEnableVideo()}" android:id="@+id/wifi_only_title" - android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE}" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="16dp" @@ -37,7 +36,6 @@ style="@style/material_switch_style" android:id="@+id/wifi_only_switch" android:onClick="@{() -> viewModel.toggleUseWifiOnly()}" - android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE}" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="20dp" diff --git a/app/src/main/res/layout/settings_user_interface.xml b/app/src/main/res/layout/settings_user_interface.xml index 24b16e7f1..85b8aa805 100644 --- a/app/src/main/res/layout/settings_user_interface.xml +++ b/app/src/main/res/layout/settings_user_interface.xml @@ -19,7 +19,6 @@ Pause Vibrate while incoming call is ringing Automatically start recording calls + Conversations + Meetings Network Use only Wi-Fi networks User interface