diff --git a/core/java/android/os/Vibrator.java b/core/java/android/os/Vibrator.java index f1f6f414eba88..d2d8f1e159e59 100644 --- a/core/java/android/os/Vibrator.java +++ b/core/java/android/os/Vibrator.java @@ -72,12 +72,23 @@ public abstract class Vibrator { public @interface VibrationIntensity{} private final String mPackageName; + // The default vibration intensity level for haptic feedback. + @VibrationIntensity + private final int mDefaultHapticFeedbackIntensity; + // The default vibration intensity level for notifications. + @VibrationIntensity + private final int mDefaultNotificationVibrationIntensity; /** * @hide to prevent subclassing from outside of the framework */ public Vibrator() { mPackageName = ActivityThread.currentPackageName(); + final Context ctx = ActivityThread.currentActivityThread().getSystemContext(); + mDefaultHapticFeedbackIntensity = loadDefaultIntensity(ctx, + com.android.internal.R.integer.config_defaultHapticFeedbackIntensity); + mDefaultNotificationVibrationIntensity = loadDefaultIntensity(ctx, + com.android.internal.R.integer.config_defaultNotificationVibrationIntensity); } /** @@ -85,6 +96,14 @@ public abstract class Vibrator { */ protected Vibrator(Context context) { mPackageName = context.getOpPackageName(); + mDefaultHapticFeedbackIntensity = loadDefaultIntensity(context, + com.android.internal.R.integer.config_defaultHapticFeedbackIntensity); + mDefaultNotificationVibrationIntensity = loadDefaultIntensity(context, + com.android.internal.R.integer.config_defaultNotificationVibrationIntensity); + } + + private int loadDefaultIntensity(Context ctx, int resId) { + return ctx != null ? ctx.getResources().getInteger(resId) : VIBRATION_INTENSITY_MEDIUM; } /** @@ -92,7 +111,7 @@ public abstract class Vibrator { * @hide */ public int getDefaultHapticFeedbackIntensity() { - return VIBRATION_INTENSITY_MEDIUM; + return mDefaultHapticFeedbackIntensity; } /** @@ -100,7 +119,7 @@ public abstract class Vibrator { * @hide */ public int getDefaultNotificationVibrationIntensity() { - return VIBRATION_INTENSITY_HIGH; + return mDefaultNotificationVibrationIntensity; } /** diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index b0ecb3ecf11df..c856ed81d5758 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -1108,6 +1108,15 @@ + + 2 + + 2 + false