diff --git a/services/core/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java index 64bcaa0b4077b..7a947f192263c 100644 --- a/services/core/java/com/android/server/VibratorService.java +++ b/services/core/java/com/android/server/VibratorService.java @@ -54,6 +54,7 @@ import android.os.UserHandle; import android.os.VibrationEffect; import android.os.Vibrator; import android.os.WorkSource; +import android.provider.DeviceConfig; import android.provider.Settings; import android.provider.Settings.SettingNotFoundException; import android.util.DebugUtils; @@ -78,6 +79,7 @@ public class VibratorService extends IVibratorService.Stub private static final boolean DEBUG = false; private static final String SYSTEM_UI_PACKAGE = "com.android.systemui"; private static final String EXTERNAL_VIBRATOR_SERVICE = "external_vibrator_service"; + private static final String RAMPING_RINGER_ENABLED = "ramping_ringer_enabled"; private static final long[] DOUBLE_CLICK_EFFECT_FALLBACK_TIMINGS = { 0, 30, 100, 30 }; @@ -874,6 +876,11 @@ public class VibratorService extends IVibratorService.Stub if (Settings.System.getInt( mContext.getContentResolver(), Settings.System.VIBRATE_WHEN_RINGING, 0) != 0) { return ringerMode != AudioManager.RINGER_MODE_SILENT; + } else if (Settings.Global.getInt( + mContext.getContentResolver(), Settings.Global.APPLY_RAMPING_RINGER, 0) != 0 + && DeviceConfig.getBoolean( + DeviceConfig.NAMESPACE_TELEPHONY, RAMPING_RINGER_ENABLED, false)) { + return ringerMode != AudioManager.RINGER_MODE_SILENT; } else { return ringerMode == AudioManager.RINGER_MODE_VIBRATE; }