Loading core/api/current.txt +3 −0 Original line number Diff line number Diff line Loading @@ -32427,13 +32427,16 @@ package android.os { method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.os.VibrationAttributes> CREATOR; field public static final int FLAG_BYPASS_INTERRUPTION_POLICY = 1; // 0x1 field public static final int USAGE_ACCESSIBILITY = 66; // 0x42 field public static final int USAGE_ALARM = 17; // 0x11 field public static final int USAGE_CLASS_ALARM = 1; // 0x1 field public static final int USAGE_CLASS_FEEDBACK = 2; // 0x2 field public static final int USAGE_CLASS_MASK = 15; // 0xf field public static final int USAGE_CLASS_MEDIA = 3; // 0x3 field public static final int USAGE_CLASS_UNKNOWN = 0; // 0x0 field public static final int USAGE_COMMUNICATION_REQUEST = 65; // 0x41 field public static final int USAGE_HARDWARE_FEEDBACK = 50; // 0x32 field public static final int USAGE_MEDIA = 19; // 0x13 field public static final int USAGE_NOTIFICATION = 49; // 0x31 field public static final int USAGE_PHYSICAL_EMULATION = 34; // 0x22 field public static final int USAGE_RINGTONE = 33; // 0x21 core/java/android/os/VibrationAttributes.java +37 −3 Original line number Diff line number Diff line Loading @@ -81,6 +81,11 @@ public final class VibrationAttributes implements Parcelable { * actions, such as emulation of physical effects, and texting feedback vibration. */ public static final int USAGE_CLASS_FEEDBACK = 0x2; /** * Vibration usage class value to use when the vibration is part of media, such as music, movie, * soundtrack, game or animations. */ public static final int USAGE_CLASS_MEDIA = 0x3; /** * Mask for vibration usage class value. Loading Loading @@ -121,6 +126,15 @@ public final class VibrationAttributes implements Parcelable { * such as a fingerprint sensor. */ public static final int USAGE_HARDWARE_FEEDBACK = 0x30 | USAGE_CLASS_FEEDBACK; /** * Usage value to use for accessibility vibrations, such as with a screen reader. */ public static final int USAGE_ACCESSIBILITY = 0x40 | USAGE_CLASS_FEEDBACK; /** * Usage value to use for media vibrations, such as music, movie, soundtrack, animations, games, * or any interactive media that isn't for touch feedback specifically. */ public static final int USAGE_MEDIA = 0x10 | USAGE_CLASS_MEDIA; /** * @hide Loading Loading @@ -208,13 +222,17 @@ public final class VibrationAttributes implements Parcelable { case USAGE_NOTIFICATION: return AudioAttributes.USAGE_NOTIFICATION; case USAGE_COMMUNICATION_REQUEST: return AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST; return AudioAttributes.USAGE_VOICE_COMMUNICATION; case USAGE_RINGTONE: return AudioAttributes.USAGE_NOTIFICATION_RINGTONE; case USAGE_TOUCH: return AudioAttributes.USAGE_ASSISTANCE_SONIFICATION; case USAGE_ALARM: return AudioAttributes.USAGE_ALARM; case USAGE_ACCESSIBILITY: return AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY; case USAGE_MEDIA: return AudioAttributes.USAGE_MEDIA; default: return AudioAttributes.USAGE_UNKNOWN; } Loading Loading @@ -286,12 +304,16 @@ public final class VibrationAttributes implements Parcelable { return "UNKNOWN"; case USAGE_ALARM: return "ALARM"; case USAGE_ACCESSIBILITY: return "ACCESSIBILITY"; case USAGE_RINGTONE: return "RINGTONE"; case USAGE_NOTIFICATION: return "NOTIFICATION"; case USAGE_COMMUNICATION_REQUEST: return "COMMUNICATION_REQUEST"; case USAGE_MEDIA: return "MEDIA"; case USAGE_TOUCH: return "TOUCH"; case USAGE_PHYSICAL_EMULATION: Loading Loading @@ -405,21 +427,31 @@ public final class VibrationAttributes implements Parcelable { case AudioAttributes.USAGE_NOTIFICATION_EVENT: case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_DELAYED: case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT: case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST: mUsage = USAGE_NOTIFICATION; break; case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST: case AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY: case AudioAttributes.USAGE_VOICE_COMMUNICATION: case AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING: case AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE: case AudioAttributes.USAGE_ASSISTANT: mUsage = USAGE_COMMUNICATION_REQUEST; break; case AudioAttributes.USAGE_NOTIFICATION_RINGTONE: mUsage = USAGE_RINGTONE; break; case AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY: mUsage = USAGE_ACCESSIBILITY; break; case AudioAttributes.USAGE_ASSISTANCE_SONIFICATION: mUsage = USAGE_TOUCH; break; case AudioAttributes.USAGE_ALARM: mUsage = USAGE_ALARM; break; case AudioAttributes.USAGE_MEDIA: case AudioAttributes.USAGE_GAME: mUsage = USAGE_MEDIA; break; default: mUsage = USAGE_UNKNOWN; } Loading Loading @@ -450,6 +482,8 @@ public final class VibrationAttributes implements Parcelable { * {@link VibrationAttributes#USAGE_TOUCH}, * {@link VibrationAttributes#USAGE_PHYSICAL_EMULATION}, * {@link VibrationAttributes#USAGE_HARDWARE_FEEDBACK}. * {@link VibrationAttributes#USAGE_ACCESSIBILITY}. * {@link VibrationAttributes#USAGE_MEDIA}. * @return the same Builder instance. */ public @NonNull Builder setUsage(int usage) { Loading core/tests/coretests/src/android/os/VibratorTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -223,7 +223,7 @@ public class VibratorTest { public void vibrate_withAudioAttributes_createsVibrationAttributesWithSameUsage() { VibrationEffect effect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK); AudioAttributes audioAttributes = new AudioAttributes.Builder().setUsage( AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY).build(); AudioAttributes.USAGE_VOICE_COMMUNICATION).build(); mVibratorSpy.vibrate(effect, audioAttributes); Loading @@ -235,7 +235,7 @@ public class VibratorTest { assertEquals(VibrationAttributes.USAGE_COMMUNICATION_REQUEST, vibrationAttributes.getUsage()); // Keeps original AudioAttributes usage to be used by the VibratorService. assertEquals(AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY, assertEquals(AudioAttributes.USAGE_VOICE_COMMUNICATION, vibrationAttributes.getAudioUsage()); } Loading services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -635,7 +635,7 @@ public class VibratorManagerServiceTest { inOrderVerifier.verify(mAppOpsManagerMock).checkAudioOpNoThrow(eq(AppOpsManager.OP_VIBRATE), eq(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION), anyInt(), anyString()); inOrderVerifier.verify(mAppOpsManagerMock).checkAudioOpNoThrow(eq(AppOpsManager.OP_VIBRATE), eq(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST), eq(AudioAttributes.USAGE_VOICE_COMMUNICATION), anyInt(), anyString()); inOrderVerifier.verify(mAppOpsManagerMock).checkAudioOpNoThrow(eq(AppOpsManager.OP_VIBRATE), eq(AudioAttributes.USAGE_UNKNOWN), anyInt(), anyString()); Loading Loading
core/api/current.txt +3 −0 Original line number Diff line number Diff line Loading @@ -32427,13 +32427,16 @@ package android.os { method public void writeToParcel(@NonNull android.os.Parcel, int); field @NonNull public static final android.os.Parcelable.Creator<android.os.VibrationAttributes> CREATOR; field public static final int FLAG_BYPASS_INTERRUPTION_POLICY = 1; // 0x1 field public static final int USAGE_ACCESSIBILITY = 66; // 0x42 field public static final int USAGE_ALARM = 17; // 0x11 field public static final int USAGE_CLASS_ALARM = 1; // 0x1 field public static final int USAGE_CLASS_FEEDBACK = 2; // 0x2 field public static final int USAGE_CLASS_MASK = 15; // 0xf field public static final int USAGE_CLASS_MEDIA = 3; // 0x3 field public static final int USAGE_CLASS_UNKNOWN = 0; // 0x0 field public static final int USAGE_COMMUNICATION_REQUEST = 65; // 0x41 field public static final int USAGE_HARDWARE_FEEDBACK = 50; // 0x32 field public static final int USAGE_MEDIA = 19; // 0x13 field public static final int USAGE_NOTIFICATION = 49; // 0x31 field public static final int USAGE_PHYSICAL_EMULATION = 34; // 0x22 field public static final int USAGE_RINGTONE = 33; // 0x21
core/java/android/os/VibrationAttributes.java +37 −3 Original line number Diff line number Diff line Loading @@ -81,6 +81,11 @@ public final class VibrationAttributes implements Parcelable { * actions, such as emulation of physical effects, and texting feedback vibration. */ public static final int USAGE_CLASS_FEEDBACK = 0x2; /** * Vibration usage class value to use when the vibration is part of media, such as music, movie, * soundtrack, game or animations. */ public static final int USAGE_CLASS_MEDIA = 0x3; /** * Mask for vibration usage class value. Loading Loading @@ -121,6 +126,15 @@ public final class VibrationAttributes implements Parcelable { * such as a fingerprint sensor. */ public static final int USAGE_HARDWARE_FEEDBACK = 0x30 | USAGE_CLASS_FEEDBACK; /** * Usage value to use for accessibility vibrations, such as with a screen reader. */ public static final int USAGE_ACCESSIBILITY = 0x40 | USAGE_CLASS_FEEDBACK; /** * Usage value to use for media vibrations, such as music, movie, soundtrack, animations, games, * or any interactive media that isn't for touch feedback specifically. */ public static final int USAGE_MEDIA = 0x10 | USAGE_CLASS_MEDIA; /** * @hide Loading Loading @@ -208,13 +222,17 @@ public final class VibrationAttributes implements Parcelable { case USAGE_NOTIFICATION: return AudioAttributes.USAGE_NOTIFICATION; case USAGE_COMMUNICATION_REQUEST: return AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST; return AudioAttributes.USAGE_VOICE_COMMUNICATION; case USAGE_RINGTONE: return AudioAttributes.USAGE_NOTIFICATION_RINGTONE; case USAGE_TOUCH: return AudioAttributes.USAGE_ASSISTANCE_SONIFICATION; case USAGE_ALARM: return AudioAttributes.USAGE_ALARM; case USAGE_ACCESSIBILITY: return AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY; case USAGE_MEDIA: return AudioAttributes.USAGE_MEDIA; default: return AudioAttributes.USAGE_UNKNOWN; } Loading Loading @@ -286,12 +304,16 @@ public final class VibrationAttributes implements Parcelable { return "UNKNOWN"; case USAGE_ALARM: return "ALARM"; case USAGE_ACCESSIBILITY: return "ACCESSIBILITY"; case USAGE_RINGTONE: return "RINGTONE"; case USAGE_NOTIFICATION: return "NOTIFICATION"; case USAGE_COMMUNICATION_REQUEST: return "COMMUNICATION_REQUEST"; case USAGE_MEDIA: return "MEDIA"; case USAGE_TOUCH: return "TOUCH"; case USAGE_PHYSICAL_EMULATION: Loading Loading @@ -405,21 +427,31 @@ public final class VibrationAttributes implements Parcelable { case AudioAttributes.USAGE_NOTIFICATION_EVENT: case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_DELAYED: case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_INSTANT: case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST: mUsage = USAGE_NOTIFICATION; break; case AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST: case AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY: case AudioAttributes.USAGE_VOICE_COMMUNICATION: case AudioAttributes.USAGE_VOICE_COMMUNICATION_SIGNALLING: case AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE: case AudioAttributes.USAGE_ASSISTANT: mUsage = USAGE_COMMUNICATION_REQUEST; break; case AudioAttributes.USAGE_NOTIFICATION_RINGTONE: mUsage = USAGE_RINGTONE; break; case AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY: mUsage = USAGE_ACCESSIBILITY; break; case AudioAttributes.USAGE_ASSISTANCE_SONIFICATION: mUsage = USAGE_TOUCH; break; case AudioAttributes.USAGE_ALARM: mUsage = USAGE_ALARM; break; case AudioAttributes.USAGE_MEDIA: case AudioAttributes.USAGE_GAME: mUsage = USAGE_MEDIA; break; default: mUsage = USAGE_UNKNOWN; } Loading Loading @@ -450,6 +482,8 @@ public final class VibrationAttributes implements Parcelable { * {@link VibrationAttributes#USAGE_TOUCH}, * {@link VibrationAttributes#USAGE_PHYSICAL_EMULATION}, * {@link VibrationAttributes#USAGE_HARDWARE_FEEDBACK}. * {@link VibrationAttributes#USAGE_ACCESSIBILITY}. * {@link VibrationAttributes#USAGE_MEDIA}. * @return the same Builder instance. */ public @NonNull Builder setUsage(int usage) { Loading
core/tests/coretests/src/android/os/VibratorTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -223,7 +223,7 @@ public class VibratorTest { public void vibrate_withAudioAttributes_createsVibrationAttributesWithSameUsage() { VibrationEffect effect = VibrationEffect.get(VibrationEffect.EFFECT_CLICK); AudioAttributes audioAttributes = new AudioAttributes.Builder().setUsage( AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY).build(); AudioAttributes.USAGE_VOICE_COMMUNICATION).build(); mVibratorSpy.vibrate(effect, audioAttributes); Loading @@ -235,7 +235,7 @@ public class VibratorTest { assertEquals(VibrationAttributes.USAGE_COMMUNICATION_REQUEST, vibrationAttributes.getUsage()); // Keeps original AudioAttributes usage to be used by the VibratorService. assertEquals(AudioAttributes.USAGE_ASSISTANCE_ACCESSIBILITY, assertEquals(AudioAttributes.USAGE_VOICE_COMMUNICATION, vibrationAttributes.getAudioUsage()); } Loading
services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java +1 −1 Original line number Diff line number Diff line Loading @@ -635,7 +635,7 @@ public class VibratorManagerServiceTest { inOrderVerifier.verify(mAppOpsManagerMock).checkAudioOpNoThrow(eq(AppOpsManager.OP_VIBRATE), eq(AudioAttributes.USAGE_ASSISTANCE_SONIFICATION), anyInt(), anyString()); inOrderVerifier.verify(mAppOpsManagerMock).checkAudioOpNoThrow(eq(AppOpsManager.OP_VIBRATE), eq(AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST), eq(AudioAttributes.USAGE_VOICE_COMMUNICATION), anyInt(), anyString()); inOrderVerifier.verify(mAppOpsManagerMock).checkAudioOpNoThrow(eq(AppOpsManager.OP_VIBRATE), eq(AudioAttributes.USAGE_UNKNOWN), anyInt(), anyString()); Loading