Make CombinedVibrationEffect constructor package-private

Also add @SuppressWarnings to this class to allow it to be abstract,
since it's only extended within the framework codebase.

Fix a missing @NonNull annotation found after building the code without
the @hide annotations.

Bug: 166586119
Test: atest CombinedVibrationEffectTest
Change-Id: I1b283c004efb7fb023099fb7f4db455b9994d600
This commit is contained in:
Lais Andrade
2020-11-09 20:28:39 +00:00
parent d399015578
commit b29f58d8a5
2 changed files with 10 additions and 16 deletions

View File

@@ -34,13 +34,14 @@ import java.util.Objects;
* @hide
* @see VibrationEffect
*/
@SuppressWarnings({"ParcelNotFinal", "ParcelCreator"}) // Parcel only extended here.
public abstract class CombinedVibrationEffect 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;
/** @hide to prevent subclassing from outside of the framework */
public CombinedVibrationEffect() {
/** Prevent subclassing from outside of the framework. */
CombinedVibrationEffect() {
}
/**
@@ -113,7 +114,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
* @see VibrationEffect#createOneShot(long, int)
*/
@NonNull
public SyncedCombination addVibrator(int vibratorId, VibrationEffect effect) {
public SyncedCombination addVibrator(int vibratorId, @NonNull VibrationEffect effect) {
mEffects.put(vibratorId, effect);
return this;
}
@@ -256,11 +257,11 @@ public abstract class CombinedVibrationEffect implements Parcelable {
public static final class Mono extends CombinedVibrationEffect {
private final VibrationEffect mEffect;
public Mono(Parcel in) {
Mono(Parcel in) {
mEffect = VibrationEffect.CREATOR.createFromParcel(in);
}
public Mono(@NonNull VibrationEffect effect) {
Mono(@NonNull VibrationEffect effect) {
mEffect = effect;
}
@@ -327,7 +328,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
/** Mapping vibrator ids to effects. */
private final SparseArray<VibrationEffect> mEffects;
public Stereo(Parcel in) {
Stereo(Parcel in) {
int size = in.readInt();
mEffects = new SparseArray<>(size);
for (int i = 0; i < size; i++) {
@@ -336,7 +337,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
}
public Stereo(@NonNull SparseArray<VibrationEffect> effects) {
Stereo(@NonNull SparseArray<VibrationEffect> effects) {
mEffects = new SparseArray<>(effects.size());
for (int i = 0; i < effects.size(); i++) {
mEffects.put(effects.keyAt(i), effects.valueAt(i));
@@ -422,7 +423,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
private final List<CombinedVibrationEffect> mEffects;
private final List<Integer> mDelays;
public Sequential(Parcel in) {
Sequential(Parcel in) {
int size = in.readInt();
mEffects = new ArrayList<>(size);
mDelays = new ArrayList<>(size);
@@ -432,7 +433,7 @@ public abstract class CombinedVibrationEffect implements Parcelable {
}
}
public Sequential(@NonNull List<CombinedVibrationEffect> effects,
Sequential(@NonNull List<CombinedVibrationEffect> effects,
@NonNull List<Integer> delays) {
mEffects = new ArrayList<>(effects);
mDelays = new ArrayList<>(delays);

View File

@@ -84,13 +84,6 @@ public class CombinedVibrationEffectTest {
() -> CombinedVibrationEffect.startSequential()
.addNext(0, INVALID_EFFECT)
.combine());
assertThrows(IllegalArgumentException.class,
() -> new CombinedVibrationEffect.Sequential(
Arrays.asList(CombinedVibrationEffect.startSequential()
.addNext(CombinedVibrationEffect.createSynced(VALID_EFFECT))
.combine()),
Arrays.asList(0))
.validate());
}
@Test