Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5a4ecb2 authored by Michael Wright's avatar Michael Wright Committed by Automerger Merge Worker
Browse files

DO NOT MERGE Remove PWLE APIs from T am: 38dc7aa5

parents 13718340 38dc7aa5
Loading
Loading
Loading
Loading
+0 −36
Original line number Diff line number Diff line
@@ -32341,9 +32341,6 @@ package android.os {
    method public static android.os.VibrationEffect createWaveform(long[], int[], int);
    method public int describeContents();
    method @NonNull public static android.os.VibrationEffect.Composition startComposition();
    method @NonNull public static android.os.VibrationEffect.WaveformBuilder startWaveform();
    method @NonNull public static android.os.VibrationEffect.WaveformBuilder startWaveform(@NonNull android.os.VibrationEffect.VibrationParameter);
    method @NonNull public static android.os.VibrationEffect.WaveformBuilder startWaveform(@NonNull android.os.VibrationEffect.VibrationParameter, @NonNull android.os.VibrationEffect.VibrationParameter);
    field @NonNull public static final android.os.Parcelable.Creator<android.os.VibrationEffect> CREATOR;
    field public static final int DEFAULT_AMPLITUDE = -1; // 0xffffffff
    field public static final int EFFECT_CLICK = 0; // 0x0
@@ -32353,13 +32350,10 @@ package android.os {
  }
  public static final class VibrationEffect.Composition {
    method @NonNull public android.os.VibrationEffect.Composition addEffect(@NonNull android.os.VibrationEffect);
    method @NonNull public android.os.VibrationEffect.Composition addOffDuration(@NonNull java.time.Duration);
    method @NonNull public android.os.VibrationEffect.Composition addPrimitive(int);
    method @NonNull public android.os.VibrationEffect.Composition addPrimitive(int, @FloatRange(from=0.0f, to=1.0f) float);
    method @NonNull public android.os.VibrationEffect.Composition addPrimitive(int, @FloatRange(from=0.0f, to=1.0f) float, @IntRange(from=0) int);
    method @NonNull public android.os.VibrationEffect compose();
    method @NonNull public android.os.VibrationEffect.Composition repeatEffectIndefinitely(@NonNull android.os.VibrationEffect);
    field public static final int PRIMITIVE_CLICK = 1; // 0x1
    field public static final int PRIMITIVE_LOW_TICK = 8; // 0x8
    field public static final int PRIMITIVE_QUICK_FALL = 6; // 0x6
@@ -32370,34 +32364,15 @@ package android.os {
    field public static final int PRIMITIVE_TICK = 7; // 0x7
  }
  public static final class VibrationEffect.Composition.UnreachableAfterRepeatingIndefinitelyException extends java.lang.IllegalStateException {
  }
  public static class VibrationEffect.VibrationParameter {
    method @NonNull public static android.os.VibrationEffect.VibrationParameter targetAmplitude(@FloatRange(from=0, to=1) float);
    method @NonNull public static android.os.VibrationEffect.VibrationParameter targetFrequency(@FloatRange(from=1) float);
  }
  public static final class VibrationEffect.WaveformBuilder {
    method @NonNull public android.os.VibrationEffect.WaveformBuilder addSustain(@NonNull java.time.Duration);
    method @NonNull public android.os.VibrationEffect.WaveformBuilder addTransition(@NonNull java.time.Duration, @NonNull android.os.VibrationEffect.VibrationParameter);
    method @NonNull public android.os.VibrationEffect.WaveformBuilder addTransition(@NonNull java.time.Duration, @NonNull android.os.VibrationEffect.VibrationParameter, @NonNull android.os.VibrationEffect.VibrationParameter);
    method @NonNull public android.os.VibrationEffect build();
  }
  public abstract class Vibrator {
    method public final int areAllEffectsSupported(@NonNull int...);
    method public final boolean areAllPrimitivesSupported(@NonNull int...);
    method @NonNull public int[] areEffectsSupported(@NonNull int...);
    method @NonNull public boolean[] arePrimitivesSupported(@NonNull int...);
    method @RequiresPermission(android.Manifest.permission.VIBRATE) public abstract void cancel();
    method @Nullable public android.os.vibrator.VibratorFrequencyProfile getFrequencyProfile();
    method public int getId();
    method @NonNull public int[] getPrimitiveDurations(@NonNull int...);
    method public float getQFactor();
    method public float getResonantFrequency();
    method public abstract boolean hasAmplitudeControl();
    method public boolean hasFrequencyControl();
    method public abstract boolean hasVibrator();
    method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long);
    method @Deprecated @RequiresPermission(android.Manifest.permission.VIBRATE) public void vibrate(long, android.media.AudioAttributes);
@@ -32725,17 +32700,6 @@ package android.os.strictmode {
}
package android.os.vibrator {
  public final class VibratorFrequencyProfile {
    method public float getMaxAmplitudeMeasurementInterval();
    method @FloatRange(from=0, to=1) @NonNull public float[] getMaxAmplitudeMeasurements();
    method public float getMaxFrequency();
    method public float getMinFrequency();
  }
}
package android.preference {
  @Deprecated public class CheckBoxPreference extends android.preference.TwoStatePreference {
+35 −0
Original line number Diff line number Diff line
@@ -1871,6 +1871,9 @@ package android.os {
    method public static android.os.VibrationEffect get(int, boolean);
    method @Nullable public static android.os.VibrationEffect get(android.net.Uri, android.content.Context);
    method public abstract long getDuration();
    method @NonNull public static android.os.VibrationEffect.WaveformBuilder startWaveform();
    method @NonNull public static android.os.VibrationEffect.WaveformBuilder startWaveform(@NonNull android.os.VibrationEffect.VibrationParameter);
    method @NonNull public static android.os.VibrationEffect.WaveformBuilder startWaveform(@NonNull android.os.VibrationEffect.VibrationParameter, @NonNull android.os.VibrationEffect.VibrationParameter);
    field public static final int EFFECT_POP = 4; // 0x4
    field public static final int EFFECT_STRENGTH_LIGHT = 0; // 0x0
    field public static final int EFFECT_STRENGTH_MEDIUM = 1; // 0x1
@@ -1888,8 +1891,33 @@ package android.os {
    field @NonNull public static final android.os.Parcelable.Creator<android.os.VibrationEffect.Composed> CREATOR;
  }

  public static final class VibrationEffect.Composition {
    method @NonNull public android.os.VibrationEffect.Composition addEffect(@NonNull android.os.VibrationEffect);
    method @NonNull public android.os.VibrationEffect.Composition addOffDuration(@NonNull java.time.Duration);
    method @NonNull public android.os.VibrationEffect.Composition repeatEffectIndefinitely(@NonNull android.os.VibrationEffect);
  }

  public static final class VibrationEffect.Composition.UnreachableAfterRepeatingIndefinitelyException extends java.lang.IllegalStateException {
  }

  public static class VibrationEffect.VibrationParameter {
    method @NonNull public static android.os.VibrationEffect.VibrationParameter targetAmplitude(@FloatRange(from=0, to=1) float);
    method @NonNull public static android.os.VibrationEffect.VibrationParameter targetFrequency(@FloatRange(from=1) float);
  }

  public static final class VibrationEffect.WaveformBuilder {
    method @NonNull public android.os.VibrationEffect.WaveformBuilder addSustain(@NonNull java.time.Duration);
    method @NonNull public android.os.VibrationEffect.WaveformBuilder addTransition(@NonNull java.time.Duration, @NonNull android.os.VibrationEffect.VibrationParameter);
    method @NonNull public android.os.VibrationEffect.WaveformBuilder addTransition(@NonNull java.time.Duration, @NonNull android.os.VibrationEffect.VibrationParameter, @NonNull android.os.VibrationEffect.VibrationParameter);
    method @NonNull public android.os.VibrationEffect build();
  }

  public abstract class Vibrator {
    method public int getDefaultVibrationIntensity(int);
    method @Nullable public android.os.vibrator.VibratorFrequencyProfile getFrequencyProfile();
    method public float getQFactor();
    method public float getResonantFrequency();
    method public boolean hasFrequencyControl();
    field public static final int VIBRATION_INTENSITY_HIGH = 3; // 0x3
    field public static final int VIBRATION_INTENSITY_LOW = 1; // 0x1
    field public static final int VIBRATION_INTENSITY_MEDIUM = 2; // 0x2
@@ -2074,6 +2102,13 @@ package android.os.vibrator {
    field @NonNull public static final android.os.Parcelable.Creator<android.os.vibrator.VibrationEffectSegment> CREATOR;
  }

  public final class VibratorFrequencyProfile {
    method public float getMaxAmplitudeMeasurementInterval();
    method @FloatRange(from=0, to=1) @NonNull public float[] getMaxAmplitudeMeasurements();
    method public float getMaxFrequency();
    method public float getMinFrequency();
  }

}

package android.permission {
+18 −0
Original line number Diff line number Diff line
@@ -413,8 +413,10 @@ public abstract class VibrationEffect implements Parcelable {
     * {@link #startWaveform(VibrationEffect.VibrationParameter)}.
     *
     * @see VibrationEffect.WaveformBuilder
     * @hide
     */
    @NonNull
    @TestApi
    public static WaveformBuilder startWaveform() {
        return new WaveformBuilder();
    }
@@ -431,8 +433,10 @@ public abstract class VibrationEffect implements Parcelable {
     * @return The {@link VibrationEffect.WaveformBuilder} started with the initial parameters.
     *
     * @see VibrationEffect.WaveformBuilder
     * @hide
     */
    @NonNull
    @TestApi
    public static WaveformBuilder startWaveform(@NonNull VibrationParameter initialParameter) {
        WaveformBuilder builder = startWaveform();
        builder.addTransition(Duration.ZERO, initialParameter);
@@ -454,8 +458,10 @@ public abstract class VibrationEffect implements Parcelable {
     * @return The {@link VibrationEffect.WaveformBuilder} started with the initial parameters.
     *
     * @see VibrationEffect.WaveformBuilder
     * @hide
     */
    @NonNull
    @TestApi
    public static WaveformBuilder startWaveform(@NonNull VibrationParameter initialParameter1,
            @NonNull VibrationParameter initialParameter2) {
        WaveformBuilder builder = startWaveform();
@@ -869,7 +875,9 @@ public abstract class VibrationEffect implements Parcelable {
        /**
         * Exception thrown when adding an element to a {@link Composition} that already ends in an
         * indefinitely repeating effect.
         * @hide
         */
        @TestApi
        public static final class UnreachableAfterRepeatingIndefinitelyException
                extends IllegalStateException {
            UnreachableAfterRepeatingIndefinitelyException() {
@@ -938,8 +946,10 @@ public abstract class VibrationEffect implements Parcelable {
         *
         * @throws UnreachableAfterRepeatingIndefinitelyException if the composition is currently
         * ending with a repeating effect.
         * @hide
         */
        @NonNull
        @TestApi
        public Composition addOffDuration(@NonNull Duration duration) {
            int durationMs = (int) duration.toMillis();
            Preconditions.checkArgumentNonnegative(durationMs, "Off period must be non-negative");
@@ -965,8 +975,10 @@ public abstract class VibrationEffect implements Parcelable {
         *
         * @throws UnreachableAfterRepeatingIndefinitelyException if the composition is currently
         * ending with a repeating effect.
         * @hide
         */
        @NonNull
        @TestApi
        public Composition addEffect(@NonNull VibrationEffect effect) {
            return addSegments(effect);
        }
@@ -987,8 +999,10 @@ public abstract class VibrationEffect implements Parcelable {
         * @throws IllegalArgumentException if the given effect is already repeating indefinitely.
         * @throws UnreachableAfterRepeatingIndefinitelyException if the composition is currently
         * ending with a repeating effect.
         * @hide
         */
        @NonNull
        @TestApi
        public Composition repeatEffectIndefinitely(@NonNull VibrationEffect effect) {
            Preconditions.checkArgument(effect.getDuration() < Long.MAX_VALUE,
                    "Can't repeat an indefinitely repeating effect. Consider addEffect instead.");
@@ -1202,7 +1216,9 @@ public abstract class VibrationEffect implements Parcelable {
     *     .build();}</pre>
     *
     * @see VibrationEffect#startWaveform
     * @hide
     */
    @TestApi
    public static final class WaveformBuilder {
        // Epsilon used for float comparison of amplitude and frequency values on transitions.
        private static final float EPSILON = 1e-5f;
@@ -1383,8 +1399,10 @@ public abstract class VibrationEffect implements Parcelable {
     * <p>Examples of concrete parameters are the vibration amplitude or frequency.
     *
     * @see VibrationEffect.WaveformBuilder
     * @hide
     */
    @SuppressWarnings("UserHandleName") // This is not a regular set of parameters, no *Params.
    @TestApi
    public static class VibrationParameter {
        VibrationParameter() {
        }
+8 −0
Original line number Diff line number Diff line
@@ -212,7 +212,9 @@ public abstract class Vibrator {
     *
     * @return True if the hardware can control the frequency of the vibrations independently of
     * the vibration amplitude, false otherwise.
     * @hide
     */
    @TestApi
    public boolean hasFrequencyControl() {
        // We currently can only control frequency of the vibration using the compose PWLE method.
        return getInfo().hasCapability(
@@ -236,7 +238,9 @@ public abstract class Vibrator {
     * @return the resonant frequency of the vibrator, or {@link Float#NaN NaN} if it's unknown, not
     * applicable, or if this vibrator is a composite of multiple physical devices with different
     * frequencies.
     * @hide
     */
    @TestApi
    public float getResonantFrequency() {
        return getInfo().getResonantFrequencyHz();
    }
@@ -247,7 +251,9 @@ public abstract class Vibrator {
     * @return the Q factor of the vibrator, or {@link Float#NaN NaN} if it's unknown, not
     * applicable, or if this vibrator is a composite of multiple physical devices with different
     * Q factors.
     * @hide
     */
    @TestApi
    public float getQFactor() {
        return getInfo().getQFactor();
    }
@@ -262,7 +268,9 @@ public abstract class Vibrator {
     * frequency control. If this vibrator is a composite of multiple physical devices then this
     * will return a profile supported in all devices, or null if the intersection is empty or not
     * available.
     * @hide
     */
    @TestApi
    @Nullable
    public VibratorFrequencyProfile getFrequencyProfile() {
        VibratorInfo.FrequencyProfile frequencyProfile = getInfo().getFrequencyProfile();
+3 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package android.os.vibrator;

import android.annotation.FloatRange;
import android.annotation.NonNull;
import android.annotation.TestApi;
import android.os.VibratorInfo;

import com.android.internal.util.Preconditions;
@@ -38,7 +39,9 @@ import com.android.internal.util.Preconditions;
 * frequency increment between each pair of amplitude values.
 *
 * <p>Vibrators without independent frequency control do not have a frequency profile.
 * @hide
 */
@TestApi
public final class VibratorFrequencyProfile {

    private final VibratorInfo.FrequencyProfile mFrequencyProfile;