From a2535cef5646a5c7401d50620c32d1f6d0ce2d2e Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 27 Apr 2023 08:59:14 +0200 Subject: [PATCH] Hidden vibrator setting if the device has no vibrator --- .../main/settings/viewmodels/CallSettingsViewModel.kt | 9 ++++++++- app/src/main/res/layout/settings_call_fragment.xml | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt index c0bf4583c..42eab7990 100644 --- a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/CallSettingsViewModel.kt @@ -19,10 +19,11 @@ */ package org.linphone.activities.main.settings.viewmodels +import android.os.Vibrator import androidx.lifecycle.MutableLiveData import java.io.File import java.util.* -import kotlin.collections.ArrayList +import org.linphone.LinphoneApplication.Companion.coreContext import org.linphone.R import org.linphone.activities.main.settings.SettingListenerStub import org.linphone.core.MediaEncryption @@ -60,6 +61,7 @@ class CallSettingsViewModel : GenericSettingsViewModel() { } } val vibrateOnIncomingCall = MutableLiveData() + val canVibrate = MutableLiveData() val encryptionListener = object : SettingListenerStub() { override fun onListValueChanged(position: Int) { @@ -233,6 +235,11 @@ class CallSettingsViewModel : GenericSettingsViewModel() { showRingtonesList.value = prefs.showAllRingtones 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() encryptionMandatory.value = core.isMediaEncryptionMandatory diff --git a/app/src/main/res/layout/settings_call_fragment.xml b/app/src/main/res/layout/settings_call_fragment.xml index 259310a85..fc7a122db 100644 --- a/app/src/main/res/layout/settings_call_fragment.xml +++ b/app/src/main/res/layout/settings_call_fragment.xml @@ -84,7 +84,8 @@ layout="@layout/settings_widget_switch" linphone:title="@{@string/call_settings_vibrate_title}" linphone:listener="@{viewModel.vibrateOnIncomingCallListener}" - linphone:checked="@={viewModel.vibrateOnIncomingCall}"/> + linphone:checked="@={viewModel.vibrateOnIncomingCall}" + android:visibility="@{viewModel.canVibrate ? View.VISIBLE : View.GONE}"/>