Hidden vibrator setting if the device has no vibrator

This commit is contained in:
Sylvain Berfini 2023-04-27 08:59:14 +02:00
parent 48fb7dfa92
commit a2535cef56
2 changed files with 10 additions and 2 deletions

View file

@ -19,10 +19,11 @@
*/ */
package org.linphone.activities.main.settings.viewmodels package org.linphone.activities.main.settings.viewmodels
import android.os.Vibrator
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import java.io.File import java.io.File
import java.util.* import java.util.*
import kotlin.collections.ArrayList import org.linphone.LinphoneApplication.Companion.coreContext
import org.linphone.R import org.linphone.R
import org.linphone.activities.main.settings.SettingListenerStub import org.linphone.activities.main.settings.SettingListenerStub
import org.linphone.core.MediaEncryption import org.linphone.core.MediaEncryption
@ -60,6 +61,7 @@ class CallSettingsViewModel : GenericSettingsViewModel() {
} }
} }
val vibrateOnIncomingCall = MutableLiveData<Boolean>() val vibrateOnIncomingCall = MutableLiveData<Boolean>()
val canVibrate = MutableLiveData<Boolean>()
val encryptionListener = object : SettingListenerStub() { val encryptionListener = object : SettingListenerStub() {
override fun onListValueChanged(position: Int) { override fun onListValueChanged(position: Int) {
@ -233,6 +235,11 @@ class CallSettingsViewModel : GenericSettingsViewModel() {
showRingtonesList.value = prefs.showAllRingtones showRingtonesList.value = prefs.showAllRingtones
vibrateOnIncomingCall.value = core.isVibrationOnIncomingCallEnabled vibrateOnIncomingCall.value = core.isVibrationOnIncomingCallEnabled
val vibrator = coreContext.context.getSystemService(Vibrator::class.java)
canVibrate.value = vibrator.hasVibrator()
if (canVibrate.value == false) {
Log.w("[Call Settings] Device doesn't seem to have a vibrator, hiding related setting")
}
initEncryptionList() initEncryptionList()
encryptionMandatory.value = core.isMediaEncryptionMandatory encryptionMandatory.value = core.isMediaEncryptionMandatory

View file

@ -84,7 +84,8 @@
layout="@layout/settings_widget_switch" layout="@layout/settings_widget_switch"
linphone:title="@{@string/call_settings_vibrate_title}" linphone:title="@{@string/call_settings_vibrate_title}"
linphone:listener="@{viewModel.vibrateOnIncomingCallListener}" linphone:listener="@{viewModel.vibrateOnIncomingCallListener}"
linphone:checked="@={viewModel.vibrateOnIncomingCall}"/> linphone:checked="@={viewModel.vibrateOnIncomingCall}"
android:visibility="@{viewModel.canVibrate ? View.VISIBLE : View.GONE}"/>
<include <include
layout="@layout/settings_widget_list" layout="@layout/settings_widget_list"