linphone-android/app/src/main/res/layout/settings_fragment.xml
2024-07-15 16:10:35 +02:00

519 lines
No EOL
30 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<layout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="backClickListener"
type="View.OnClickListener" />
<variable
name="viewModel"
type="org.linphone.ui.main.settings.viewmodel.SettingsViewModel" />
</data>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/back"
android:onClick="@{backClickListener}"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:adjustViewBounds="true"
android:padding="15dp"
android:src="@drawable/caret_left"
app:tint="@color/orange_main_500"
app:layout_constraintBottom_toBottomOf="@id/title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/title" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/main_page_title_style"
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="@dimen/top_bar_height"
android:layout_marginStart="10dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_title"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/back"
app:layout_constraintTop_toTopOf="parent"/>
<ScrollView
android:layout_width="0dp"
android:layout_height="0dp"
android:fillViewport="true"
android:background="@color/gray_100"
app:layout_constraintTop_toBottomOf="@id/title"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:onClick="@{() -> viewModel.toggleCallsExpand()}"
android:id="@+id/calls"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginStart="26dp"
android:layout_marginEnd="26dp"
android:layout_marginTop="16dp"
android:text="@string/settings_calls_title"
android:drawableEnd="@{viewModel.expandCalls ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="@color/gray_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView
android:id="@+id/calls_background"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
android:src="@drawable/shape_squircle_white_background"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls"
app:layout_constraintBottom_toBottomOf="@id/calls_bottom_anchor"/>
<androidx.appcompat.widget.AppCompatTextView
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"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_echo_canceller_title"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/echo_canceller_switch"
app:layout_constraintBottom_toTopOf="@id/echo_canceller_subtitle"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/echo_canceller_switch"/>
<androidx.appcompat.widget.AppCompatTextView
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"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_echo_canceller_subtitle"
app:layout_constraintTop_toBottomOf="@id/echo_canceller_title"
app:layout_constraintBottom_toBottomOf="@id/echo_canceller_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/echo_canceller_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
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="21dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.echoCancellerEnabled}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toTopOf="@id/calls_background" />
<androidx.appcompat.widget.AppCompatTextView
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"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_route_audio_to_bluetooth_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/route_audio_to_bluetooth_switch"
app:layout_constraintBottom_toBottomOf="@id/route_audio_to_bluetooth_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/route_audio_to_bluetooth_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
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"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.routeAudioToBluetooth}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toBottomOf="@id/echo_canceller_switch" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:onClick="@{() -> viewModel.toggleEnableVideo()}"
android:id="@+id/enable_video_title"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_enable_video_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/enable_video_switch"
app:layout_constraintBottom_toBottomOf="@id/enable_video_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/enable_video_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/enable_video_switch"
android:onClick="@{() -> viewModel.toggleEnableVideo()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.videoEnabled}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toBottomOf="@id/route_audio_to_bluetooth_switch" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:onClick="@{() -> viewModel.toggleAutoInitiateVideoCalls()}"
android:id="@+id/auto_initiate_video_title"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_auto_initiate_video_title"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/auto_initiate_video_switch"
app:layout_constraintBottom_toTopOf="@id/auto_initiate_video_subtitle"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/auto_initiate_video_switch"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_subtitle_style"
android:onClick="@{() -> viewModel.toggleAutoInitiateVideoCalls()}"
android:id="@+id/auto_initiate_video_subtitle"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_auto_initiate_video_subtitle"
app:layout_constraintTop_toBottomOf="@id/auto_initiate_video_title"
app:layout_constraintBottom_toBottomOf="@id/auto_initiate_video_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/auto_initiate_video_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/auto_initiate_video_switch"
android:onClick="@{() -> viewModel.toggleAutoInitiateVideoCalls()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.autoInitiateVideoCalls}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toBottomOf="@id/enable_video_switch" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:id="@+id/auto_accept_video_title"
android:onClick="@{() -> viewModel.toggleAutoAcceptVideoRequests()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_auto_accept_video_title"
android:maxLines="1"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/auto_accept_video_switch"
app:layout_constraintBottom_toTopOf="@id/auto_accept_video_subtitle"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/auto_accept_video_switch"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_subtitle_style"
android:id="@+id/auto_accept_video_subtitle"
android:onClick="@{() -> viewModel.toggleAutoAcceptVideoRequests()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_auto_accept_video_subtitle"
app:layout_constraintTop_toBottomOf="@id/auto_accept_video_title"
app:layout_constraintBottom_toBottomOf="@id/auto_accept_video_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/auto_accept_video_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/auto_accept_video_switch"
android:onClick="@{() -> viewModel.toggleAutoAcceptVideoRequests()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.autoAcceptVideoRequests}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toBottomOf="@id/auto_initiate_video_switch" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:id="@+id/device_ringtone_title"
android:onClick="@{() -> viewModel.toggleDeviceRingtone()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_use_device_ringtone_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/device_ringtone_switch"
app:layout_constraintBottom_toBottomOf="@id/device_ringtone_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/device_ringtone_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/device_ringtone_switch"
android:onClick="@{() -> viewModel.toggleDeviceRingtone()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.useDeviceRingtone}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toBottomOf="@id/auto_accept_video_switch" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:onClick="@{() -> viewModel.toggleVibrateOnIncomingCalls()}"
android:id="@+id/vibrate_title"
android:visibility="@{viewModel.expandCalls &amp;&amp; viewModel.isVibrationAvailable ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_vibrate_while_ringing_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/vibrate_switch"
app:layout_constraintBottom_toBottomOf="@id/vibrate_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/vibrate_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/vibrate_switch"
android:onClick="@{() -> viewModel.toggleVibrateOnIncomingCalls()}"
android:visibility="@{viewModel.expandCalls &amp;&amp; viewModel.isVibrationAvailable ? View.VISIBLE : View.GONE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.vibrateDuringIncomingCall}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toBottomOf="@id/device_ringtone_switch" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:onClick="@{() -> viewModel.toggleAutoRecordCall()}"
android:id="@+id/auto_record_title"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_calls_auto_record_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/auto_record_switch"
app:layout_constraintBottom_toBottomOf="@id/auto_record_switch"
app:layout_constraintStart_toStartOf="@id/calls_background"
app:layout_constraintEnd_toStartOf="@id/auto_record_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/auto_record_switch"
android:onClick="@{() -> viewModel.toggleAutoRecordCall()}"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.autoRecordCalls}"
app:layout_constraintEnd_toEndOf="@id/calls_background"
app:layout_constraintTop_toBottomOf="@id/vibrate_switch" />
<View
android:id="@+id/calls_bottom_anchor"
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_marginTop="21dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/auto_record_switch"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:onClick="@{() -> viewModel.toggleNetworkExpand()}"
android:id="@+id/network"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginStart="26dp"
android:layout_marginEnd="26dp"
android:layout_marginTop="16dp"
android:text="@string/settings_network_title"
android:drawableEnd="@{viewModel.expandNetwork ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="@color/gray_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/calls_background"/>
<ImageView
android:id="@+id/network_background"
android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
android:src="@drawable/shape_squircle_white_background"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/network"
app:layout_constraintBottom_toBottomOf="@id/network_bottom_anchor"/>
<androidx.appcompat.widget.AppCompatTextView
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"
android:layout_marginEnd="10dp"
android:text="@string/settings_network_use_wifi_only"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/wifi_only_switch"
app:layout_constraintBottom_toBottomOf="@id/wifi_only_switch"
app:layout_constraintStart_toStartOf="@id/network_background"
app:layout_constraintEnd_toStartOf="@id/wifi_only_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
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="21dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.useWifiOnly}"
app:layout_constraintEnd_toEndOf="@id/network_background"
app:layout_constraintTop_toTopOf="@id/network_background" />
<View
android:id="@+id/network_bottom_anchor"
android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE}"
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_marginTop="21dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/wifi_only_switch"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:onClick="@{() -> viewModel.toggleUserInterfaceExpand()}"
android:id="@+id/user_interface"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginStart="26dp"
android:layout_marginEnd="26dp"
android:layout_marginTop="16dp"
android:text="@string/settings_user_interface_title"
android:drawableEnd="@{viewModel.expandUserInterface ? @drawable/caret_up : @drawable/caret_down, default=@drawable/caret_up}"
android:drawableTint="@color/gray_main2_600"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/network_background"/>
<ImageView
android:id="@+id/user_interface_background"
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
android:layout_marginStart="17dp"
android:layout_marginEnd="17dp"
android:src="@drawable/shape_squircle_white_background"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/user_interface"
app:layout_constraintBottom_toBottomOf="@id/user_interface_bottom_anchor"/>
<View
android:id="@+id/user_interface_bottom_anchor"
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
android:layout_width="1dp"
android:layout_height="1dp"
android:layout_marginTop="21dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/network_bottom_anchor"/>
<androidx.appcompat.widget.AppCompatTextView
style="@style/section_header_style"
android:id="@+id/advanced_settings"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginStart="26dp"
android:layout_marginEnd="26dp"
android:layout_marginTop="16dp"
android:layout_marginBottom="@dimen/screen_bottom_margin"
android:text="@string/settings_advanced_title"
android:drawableEnd="@drawable/caret_right"
android:drawableTint="@color/gray_main2_600"
app:layout_constraintVertical_bias="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/user_interface"
app:layout_constraintBottom_toBottomOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
</androidx.constraintlayout.widget.ConstraintLayout>
</layout>