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 90c3fbb65..e862a7602 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 @@ -36,6 +36,7 @@ import org.linphone.R import org.linphone.compatibility.Compatibility import org.linphone.core.tools.Log import org.linphone.databinding.SettingsFragmentBinding +import org.linphone.ui.GenericActivity import org.linphone.ui.main.fragment.GenericMainFragment import org.linphone.utils.ConfirmationDialogModel import org.linphone.ui.main.settings.viewmodel.SettingsViewModel @@ -176,7 +177,7 @@ class SettingsFragment : GenericMainFragment() { } } - viewModel.goToIncomingCallNotificationChannelSettingsEvent.observe(viewLifecycleOwner) { + viewModel.showRingtonePickerEvent.observe(viewLifecycleOwner) { it.consume { currentRingtone -> try { val intent = Intent(RingtoneManager.ACTION_RINGTONE_PICKER).apply { @@ -184,13 +185,16 @@ class SettingsFragment : GenericMainFragment() { RingtoneManager.EXTRA_RINGTONE_TYPE, RingtoneManager.TYPE_RINGTONE ) - putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currentRingtone) + if (currentRingtone != null) { + putExtra(RingtoneManager.EXTRA_RINGTONE_EXISTING_URI, currentRingtone) + } putExtra(RingtoneManager.EXTRA_RINGTONE_TITLE, AppUtils.getString(R.string.settings_calls_change_ringtone_pick_title)) } startActivityForResult(intent, RINGTONE_PICKER_INTENT_ID) } catch (e: Exception) { Log.e("$TAG Failed start ringtone picker: $e") - // TODO: show error to user + val toastMessage = getString(R.string.settings_calls_change_ringtone_picker_unavailable_toast) + (requireActivity() as GenericActivity).showRedToast(toastMessage, R.drawable.warning_circle) } } } 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 658d7ba14..affdf6298 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 @@ -92,7 +92,7 @@ class SettingsViewModel val autoRecordCalls = MutableLiveData() - val goToIncomingCallNotificationChannelSettingsEvent = MutableLiveData>() + val showRingtonePickerEvent = MutableLiveData>() // Conversations settings val showConversationsSettings = MutableLiveData() @@ -531,9 +531,10 @@ class SettingsViewModel val coreRingtone = core.ring?.toUri() Log.i("$TAG Currently set ringtone in Core is [$coreRingtone], device default ringtone is [$defaultDeviceRingtone]") val currentRingtone = coreRingtone ?: defaultDeviceRingtone - goToIncomingCallNotificationChannelSettingsEvent.postValue(Event(currentRingtone)) + showRingtonePickerEvent.postValue(Event(currentRingtone)) } catch (e: Exception) { - Log.e("$TAG Failed to get current ringtone: $e") + Log.e("$TAG Failed to get current ringtone, opening picker anyway: $e") + showRingtonePickerEvent.postValue(Event(null)) } } } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 2cb85ed93..9cb66ced2 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -220,6 +220,7 @@ Enregistrement automatique des appels Changer de sonnerie Choisissez la sonnerie + Le sélectionneur de sonnerie n\'est pas disponible ! Conversations Télécharger automatiquement les fichiers Rendre visible dans la galerie les médias téléchargés diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 195b0565a..4fa51ca51 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -262,6 +262,7 @@ Automatically start recording calls Change ringtone Pick ringtone + Ringtone picker isn\'t available! Conversations Auto-download files Make downloaded media public