summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api/current.txt22
-rw-r--r--core/api/test-current.txt30
-rw-r--r--core/java/android/content/Context.java2
-rw-r--r--core/java/android/hardware/input/IInputManager.aidl4
-rw-r--r--core/java/android/hardware/input/InputDeviceVibratorManager.java4
-rw-r--r--core/java/android/hardware/input/InputManager.java4
-rw-r--r--core/java/android/os/CombinedVibration.aidl (renamed from core/java/android/os/CombinedVibrationEffect.aidl)2
-rw-r--r--core/java/android/os/CombinedVibration.java (renamed from core/java/android/os/CombinedVibrationEffect.java)154
-rw-r--r--core/java/android/os/IVibratorManagerService.aidl6
-rw-r--r--core/java/android/os/SystemVibrator.java4
-rw-r--r--core/java/android/os/SystemVibratorManager.java8
-rw-r--r--core/java/android/os/VibratorManager.java16
-rw-r--r--core/java/android/view/InputDevice.java2
-rw-r--r--core/tests/coretests/src/android/os/CombinedVibrationTest.java (renamed from core/tests/coretests/src/android/os/CombinedVibrationEffectTest.java)80
-rw-r--r--services/core/java/com/android/server/input/InputManagerService.java16
-rw-r--r--services/core/java/com/android/server/vibrator/InputDeviceDelegate.java4
-rw-r--r--services/core/java/com/android/server/vibrator/Vibration.java72
-rw-r--r--services/core/java/com/android/server/vibrator/VibrationThread.java48
-rw-r--r--services/core/java/com/android/server/vibrator/VibratorManagerService.java46
-rw-r--r--services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java6
-rw-r--r--services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java36
-rw-r--r--services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java42
-rw-r--r--tests/permission/src/com/android/framework/permission/tests/VibratorManagerServicePermissionTest.java6
23 files changed, 318 insertions, 296 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index aad6b37c44ec..d67a48031389 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -10669,7 +10669,7 @@ package android.content {
field public static final String USB_SERVICE = "usb";
field public static final String USER_SERVICE = "user";
field public static final String VIBRATOR_MANAGER_SERVICE = "vibrator_manager";
- field public static final String VIBRATOR_SERVICE = "vibrator";
+ field @Deprecated public static final String VIBRATOR_SERVICE = "vibrator";
field public static final String VPN_MANAGEMENT_SERVICE = "vpn_management";
field @UiContext public static final String WALLPAPER_SERVICE = "wallpaper";
field public static final String WIFI_AWARE_SERVICE = "wifiaware";
@@ -30836,16 +30836,16 @@ package android.os {
method public void onCancel();
}
- public abstract class CombinedVibrationEffect implements android.os.Parcelable {
- method @NonNull public static android.os.CombinedVibrationEffect createSynced(@NonNull android.os.VibrationEffect);
+ public abstract class CombinedVibration implements android.os.Parcelable {
+ method @NonNull public static android.os.CombinedVibration createParallel(@NonNull android.os.VibrationEffect);
method public int describeContents();
- method @NonNull public static android.os.CombinedVibrationEffect.SyncedCombination startSynced();
- field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibrationEffect> CREATOR;
+ method @NonNull public static android.os.CombinedVibration.ParallelCombination startParallel();
+ field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibration> CREATOR;
}
- public static final class CombinedVibrationEffect.SyncedCombination {
- method @NonNull public android.os.CombinedVibrationEffect.SyncedCombination addVibrator(int, @NonNull android.os.VibrationEffect);
- method @NonNull public android.os.CombinedVibrationEffect combine();
+ public static final class CombinedVibration.ParallelCombination {
+ method @NonNull public android.os.CombinedVibration.ParallelCombination addVibrator(int, @NonNull android.os.VibrationEffect);
+ method @NonNull public android.os.CombinedVibration combine();
}
public class ConditionVariable {
@@ -32098,8 +32098,8 @@ package android.os {
method @NonNull public abstract android.os.Vibrator getDefaultVibrator();
method @NonNull public abstract android.os.Vibrator getVibrator(int);
method @NonNull public abstract int[] getVibratorIds();
- method @RequiresPermission(android.Manifest.permission.VIBRATE) public final void vibrate(@NonNull android.os.CombinedVibrationEffect);
- method @RequiresPermission(android.Manifest.permission.VIBRATE) public final void vibrate(@NonNull android.os.CombinedVibrationEffect, @Nullable android.os.VibrationAttributes);
+ method @RequiresPermission(android.Manifest.permission.VIBRATE) public final void vibrate(@NonNull android.os.CombinedVibration);
+ method @RequiresPermission(android.Manifest.permission.VIBRATE) public final void vibrate(@NonNull android.os.CombinedVibration, @Nullable android.os.VibrationAttributes);
}
public class WorkSource implements android.os.Parcelable {
@@ -47139,7 +47139,7 @@ package android.view {
method @NonNull public android.hardware.SensorManager getSensorManager();
method public int getSources();
method public int getVendorId();
- method public android.os.Vibrator getVibrator();
+ method @Deprecated public android.os.Vibrator getVibrator();
method @NonNull public android.os.VibratorManager getVibratorManager();
method public boolean[] hasKeys(int...);
method public boolean hasMicrophone();
diff --git a/core/api/test-current.txt b/core/api/test-current.txt
index 04dd04cf03d2..94873a54f472 100644
--- a/core/api/test-current.txt
+++ b/core/api/test-current.txt
@@ -1597,39 +1597,39 @@ package android.os {
field public static final int RESOURCES_SDK_INT;
}
- public abstract class CombinedVibrationEffect implements android.os.Parcelable {
+ public abstract class CombinedVibration implements android.os.Parcelable {
method public abstract long getDuration();
- method @NonNull public static android.os.CombinedVibrationEffect.SequentialCombination startSequential();
+ method @NonNull public static android.os.CombinedVibration.SequentialCombination startSequential();
}
- public static final class CombinedVibrationEffect.Mono extends android.os.CombinedVibrationEffect {
+ public static final class CombinedVibration.Mono extends android.os.CombinedVibration {
method public long getDuration();
method @NonNull public android.os.VibrationEffect getEffect();
method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibrationEffect.Mono> CREATOR;
+ field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibration.Mono> CREATOR;
}
- public static final class CombinedVibrationEffect.Sequential extends android.os.CombinedVibrationEffect {
+ public static final class CombinedVibration.Sequential extends android.os.CombinedVibration {
method @NonNull public java.util.List<java.lang.Integer> getDelays();
method public long getDuration();
- method @NonNull public java.util.List<android.os.CombinedVibrationEffect> getEffects();
+ method @NonNull public java.util.List<android.os.CombinedVibration> getEffects();
method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibrationEffect.Sequential> CREATOR;
+ field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibration.Sequential> CREATOR;
}
- public static final class CombinedVibrationEffect.SequentialCombination {
- method @NonNull public android.os.CombinedVibrationEffect.SequentialCombination addNext(int, @NonNull android.os.VibrationEffect);
- method @NonNull public android.os.CombinedVibrationEffect.SequentialCombination addNext(int, @NonNull android.os.VibrationEffect, int);
- method @NonNull public android.os.CombinedVibrationEffect.SequentialCombination addNext(@NonNull android.os.CombinedVibrationEffect);
- method @NonNull public android.os.CombinedVibrationEffect.SequentialCombination addNext(@NonNull android.os.CombinedVibrationEffect, int);
- method @NonNull public android.os.CombinedVibrationEffect combine();
+ public static final class CombinedVibration.SequentialCombination {
+ method @NonNull public android.os.CombinedVibration.SequentialCombination addNext(int, @NonNull android.os.VibrationEffect);
+ method @NonNull public android.os.CombinedVibration.SequentialCombination addNext(int, @NonNull android.os.VibrationEffect, int);
+ method @NonNull public android.os.CombinedVibration.SequentialCombination addNext(@NonNull android.os.CombinedVibration);
+ method @NonNull public android.os.CombinedVibration.SequentialCombination addNext(@NonNull android.os.CombinedVibration, int);
+ method @NonNull public android.os.CombinedVibration combine();
}
- public static final class CombinedVibrationEffect.Stereo extends android.os.CombinedVibrationEffect {
+ public static final class CombinedVibration.Stereo extends android.os.CombinedVibration {
method public long getDuration();
method @NonNull public android.util.SparseArray<android.os.VibrationEffect> getEffects();
method public void writeToParcel(@NonNull android.os.Parcel, int);
- field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibrationEffect.Stereo> CREATOR;
+ field @NonNull public static final android.os.Parcelable.Creator<android.os.CombinedVibration.Stereo> CREATOR;
}
public class DeviceIdleManager {
diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java
index 5d66cdf880b8..09ac8103c526 100644
--- a/core/java/android/content/Context.java
+++ b/core/java/android/content/Context.java
@@ -4128,9 +4128,11 @@ public abstract class Context {
* Use with {@link #getSystemService(String)} to retrieve a {@link android.os.Vibrator} for
* interacting with the vibration hardware.
*
+ * @deprecated Use {@link android.os.VibratorManager} to retrieve the default system vibrator.
* @see #getSystemService(String)
* @see android.os.Vibrator
*/
+ @Deprecated
public static final String VIBRATOR_SERVICE = "vibrator";
/**
diff --git a/core/java/android/hardware/input/IInputManager.aidl b/core/java/android/hardware/input/IInputManager.aidl
index 4743fee3257b..336fbf2954a3 100644
--- a/core/java/android/hardware/input/IInputManager.aidl
+++ b/core/java/android/hardware/input/IInputManager.aidl
@@ -22,7 +22,7 @@ import android.hardware.input.KeyboardLayout;
import android.hardware.input.IInputDevicesChangedListener;
import android.hardware.input.ITabletModeChangedListener;
import android.hardware.input.TouchCalibration;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.hardware.input.IInputSensorEventListener;
import android.hardware.input.InputSensorInfo;
import android.hardware.lights.Light;
@@ -91,7 +91,7 @@ interface IInputManager {
// Input device vibrator control.
void vibrate(int deviceId, in VibrationEffect effect, IBinder token);
- void vibrateCombined(int deviceId, in CombinedVibrationEffect effect, IBinder token);
+ void vibrateCombined(int deviceId, in CombinedVibration vibration, IBinder token);
void cancelVibrate(int deviceId, IBinder token);
int[] getVibratorIds(int deviceId);
boolean isVibrating(int deviceId);
diff --git a/core/java/android/hardware/input/InputDeviceVibratorManager.java b/core/java/android/hardware/input/InputDeviceVibratorManager.java
index d843407c289d..ed0efffbb346 100644
--- a/core/java/android/hardware/input/InputDeviceVibratorManager.java
+++ b/core/java/android/hardware/input/InputDeviceVibratorManager.java
@@ -19,7 +19,7 @@ package android.hardware.input;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.os.Binder;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.NullVibrator;
import android.os.VibrationAttributes;
import android.os.Vibrator;
@@ -125,7 +125,7 @@ public class InputDeviceVibratorManager extends VibratorManager
}
@Override
- public void vibrate(int uid, String opPkg, @NonNull CombinedVibrationEffect effect,
+ public void vibrate(int uid, String opPkg, @NonNull CombinedVibration effect,
String reason, @Nullable VibrationAttributes attributes) {
mInputManager.vibrate(mDeviceId, effect, mToken);
}
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index c83ccfa81f95..b6d2eaf11be6 100644
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
@@ -37,7 +37,7 @@ import android.hardware.lights.LightsManager;
import android.hardware.lights.LightsRequest;
import android.os.BlockUntrustedTouchesMode;
import android.os.Build;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.Handler;
import android.os.IBinder;
import android.os.IVibratorStateListener;
@@ -1470,7 +1470,7 @@ public final class InputManager {
/*
* Perform combined vibration effect
*/
- void vibrate(int deviceId, CombinedVibrationEffect effect, IBinder token) {
+ void vibrate(int deviceId, CombinedVibration effect, IBinder token) {
try {
mIm.vibrateCombined(deviceId, effect, token);
} catch (RemoteException ex) {
diff --git a/core/java/android/os/CombinedVibrationEffect.aidl b/core/java/android/os/CombinedVibration.aidl
index 330733c2643f..91317bde64a3 100644
--- a/core/java/android/os/CombinedVibrationEffect.aidl
+++ b/core/java/android/os/CombinedVibration.aidl
@@ -16,4 +16,4 @@
package android.os;
-parcelable CombinedVibrationEffect;
+parcelable CombinedVibration;
diff --git a/core/java/android/os/CombinedVibrationEffect.java b/core/java/android/os/CombinedVibration.java
index e068772e954a..aff55aff39f7 100644
--- a/core/java/android/os/CombinedVibrationEffect.java
+++ b/core/java/android/os/CombinedVibration.java
@@ -27,56 +27,61 @@ import java.util.List;
import java.util.Objects;
/**
- * A CombinedVibrationEffect describes a haptic effect to be performed by one or more {@link
- * Vibrator Vibrators}.
+ * A CombinedVibration describes a combination of haptic effects to be performed by one or more
+ * {@link Vibrator Vibrators}.
*
* These effects may be any number of things, from single shot vibrations to complex waveforms.
+ *
* @see VibrationEffect
*/
@SuppressWarnings({"ParcelNotFinal", "ParcelCreator"}) // Parcel only extended here.
-public abstract class CombinedVibrationEffect implements Parcelable {
+public abstract class CombinedVibration implements Parcelable {
private static final int PARCEL_TOKEN_MONO = 1;
private static final int PARCEL_TOKEN_STEREO = 2;
private static final int PARCEL_TOKEN_SEQUENTIAL = 3;
/** Prevent subclassing from outside of the framework. */
- CombinedVibrationEffect() {
+ CombinedVibration() {
}
/**
- * Create a synced vibration effect.
+ * Create a vibration that plays a single effect in parallel on all vibrators.
*
- * A synced vibration effect should be performed by multiple vibrators at the same time.
+ * A parallel vibration that takes a single {@link VibrationEffect} to be performed by multiple
+ * vibrators at the same time.
*
* @param effect The {@link VibrationEffect} to perform.
- * @return The synced effect.
+ * @return The combined vibration representing the single effect to be played in all vibrators.
*/
@NonNull
- public static CombinedVibrationEffect createSynced(@NonNull VibrationEffect effect) {
- CombinedVibrationEffect combined = new Mono(effect);
+ public static CombinedVibration createParallel(@NonNull VibrationEffect effect) {
+ CombinedVibration combined = new Mono(effect);
combined.validate();
return combined;
}
/**
- * Start creating a synced vibration effect.
+ * Start creating a vibration that plays effects in parallel on one or more vibrators.
*
- * A synced vibration effect should be performed by multiple vibrators at the same time.
+ * A parallel vibration takes one or more {@link VibrationEffect VibrationEffects} associated to
+ * individual vibrators to be performed at the same time.
*
- * @see CombinedVibrationEffect.SyncedCombination
+ * @see CombinedVibration.ParallelCombination
*/
@NonNull
- public static SyncedCombination startSynced() {
- return new SyncedCombination();
+ public static ParallelCombination startParallel() {
+ return new ParallelCombination();
}
/**
- * Start creating a sequential vibration effect.
+ * Start creating a vibration that plays effects in sequence on one or more vibrators.
*
- * A sequential vibration effect should be performed by multiple vibrators in order.
+ * A sequential vibration takes one or more {@link CombinedVibration CombinedVibrations} to be
+ * performed by one or more vibrators in order. Each {@link CombinedVibration} starts only after
+ * the previous one is finished.
*
- * @see CombinedVibrationEffect.SequentialCombination
* @hide
+ * @see CombinedVibration.SequentialCombination
*/
@TestApi
@NonNull
@@ -92,7 +97,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
/**
* Gets the estimated duration of the combined vibration in milliseconds.
*
- * <p>For synced combinations this means the maximum duration of any individual {@link
+ * <p>For parallel combinations this means the maximum duration of any individual {@link
* VibrationEffect}. For sequential combinations, this is a sum of each step and delays.
*
* <p>For combinations of effects without a defined end (e.g. a Waveform with a non-negative
@@ -112,15 +117,15 @@ public abstract class CombinedVibrationEffect implements Parcelable {
public abstract boolean hasVibrator(int vibratorId);
/**
- * A combination of haptic effects that should be played in multiple vibrators in sync.
+ * A combination of haptic effects that should be played in multiple vibrators in parallel.
*
- * @see CombinedVibrationEffect#startSynced()
+ * @see CombinedVibration#startParallel()
*/
- public static final class SyncedCombination {
+ public static final class ParallelCombination {
private final SparseArray<VibrationEffect> mEffects = new SparseArray<>();
- SyncedCombination() {
+ ParallelCombination() {
}
/**
@@ -128,33 +133,33 @@ public abstract class CombinedVibrationEffect implements Parcelable {
*
* @param vibratorId The id of the vibrator that should perform this effect.
* @param effect The effect this vibrator should play.
- * @return The {@link CombinedVibrationEffect.SyncedCombination} object to enable adding
+ * @return The {@link ParallelCombination} object to enable adding
* multiple effects in one chain.
* @see VibrationEffect#createOneShot(long, int)
*/
@NonNull
- public SyncedCombination addVibrator(int vibratorId, @NonNull VibrationEffect effect) {
+ public ParallelCombination addVibrator(int vibratorId, @NonNull VibrationEffect effect) {
mEffects.put(vibratorId, effect);
return this;
}
/**
- * Combine all of the added effects into a combined effect.
+ * Combine all of the added effects into a {@link CombinedVibration}.
*
- * The {@link CombinedVibrationEffect.SyncedCombination} object is still valid after this
+ * The {@link ParallelCombination} object is still valid after this
* call, so you can continue adding more effects to it and generating more
- * {@link CombinedVibrationEffect}s by calling this method again.
+ * {@link CombinedVibration}s by calling this method again.
*
- * @return The {@link CombinedVibrationEffect} resulting from combining the added effects to
- * be played in sync.
+ * @return The {@link CombinedVibration} resulting from combining the added effects to
+ * be played in parallel.
*/
@NonNull
- public CombinedVibrationEffect combine() {
+ public CombinedVibration combine() {
if (mEffects.size() == 0) {
throw new IllegalStateException(
"Combination must have at least one element to combine.");
}
- CombinedVibrationEffect combined = new Stereo(mEffects);
+ CombinedVibration combined = new Stereo(mEffects);
combined.validate();
return combined;
}
@@ -163,13 +168,13 @@ public abstract class CombinedVibrationEffect implements Parcelable {
/**
* A combination of haptic effects that should be played in multiple vibrators in sequence.
*
- * @see CombinedVibrationEffect#startSequential()
* @hide
+ * @see CombinedVibration#startSequential()
*/
@TestApi
public static final class SequentialCombination {
- private final ArrayList<CombinedVibrationEffect> mEffects = new ArrayList<>();
+ private final ArrayList<CombinedVibration> mEffects = new ArrayList<>();
private final ArrayList<Integer> mDelays = new ArrayList<>();
SequentialCombination() {
@@ -178,11 +183,12 @@ public abstract class CombinedVibrationEffect implements Parcelable {
/**
* Add a single vibration effect to be performed next.
*
- * Similar to {@link #addNext(int, VibrationEffect, int)}, but with no delay.
+ * Similar to {@link #addNext(int, VibrationEffect, int)}, but with no delay. The effect
+ * will start playing immediately after the previous vibration is finished.
*
* @param vibratorId The id of the vibrator that should perform this effect.
* @param effect The effect this vibrator should play.
- * @return The {@link CombinedVibrationEffect.SequentialCombination} object to enable adding
+ * @return The {@link CombinedVibration.SequentialCombination} object to enable adding
* multiple effects in one chain.
*/
@NonNull
@@ -193,47 +199,56 @@ public abstract class CombinedVibrationEffect implements Parcelable {
/**
* Add a single vibration effect to be performed next.
*
+ * The delay is applied immediately after the previous vibration is finished. The effect
+ * will start playing after the delay.
+ *
* @param vibratorId The id of the vibrator that should perform this effect.
* @param effect The effect this vibrator should play.
* @param delay The amount of time, in milliseconds, to wait between playing the prior
- * effect and this one.
- * @return The {@link CombinedVibrationEffect.SequentialCombination} object to enable adding
+ * vibration and this one, starting at the time the previous vibration in
+ * this sequence is finished.
+ * @return The {@link CombinedVibration.SequentialCombination} object to enable adding
* multiple effects in one chain.
*/
@NonNull
public SequentialCombination addNext(int vibratorId, @NonNull VibrationEffect effect,
int delay) {
return addNext(
- CombinedVibrationEffect.startSynced().addVibrator(vibratorId, effect).combine(),
+ CombinedVibration.startParallel().addVibrator(vibratorId, effect).combine(),
delay);
}
/**
* Add a combined vibration effect to be performed next.
*
- * Similar to {@link #addNext(CombinedVibrationEffect, int)}, but with no delay.
+ * Similar to {@link #addNext(CombinedVibration, int)}, but with no delay. The effect will
+ * start playing immediately after the previous vibration is finished.
*
* @param effect The combined effect to be performed next.
- * @return The {@link CombinedVibrationEffect.SequentialCombination} object to enable adding
+ * @return The {@link CombinedVibration.SequentialCombination} object to enable adding
* multiple effects in one chain.
* @see VibrationEffect#createOneShot(long, int)
*/
@NonNull
- public SequentialCombination addNext(@NonNull CombinedVibrationEffect effect) {
+ public SequentialCombination addNext(@NonNull CombinedVibration effect) {
return addNext(effect, /* delay= */ 0);
}
/**
- * Add a one shot vibration effect to be performed by the specified vibrator.
+ * Add a combined vibration effect to be performed next.
+ *
+ * The delay is applied immediately after the previous vibration is finished. The vibration
+ * will start playing after the delay.
*
* @param effect The combined effect to be performed next.
* @param delay The amount of time, in milliseconds, to wait between playing the prior
- * effect and this one.
- * @return The {@link CombinedVibrationEffect.SequentialCombination} object to enable adding
+ * vibration and this one, starting at the time the previous vibration in this
+ * sequence is finished.
+ * @return The {@link CombinedVibration.SequentialCombination} object to enable adding
* multiple effects in one chain.
*/
@NonNull
- public SequentialCombination addNext(@NonNull CombinedVibrationEffect effect, int delay) {
+ public SequentialCombination addNext(@NonNull CombinedVibration effect, int delay) {
if (effect instanceof Sequential) {
Sequential sequentialEffect = (Sequential) effect;
int firstEffectIndex = mDelays.size();
@@ -250,32 +265,33 @@ public abstract class CombinedVibrationEffect implements Parcelable {
/**
* Combine all of the added effects in sequence.
*
- * The {@link CombinedVibrationEffect.SequentialCombination} object is still valid after
+ * The {@link CombinedVibration.SequentialCombination} object is still valid after
* this call, so you can continue adding more effects to it and generating more {@link
- * CombinedVibrationEffect}s by calling this method again.
+ * CombinedVibration}s by calling this method again.
*
- * @return The {@link CombinedVibrationEffect} resulting from combining the added effects to
+ * @return The {@link CombinedVibration} resulting from combining the added effects to
* be played in sequence.
*/
@NonNull
- public CombinedVibrationEffect combine() {
+ public CombinedVibration combine() {
if (mEffects.size() == 0) {
throw new IllegalStateException(
"Combination must have at least one element to combine.");
}
- CombinedVibrationEffect combined = new Sequential(mEffects, mDelays);
+ CombinedVibration combined = new Sequential(mEffects, mDelays);
combined.validate();
return combined;
}
}
/**
- * Represents a single {@link VibrationEffect} that should be executed in all vibrators in sync.
+ * Represents a single {@link VibrationEffect} that should be played in all vibrators at the
+ * same time.
*
* @hide
*/
@TestApi
- public static final class Mono extends CombinedVibrationEffect {
+ public static final class Mono extends CombinedVibration {
private final VibrationEffect mEffect;
Mono(Parcel in) {
@@ -357,12 +373,13 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
/**
- * Represents a list of {@link VibrationEffect}s that should be executed in sync.
+ * Represents a set of {@link VibrationEffect VibrationEffects} associated to individual
+ * vibrators that should be played at the same time.
*
* @hide
*/
@TestApi
- public static final class Stereo extends CombinedVibrationEffect {
+ public static final class Stereo extends CombinedVibration {
/** Mapping vibrator ids to effects. */
private final SparseArray<VibrationEffect> mEffects;
@@ -383,7 +400,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
}
- /** Effects to be performed in sync, where each key represents the vibrator id. */
+ /** Effects to be performed in parallel, where each key represents the vibrator id. */
@NonNull
public SparseArray<VibrationEffect> getEffects() {
return mEffects;
@@ -489,13 +506,14 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
/**
- * Represents a list of {@link VibrationEffect}s that should be executed in sequence.
+ * Represents a list of {@link CombinedVibration CombinedVibrations} that should be played in
+ * sequence.
*
* @hide
*/
@TestApi
- public static final class Sequential extends CombinedVibrationEffect {
- private final List<CombinedVibrationEffect> mEffects;
+ public static final class Sequential extends CombinedVibration {
+ private final List<CombinedVibration> mEffects;
private final List<Integer> mDelays;
Sequential(Parcel in) {
@@ -504,11 +522,11 @@ public abstract class CombinedVibrationEffect implements Parcelable {
mDelays = new ArrayList<>(size);
for (int i = 0; i < size; i++) {
mDelays.add(in.readInt());
- mEffects.add(CombinedVibrationEffect.CREATOR.createFromParcel(in));
+ mEffects.add(CombinedVibration.CREATOR.createFromParcel(in));
}
}
- Sequential(@NonNull List<CombinedVibrationEffect> effects,
+ Sequential(@NonNull List<CombinedVibration> effects,
@NonNull List<Integer> delays) {
mEffects = new ArrayList<>(effects);
mDelays = new ArrayList<>(delays);
@@ -516,7 +534,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
/** Effects to be performed in sequence. */
@NonNull
- public List<CombinedVibrationEffect> getEffects() {
+ public List<CombinedVibration> getEffects() {
return mEffects;
}
@@ -532,7 +550,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
long durations = 0;
final int effectCount = mEffects.size();
for (int i = 0; i < effectCount; i++) {
- CombinedVibrationEffect effect = mEffects.get(i);
+ CombinedVibration effect = mEffects.get(i);
long duration = effect.getDuration();
if (duration == Long.MAX_VALUE) {
// If any duration is repeating, this combination duration is also repeating.
@@ -570,7 +588,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
}
for (int i = 0; i < effectCount; i++) {
- CombinedVibrationEffect effect = mEffects.get(i);
+ CombinedVibration effect = mEffects.get(i);
if (effect instanceof Sequential) {
throw new IllegalArgumentException(
"There should be no nested sequential effects in a combined effect");
@@ -644,10 +662,10 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
@NonNull
- public static final Parcelable.Creator<CombinedVibrationEffect> CREATOR =
- new Parcelable.Creator<CombinedVibrationEffect>() {
+ public static final Parcelable.Creator<CombinedVibration> CREATOR =
+ new Parcelable.Creator<CombinedVibration>() {
@Override
- public CombinedVibrationEffect createFromParcel(Parcel in) {
+ public CombinedVibration createFromParcel(Parcel in) {
int token = in.readInt();
if (token == PARCEL_TOKEN_MONO) {
return new Mono(in);
@@ -662,8 +680,8 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
@Override
- public CombinedVibrationEffect[] newArray(int size) {
- return new CombinedVibrationEffect[size];
+ public CombinedVibration[] newArray(int size) {
+ return new CombinedVibration[size];
}
};
}
diff --git a/core/java/android/os/IVibratorManagerService.aidl b/core/java/android/os/IVibratorManagerService.aidl
index f9e294791cca..c58cc4f9988f 100644
--- a/core/java/android/os/IVibratorManagerService.aidl
+++ b/core/java/android/os/IVibratorManagerService.aidl
@@ -16,7 +16,7 @@
package android.os;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.IVibratorStateListener;
import android.os.VibrationAttributes;
import android.os.VibratorInfo;
@@ -29,8 +29,8 @@ interface IVibratorManagerService {
boolean registerVibratorStateListener(int vibratorId, in IVibratorStateListener listener);
boolean unregisterVibratorStateListener(int vibratorId, in IVibratorStateListener listener);
boolean setAlwaysOnEffect(int uid, String opPkg, int alwaysOnId,
- in CombinedVibrationEffect effect, in VibrationAttributes attributes);
- void vibrate(int uid, String opPkg, in CombinedVibrationEffect effect,
+ in CombinedVibration vibration, in VibrationAttributes attributes);
+ void vibrate(int uid, String opPkg, in CombinedVibration vibration,
in VibrationAttributes attributes, String reason, IBinder token);
void cancelVibrate(IBinder token);
}
diff --git a/core/java/android/os/SystemVibrator.java b/core/java/android/os/SystemVibrator.java
index 219912c24e70..2e8ecb59b0d3 100644
--- a/core/java/android/os/SystemVibrator.java
+++ b/core/java/android/os/SystemVibrator.java
@@ -168,7 +168,7 @@ public class SystemVibrator extends Vibrator {
return false;
}
VibrationAttributes attr = new VibrationAttributes.Builder(attributes, effect).build();
- CombinedVibrationEffect combinedEffect = CombinedVibrationEffect.createSynced(effect);
+ CombinedVibration combinedEffect = CombinedVibration.createParallel(effect);
return mVibratorManager.setAlwaysOnEffect(uid, opPkg, alwaysOnId, combinedEffect, attr);
}
@@ -179,7 +179,7 @@ public class SystemVibrator extends Vibrator {
Log.w(TAG, "Failed to vibrate; no vibrator manager.");
return;
}
- CombinedVibrationEffect combinedEffect = CombinedVibrationEffect.createSynced(effect);
+ CombinedVibration combinedEffect = CombinedVibration.createParallel(effect);
mVibratorManager.vibrate(uid, opPkg, combinedEffect, reason, attributes);
}
diff --git a/core/java/android/os/SystemVibratorManager.java b/core/java/android/os/SystemVibratorManager.java
index 5d8190213119..84a1016e3364 100644
--- a/core/java/android/os/SystemVibratorManager.java
+++ b/core/java/android/os/SystemVibratorManager.java
@@ -117,7 +117,7 @@ public class SystemVibratorManager extends VibratorManager {
@Override
public boolean setAlwaysOnEffect(int uid, String opPkg, int alwaysOnId,
- @Nullable CombinedVibrationEffect effect, @Nullable VibrationAttributes attributes) {
+ @Nullable CombinedVibration effect, @Nullable VibrationAttributes attributes) {
if (mService == null) {
Log.w(TAG, "Failed to set always-on effect; no vibrator manager service.");
return false;
@@ -131,7 +131,7 @@ public class SystemVibratorManager extends VibratorManager {
}
@Override
- public void vibrate(int uid, String opPkg, @NonNull CombinedVibrationEffect effect,
+ public void vibrate(int uid, String opPkg, @NonNull CombinedVibration effect,
String reason, @Nullable VibrationAttributes attributes) {
if (mService == null) {
Log.w(TAG, "Failed to vibrate; no vibrator manager service.");
@@ -240,7 +240,7 @@ public class SystemVibratorManager extends VibratorManager {
try {
VibrationAttributes attr = new VibrationAttributes.Builder(
attributes, effect).build();
- CombinedVibrationEffect combined = CombinedVibrationEffect.startSynced()
+ CombinedVibration combined = CombinedVibration.startParallel()
.addVibrator(mVibratorInfo.getId(), effect)
.combine();
return mService.setAlwaysOnEffect(uid, opPkg, alwaysOnId, combined, attr);
@@ -259,7 +259,7 @@ public class SystemVibratorManager extends VibratorManager {
return;
}
try {
- CombinedVibrationEffect combined = CombinedVibrationEffect.startSynced()
+ CombinedVibration combined = CombinedVibration.startParallel()
.addVibrator(mVibratorInfo.getId(), vibe)
.combine();
mService.vibrate(uid, opPkg, combined, attributes, reason, mToken);
diff --git a/core/java/android/os/VibratorManager.java b/core/java/android/os/VibratorManager.java
index 5a01814508e1..7c911160dfa6 100644
--- a/core/java/android/os/VibratorManager.java
+++ b/core/java/android/os/VibratorManager.java
@@ -69,7 +69,7 @@ public abstract class VibratorManager {
public abstract Vibrator getVibrator(int vibratorId);
/**
- * Returns the system default Vibrator service.
+ * Returns the default Vibrator for the device.
*/
@NonNull
public abstract Vibrator getDefaultVibrator();
@@ -81,7 +81,7 @@ public abstract class VibratorManager {
*/
@RequiresPermission(android.Manifest.permission.VIBRATE_ALWAYS_ON)
public boolean setAlwaysOnEffect(int uid, String opPkg, int alwaysOnId,
- @Nullable CombinedVibrationEffect effect, @Nullable VibrationAttributes attributes) {
+ @Nullable CombinedVibration effect, @Nullable VibrationAttributes attributes) {
Log.w(TAG, "Always-on effects aren't supported");
return false;
}
@@ -90,14 +90,14 @@ public abstract class VibratorManager {
* Vibrate with a given combination of effects.
*
* <p>
- * Pass in a {@link CombinedVibrationEffect} representing a combination of {@link
+ * Pass in a {@link CombinedVibration} representing a combination of {@link
* VibrationEffect VibrationEffects} to be played on one or more vibrators.
* </p>
*
* @param effect a combination of effects to be performed by one or more vibrators.
*/
@RequiresPermission(android.Manifest.permission.VIBRATE)
- public final void vibrate(@NonNull CombinedVibrationEffect effect) {
+ public final void vibrate(@NonNull CombinedVibration effect) {
vibrate(effect, null);
}
@@ -105,7 +105,7 @@ public abstract class VibratorManager {
* Vibrate with a given combination of effects.
*
* <p>
- * Pass in a {@link CombinedVibrationEffect} representing a combination of {@link
+ * Pass in a {@link CombinedVibration} representing a combination of {@link
* VibrationEffect} to be played on one or more vibrators.
* </p>
*
@@ -116,19 +116,19 @@ public abstract class VibratorManager {
* incoming calls.
*/
@RequiresPermission(android.Manifest.permission.VIBRATE)
- public final void vibrate(@NonNull CombinedVibrationEffect effect,
+ public final void vibrate(@NonNull CombinedVibration effect,
@Nullable VibrationAttributes attributes) {
vibrate(Process.myUid(), mPackageName, effect, null, attributes);
}
/**
- * Like {@link #vibrate(CombinedVibrationEffect, VibrationAttributes)}, but allows the
+ * Like {@link #vibrate(CombinedVibration, VibrationAttributes)}, but allows the
* caller to specify the vibration is owned by someone else and set reason for vibration.
*
* @hide
*/
@RequiresPermission(android.Manifest.permission.VIBRATE)
- public abstract void vibrate(int uid, String opPkg, @NonNull CombinedVibrationEffect effect,
+ public abstract void vibrate(int uid, String opPkg, @NonNull CombinedVibration effect,
String reason, @Nullable VibrationAttributes attributes);
/**
diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java
index d1f8ee9b0cc7..3b1c8ec23016 100644
--- a/core/java/android/view/InputDevice.java
+++ b/core/java/android/view/InputDevice.java
@@ -812,7 +812,9 @@ public final class InputDevice implements Parcelable {
* {@link Context#getSystemService} with {@link Context#VIBRATOR_SERVICE} as argument.
*
* @return The vibrator service associated with the device, never null.
+ * @deprecated Use {@link #getVibratorManager()} to retrieve the default device vibrator.
*/
+ @Deprecated
public Vibrator getVibrator() {
synchronized (mMotionRanges) {
if (mVibrator == null) {
diff --git a/core/tests/coretests/src/android/os/CombinedVibrationEffectTest.java b/core/tests/coretests/src/android/os/CombinedVibrationTest.java
index 30b2d8e47ab1..06b5d180518f 100644
--- a/core/tests/coretests/src/android/os/CombinedVibrationEffectTest.java
+++ b/core/tests/coretests/src/android/os/CombinedVibrationTest.java
@@ -33,75 +33,75 @@ import java.util.Arrays;
@Presubmit
@RunWith(JUnit4.class)
-public class CombinedVibrationEffectTest {
+public class CombinedVibrationTest {
private static final VibrationEffect VALID_EFFECT = VibrationEffect.createOneShot(10, 255);
private static final VibrationEffect INVALID_EFFECT = new VibrationEffect.Composed(
new ArrayList<>(), 0);
@Test
public void testValidateMono() {
- CombinedVibrationEffect.createSynced(VALID_EFFECT);
+ CombinedVibration.createParallel(VALID_EFFECT);
assertThrows(IllegalArgumentException.class,
- () -> CombinedVibrationEffect.createSynced(INVALID_EFFECT));
+ () -> CombinedVibration.createParallel(INVALID_EFFECT));
}
@Test
public void testValidateStereo() {
- CombinedVibrationEffect.startSynced()
+ CombinedVibration.startParallel()
.addVibrator(0, VALID_EFFECT)
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
.combine();
- CombinedVibrationEffect.startSynced()
+ CombinedVibration.startParallel()
.addVibrator(0, INVALID_EFFECT)
.addVibrator(0, VALID_EFFECT)
.combine();
assertThrows(IllegalArgumentException.class,
- () -> CombinedVibrationEffect.startSynced()
+ () -> CombinedVibration.startParallel()
.addVibrator(0, INVALID_EFFECT)
.combine());
}
@Test
public void testValidateSequential() {
- CombinedVibrationEffect.startSequential()
+ CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT)
- .addNext(CombinedVibrationEffect.createSynced(VALID_EFFECT))
+ .addNext(CombinedVibration.createParallel(VALID_EFFECT))
.combine();
- CombinedVibrationEffect.startSequential()
+ CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT)
.addNext(0, VALID_EFFECT, 100)
.combine();
- CombinedVibrationEffect.startSequential()
- .addNext(CombinedVibrationEffect.startSequential()
+ CombinedVibration.startSequential()
+ .addNext(CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT)
.combine())
.combine();
assertThrows(IllegalArgumentException.class,
- () -> CombinedVibrationEffect.startSequential()
+ () -> CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT, -1)
.combine());
assertThrows(IllegalArgumentException.class,
- () -> CombinedVibrationEffect.startSequential()
+ () -> CombinedVibration.startSequential()
.addNext(0, INVALID_EFFECT)
.combine());
}
@Test
public void testNestedSequentialAccumulatesDelays() {
- CombinedVibrationEffect.Sequential combined =
- (CombinedVibrationEffect.Sequential) CombinedVibrationEffect.startSequential()
- .addNext(CombinedVibrationEffect.startSequential()
+ CombinedVibration.Sequential combined =
+ (CombinedVibration.Sequential) CombinedVibration.startSequential()
+ .addNext(CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT, /* delay= */ 100)
.addNext(1, VALID_EFFECT, /* delay= */ 100)
.combine(),
/* delay= */ 10)
- .addNext(CombinedVibrationEffect.startSequential()
+ .addNext(CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT, /* delay= */ 100)
.combine())
- .addNext(CombinedVibrationEffect.startSequential()
+ .addNext(CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT)
.addNext(0, VALID_EFFECT, /* delay= */ 100)
.combine(),
@@ -114,37 +114,37 @@ public class CombinedVibrationEffectTest {
@Test
public void testCombineEmptyFails() {
assertThrows(IllegalStateException.class,
- () -> CombinedVibrationEffect.startSynced().combine());
+ () -> CombinedVibration.startParallel().combine());
assertThrows(IllegalStateException.class,
- () -> CombinedVibrationEffect.startSequential().combine());
+ () -> CombinedVibration.startSequential().combine());
}
@Test
public void testDurationMono() {
- assertEquals(1, CombinedVibrationEffect.createSynced(
+ assertEquals(1, CombinedVibration.createParallel(
VibrationEffect.createOneShot(1, 1)).getDuration());
- assertEquals(-1, CombinedVibrationEffect.createSynced(
+ assertEquals(-1, CombinedVibration.createParallel(
VibrationEffect.get(VibrationEffect.EFFECT_CLICK)).getDuration());
- assertEquals(Long.MAX_VALUE, CombinedVibrationEffect.createSynced(
+ assertEquals(Long.MAX_VALUE, CombinedVibration.createParallel(
VibrationEffect.createWaveform(
new long[]{1, 2, 3}, new int[]{1, 2, 3}, 0)).getDuration());
}
@Test
public void testDurationStereo() {
- assertEquals(6, CombinedVibrationEffect.startSynced()
+ assertEquals(6, CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createOneShot(1, 1))
.addVibrator(2,
VibrationEffect.createWaveform(new long[]{1, 2, 3}, new int[]{1, 2, 3}, -1))
.combine()
.getDuration());
- assertEquals(-1, CombinedVibrationEffect.startSynced()
+ assertEquals(-1, CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(2,
VibrationEffect.createWaveform(new long[]{1, 2, 3}, new int[]{1, 2, 3}, -1))
.combine()
.getDuration());
- assertEquals(Long.MAX_VALUE, CombinedVibrationEffect.startSynced()
+ assertEquals(Long.MAX_VALUE, CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(2,
VibrationEffect.createWaveform(new long[]{1, 2, 3}, new int[]{1, 2, 3}, 0))
@@ -154,19 +154,19 @@ public class CombinedVibrationEffectTest {
@Test
public void testDurationSequential() {
- assertEquals(26, CombinedVibrationEffect.startSequential()
+ assertEquals(26, CombinedVibration.startSequential()
.addNext(1, VibrationEffect.createOneShot(10, 10), 10)
.addNext(2,
VibrationEffect.createWaveform(new long[]{1, 2, 3}, new int[]{1, 2, 3}, -1))
.combine()
.getDuration());
- assertEquals(-1, CombinedVibrationEffect.startSequential()
+ assertEquals(-1, CombinedVibration.startSequential()
.addNext(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addNext(2,
VibrationEffect.createWaveform(new long[]{1, 2, 3}, new int[]{1, 2, 3}, -1))
.combine()
.getDuration());
- assertEquals(Long.MAX_VALUE, CombinedVibrationEffect.startSequential()
+ assertEquals(Long.MAX_VALUE, CombinedVibration.startSequential()
.addNext(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addNext(2,
VibrationEffect.createWaveform(new long[]{1, 2, 3}, new int[]{1, 2, 3}, 0))
@@ -176,7 +176,7 @@ public class CombinedVibrationEffectTest {
@Test
public void testHasVibratorMono_returnsTrueForAnyVibrator() {
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.get(VibrationEffect.EFFECT_CLICK));
assertTrue(effect.hasVibrator(0));
assertTrue(effect.hasVibrator(1));
@@ -184,7 +184,7 @@ public class CombinedVibrationEffectTest {
@Test
public void testHasVibratorStereo_returnsOnlyTheIdsSet() {
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.combine();
assertFalse(effect.hasVibrator(0));
@@ -194,9 +194,9 @@ public class CombinedVibrationEffectTest {
@Test
public void testHasVibratorSequential_returnsNestedVibrators() {
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSequential()
+ CombinedVibration effect = CombinedVibration.startSequential()
.addNext(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
- .addNext(CombinedVibrationEffect.startSynced()
+ .addNext(CombinedVibration.startParallel()
.addVibrator(2, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
.combine())
.combine();
@@ -207,18 +207,18 @@ public class CombinedVibrationEffectTest {
@Test
public void testSerializationMono() {
- CombinedVibrationEffect original = CombinedVibrationEffect.createSynced(VALID_EFFECT);
+ CombinedVibration original = CombinedVibration.createParallel(VALID_EFFECT);
Parcel parcel = Parcel.obtain();
original.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
- CombinedVibrationEffect restored = CombinedVibrationEffect.CREATOR.createFromParcel(parcel);
+ CombinedVibration restored = CombinedVibration.CREATOR.createFromParcel(parcel);
assertEquals(original, restored);
}
@Test
public void testSerializationStereo() {
- CombinedVibrationEffect original = CombinedVibrationEffect.startSynced()
+ CombinedVibration original = CombinedVibration.startParallel()
.addVibrator(0, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(1, VibrationEffect.createOneShot(10, 255))
.combine();
@@ -226,22 +226,22 @@ public class CombinedVibrationEffectTest {
Parcel parcel = Parcel.obtain();
original.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
- CombinedVibrationEffect restored = CombinedVibrationEffect.CREATOR.createFromParcel(parcel);
+ CombinedVibration restored = CombinedVibration.CREATOR.createFromParcel(parcel);
assertEquals(original, restored);
}
@Test
public void testSerializationSequential() {
- CombinedVibrationEffect original = CombinedVibrationEffect.startSequential()
+ CombinedVibration original = CombinedVibration.startSequential()
.addNext(0, VALID_EFFECT)
- .addNext(CombinedVibrationEffect.createSynced(VALID_EFFECT))
+ .addNext(CombinedVibration.createParallel(VALID_EFFECT))
.addNext(0, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), 100)
.combine();
Parcel parcel = Parcel.obtain();
original.writeToParcel(parcel, 0);
parcel.setDataPosition(0);
- CombinedVibrationEffect restored = CombinedVibrationEffect.CREATOR.createFromParcel(parcel);
+ CombinedVibration restored = CombinedVibration.CREATOR.createFromParcel(parcel);
assertEquals(original, restored);
}
}
diff --git a/services/core/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
index 0f137418a89c..0a800e9fc3a1 100644
--- a/services/core/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -57,7 +57,7 @@ import android.hardware.lights.LightState;
import android.media.AudioManager;
import android.os.Binder;
import android.os.Bundle;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.Environment;
import android.os.Handler;
import android.os.IBinder;
@@ -2033,23 +2033,23 @@ public class InputManagerService extends IInputManager.Stub
// Binder call
@Override
- public void vibrateCombined(int deviceId, CombinedVibrationEffect effect, IBinder token) {
+ public void vibrateCombined(int deviceId, CombinedVibration effect, IBinder token) {
VibratorToken v = getVibratorToken(deviceId, token);
synchronized (v) {
- if (!(effect instanceof CombinedVibrationEffect.Mono)
- && !(effect instanceof CombinedVibrationEffect.Stereo)) {
+ if (!(effect instanceof CombinedVibration.Mono)
+ && !(effect instanceof CombinedVibration.Stereo)) {
Slog.e(TAG, "Only Mono and Stereo effects are supported");
return;
}
v.mVibrating = true;
- if (effect instanceof CombinedVibrationEffect.Mono) {
- CombinedVibrationEffect.Mono mono = (CombinedVibrationEffect.Mono) effect;
+ if (effect instanceof CombinedVibration.Mono) {
+ CombinedVibration.Mono mono = (CombinedVibration.Mono) effect;
VibrationInfo info = new VibrationInfo(mono.getEffect());
nativeVibrate(mPtr, deviceId, info.getPattern(), info.getAmplitudes(),
info.getRepeatIndex(), v.mTokenValue);
- } else if (effect instanceof CombinedVibrationEffect.Stereo) {
- CombinedVibrationEffect.Stereo stereo = (CombinedVibrationEffect.Stereo) effect;
+ } else if (effect instanceof CombinedVibration.Stereo) {
+ CombinedVibration.Stereo stereo = (CombinedVibration.Stereo) effect;
SparseArray<VibrationEffect> effects = stereo.getEffects();
long[] pattern = new long[0];
int repeat = Integer.MIN_VALUE;
diff --git a/services/core/java/com/android/server/vibrator/InputDeviceDelegate.java b/services/core/java/com/android/server/vibrator/InputDeviceDelegate.java
index 96f84dc65e1d..21ba87445478 100644
--- a/services/core/java/com/android/server/vibrator/InputDeviceDelegate.java
+++ b/services/core/java/com/android/server/vibrator/InputDeviceDelegate.java
@@ -19,7 +19,7 @@ package com.android.server.vibrator;
import android.annotation.Nullable;
import android.content.Context;
import android.hardware.input.InputManager;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.Handler;
import android.os.VibrationAttributes;
import android.os.VibratorManager;
@@ -94,7 +94,7 @@ final class InputDeviceDelegate implements InputManager.InputDeviceListener {
*
* @return {@link #isAvailable()}
*/
- public boolean vibrateIfAvailable(int uid, String opPkg, CombinedVibrationEffect effect,
+ public boolean vibrateIfAvailable(int uid, String opPkg, CombinedVibration effect,
String reason, VibrationAttributes attrs) {
synchronized (mLock) {
for (int i = 0; i < mInputDeviceVibrators.size(); i++) {
diff --git a/services/core/java/com/android/server/vibrator/Vibration.java b/services/core/java/com/android/server/vibrator/Vibration.java
index cd840589475a..e447a23cf331 100644
--- a/services/core/java/com/android/server/vibrator/Vibration.java
+++ b/services/core/java/com/android/server/vibrator/Vibration.java
@@ -17,7 +17,7 @@
package com.android.server.vibrator;
import android.annotation.Nullable;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.IBinder;
import android.os.SystemClock;
import android.os.VibrationAttributes;
@@ -72,14 +72,14 @@ final class Vibration {
/** The actual effect to be played. */
@Nullable
- private CombinedVibrationEffect mEffect;
+ private CombinedVibration mEffect;
/**
* The original effect that was requested. Typically these two things differ because the effect
* was scaled based on the users vibration intensity settings.
*/
@Nullable
- private CombinedVibrationEffect mOriginalEffect;
+ private CombinedVibration mOriginalEffect;
/**
* Start/end times in unix epoch time. Only to be used for debugging purposes and to correlate
@@ -90,7 +90,7 @@ final class Vibration {
private long mEndTimeDebug;
private Status mStatus;
- Vibration(IBinder token, int id, CombinedVibrationEffect effect,
+ Vibration(IBinder token, int id, CombinedVibration effect,
VibrationAttributes attrs, int uid, String opPkg, String reason) {
this.token = token;
this.mEffect = effect;
@@ -142,7 +142,7 @@ final class Vibration {
* effect added.
*/
public void updateEffects(Function<VibrationEffect, VibrationEffect> updateFn) {
- CombinedVibrationEffect newEffect = transformCombinedEffect(mEffect, updateFn);
+ CombinedVibration newEffect = transformCombinedEffect(mEffect, updateFn);
if (!newEffect.equals(mEffect)) {
if (mOriginalEffect == null) {
mOriginalEffect = mEffect;
@@ -155,29 +155,29 @@ final class Vibration {
}
/**
- * Creates a new {@link CombinedVibrationEffect} by applying the given transformation function
+ * Creates a new {@link CombinedVibration} by applying the given transformation function
* to each {@link VibrationEffect}.
*/
- private static CombinedVibrationEffect transformCombinedEffect(
- CombinedVibrationEffect combinedEffect, Function<VibrationEffect, VibrationEffect> fn) {
- if (combinedEffect instanceof CombinedVibrationEffect.Mono) {
- VibrationEffect effect = ((CombinedVibrationEffect.Mono) combinedEffect).getEffect();
- return CombinedVibrationEffect.createSynced(fn.apply(effect));
- } else if (combinedEffect instanceof CombinedVibrationEffect.Stereo) {
+ private static CombinedVibration transformCombinedEffect(
+ CombinedVibration combinedEffect, Function<VibrationEffect, VibrationEffect> fn) {
+ if (combinedEffect instanceof CombinedVibration.Mono) {
+ VibrationEffect effect = ((CombinedVibration.Mono) combinedEffect).getEffect();
+ return CombinedVibration.createParallel(fn.apply(effect));
+ } else if (combinedEffect instanceof CombinedVibration.Stereo) {
SparseArray<VibrationEffect> effects =
- ((CombinedVibrationEffect.Stereo) combinedEffect).getEffects();
- CombinedVibrationEffect.SyncedCombination combination =
- CombinedVibrationEffect.startSynced();
+ ((CombinedVibration.Stereo) combinedEffect).getEffects();
+ CombinedVibration.ParallelCombination combination =
+ CombinedVibration.startParallel();
for (int i = 0; i < effects.size(); i++) {
combination.addVibrator(effects.keyAt(i), fn.apply(effects.valueAt(i)));
}
return combination.combine();
- } else if (combinedEffect instanceof CombinedVibrationEffect.Sequential) {
- List<CombinedVibrationEffect> effects =
- ((CombinedVibrationEffect.Sequential) combinedEffect).getEffects();
- CombinedVibrationEffect.SequentialCombination combination =
- CombinedVibrationEffect.startSequential();
- for (CombinedVibrationEffect effect : effects) {
+ } else if (combinedEffect instanceof CombinedVibration.Sequential) {
+ List<CombinedVibration> effects =
+ ((CombinedVibration.Sequential) combinedEffect).getEffects();
+ CombinedVibration.SequentialCombination combination =
+ CombinedVibration.startSequential();
+ for (CombinedVibration effect : effects) {
combination.addNext(transformCombinedEffect(effect, fn));
}
return combination.combine();
@@ -199,7 +199,7 @@ final class Vibration {
/** Return the effect that should be played by this vibration. */
@Nullable
- public CombinedVibrationEffect getEffect() {
+ public CombinedVibration getEffect() {
return mEffect;
}
@@ -214,8 +214,8 @@ final class Vibration {
static final class DebugInfo {
private final long mStartTimeDebug;
private final long mEndTimeDebug;
- private final CombinedVibrationEffect mEffect;
- private final CombinedVibrationEffect mOriginalEffect;
+ private final CombinedVibration mEffect;
+ private final CombinedVibration mOriginalEffect;
private final float mScale;
private final VibrationAttributes mAttrs;
private final int mUid;
@@ -223,8 +223,8 @@ final class Vibration {
private final String mReason;
private final Status mStatus;
- DebugInfo(long startTimeDebug, long endTimeDebug, CombinedVibrationEffect effect,
- CombinedVibrationEffect originalEffect, float scale, VibrationAttributes attrs,
+ DebugInfo(long startTimeDebug, long endTimeDebug, CombinedVibration effect,
+ CombinedVibration originalEffect, float scale, VibrationAttributes attrs,
int uid, String opPkg, String reason, Status status) {
mStartTimeDebug = startTimeDebug;
mEndTimeDebug = endTimeDebug;
@@ -289,24 +289,24 @@ final class Vibration {
}
private void dumpEffect(
- ProtoOutputStream proto, long fieldId, CombinedVibrationEffect effect) {
+ ProtoOutputStream proto, long fieldId, CombinedVibration effect) {
dumpEffect(proto, fieldId,
- (CombinedVibrationEffect.Sequential) CombinedVibrationEffect.startSequential()
+ (CombinedVibration.Sequential) CombinedVibration.startSequential()
.addNext(effect)
.combine());
}
private void dumpEffect(
- ProtoOutputStream proto, long fieldId, CombinedVibrationEffect.Sequential effect) {
+ ProtoOutputStream proto, long fieldId, CombinedVibration.Sequential effect) {
final long token = proto.start(fieldId);
for (int i = 0; i < effect.getEffects().size(); i++) {
- CombinedVibrationEffect nestedEffect = effect.getEffects().get(i);
- if (nestedEffect instanceof CombinedVibrationEffect.Mono) {
+ CombinedVibration nestedEffect = effect.getEffects().get(i);
+ if (nestedEffect instanceof CombinedVibration.Mono) {
dumpEffect(proto, CombinedVibrationEffectProto.EFFECTS,
- (CombinedVibrationEffect.Mono) nestedEffect);
- } else if (nestedEffect instanceof CombinedVibrationEffect.Stereo) {
+ (CombinedVibration.Mono) nestedEffect);
+ } else if (nestedEffect instanceof CombinedVibration.Stereo) {
dumpEffect(proto, CombinedVibrationEffectProto.EFFECTS,
- (CombinedVibrationEffect.Stereo) nestedEffect);
+ (CombinedVibration.Stereo) nestedEffect);
}
proto.write(CombinedVibrationEffectProto.DELAYS, effect.getDelays().get(i));
}
@@ -314,14 +314,14 @@ final class Vibration {
}
private void dumpEffect(
- ProtoOutputStream proto, long fieldId, CombinedVibrationEffect.Mono effect) {
+ ProtoOutputStream proto, long fieldId, CombinedVibration.Mono effect) {
final long token = proto.start(fieldId);
dumpEffect(proto, SyncVibrationEffectProto.EFFECTS, effect.getEffect());
proto.end(token);
}
private void dumpEffect(
- ProtoOutputStream proto, long fieldId, CombinedVibrationEffect.Stereo effect) {
+ ProtoOutputStream proto, long fieldId, CombinedVibration.Stereo effect) {
final long token = proto.start(fieldId);
for (int i = 0; i < effect.getEffects().size(); i++) {
proto.write(SyncVibrationEffectProto.VIBRATOR_IDS, effect.getEffects().keyAt(i));
diff --git a/services/core/java/com/android/server/vibrator/VibrationThread.java b/services/core/java/com/android/server/vibrator/VibrationThread.java
index b4a95c4e281c..bc61478ec1b5 100644
--- a/services/core/java/com/android/server/vibrator/VibrationThread.java
+++ b/services/core/java/com/android/server/vibrator/VibrationThread.java
@@ -19,7 +19,7 @@ package com.android.server.vibrator;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.hardware.vibrator.IVibratorManager;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.Process;
@@ -112,7 +112,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
mWakeLock.setWorkSource(mWorkSource);
mBatteryStatsService = batteryStatsService;
- CombinedVibrationEffect effect = vib.getEffect();
+ CombinedVibration effect = vib.getEffect();
for (int i = 0; i < availableVibrators.size(); i++) {
if (effect.hasVibrator(availableVibrators.keyAt(i))) {
mVibrators.put(availableVibrators.keyAt(i), availableVibrators.valueAt(i));
@@ -191,7 +191,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
private Vibration.Status playVibration() {
Trace.traceBegin(Trace.TRACE_TAG_VIBRATOR, "playVibration");
try {
- CombinedVibrationEffect.Sequential effect = toSequential(mVibration.getEffect());
+ CombinedVibration.Sequential effect = toSequential(mVibration.getEffect());
int stepsPlayed = 0;
synchronized (mLock) {
@@ -282,11 +282,11 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
return new AmplitudeStep(startTime, controller, effect, segmentIndex, vibratorOffTimeout);
}
- private static CombinedVibrationEffect.Sequential toSequential(CombinedVibrationEffect effect) {
- if (effect instanceof CombinedVibrationEffect.Sequential) {
- return (CombinedVibrationEffect.Sequential) effect;
+ private static CombinedVibration.Sequential toSequential(CombinedVibration effect) {
+ if (effect instanceof CombinedVibration.Sequential) {
+ return (CombinedVibration.Sequential) effect;
}
- return (CombinedVibrationEffect.Sequential) CombinedVibrationEffect.startSequential()
+ return (CombinedVibration.Sequential) CombinedVibration.startSequential()
.addNext(effect)
.combine();
}
@@ -415,14 +415,14 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
* sequential effect isn't finished yet.
*/
private final class StartVibrateStep extends Step {
- public final CombinedVibrationEffect.Sequential sequentialEffect;
+ public final CombinedVibration.Sequential sequentialEffect;
public final int currentIndex;
- StartVibrateStep(CombinedVibrationEffect.Sequential effect) {
+ StartVibrateStep(CombinedVibration.Sequential effect) {
this(SystemClock.uptimeMillis() + effect.getDelays().get(0), effect, /* index= */ 0);
}
- StartVibrateStep(long startTime, CombinedVibrationEffect.Sequential effect, int index) {
+ StartVibrateStep(long startTime, CombinedVibration.Sequential effect, int index) {
super(startTime);
sequentialEffect = effect;
currentIndex = index;
@@ -437,7 +437,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
if (DEBUG) {
Slog.d(TAG, "StartVibrateStep for effect #" + currentIndex);
}
- CombinedVibrationEffect effect = sequentialEffect.getEffects().get(currentIndex);
+ CombinedVibration effect = sequentialEffect.getEffects().get(currentIndex);
DeviceEffectMap effectMapping = createEffectToVibratorMapping(effect);
if (effectMapping == null) {
// Unable to map effects to vibrators, ignore this step.
@@ -481,12 +481,12 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
/** Create a mapping of individual {@link VibrationEffect} to available vibrators. */
@Nullable
private DeviceEffectMap createEffectToVibratorMapping(
- CombinedVibrationEffect effect) {
- if (effect instanceof CombinedVibrationEffect.Mono) {
- return new DeviceEffectMap((CombinedVibrationEffect.Mono) effect);
+ CombinedVibration effect) {
+ if (effect instanceof CombinedVibration.Mono) {
+ return new DeviceEffectMap((CombinedVibration.Mono) effect);
}
- if (effect instanceof CombinedVibrationEffect.Stereo) {
- return new DeviceEffectMap((CombinedVibrationEffect.Stereo) effect);
+ if (effect instanceof CombinedVibration.Stereo) {
+ return new DeviceEffectMap((CombinedVibration.Stereo) effect);
}
return null;
}
@@ -494,11 +494,11 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
/**
* Starts playing effects on designated vibrators, in sync.
*
- * @param effectMapping The {@link CombinedVibrationEffect} mapped to this device vibrators
+ * @param effectMapping The {@link CombinedVibration} mapped to this device vibrators
* @param nextSteps An output list to accumulate the future {@link Step Steps} created
* by this method, typically one for each vibrator that has
* successfully started vibrating on this step.
- * @return The duration, in millis, of the {@link CombinedVibrationEffect}. Repeating
+ * @return The duration, in millis, of the {@link CombinedVibration}. Repeating
* waveforms return {@link Long#MAX_VALUE}. Zero or negative values indicate the vibrators
* have ignored all effects.
*/
@@ -1041,7 +1041,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
}
/**
- * Map a {@link CombinedVibrationEffect} to the vibrators available on the device.
+ * Map a {@link CombinedVibration} to the vibrators available on the device.
*
* <p>This contains the logic to find the capabilities required from {@link IVibratorManager} to
* play all of the effects in sync.
@@ -1051,7 +1051,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
private final int[] mVibratorIds;
private final long mRequiredSyncCapabilities;
- DeviceEffectMap(CombinedVibrationEffect.Mono mono) {
+ DeviceEffectMap(CombinedVibration.Mono mono) {
mVibratorEffects = new SparseArray<>(mVibrators.size());
mVibratorIds = new int[mVibrators.size()];
for (int i = 0; i < mVibrators.size(); i++) {
@@ -1066,7 +1066,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
mRequiredSyncCapabilities = calculateRequiredSyncCapabilities(mVibratorEffects);
}
- DeviceEffectMap(CombinedVibrationEffect.Stereo stereo) {
+ DeviceEffectMap(CombinedVibration.Stereo stereo) {
SparseArray<VibrationEffect> stereoEffects = stereo.getEffects();
mVibratorEffects = new SparseArray<>();
for (int i = 0; i < stereoEffects.size(); i++) {
@@ -1088,7 +1088,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
}
/**
- * Return the number of vibrators mapped to play the {@link CombinedVibrationEffect} on this
+ * Return the number of vibrators mapped to play the {@link CombinedVibration} on this
* device.
*/
public int size() {
@@ -1096,7 +1096,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
}
/**
- * Return all capabilities required to play the {@link CombinedVibrationEffect} in
+ * Return all capabilities required to play the {@link CombinedVibration} in
* between calls to {@link IVibratorManager#prepareSynced} and
* {@link IVibratorManager#triggerSynced}.
*/
@@ -1104,7 +1104,7 @@ final class VibrationThread extends Thread implements IBinder.DeathRecipient {
return mRequiredSyncCapabilities;
}
- /** Return all vibrator ids mapped to play the {@link CombinedVibrationEffect}. */
+ /** Return all vibrator ids mapped to play the {@link CombinedVibration}. */
public int[] getVibratorIds() {
return mVibratorIds;
}
diff --git a/services/core/java/com/android/server/vibrator/VibratorManagerService.java b/services/core/java/com/android/server/vibrator/VibratorManagerService.java
index 6bd7198f3c5b..5d2b1b169c4e 100644
--- a/services/core/java/com/android/server/vibrator/VibratorManagerService.java
+++ b/services/core/java/com/android/server/vibrator/VibratorManagerService.java
@@ -29,7 +29,7 @@ import android.content.pm.PackageManagerInternal;
import android.hardware.vibrator.IVibrator;
import android.os.BatteryStats;
import android.os.Binder;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.ExternalVibration;
import android.os.Handler;
import android.os.IBinder;
@@ -291,7 +291,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
@Override // Binder call
public boolean setAlwaysOnEffect(int uid, String opPkg, int alwaysOnId,
- @Nullable CombinedVibrationEffect effect, @Nullable VibrationAttributes attrs) {
+ @Nullable CombinedVibration effect, @Nullable VibrationAttributes attrs) {
Trace.traceBegin(Trace.TRACE_TAG_VIBRATOR, "setAlwaysOnEffect");
try {
mContext.enforceCallingOrSelfPermission(
@@ -332,7 +332,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
}
@Override // Binder call
- public void vibrate(int uid, String opPkg, @NonNull CombinedVibrationEffect effect,
+ public void vibrate(int uid, String opPkg, @NonNull CombinedVibration effect,
@Nullable VibrationAttributes attrs, String reason, IBinder token) {
Trace.traceBegin(Trace.TRACE_TAG_VIBRATOR, "vibrate, reason = " + reason);
try {
@@ -742,14 +742,14 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
}
/**
- * Validate the incoming {@link CombinedVibrationEffect}.
+ * Validate the incoming {@link CombinedVibration}.
*
* We can't throw exceptions here since we might be called from some system_server component,
* which would bring the whole system down.
*
* @return whether the CombinedVibrationEffect is non-null and valid
*/
- private static boolean isEffectValid(@Nullable CombinedVibrationEffect effect) {
+ private static boolean isEffectValid(@Nullable CombinedVibration effect) {
if (effect == null) {
Slog.wtf(TAG, "effect must not be null");
return false;
@@ -767,18 +767,18 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
* Sets fallback effects to all prebaked ones in given combination of effects, based on {@link
* VibrationSettings#getFallbackEffect}.
*/
- private void fillVibrationFallbacks(Vibration vib, CombinedVibrationEffect effect) {
- if (effect instanceof CombinedVibrationEffect.Mono) {
- fillVibrationFallbacks(vib, ((CombinedVibrationEffect.Mono) effect).getEffect());
- } else if (effect instanceof CombinedVibrationEffect.Stereo) {
+ private void fillVibrationFallbacks(Vibration vib, CombinedVibration effect) {
+ if (effect instanceof CombinedVibration.Mono) {
+ fillVibrationFallbacks(vib, ((CombinedVibration.Mono) effect).getEffect());
+ } else if (effect instanceof CombinedVibration.Stereo) {
SparseArray<VibrationEffect> effects =
- ((CombinedVibrationEffect.Stereo) effect).getEffects();
+ ((CombinedVibration.Stereo) effect).getEffects();
for (int i = 0; i < effects.size(); i++) {
fillVibrationFallbacks(vib, effects.valueAt(i));
}
- } else if (effect instanceof CombinedVibrationEffect.Sequential) {
- List<CombinedVibrationEffect> effects =
- ((CombinedVibrationEffect.Sequential) effect).getEffects();
+ } else if (effect instanceof CombinedVibration.Sequential) {
+ List<CombinedVibration> effects =
+ ((CombinedVibration.Sequential) effect).getEffects();
for (int i = 0; i < effects.size(); i++) {
fillVibrationFallbacks(vib, effects.get(i));
}
@@ -825,15 +825,15 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
@GuardedBy("mLock")
@Nullable
private SparseArray<PrebakedSegment> fixupAlwaysOnEffectsLocked(
- CombinedVibrationEffect effect) {
+ CombinedVibration effect) {
Trace.traceBegin(Trace.TRACE_TAG_VIBRATOR, "fixupAlwaysOnEffectsLocked");
try {
SparseArray<VibrationEffect> effects;
- if (effect instanceof CombinedVibrationEffect.Mono) {
- VibrationEffect syncedEffect = ((CombinedVibrationEffect.Mono) effect).getEffect();
+ if (effect instanceof CombinedVibration.Mono) {
+ VibrationEffect syncedEffect = ((CombinedVibration.Mono) effect).getEffect();
effects = transformAllVibratorsLocked(unused -> syncedEffect);
- } else if (effect instanceof CombinedVibrationEffect.Stereo) {
- effects = ((CombinedVibrationEffect.Stereo) effect).getEffects();
+ } else if (effect instanceof CombinedVibration.Stereo) {
+ effects = ((CombinedVibration.Stereo) effect).getEffects();
} else {
// Only synced combinations can be used for always-on effects.
return null;
@@ -1465,7 +1465,7 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
private int runMono() {
CommonOptions commonOptions = new CommonOptions();
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(nextEffect());
+ CombinedVibration effect = CombinedVibration.createParallel(nextEffect());
VibrationAttributes attrs = createVibrationAttributes(commonOptions);
vibrate(Binder.getCallingUid(), SHELL_PACKAGE_NAME, effect, attrs,
commonOptions.description, mToken);
@@ -1474,8 +1474,8 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
private int runStereo() {
CommonOptions commonOptions = new CommonOptions();
- CombinedVibrationEffect.SyncedCombination combination =
- CombinedVibrationEffect.startSynced();
+ CombinedVibration.ParallelCombination combination =
+ CombinedVibration.startParallel();
while ("-v".equals(getNextOption())) {
int vibratorId = Integer.parseInt(getNextArgRequired());
combination.addVibrator(vibratorId, nextEffect());
@@ -1488,8 +1488,8 @@ public class VibratorManagerService extends IVibratorManagerService.Stub {
private int runSequential() {
CommonOptions commonOptions = new CommonOptions();
- CombinedVibrationEffect.SequentialCombination combination =
- CombinedVibrationEffect.startSequential();
+ CombinedVibration.SequentialCombination combination =
+ CombinedVibration.startSequential();
while ("-v".equals(getNextOption())) {
int vibratorId = Integer.parseInt(getNextArgRequired());
combination.addNext(vibratorId, nextEffect());
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java b/services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java
index 3ca90603e9d2..3f9caa95df4a 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java
+++ b/services/tests/servicestests/src/com/android/server/vibrator/InputDeviceDelegateTest.java
@@ -34,7 +34,7 @@ import android.content.ContextWrapper;
import android.hardware.input.IInputDevicesChangedListener;
import android.hardware.input.IInputManager;
import android.hardware.input.InputManager;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.Handler;
import android.os.Process;
import android.os.VibrationAttributes;
@@ -67,8 +67,8 @@ public class InputDeviceDelegateTest {
private static final String REASON = "some reason";
private static final VibrationAttributes VIBRATION_ATTRIBUTES =
new VibrationAttributes.Builder().setUsage(VibrationAttributes.USAGE_ALARM).build();
- private static final CombinedVibrationEffect SYNCED_EFFECT =
- CombinedVibrationEffect.createSynced(VibrationEffect.createOneShot(100, 255));
+ private static final CombinedVibration SYNCED_EFFECT =
+ CombinedVibration.createParallel(VibrationEffect.createOneShot(100, 255));
@Rule public MockitoRule rule = MockitoJUnit.rule();
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java b/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java
index c439b9c56e74..5743982171cb 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java
+++ b/services/tests/servicestests/src/com/android/server/vibrator/VibrationThreadTest.java
@@ -34,7 +34,7 @@ import static org.mockito.Mockito.when;
import android.hardware.vibrator.Braking;
import android.hardware.vibrator.IVibrator;
import android.hardware.vibrator.IVibratorManager;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.IBinder;
import android.os.PowerManager;
import android.os.Process;
@@ -109,7 +109,7 @@ public class VibrationThreadTest {
public void vibrate_noVibrator_ignoresVibration() {
mVibratorProviders.clear();
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.get(VibrationEffect.EFFECT_CLICK));
VibrationThread thread = startThreadAndDispatcher(vibrationId, effect);
waitForCompletion(thread);
@@ -122,7 +122,7 @@ public class VibrationThreadTest {
@Test
public void vibrate_missingVibrators_ignoresVibration() {
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSequential()
+ CombinedVibration effect = CombinedVibration.startSequential()
.addNext(2, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addNext(3, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
.combine();
@@ -311,7 +311,7 @@ public class VibrationThreadTest {
long vibrationId = 1;
VibrationEffect fallback = VibrationEffect.createOneShot(10, 100);
- Vibration vibration = createVibration(vibrationId, CombinedVibrationEffect.createSynced(
+ Vibration vibration = createVibration(vibrationId, CombinedVibration.createParallel(
VibrationEffect.get(VibrationEffect.EFFECT_CLICK)));
vibration.addFallback(VibrationEffect.EFFECT_CLICK, fallback);
VibrationThread thread = startThreadAndDispatcher(vibration);
@@ -498,7 +498,7 @@ public class VibrationThreadTest {
mVibratorProviders.get(1).setSupportedEffects(VibrationEffect.EFFECT_TICK);
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(VIBRATOR_ID, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
.addVibrator(2, VibrationEffect.get(VibrationEffect.EFFECT_TICK))
.combine();
@@ -524,7 +524,7 @@ public class VibrationThreadTest {
mVibratorProviders.get(3).setSupportedEffects(VibrationEffect.EFFECT_CLICK);
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.get(VibrationEffect.EFFECT_CLICK));
VibrationThread thread = startThreadAndDispatcher(vibrationId, effect);
waitForCompletion(thread);
@@ -557,7 +557,7 @@ public class VibrationThreadTest {
VibrationEffect composed = VibrationEffect.startComposition()
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
.compose();
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(2, VibrationEffect.createOneShot(10, 100))
.addVibrator(3, VibrationEffect.createWaveform(
@@ -603,7 +603,7 @@ public class VibrationThreadTest {
VibrationEffect composed = VibrationEffect.startComposition()
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
.compose();
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSequential()
+ CombinedVibration effect = CombinedVibration.startSequential()
.addNext(3, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), /* delay= */ 50)
.addNext(1, VibrationEffect.createOneShot(10, 100), /* delay= */ 50)
.addNext(2, composed, /* delay= */ 50)
@@ -652,7 +652,7 @@ public class VibrationThreadTest {
VibrationEffect composed = VibrationEffect.startComposition()
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 100)
.compose();
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(composed);
+ CombinedVibration effect = CombinedVibration.createParallel(composed);
VibrationThread thread = startThreadAndDispatcher(vibrationId, effect);
assertTrue(waitUntil(t -> !mVibratorProviders.get(1).getEffectSegments().isEmpty()
@@ -686,7 +686,7 @@ public class VibrationThreadTest {
VibrationEffect composed = VibrationEffect.startComposition()
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
.compose();
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(2, VibrationEffect.createOneShot(10, 100))
.addVibrator(3, VibrationEffect.createWaveform(new long[]{10}, new int[]{100}, -1))
@@ -717,7 +717,7 @@ public class VibrationThreadTest {
when(mThreadCallbacks.prepareSyncedVibration(anyLong(), any())).thenReturn(false);
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createOneShot(10, 100))
.addVibrator(2, VibrationEffect.createWaveform(new long[]{5}, new int[]{200}, -1))
.combine();
@@ -746,7 +746,7 @@ public class VibrationThreadTest {
when(mThreadCallbacks.triggerSyncedVibration(anyLong())).thenReturn(false);
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createOneShot(10, 100))
.addVibrator(2, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.combine();
@@ -772,7 +772,7 @@ public class VibrationThreadTest {
mVibratorProviders.get(3).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createWaveform(
new long[]{5, 10, 10}, new int[]{1, 2, 3}, -1))
.addVibrator(2, VibrationEffect.createWaveform(
@@ -851,7 +851,7 @@ public class VibrationThreadTest {
mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(2, VibrationEffect.startComposition()
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1f, 100)
@@ -885,7 +885,7 @@ public class VibrationThreadTest {
mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL);
long vibrationId = 1;
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createWaveform(
new long[]{100, 100}, new int[]{1, 2}, 0))
.addVibrator(2, VibrationEffect.createOneShot(100, 100))
@@ -938,11 +938,11 @@ public class VibrationThreadTest {
}
private VibrationThread startThreadAndDispatcher(long vibrationId, VibrationEffect effect) {
- return startThreadAndDispatcher(vibrationId, CombinedVibrationEffect.createSynced(effect));
+ return startThreadAndDispatcher(vibrationId, CombinedVibration.createParallel(effect));
}
private VibrationThread startThreadAndDispatcher(long vibrationId,
- CombinedVibrationEffect effect) {
+ CombinedVibration effect) {
return startThreadAndDispatcher(createVibration(vibrationId, effect));
}
@@ -982,7 +982,7 @@ public class VibrationThreadTest {
mTestLooper.dispatchAll();
}
- private Vibration createVibration(long id, CombinedVibrationEffect effect) {
+ private Vibration createVibration(long id, CombinedVibration effect) {
return new Vibration(mVibrationToken, (int) id, effect, ATTRS, UID, PACKAGE_NAME, "reason");
}
diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java
index b0e8ef0bdffe..e367b7448299 100644
--- a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java
@@ -49,7 +49,7 @@ import android.hardware.vibrator.IVibrator;
import android.hardware.vibrator.IVibratorManager;
import android.media.AudioAttributes;
import android.media.AudioManager;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.Handler;
import android.os.IBinder;
import android.os.IVibratorStateListener;
@@ -231,7 +231,7 @@ public class VibratorManagerServiceTest {
assertNotNull(service.getVibratorInfo(1));
assertFalse(service.isVibrating(1));
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
vibrate(service, effect, HAPTIC_FEEDBACK_ATTRS);
service.cancelVibrate(service);
@@ -343,7 +343,7 @@ public class VibratorManagerServiceTest {
service.registerVibratorStateListener(i, listeners[i]);
}
- vibrate(service, CombinedVibrationEffect.startSynced()
+ vibrate(service, CombinedVibration.startParallel()
.addVibrator(0, VibrationEffect.createOneShot(40, 100))
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.combine(), ALARM_ATTRS);
@@ -361,7 +361,7 @@ public class VibratorManagerServiceTest {
mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
mVibratorProviders.get(3).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
assertTrue(createSystemReadyService().setAlwaysOnEffect(
UID, PACKAGE_NAME, 1, effect, ALARM_ATTRS));
@@ -382,7 +382,7 @@ public class VibratorManagerServiceTest {
mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
mVibratorProviders.get(4).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
.addVibrator(2, VibrationEffect.createPredefined(VibrationEffect.EFFECT_TICK))
.addVibrator(3, VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
@@ -409,7 +409,7 @@ public class VibratorManagerServiceTest {
mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
mVibratorProviders.get(3).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
assertTrue(createSystemReadyService().setAlwaysOnEffect(
UID, PACKAGE_NAME, 1, effect, ALARM_ATTRS));
@@ -427,7 +427,7 @@ public class VibratorManagerServiceTest {
mockVibrators(1);
mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE));
assertFalse(createSystemReadyService().setAlwaysOnEffect(
UID, PACKAGE_NAME, 1, effect, ALARM_ATTRS));
@@ -440,7 +440,7 @@ public class VibratorManagerServiceTest {
mockVibrators(1);
mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_ALWAYS_ON_CONTROL);
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSequential()
+ CombinedVibration effect = CombinedVibration.startSequential()
.addNext(0, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.combine();
assertFalse(createSystemReadyService().setAlwaysOnEffect(
@@ -454,9 +454,9 @@ public class VibratorManagerServiceTest {
mockVibrators(1);
VibratorManagerService service = createSystemReadyService();
- CombinedVibrationEffect mono = CombinedVibrationEffect.createSynced(
+ CombinedVibration mono = CombinedVibration.createParallel(
VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK));
- CombinedVibrationEffect stereo = CombinedVibrationEffect.startSynced()
+ CombinedVibration stereo = CombinedVibration.startParallel()
.addVibrator(0, VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK))
.combine();
assertFalse(service.setAlwaysOnEffect(UID, PACKAGE_NAME, 1, mono, ALARM_ATTRS));
@@ -624,7 +624,7 @@ public class VibratorManagerServiceTest {
setUserSetting(Settings.System.VIBRATE_INPUT_DEVICES, 1);
VibratorManagerService service = createSystemReadyService();
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(
+ CombinedVibration effect = CombinedVibration.createParallel(
VibrationEffect.createOneShot(10, 10));
vibrate(service, effect, ALARM_ATTRS);
verify(mIInputManagerMock).vibrateCombined(eq(1), eq(effect), any());
@@ -680,7 +680,7 @@ public class VibratorManagerServiceTest {
VibrationEffect composed = VibrationEffect.startComposition()
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK, 1, 100)
.compose();
- CombinedVibrationEffect effect = CombinedVibrationEffect.createSynced(composed);
+ CombinedVibration effect = CombinedVibration.createParallel(composed);
// Wait for vibration to start, it should finish right away with trigger callback.
vibrate(service, effect, ALARM_ATTRS);
@@ -712,7 +712,7 @@ public class VibratorManagerServiceTest {
mVibratorProviders.get(2).setCapabilities(IVibrator.CAP_COMPOSE_EFFECTS);
VibratorManagerService service = createSystemReadyService();
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(2, VibrationEffect.startComposition()
.addPrimitive(VibrationEffect.Composition.PRIMITIVE_CLICK)
@@ -738,7 +738,7 @@ public class VibratorManagerServiceTest {
fakeVibrator1.setSupportedEffects(VibrationEffect.EFFECT_CLICK);
VibratorManagerService service = createSystemReadyService();
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.addVibrator(2, VibrationEffect.createOneShot(10, 100))
.combine();
@@ -758,7 +758,7 @@ public class VibratorManagerServiceTest {
when(mNativeWrapperMock.prepareSynced(any())).thenReturn(false);
VibratorManagerService service = createSystemReadyService();
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createOneShot(10, 50))
.addVibrator(2, VibrationEffect.createOneShot(10, 100))
.combine();
@@ -779,7 +779,7 @@ public class VibratorManagerServiceTest {
when(mNativeWrapperMock.triggerSynced(anyLong())).thenReturn(false);
VibratorManagerService service = createSystemReadyService();
- CombinedVibrationEffect effect = CombinedVibrationEffect.startSynced()
+ CombinedVibration effect = CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createOneShot(10, 50))
.addVibrator(2, VibrationEffect.createOneShot(10, 100))
.combine();
@@ -809,7 +809,7 @@ public class VibratorManagerServiceTest {
fakeVibrator.setSupportedEffects(VibrationEffect.EFFECT_CLICK);
VibratorManagerService service = createSystemReadyService();
- vibrate(service, CombinedVibrationEffect.startSequential()
+ vibrate(service, CombinedVibration.startSequential()
.addNext(1, VibrationEffect.createOneShot(20, 100))
.combine(), NOTIFICATION_ATTRS);
assertTrue(waitUntil(s -> fakeVibrator.getEffectSegments().size() == 1,
@@ -822,7 +822,7 @@ public class VibratorManagerServiceTest {
assertTrue(waitUntil(s -> fakeVibrator.getEffectSegments().size() == 3,
service, TEST_TIMEOUT_MILLIS));
- vibrate(service, CombinedVibrationEffect.startSynced()
+ vibrate(service, CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.get(VibrationEffect.EFFECT_CLICK))
.combine(), ALARM_ATTRS);
assertTrue(waitUntil(s -> fakeVibrator.getEffectSegments().size() == 4,
@@ -853,7 +853,7 @@ public class VibratorManagerServiceTest {
mockVibrators(1, 2);
VibratorManagerService service = createSystemReadyService();
vibrate(service,
- CombinedVibrationEffect.startSynced()
+ CombinedVibration.startParallel()
.addVibrator(1, VibrationEffect.createOneShot(1000, 100))
.combine(),
HAPTIC_FEEDBACK_ATTRS);
@@ -941,10 +941,10 @@ public class VibratorManagerServiceTest {
private void vibrate(VibratorManagerService service, VibrationEffect effect,
VibrationAttributes attrs) {
- vibrate(service, CombinedVibrationEffect.createSynced(effect), attrs);
+ vibrate(service, CombinedVibration.createParallel(effect), attrs);
}
- private void vibrate(VibratorManagerService service, CombinedVibrationEffect effect,
+ private void vibrate(VibratorManagerService service, CombinedVibration effect,
VibrationAttributes attrs) {
service.vibrate(UID, PACKAGE_NAME, effect, attrs, "some reason", service);
}
diff --git a/tests/permission/src/com/android/framework/permission/tests/VibratorManagerServicePermissionTest.java b/tests/permission/src/com/android/framework/permission/tests/VibratorManagerServicePermissionTest.java
index fe6854316133..7cd2c23162fb 100644
--- a/tests/permission/src/com/android/framework/permission/tests/VibratorManagerServicePermissionTest.java
+++ b/tests/permission/src/com/android/framework/permission/tests/VibratorManagerServicePermissionTest.java
@@ -23,7 +23,7 @@ import static junit.framework.Assert.fail;
import android.Manifest;
import android.content.Context;
import android.os.Binder;
-import android.os.CombinedVibrationEffect;
+import android.os.CombinedVibration;
import android.os.IVibratorManagerService;
import android.os.IVibratorStateListener;
import android.os.Process;
@@ -50,8 +50,8 @@ import org.junit.runners.JUnit4;
public class VibratorManagerServicePermissionTest {
private static final String PACKAGE_NAME = "com.android.framework.permission.tests";
- private static final CombinedVibrationEffect EFFECT =
- CombinedVibrationEffect.createSynced(
+ private static final CombinedVibration EFFECT =
+ CombinedVibration.createParallel(
VibrationEffect.createOneShot(100, VibrationEffect.DEFAULT_AMPLITUDE));
private static final VibrationAttributes ATTRS = new VibrationAttributes.Builder()
.setUsage(VibrationAttributes.USAGE_ALARM)