Merge "Introduce media and accessibility vibration usages."
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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:
|
||||
@@ -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;
|
||||
}
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user