mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-05-06 21:33:09 +00:00
Improved settings layout
This commit is contained in:
parent
be3f6ea301
commit
c8b1231322
7 changed files with 400 additions and 486 deletions
|
|
@ -143,10 +143,6 @@ class CorePreferences @UiThread constructor(private val context: Context) {
|
|||
val factoryConfigPath: String
|
||||
get() = context.filesDir.absolutePath + "/linphonerc"
|
||||
|
||||
@get:AnyThread
|
||||
val friendsDatabasePath: String
|
||||
get() = context.filesDir.absolutePath + "/friends.db"
|
||||
|
||||
@get:AnyThread
|
||||
val linphoneDefaultValuesPath: String
|
||||
get() = context.filesDir.absolutePath + "/assistant_linphone_default_values"
|
||||
|
|
|
|||
|
|
@ -85,17 +85,17 @@ class SettingsFragment : GenericFragment() {
|
|||
viewModel.availableRingtonesNames
|
||||
)
|
||||
ringtonesAdapter.setDropDownViewResource(R.layout.generic_dropdown_cell)
|
||||
binding.deviceRingtoneSpinner.adapter = ringtonesAdapter
|
||||
binding.callsSettings.deviceRingtoneSpinner.adapter = ringtonesAdapter
|
||||
|
||||
viewModel.selectedRingtone.observe(viewLifecycleOwner) { ringtone ->
|
||||
binding.deviceRingtoneSpinner.setSelection(
|
||||
binding.callsSettings.deviceRingtoneSpinner.setSelection(
|
||||
viewModel.availableRingtonesPaths.indexOf(
|
||||
ringtone
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
binding.deviceRingtoneSpinner.onItemSelectedListener = ringtoneListener
|
||||
binding.callsSettings.deviceRingtoneSpinner.onItemSelectedListener = ringtoneListener
|
||||
|
||||
// Light/Dark theme related
|
||||
val themeAdapter = ArrayAdapter(
|
||||
|
|
@ -104,13 +104,15 @@ class SettingsFragment : GenericFragment() {
|
|||
viewModel.availableThemesNames
|
||||
)
|
||||
themeAdapter.setDropDownViewResource(R.layout.generic_dropdown_cell)
|
||||
binding.themeSpinner.adapter = themeAdapter
|
||||
binding.userInterfaceSettings.themeSpinner.adapter = themeAdapter
|
||||
|
||||
viewModel.theme.observe(viewLifecycleOwner) { theme ->
|
||||
binding.themeSpinner.setSelection(viewModel.availableThemesValues.indexOf(theme))
|
||||
binding.userInterfaceSettings.themeSpinner.setSelection(
|
||||
viewModel.availableThemesValues.indexOf(theme)
|
||||
)
|
||||
}
|
||||
|
||||
binding.themeSpinner.onItemSelectedListener = themeListener
|
||||
binding.userInterfaceSettings.themeSpinner.onItemSelectedListener = themeListener
|
||||
|
||||
startPostponedEnterTransition()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -53,8 +53,6 @@ class SettingsViewModel @UiThread constructor() : ViewModel() {
|
|||
val echoCancellerEnabled = MutableLiveData<Boolean>()
|
||||
val routeAudioToBluetooth = MutableLiveData<Boolean>()
|
||||
val videoEnabled = MutableLiveData<Boolean>()
|
||||
val autoInitiateVideoCalls = MutableLiveData<Boolean>()
|
||||
val autoAcceptVideoRequests = MutableLiveData<Boolean>()
|
||||
|
||||
val availableRingtonesPaths = arrayListOf<String>()
|
||||
val availableRingtonesNames = arrayListOf<String>()
|
||||
|
|
@ -112,8 +110,6 @@ class SettingsViewModel @UiThread constructor() : ViewModel() {
|
|||
echoCancellerEnabled.postValue(core.isEchoCancellationEnabled)
|
||||
routeAudioToBluetooth.postValue(corePreferences.routeAudioToBluetoothIfAvailable)
|
||||
videoEnabled.postValue(core.isVideoEnabled)
|
||||
autoInitiateVideoCalls.postValue(core.videoActivationPolicy.automaticallyInitiate)
|
||||
autoAcceptVideoRequests.postValue(core.videoActivationPolicy.automaticallyAccept)
|
||||
vibrateDuringIncomingCall.postValue(core.isVibrationOnIncomingCallEnabled)
|
||||
autoRecordCalls.postValue(corePreferences.automaticallyStartCallRecording)
|
||||
|
||||
|
|
@ -167,28 +163,6 @@ class SettingsViewModel @UiThread constructor() : ViewModel() {
|
|||
}
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun toggleAutoInitiateVideoCalls() {
|
||||
val newValue = autoInitiateVideoCalls.value == false
|
||||
coreContext.postOnCoreThread { core ->
|
||||
val policy = core.videoActivationPolicy
|
||||
policy.automaticallyInitiate = newValue
|
||||
core.videoActivationPolicy = policy
|
||||
autoInitiateVideoCalls.postValue(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun toggleAutoAcceptVideoRequests() {
|
||||
val newValue = autoAcceptVideoRequests.value == false
|
||||
coreContext.postOnCoreThread { core ->
|
||||
val policy = core.videoActivationPolicy
|
||||
policy.automaticallyAccept = newValue
|
||||
core.videoActivationPolicy = policy
|
||||
autoAcceptVideoRequests.postValue(newValue)
|
||||
}
|
||||
}
|
||||
|
||||
@UiThread
|
||||
fun setRingtone(ringtone: String) {
|
||||
coreContext.postOnCoreThread { core ->
|
||||
|
|
@ -355,8 +329,10 @@ class SettingsViewModel @UiThread constructor() : ViewModel() {
|
|||
try {
|
||||
uri =
|
||||
RingtoneManager.getActualDefaultRingtoneUri(context, RingtoneManager.TYPE_RINGTONE)
|
||||
} catch (exception: SecurityException) {
|
||||
} catch (e: SecurityException) {
|
||||
Log.e("$TAG Can't get default ringtone URI: $e")
|
||||
}
|
||||
|
||||
if (uri == null) {
|
||||
Log.w("$TAG Failed to get actual default ringtone URI, trying to get a valid one")
|
||||
uri = RingtoneManager.getValidRingtoneUri(context)
|
||||
|
|
|
|||
252
app/src/main/res/layout/settings_calls.xml
Normal file
252
app/src/main/res/layout/settings_calls.xml
Normal file
|
|
@ -0,0 +1,252 @@
|
|||
<?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="viewModel"
|
||||
type="org.linphone.ui.main.settings.viewmodel.SettingsViewModel" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="20dp"
|
||||
android:background="@drawable/shape_squircle_white_background">
|
||||
|
||||
<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="parent"
|
||||
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="parent"
|
||||
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="20dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:checked="@{viewModel.echoCancellerEnabled}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<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="parent"
|
||||
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="parent"
|
||||
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="parent"
|
||||
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="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/route_audio_to_bluetooth_switch" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:id="@+id/device_ringtone_title"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/settings_calls_ringtones_title"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintTop_toBottomOf="@id/enable_video_switch"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toStartOf="@id/device_ringtone_player"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatSpinner
|
||||
style="@style/material_switch_style"
|
||||
android:id="@+id/device_ringtone_spinner"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/device_ringtone_title"
|
||||
app:layout_constraintStart_toStartOf="@id/device_ringtone_title"
|
||||
app:layout_constraintEnd_toStartOf="@id/device_ringtone_player" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/device_ringtone_spinner_caret"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:src="@drawable/caret_down"
|
||||
app:layout_constraintTop_toTopOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintBottom_toBottomOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintEnd_toEndOf="@id/device_ringtone_spinner"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/tertiary_button_label_style"
|
||||
android:id="@+id/device_ringtone_player"
|
||||
android:onClick="@{() -> viewModel.playPauseRingtone()}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="@drawable/tertiary_button_background"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:gravity="center"
|
||||
android:text="@{viewModel.isRingtonePlaying ? @string/settings_calls_pause_ringtone_label : @string/settings_calls_play_ringtone_label, default=@string/settings_calls_play_ringtone_label}"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:drawableStart="@{viewModel.isRingtonePlaying ? @drawable/pause : @drawable/play, default=@drawable/play}"
|
||||
android:drawableTint="@color/tertiary_button_label_color"
|
||||
android:drawablePadding="8dp"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintStart_toEndOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintBottom_toBottomOf="@id/device_ringtone_spinner"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:onClick="@{() -> viewModel.toggleVibrateOnIncomingCalls()}"
|
||||
android:id="@+id/vibrate_title"
|
||||
android:visibility="@{viewModel.expandCalls && 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="parent"
|
||||
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 && 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="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/device_ringtone_spinner" />
|
||||
|
||||
<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="parent"
|
||||
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="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/vibrate_switch" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</layout>
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
<?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">
|
||||
<layout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:bind="http://schemas.android.com/tools">
|
||||
|
||||
<data>
|
||||
<import type="android.view.View" />
|
||||
|
|
@ -74,349 +74,17 @@
|
|||
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"
|
||||
<include
|
||||
android:id="@+id/calls_settings"
|
||||
layout="@layout/settings_calls"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/shape_squircle_white_background"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
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="20dp"
|
||||
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:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/settings_calls_ringtones_title"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintTop_toBottomOf="@id/auto_accept_video_switch"
|
||||
app:layout_constraintStart_toStartOf="@id/calls_background"
|
||||
app:layout_constraintEnd_toStartOf="@id/device_ringtone_player"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatSpinner
|
||||
style="@style/material_switch_style"
|
||||
android:id="@+id/device_ringtone_spinner"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/device_ringtone_title"
|
||||
app:layout_constraintStart_toStartOf="@id/device_ringtone_title"
|
||||
app:layout_constraintEnd_toStartOf="@id/device_ringtone_player" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/device_ringtone_spinner_caret"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:src="@drawable/caret_down"
|
||||
app:layout_constraintTop_toTopOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintBottom_toBottomOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintEnd_toEndOf="@id/device_ringtone_spinner"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/tertiary_button_label_style"
|
||||
android:id="@+id/device_ringtone_player"
|
||||
android:onClick="@{() -> viewModel.playPauseRingtone()}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:background="@drawable/tertiary_button_background"
|
||||
android:paddingStart="12dp"
|
||||
android:paddingEnd="12dp"
|
||||
android:paddingTop="6dp"
|
||||
android:paddingBottom="6dp"
|
||||
android:gravity="center"
|
||||
android:text="@{viewModel.isRingtonePlaying ? @string/settings_calls_pause_ringtone_label : @string/settings_calls_play_ringtone_label, default=@string/settings_calls_play_ringtone_label}"
|
||||
android:maxLines="1"
|
||||
android:ellipsize="end"
|
||||
android:drawableStart="@{viewModel.isRingtonePlaying ? @drawable/pause : @drawable/play, default=@drawable/play}"
|
||||
android:drawableTint="@color/tertiary_button_label_color"
|
||||
android:drawablePadding="8dp"
|
||||
android:visibility="@{viewModel.expandCalls ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintStart_toEndOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintEnd_toEndOf="@id/calls_background"
|
||||
app:layout_constraintTop_toTopOf="@id/device_ringtone_spinner"
|
||||
app:layout_constraintBottom_toBottomOf="@id/device_ringtone_spinner"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:onClick="@{() -> viewModel.toggleVibrateOnIncomingCalls()}"
|
||||
android:id="@+id/vibrate_title"
|
||||
android:visibility="@{viewModel.expandCalls && 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 && 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_spinner" />
|
||||
|
||||
<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="20dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/auto_record_switch"/>
|
||||
bind:viewModel="@{viewModel}"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/section_header_style"
|
||||
|
|
@ -433,60 +101,19 @@
|
|||
android:drawableTint="@color/gray_main2_600"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/calls_background"/>
|
||||
app:layout_constraintTop_toBottomOf="@id/calls_settings"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/network_background"
|
||||
android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
<include
|
||||
android:id="@+id/network_settings"
|
||||
layout="@layout/settings_network"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/shape_squircle_white_background"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:visibility="@{viewModel.expandNetwork ? View.VISIBLE : View.GONE}"
|
||||
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="20dp"
|
||||
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="20dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/wifi_only_switch"/>
|
||||
bind:viewModel="@{viewModel}"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/section_header_style"
|
||||
|
|
@ -503,71 +130,19 @@
|
|||
android:drawableTint="@color/gray_main2_600"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/network_background"/>
|
||||
app:layout_constraintTop_toBottomOf="@id/network_settings"/>
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/user_interface_background"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
<include
|
||||
android:id="@+id/user_interface_settings"
|
||||
layout="@layout/settings_user_interface"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="0dp"
|
||||
android:layout_marginTop="8dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:src="@drawable/shape_squircle_white_background"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
app:layout_constraintTop_toBottomOf="@id/user_interface"
|
||||
app:layout_constraintBottom_toBottomOf="@id/user_interface_bottom_anchor"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:id="@+id/theme_title"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/settings_user_interface_theme_title"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintTop_toBottomOf="@id/user_interface"
|
||||
app:layout_constraintStart_toStartOf="@id/user_interface_background"
|
||||
app:layout_constraintEnd_toEndOf="@id/user_interface_background"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatSpinner
|
||||
style="@style/material_switch_style"
|
||||
android:id="@+id/theme_spinner"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/theme_title"
|
||||
app:layout_constraintStart_toStartOf="@id/theme_title"
|
||||
app:layout_constraintEnd_toEndOf="@id/theme_title" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/theme_spinner_caret"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:src="@drawable/caret_down"
|
||||
app:layout_constraintTop_toTopOf="@id/theme_spinner"
|
||||
app:layout_constraintBottom_toBottomOf="@id/theme_spinner"
|
||||
app:layout_constraintEnd_toEndOf="@id/theme_spinner"/>
|
||||
|
||||
<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="20dp"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/theme_spinner"/>
|
||||
bind:viewModel="@{viewModel}"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/section_header_style"
|
||||
|
|
@ -585,7 +160,7 @@
|
|||
app:layout_constraintVertical_bias="0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/user_interface_background"
|
||||
app:layout_constraintTop_toBottomOf="@id/user_interface_settings"
|
||||
app:layout_constraintBottom_toBottomOf="parent"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
|
|||
51
app/src/main/res/layout/settings_network.xml
Normal file
51
app/src/main/res/layout/settings_network.xml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?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="viewModel"
|
||||
type="org.linphone.ui.main.settings.viewmodel.SettingsViewModel" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="20dp"
|
||||
android:background="@drawable/shape_squircle_white_background">
|
||||
|
||||
<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="parent"
|
||||
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="20dp"
|
||||
android:layout_marginEnd="16dp"
|
||||
android:checked="@{viewModel.useWifiOnly}"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</layout>
|
||||
62
app/src/main/res/layout/settings_user_interface.xml
Normal file
62
app/src/main/res/layout/settings_user_interface.xml
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
<?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="viewModel"
|
||||
type="org.linphone.ui.main.settings.viewmodel.SettingsViewModel" />
|
||||
</data>
|
||||
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:paddingBottom="20dp"
|
||||
android:background="@drawable/shape_squircle_white_background">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatTextView
|
||||
style="@style/settings_title_style"
|
||||
android:id="@+id/theme_title"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="20dp"
|
||||
android:layout_marginStart="16dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:text="@string/settings_user_interface_theme_title"
|
||||
android:maxLines="2"
|
||||
android:ellipsize="end"
|
||||
app:layout_constraintTop_toTopOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"/>
|
||||
|
||||
<androidx.appcompat.widget.AppCompatSpinner
|
||||
style="@style/material_switch_style"
|
||||
android:id="@+id/theme_spinner"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="50dp"
|
||||
android:layout_marginEnd="10dp"
|
||||
android:background="@drawable/edit_text_background"
|
||||
android:paddingStart="20dp"
|
||||
android:paddingEnd="20dp"
|
||||
app:layout_constraintTop_toBottomOf="@id/theme_title"
|
||||
app:layout_constraintStart_toStartOf="@id/theme_title"
|
||||
app:layout_constraintEnd_toEndOf="@id/theme_title" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/theme_spinner_caret"
|
||||
android:visibility="@{viewModel.expandUserInterface ? View.VISIBLE : View.GONE}"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="20dp"
|
||||
android:src="@drawable/caret_down"
|
||||
app:layout_constraintTop_toTopOf="@id/theme_spinner"
|
||||
app:layout_constraintBottom_toBottomOf="@id/theme_spinner"
|
||||
app:layout_constraintEnd_toEndOf="@id/theme_spinner"/>
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
||||
</layout>
|
||||
Loading…
Add table
Reference in a new issue