Loading api/test-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -2995,7 +2995,7 @@ package android.os { } public final class VibrationAttributes implements android.os.Parcelable { method @Deprecated @NonNull public android.media.AudioAttributes getAudioAttributes(); method public int getAudioUsage(); } public static final class VibrationAttributes.Builder { Loading core/java/android/hardware/input/InputManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.annotation.TestApi; import android.compat.annotation.ChangeId; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.media.AudioAttributes; import android.os.Binder; import android.os.BlockUntrustedTouchesMode; import android.os.Build; Loading @@ -42,6 +41,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager.ServiceNotFoundException; import android.os.SystemClock; import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; import android.provider.Settings; Loading Loading @@ -1435,8 +1435,8 @@ public final class InputManager { * @hide */ @Override public void vibrate(int uid, String opPkg, VibrationEffect effect, String reason, AudioAttributes attributes) { public void vibrate(int uid, String opPkg, @NonNull VibrationEffect effect, String reason, @NonNull VibrationAttributes attributes) { try { mIm.vibrate(mDeviceId, effect, mToken); } catch (RemoteException ex) { Loading core/java/android/os/NullVibrator.java +1 −3 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package android.os; import android.media.AudioAttributes; /** * Vibrator implementation that does nothing. * Loading Loading @@ -50,7 +48,7 @@ public class NullVibrator extends Vibrator { @Override public void vibrate(int uid, String opPkg, VibrationEffect effect, String reason, AudioAttributes attributes) { String reason, VibrationAttributes attributes) { } @Override Loading core/java/android/os/SystemVibrator.java +3 −7 Original line number Diff line number Diff line Loading @@ -221,18 +221,14 @@ public class SystemVibrator extends Vibrator { } @Override public void vibrate(int uid, String opPkg, VibrationEffect effect, String reason, AudioAttributes attributes) { public void vibrate(int uid, String opPkg, @NonNull VibrationEffect effect, String reason, @NonNull VibrationAttributes attributes) { if (mService == null) { Log.w(TAG, "Failed to vibrate; no vibrator service."); return; } try { if (attributes == null) { attributes = new AudioAttributes.Builder().build(); } VibrationAttributes atr = new VibrationAttributes.Builder(attributes, effect).build(); mService.vibrate(uid, opPkg, effect, atr, reason, mToken); mService.vibrate(uid, opPkg, effect, attributes, reason, mToken); } catch (RemoteException e) { Log.w(TAG, "Failed to vibrate.", e); } Loading core/java/android/os/VibrationAttributes.java +37 −22 Original line number Diff line number Diff line Loading @@ -140,13 +140,12 @@ public final class VibrationAttributes implements Parcelable { private final int mUsage; private final int mFlags; private final int mOriginalAudioUsage; private final AudioAttributes mAudioAttributes; private VibrationAttributes(int usage, int flags, @NonNull AudioAttributes audio) { private VibrationAttributes(int usage, int audioUsage, int flags) { mUsage = usage; mOriginalAudioUsage = audioUsage; mFlags = flags & FLAG_ALL_SUPPORTED; mAudioAttributes = audio; } /** Loading Loading @@ -182,14 +181,31 @@ public final class VibrationAttributes implements Parcelable { } /** * Return AudioAttributes equivalent to this VibrationAttributes. * @deprecated Temporary support of AudioAttributes, will be removed when out of WIP * Return {@link AudioAttributes} usage equivalent to {@link #getUsage()}. * @return one of {@link AudioAttributes#SDK_USAGES} that represents {@link #getUsage()} * @hide */ @Deprecated @TestApi public @NonNull AudioAttributes getAudioAttributes() { return mAudioAttributes; public int getAudioUsage() { if (mOriginalAudioUsage != AudioAttributes.USAGE_UNKNOWN) { // Return same audio usage set in the Builder. return mOriginalAudioUsage; } // Return correct audio usage based on the vibration usage set in the Builder. switch (mUsage) { case USAGE_NOTIFICATION: return AudioAttributes.USAGE_NOTIFICATION; case USAGE_COMMUNICATION_REQUEST: return AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST; case USAGE_RINGTONE: return AudioAttributes.USAGE_NOTIFICATION_RINGTONE; case USAGE_TOUCH: return AudioAttributes.USAGE_ASSISTANCE_SONIFICATION; case USAGE_ALARM: return AudioAttributes.USAGE_ALARM; default: return AudioAttributes.USAGE_UNKNOWN; } } @Override Loading @@ -200,15 +216,14 @@ public final class VibrationAttributes implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mUsage); dest.writeInt(mOriginalAudioUsage); dest.writeInt(mFlags); dest.writeParcelable(mAudioAttributes, flags); } private VibrationAttributes(Parcel src) { mUsage = src.readInt(); mOriginalAudioUsage = src.readInt(); mFlags = src.readInt(); mAudioAttributes = (AudioAttributes) src.readParcelable( AudioAttributes.class.getClassLoader()); } public static final @NonNull Parcelable.Creator<VibrationAttributes> Loading @@ -230,18 +245,20 @@ public final class VibrationAttributes implements Parcelable { return false; } VibrationAttributes rhs = (VibrationAttributes) o; return mUsage == rhs.mUsage && mFlags == rhs.mFlags; return mUsage == rhs.mUsage && mOriginalAudioUsage == rhs.mOriginalAudioUsage && mFlags == rhs.mFlags; } @Override public int hashCode() { return Objects.hash(mUsage, mFlags); return Objects.hash(mUsage, mOriginalAudioUsage, mFlags); } @Override public String toString() { return "VibrationAttributes:" + " Usage=" + usageToString() + " Audio Usage= " + AudioAttributes.usageToString(mOriginalAudioUsage) + " Flags=" + mFlags; } Loading Loading @@ -280,10 +297,9 @@ public final class VibrationAttributes implements Parcelable { */ public static final class Builder { private int mUsage = USAGE_UNKNOWN; private int mOriginalAudioUsage = AudioAttributes.USAGE_UNKNOWN; private int mFlags = 0x0; private AudioAttributes mAudioAttributes = new AudioAttributes.Builder().build(); /** * Constructs a new Builder with the defaults. */ Loading @@ -296,8 +312,8 @@ public final class VibrationAttributes implements Parcelable { public Builder(@Nullable VibrationAttributes vib) { if (vib != null) { mUsage = vib.mUsage; mOriginalAudioUsage = vib.mOriginalAudioUsage; mFlags = vib.mFlags; mAudioAttributes = vib.mAudioAttributes; } } Loading @@ -306,9 +322,7 @@ public final class VibrationAttributes implements Parcelable { * @hide */ @TestApi public Builder(@NonNull AudioAttributes audio, @Nullable VibrationEffect effect) { mAudioAttributes = audio; public Builder(@NonNull AudioAttributes audio, @Nullable VibrationEffect effect) { setUsage(audio); setFlags(audio); applyHapticFeedbackHeuristics(effect); Loading Loading @@ -342,6 +356,7 @@ public final class VibrationAttributes implements Parcelable { } private void setUsage(@NonNull AudioAttributes audio) { mOriginalAudioUsage = audio.getUsage(); switch (audio.getUsage()) { case AudioAttributes.USAGE_NOTIFICATION: case AudioAttributes.USAGE_NOTIFICATION_EVENT: Loading Loading @@ -379,8 +394,7 @@ public final class VibrationAttributes implements Parcelable { * @return a new {@link VibrationAttributes} object */ public @NonNull VibrationAttributes build() { VibrationAttributes ans = new VibrationAttributes(mUsage, mFlags, mAudioAttributes); VibrationAttributes ans = new VibrationAttributes(mUsage, mOriginalAudioUsage, mFlags); return ans; } Loading @@ -396,6 +410,7 @@ public final class VibrationAttributes implements Parcelable { * @return the same Builder instance. */ public @NonNull Builder setUsage(int usage) { mOriginalAudioUsage = AudioAttributes.USAGE_UNKNOWN; mUsage = usage; return this; } Loading Loading
api/test-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -2995,7 +2995,7 @@ package android.os { } public final class VibrationAttributes implements android.os.Parcelable { method @Deprecated @NonNull public android.media.AudioAttributes getAudioAttributes(); method public int getAudioUsage(); } public static final class VibrationAttributes.Builder { Loading
core/java/android/hardware/input/InputManager.java +3 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.annotation.TestApi; import android.compat.annotation.ChangeId; import android.compat.annotation.UnsupportedAppUsage; import android.content.Context; import android.media.AudioAttributes; import android.os.Binder; import android.os.BlockUntrustedTouchesMode; import android.os.Build; Loading @@ -42,6 +41,7 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.os.ServiceManager.ServiceNotFoundException; import android.os.SystemClock; import android.os.VibrationAttributes; import android.os.VibrationEffect; import android.os.Vibrator; import android.provider.Settings; Loading Loading @@ -1435,8 +1435,8 @@ public final class InputManager { * @hide */ @Override public void vibrate(int uid, String opPkg, VibrationEffect effect, String reason, AudioAttributes attributes) { public void vibrate(int uid, String opPkg, @NonNull VibrationEffect effect, String reason, @NonNull VibrationAttributes attributes) { try { mIm.vibrate(mDeviceId, effect, mToken); } catch (RemoteException ex) { Loading
core/java/android/os/NullVibrator.java +1 −3 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package android.os; import android.media.AudioAttributes; /** * Vibrator implementation that does nothing. * Loading Loading @@ -50,7 +48,7 @@ public class NullVibrator extends Vibrator { @Override public void vibrate(int uid, String opPkg, VibrationEffect effect, String reason, AudioAttributes attributes) { String reason, VibrationAttributes attributes) { } @Override Loading
core/java/android/os/SystemVibrator.java +3 −7 Original line number Diff line number Diff line Loading @@ -221,18 +221,14 @@ public class SystemVibrator extends Vibrator { } @Override public void vibrate(int uid, String opPkg, VibrationEffect effect, String reason, AudioAttributes attributes) { public void vibrate(int uid, String opPkg, @NonNull VibrationEffect effect, String reason, @NonNull VibrationAttributes attributes) { if (mService == null) { Log.w(TAG, "Failed to vibrate; no vibrator service."); return; } try { if (attributes == null) { attributes = new AudioAttributes.Builder().build(); } VibrationAttributes atr = new VibrationAttributes.Builder(attributes, effect).build(); mService.vibrate(uid, opPkg, effect, atr, reason, mToken); mService.vibrate(uid, opPkg, effect, attributes, reason, mToken); } catch (RemoteException e) { Log.w(TAG, "Failed to vibrate.", e); } Loading
core/java/android/os/VibrationAttributes.java +37 −22 Original line number Diff line number Diff line Loading @@ -140,13 +140,12 @@ public final class VibrationAttributes implements Parcelable { private final int mUsage; private final int mFlags; private final int mOriginalAudioUsage; private final AudioAttributes mAudioAttributes; private VibrationAttributes(int usage, int flags, @NonNull AudioAttributes audio) { private VibrationAttributes(int usage, int audioUsage, int flags) { mUsage = usage; mOriginalAudioUsage = audioUsage; mFlags = flags & FLAG_ALL_SUPPORTED; mAudioAttributes = audio; } /** Loading Loading @@ -182,14 +181,31 @@ public final class VibrationAttributes implements Parcelable { } /** * Return AudioAttributes equivalent to this VibrationAttributes. * @deprecated Temporary support of AudioAttributes, will be removed when out of WIP * Return {@link AudioAttributes} usage equivalent to {@link #getUsage()}. * @return one of {@link AudioAttributes#SDK_USAGES} that represents {@link #getUsage()} * @hide */ @Deprecated @TestApi public @NonNull AudioAttributes getAudioAttributes() { return mAudioAttributes; public int getAudioUsage() { if (mOriginalAudioUsage != AudioAttributes.USAGE_UNKNOWN) { // Return same audio usage set in the Builder. return mOriginalAudioUsage; } // Return correct audio usage based on the vibration usage set in the Builder. switch (mUsage) { case USAGE_NOTIFICATION: return AudioAttributes.USAGE_NOTIFICATION; case USAGE_COMMUNICATION_REQUEST: return AudioAttributes.USAGE_NOTIFICATION_COMMUNICATION_REQUEST; case USAGE_RINGTONE: return AudioAttributes.USAGE_NOTIFICATION_RINGTONE; case USAGE_TOUCH: return AudioAttributes.USAGE_ASSISTANCE_SONIFICATION; case USAGE_ALARM: return AudioAttributes.USAGE_ALARM; default: return AudioAttributes.USAGE_UNKNOWN; } } @Override Loading @@ -200,15 +216,14 @@ public final class VibrationAttributes implements Parcelable { @Override public void writeToParcel(@NonNull Parcel dest, int flags) { dest.writeInt(mUsage); dest.writeInt(mOriginalAudioUsage); dest.writeInt(mFlags); dest.writeParcelable(mAudioAttributes, flags); } private VibrationAttributes(Parcel src) { mUsage = src.readInt(); mOriginalAudioUsage = src.readInt(); mFlags = src.readInt(); mAudioAttributes = (AudioAttributes) src.readParcelable( AudioAttributes.class.getClassLoader()); } public static final @NonNull Parcelable.Creator<VibrationAttributes> Loading @@ -230,18 +245,20 @@ public final class VibrationAttributes implements Parcelable { return false; } VibrationAttributes rhs = (VibrationAttributes) o; return mUsage == rhs.mUsage && mFlags == rhs.mFlags; return mUsage == rhs.mUsage && mOriginalAudioUsage == rhs.mOriginalAudioUsage && mFlags == rhs.mFlags; } @Override public int hashCode() { return Objects.hash(mUsage, mFlags); return Objects.hash(mUsage, mOriginalAudioUsage, mFlags); } @Override public String toString() { return "VibrationAttributes:" + " Usage=" + usageToString() + " Audio Usage= " + AudioAttributes.usageToString(mOriginalAudioUsage) + " Flags=" + mFlags; } Loading Loading @@ -280,10 +297,9 @@ public final class VibrationAttributes implements Parcelable { */ public static final class Builder { private int mUsage = USAGE_UNKNOWN; private int mOriginalAudioUsage = AudioAttributes.USAGE_UNKNOWN; private int mFlags = 0x0; private AudioAttributes mAudioAttributes = new AudioAttributes.Builder().build(); /** * Constructs a new Builder with the defaults. */ Loading @@ -296,8 +312,8 @@ public final class VibrationAttributes implements Parcelable { public Builder(@Nullable VibrationAttributes vib) { if (vib != null) { mUsage = vib.mUsage; mOriginalAudioUsage = vib.mOriginalAudioUsage; mFlags = vib.mFlags; mAudioAttributes = vib.mAudioAttributes; } } Loading @@ -306,9 +322,7 @@ public final class VibrationAttributes implements Parcelable { * @hide */ @TestApi public Builder(@NonNull AudioAttributes audio, @Nullable VibrationEffect effect) { mAudioAttributes = audio; public Builder(@NonNull AudioAttributes audio, @Nullable VibrationEffect effect) { setUsage(audio); setFlags(audio); applyHapticFeedbackHeuristics(effect); Loading Loading @@ -342,6 +356,7 @@ public final class VibrationAttributes implements Parcelable { } private void setUsage(@NonNull AudioAttributes audio) { mOriginalAudioUsage = audio.getUsage(); switch (audio.getUsage()) { case AudioAttributes.USAGE_NOTIFICATION: case AudioAttributes.USAGE_NOTIFICATION_EVENT: Loading Loading @@ -379,8 +394,7 @@ public final class VibrationAttributes implements Parcelable { * @return a new {@link VibrationAttributes} object */ public @NonNull VibrationAttributes build() { VibrationAttributes ans = new VibrationAttributes(mUsage, mFlags, mAudioAttributes); VibrationAttributes ans = new VibrationAttributes(mUsage, mOriginalAudioUsage, mFlags); return ans; } Loading @@ -396,6 +410,7 @@ public final class VibrationAttributes implements Parcelable { * @return the same Builder instance. */ public @NonNull Builder setUsage(int usage) { mOriginalAudioUsage = AudioAttributes.USAGE_UNKNOWN; mUsage = usage; return this; } Loading