diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index ada7415c2..f37cd45ca 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -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" diff --git a/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt b/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt index be1be9337..2ce3494f4 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/fragment/SettingsFragment.kt @@ -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() } 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 509ba0d26..76e157c38 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 @@ -53,8 +53,6 @@ class SettingsViewModel @UiThread constructor() : ViewModel() { val echoCancellerEnabled = MutableLiveData() val routeAudioToBluetooth = MutableLiveData() val videoEnabled = MutableLiveData() - val autoInitiateVideoCalls = MutableLiveData() - val autoAcceptVideoRequests = MutableLiveData() val availableRingtonesPaths = arrayListOf() val availableRingtonesNames = arrayListOf() @@ -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) diff --git a/app/src/main/res/layout/settings_calls.xml b/app/src/main/res/layout/settings_calls.xml new file mode 100644 index 000000000..207e9b7ee --- /dev/null +++ b/app/src/main/res/layout/settings_calls.xml @@ -0,0 +1,252 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 9a6b47ebc..5356b9bc5 100644 --- a/app/src/main/res/layout/settings_fragment.xml +++ b/app/src/main/res/layout/settings_fragment.xml @@ -1,7 +1,7 @@ - + @@ -74,349 +74,17 @@ app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"/> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + bind:viewModel="@{viewModel}"/> + app:layout_constraintTop_toBottomOf="@id/calls_settings"/> - - - - - - - + bind:viewModel="@{viewModel}"/> + app:layout_constraintTop_toBottomOf="@id/network_settings"/> - - - - - - - - - + bind:viewModel="@{viewModel}"/> diff --git a/app/src/main/res/layout/settings_network.xml b/app/src/main/res/layout/settings_network.xml new file mode 100644 index 000000000..42139c8a6 --- /dev/null +++ b/app/src/main/res/layout/settings_network.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/settings_user_interface.xml b/app/src/main/res/layout/settings_user_interface.xml new file mode 100644 index 000000000..24b16e7f1 --- /dev/null +++ b/app/src/main/res/layout/settings_user_interface.xml @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file