From ffa70124c4a0516d1d7225a52180e0182276e252 Mon Sep 17 00:00:00 2001 From: Brandon Maxwell Date: Thu, 25 Feb 2016 16:39:48 -0800 Subject: Respect setting for incoming call to vibrate + Previously the Dialer would always play a vibration pattern for incoming calls, regardless of whether the user toggled the vibrate setting off. This change causes the Dialer to respect that setting. Bug=27353237 Change-Id: I65987cea0c13dd50fba5e0edacfba88b3e3ecbd7 --- InCallUI/src/com/android/incallui/StatusBarNotifier.java | 4 +++- .../android/incallui/ringtone/DialerRingtoneManager.java | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'InCallUI') diff --git a/InCallUI/src/com/android/incallui/StatusBarNotifier.java b/InCallUI/src/com/android/incallui/StatusBarNotifier.java index 1a4ec0935..315c0d0ae 100644 --- a/InCallUI/src/com/android/incallui/StatusBarNotifier.java +++ b/InCallUI/src/com/android/incallui/StatusBarNotifier.java @@ -315,7 +315,9 @@ public class StatusBarNotifier implements InCallPresenter.InCallStateListener, audioAttributes.setContentType(AudioAttributes.CONTENT_TYPE_MUSIC); audioAttributes.setUsage(AudioAttributes.USAGE_NOTIFICATION_RINGTONE); notification.audioAttributes = audioAttributes.build(); - notification.vibrate = VIBRATE_PATTERN; + if (mDialerRingtoneManager.shouldVibrate(mContext.getContentResolver())) { + notification.vibrate = VIBRATE_PATTERN; + } } if (mDialerRingtoneManager.shouldPlayCallWaitingTone(callState)) { Log.v(this, "Playing call waiting tone"); diff --git a/InCallUI/src/com/android/incallui/ringtone/DialerRingtoneManager.java b/InCallUI/src/com/android/incallui/ringtone/DialerRingtoneManager.java index 38b37a263..3803a3e9a 100644 --- a/InCallUI/src/com/android/incallui/ringtone/DialerRingtoneManager.java +++ b/InCallUI/src/com/android/incallui/ringtone/DialerRingtoneManager.java @@ -18,7 +18,9 @@ package com.android.incallui.ringtone; import com.google.common.base.Preconditions; +import android.content.ContentResolver; import android.net.Uri; +import android.provider.Settings; import android.support.annotation.Nullable; import com.android.contacts.common.compat.CompatUtils; @@ -69,6 +71,17 @@ public class DialerRingtoneManager { && ringtoneUri != null; } + /** + * Determines if an incoming call should vibrate as well as ring. + * + * @param resolver {@link ContentResolver} used to look up the + * {@link Settings.System#VIBRATE_WHEN_RINGING} setting. + * @return {@code true} if the call should vibrate, {@code false} otherwise. + */ + public boolean shouldVibrate(ContentResolver resolver) { + return Settings.System.getInt(resolver, Settings.System.VIBRATE_WHEN_RINGING, 0) != 0; + } + /** * The incoming callState is never set as {@link State#CALL_WAITING} because * {@link Call#translateState(int)} doesn't account for that case, check for it here -- cgit v1.2.3