Disable recordings in call & conference if corePreferences related setting is disabled

This commit is contained in:
Sylvain Berfini 2024-03-18 14:58:58 +01:00
parent 8ec7542a60
commit 57b6c5daa2
6 changed files with 18 additions and 13 deletions

View file

@ -131,7 +131,7 @@ class CorePreferences @UiThread constructor(private val context: Context) {
get() = config.getBool("ui", "dark_mode_allowed", true)
@get:WorkerThread
val onlyDisplaySipUriUsername: Boolean
val onlyDisplaySipUriUsername: Boolean // TODO: use it
get() = config.getBool("ui", "only_display_sip_uri_username", true)
@get:WorkerThread
@ -140,14 +140,14 @@ class CorePreferences @UiThread constructor(private val context: Context) {
@get:WorkerThread
val disableMeetings: Boolean
get() = config.getBool("app", "disable_meetings_feature", false)
get() = config.getBool("ui", "disable_meetings_feature", false)
@get:WorkerThread
val disableBroadcasts: Boolean
get() = config.getBool("ui", "disable_broadcast_feature", true) // TODO: not implemented
@get:WorkerThread
val disableCallRecordings: Boolean // TODO FIXME: also disable recording in call
val disableCallRecordings: Boolean
get() = config.getBool("ui", "disable_call_recordings_feature", true) // TODO: not implemented
@get:WorkerThread

View file

@ -76,6 +76,8 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
val isOutgoing = MutableLiveData<Boolean>()
val isRecordingEnabled = MutableLiveData<Boolean>()
val isRecording = MutableLiveData<Boolean>()
val canBePaused = MutableLiveData<Boolean>()
@ -333,6 +335,7 @@ class CurrentCallViewModel @UiThread constructor() : ViewModel() {
coreContext.postOnCoreThread { core ->
core.addListener(coreListener)
isRecordingEnabled.postValue(!corePreferences.disableCallRecordings)
hideVideo.postValue(!core.isVideoEnabled)
showSwitchCamera.postValue(coreContext.showSwitchCameraButton())

View file

@ -150,7 +150,7 @@
<ImageView
android:id="@+id/record_call"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:enabled="@{viewModel.isRecordingEnabled &amp;&amp; !viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
@ -242,7 +242,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/record_call_label"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:enabled="@{viewModel.isRecordingEnabled &amp;&amp; !viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingBottom="15dp"

View file

@ -151,10 +151,11 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:enabled="@{viewModel.isRecordingEnabled}"
android:src="@drawable/record_fill"
android:selected="@{viewModel.isRecording()}"
android:background="@drawable/shape_round_in_call_disabled_button_background"
app:tint="?attr/color_grey_500"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/main_actions"
app:layout_constraintStart_toStartOf="@id/record_call_label"
@ -238,7 +239,7 @@
android:layout_height="wrap_content"
android:paddingBottom="15dp"
android:text="@string/call_action_record_call"
android:enabled="false"
android:enabled="@{viewModel.isRecordingEnabled}"
app:layout_constraintTop_toBottomOf="@id/record_call"
app:layout_constraintStart_toEndOf="@id/pause_call_label"
app:layout_constraintEnd_toEndOf="parent" />

View file

@ -150,7 +150,7 @@
<ImageView
android:id="@+id/record_call"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:enabled="@{viewModel.isRecordingEnabled &amp;&amp; !viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
@ -238,7 +238,7 @@
style="@style/in_call_extra_action_label_style"
android:id="@+id/record_call_label"
android:onClick="@{() -> viewModel.toggleRecording()}"
android:enabled="@{!viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:enabled="@{viewModel.isRecordingEnabled &amp;&amp; !viewModel.isPaused &amp;&amp; !viewModel.isPausedByRemote}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:paddingBottom="15dp"

View file

@ -151,10 +151,11 @@
android:layout_height="@dimen/call_button_size"
android:layout_marginTop="@dimen/call_extra_button_top_margin"
android:padding="@dimen/call_button_icon_padding"
android:enabled="@{viewModel.isRecordingEnabled}"
android:src="@drawable/record_fill"
android:selected="@{viewModel.isRecording()}"
android:background="@drawable/shape_round_in_call_disabled_button_background"
app:tint="?attr/color_grey_500"
android:background="@drawable/in_call_button_background_red"
app:tint="@color/in_call_button_tint_color"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintTop_toBottomOf="@id/calls_list_label"
app:layout_constraintStart_toStartOf="@id/calls_list"
@ -234,7 +235,7 @@
android:layout_height="wrap_content"
android:paddingBottom="15dp"
android:text="@string/call_action_record_call"
android:enabled="false"
android:enabled="@{viewModel.isRecordingEnabled}"
app:layout_constraintTop_toBottomOf="@id/record_call"
app:layout_constraintStart_toStartOf="@id/calls_list_label"
app:layout_constraintEnd_toEndOf="@id/calls_list_label" />