diff options
Diffstat (limited to 'core/java/android')
-rw-r--r-- | core/java/android/app/AppOpsManager.java | 9 | ||||
-rw-r--r-- | core/java/android/hardware/input/InputManager.java | 6 | ||||
-rw-r--r-- | core/java/android/os/IVibratorService.aidl | 4 | ||||
-rw-r--r-- | core/java/android/os/NullVibrator.java | 6 | ||||
-rw-r--r-- | core/java/android/os/SystemVibrator.java | 13 | ||||
-rw-r--r-- | core/java/android/os/Vibrator.java | 40 |
6 files changed, 45 insertions, 33 deletions
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java index c91c90c..990ea85 100644 --- a/core/java/android/app/AppOpsManager.java +++ b/core/java/android/app/AppOpsManager.java @@ -17,10 +17,12 @@ package android.app; import android.Manifest; +import android.media.AudioAttributes.AttributeUsage; import android.os.Binder; import android.os.IBinder; import android.os.UserManager; import android.util.ArrayMap; + import com.android.internal.app.IAppOpsService; import com.android.internal.app.IAppOpsCallback; @@ -954,15 +956,16 @@ public class AppOpsManager { * defined by {@link #setMode}. * * @param code The operation to restrict. - * @param stream The {@link android.media.AudioManager} stream type. + * @param usage The {@link android.media.AudioAttributes} usage value. * @param mode The restriction mode (MODE_IGNORED,MODE_ERRORED) or MODE_ALLOWED to unrestrict. * @param exceptionPackages Optional list of packages to exclude from the restriction. * @hide */ - public void setRestriction(int code, int stream, int mode, String[] exceptionPackages) { + public void setRestriction(int code, @AttributeUsage int usage, int mode, + String[] exceptionPackages) { try { final int uid = Binder.getCallingUid(); - mService.setAudioRestriction(code, stream, uid, mode, exceptionPackages); + mService.setAudioRestriction(code, usage, uid, mode, exceptionPackages); } catch (RemoteException e) { } } diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java index b5efa8e..e5995b0 100644 --- a/core/java/android/hardware/input/InputManager.java +++ b/core/java/android/hardware/input/InputManager.java @@ -21,6 +21,7 @@ import com.android.internal.util.ArrayUtils; import android.annotation.SdkConstant; import android.annotation.SdkConstant.SdkConstantType; import android.content.Context; +import android.media.AudioAttributes; import android.os.Binder; import android.os.Handler; import android.os.IBinder; @@ -857,8 +858,7 @@ public final class InputManager { * @hide */ @Override - public void vibrate(int uid, String opPkg, long milliseconds, - int streamHint) { + public void vibrate(int uid, String opPkg, long milliseconds, AudioAttributes attributes) { vibrate(new long[] { 0, milliseconds}, -1); } @@ -867,7 +867,7 @@ public final class InputManager { */ @Override public void vibrate(int uid, String opPkg, long[] pattern, int repeat, - int streamHint) { + AudioAttributes attributes) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } diff --git a/core/java/android/os/IVibratorService.aidl b/core/java/android/os/IVibratorService.aidl index 4d05e2d..6f2857d 100644 --- a/core/java/android/os/IVibratorService.aidl +++ b/core/java/android/os/IVibratorService.aidl @@ -20,8 +20,8 @@ package android.os; interface IVibratorService { boolean hasVibrator(); - void vibrate(int uid, String opPkg, long milliseconds, int streamHint, IBinder token); - void vibratePattern(int uid, String opPkg, in long[] pattern, int repeat, int streamHint, IBinder token); + void vibrate(int uid, String opPkg, long milliseconds, int usageHint, IBinder token); + void vibratePattern(int uid, String opPkg, in long[] pattern, int repeat, int usageHint, IBinder token); void cancelVibrate(IBinder token); } diff --git a/core/java/android/os/NullVibrator.java b/core/java/android/os/NullVibrator.java index 7b870ac..f14d965 100644 --- a/core/java/android/os/NullVibrator.java +++ b/core/java/android/os/NullVibrator.java @@ -16,6 +16,8 @@ package android.os; +import android.media.AudioAttributes; + /** * Vibrator implementation that does nothing. * @@ -40,7 +42,7 @@ public class NullVibrator extends Vibrator { * @hide */ @Override - public void vibrate(int uid, String opPkg, long milliseconds, int streamHint) { + public void vibrate(int uid, String opPkg, long milliseconds, AudioAttributes attributes) { vibrate(milliseconds); } @@ -49,7 +51,7 @@ public class NullVibrator extends Vibrator { */ @Override public void vibrate(int uid, String opPkg, long[] pattern, int repeat, - int streamHint) { + AudioAttributes attributes) { if (repeat >= pattern.length) { throw new ArrayIndexOutOfBoundsException(); } diff --git a/core/java/android/os/SystemVibrator.java b/core/java/android/os/SystemVibrator.java index 8d9cf54..c488811 100644 --- a/core/java/android/os/SystemVibrator.java +++ b/core/java/android/os/SystemVibrator.java @@ -17,6 +17,7 @@ package android.os; import android.content.Context; +import android.media.AudioAttributes; import android.util.Log; /** @@ -58,13 +59,13 @@ public class SystemVibrator extends Vibrator { * @hide */ @Override - public void vibrate(int uid, String opPkg, long milliseconds, int streamHint) { + public void vibrate(int uid, String opPkg, long milliseconds, AudioAttributes attributes) { if (mService == null) { Log.w(TAG, "Failed to vibrate; no vibrator service."); return; } try { - mService.vibrate(uid, opPkg, milliseconds, streamHint, mToken); + mService.vibrate(uid, opPkg, milliseconds, usageForAttributes(attributes), mToken); } catch (RemoteException e) { Log.w(TAG, "Failed to vibrate.", e); } @@ -75,7 +76,7 @@ public class SystemVibrator extends Vibrator { */ @Override public void vibrate(int uid, String opPkg, long[] pattern, int repeat, - int streamHint) { + AudioAttributes attributes) { if (mService == null) { Log.w(TAG, "Failed to vibrate; no vibrator service."); return; @@ -85,7 +86,7 @@ public class SystemVibrator extends Vibrator { // anyway if (repeat < pattern.length) { try { - mService.vibratePattern(uid, opPkg, pattern, repeat, streamHint, + mService.vibratePattern(uid, opPkg, pattern, repeat, usageForAttributes(attributes), mToken); } catch (RemoteException e) { Log.w(TAG, "Failed to vibrate.", e); @@ -95,6 +96,10 @@ public class SystemVibrator extends Vibrator { } } + private static int usageForAttributes(AudioAttributes attributes) { + return attributes != null ? attributes.getUsage() : AudioAttributes.USAGE_UNKNOWN; + } + @Override public void cancel() { if (mService == null) { diff --git a/core/java/android/os/Vibrator.java b/core/java/android/os/Vibrator.java index c1d4d4c..152cc12 100644 --- a/core/java/android/os/Vibrator.java +++ b/core/java/android/os/Vibrator.java @@ -18,7 +18,7 @@ package android.os; import android.app.ActivityThread; import android.content.Context; -import android.media.AudioManager; +import android.media.AudioAttributes; /** * Class that operates the vibrator on the device. @@ -62,7 +62,7 @@ public abstract class Vibrator { * @param milliseconds The number of milliseconds to vibrate. */ public void vibrate(long milliseconds) { - vibrate(milliseconds, AudioManager.USE_DEFAULT_STREAM_TYPE); + vibrate(milliseconds, null); } /** @@ -71,12 +71,13 @@ public abstract class Vibrator { * {@link android.Manifest.permission#VIBRATE}. * * @param milliseconds The number of milliseconds to vibrate. - * @param streamHint An {@link AudioManager} stream type corresponding to the vibration type. - * For example, specify {@link AudioManager#STREAM_ALARM} for alarm vibrations or - * {@link AudioManager#STREAM_RING} for vibrations associated with incoming calls. + * @param attributes {@link AudioAttributes} corresponding to the vibration. For example, + * specify {@link AudioAttributes#USAGE_ALARM} for alarm vibrations or + * {@link AudioAttributes#USAGE_NOTIFICATION_TELEPHONY_RINGTONE} for + * vibrations associated with incoming calls. */ - public void vibrate(long milliseconds, int streamHint) { - vibrate(Process.myUid(), mPackageName, milliseconds, streamHint); + public void vibrate(long milliseconds, AudioAttributes attributes) { + vibrate(Process.myUid(), mPackageName, milliseconds, attributes); } /** @@ -100,7 +101,7 @@ public abstract class Vibrator { * you don't want to repeat. */ public void vibrate(long[] pattern, int repeat) { - vibrate(pattern, repeat, AudioManager.USE_DEFAULT_STREAM_TYPE); + vibrate(pattern, repeat, null); } /** @@ -122,29 +123,30 @@ public abstract class Vibrator { * @param pattern an array of longs of times for which to turn the vibrator on or off. * @param repeat the index into pattern at which to repeat, or -1 if * you don't want to repeat. - * @param streamHint An {@link AudioManager} stream type corresponding to the vibration type. - * For example, specify {@link AudioManager#STREAM_ALARM} for alarm vibrations or - * {@link AudioManager#STREAM_RING} for vibrations associated with incoming calls. + * @param attributes {@link AudioAttributes} corresponding to the vibration. For example, + * specify {@link AudioAttributes#USAGE_ALARM} for alarm vibrations or + * {@link AudioAttributes#USAGE_NOTIFICATION_TELEPHONY_RINGTONE} for + * vibrations associated with incoming calls. */ - public void vibrate(long[] pattern, int repeat, int streamHint) { - vibrate(Process.myUid(), mPackageName, pattern, repeat, streamHint); + public void vibrate(long[] pattern, int repeat, AudioAttributes attributes) { + vibrate(Process.myUid(), mPackageName, pattern, repeat, attributes); } /** * @hide - * Like {@link #vibrate(long, int)}, but allowing the caller to specify that + * Like {@link #vibrate(long, AudioAttributes)}, but allowing the caller to specify that * the vibration is owned by someone else. */ - public abstract void vibrate(int uid, String opPkg, - long milliseconds, int streamHint); + public abstract void vibrate(int uid, String opPkg, long milliseconds, + AudioAttributes attributes); /** * @hide - * Like {@link #vibrate(long[], int, int)}, but allowing the caller to specify that + * Like {@link #vibrate(long[], int, AudioAttributes)}, but allowing the caller to specify that * the vibration is owned by someone else. */ - public abstract void vibrate(int uid, String opPkg, - long[] pattern, int repeat, int streamHint); + public abstract void vibrate(int uid, String opPkg, long[] pattern, int repeat, + AudioAttributes attributes); /** * Turn the vibrator off. |