1// Signature format: 4.0
2package androidx.core.haptics {
3
4  public final class HapticAttributes {
5    ctor @RequiresApi(android.os.Build.VERSION_CODES.LOLLIPOP) public HapticAttributes(android.media.AudioAttributes attrs);
6    ctor @RequiresApi(android.os.Build.VERSION_CODES.R) public HapticAttributes(android.os.VibrationAttributes attrs);
7    ctor public HapticAttributes(int usage);
8    ctor public HapticAttributes(int usage, optional int flags);
9    method public int getFlags();
10    method public int getUsage();
11    property public int flags;
12    property public int usage;
13    field public static final androidx.core.haptics.HapticAttributes.Companion Companion;
14    field public static final int FLAG_BYPASS_INTERRUPTION_POLICY = 1; // 0x1
15    field public static final int USAGE_ACCESSIBILITY = 66; // 0x42
16    field public static final int USAGE_ALARM = 1; // 0x1
17    field public static final int USAGE_COMMUNICATION_REQUEST = 65; // 0x41
18    field public static final int USAGE_HARDWARE_FEEDBACK = 50; // 0x32
19    field public static final int USAGE_MEDIA = 19; // 0x13
20    field public static final int USAGE_NOTIFICATION = 49; // 0x31
21    field public static final int USAGE_PHYSICAL_EMULATION = 34; // 0x22
22    field public static final int USAGE_RINGTONE = 33; // 0x21
23    field public static final int USAGE_TOUCH = 18; // 0x12
24    field public static final int USAGE_UNKNOWN = 0; // 0x0
25  }
26
27  public static final class HapticAttributes.Builder {
28    ctor @RequiresApi(android.os.Build.VERSION_CODES.LOLLIPOP) public HapticAttributes.Builder(android.media.AudioAttributes attrs);
29    ctor @RequiresApi(android.os.Build.VERSION_CODES.R) public HapticAttributes.Builder(android.os.VibrationAttributes attrs);
30    ctor public HapticAttributes.Builder(androidx.core.haptics.HapticAttributes attrs);
31    ctor public HapticAttributes.Builder(int usage);
32    method public androidx.core.haptics.HapticAttributes build();
33    method public androidx.core.haptics.HapticAttributes.Builder setFlags(int flags);
34    method public androidx.core.haptics.HapticAttributes.Builder setUsage(int usage);
35  }
36
37  public static final class HapticAttributes.Companion {
38    property public static int FLAG_BYPASS_INTERRUPTION_POLICY;
39    property public static int USAGE_ACCESSIBILITY;
40    property public static int USAGE_ALARM;
41    property public static int USAGE_COMMUNICATION_REQUEST;
42    property public static int USAGE_HARDWARE_FEEDBACK;
43    property public static int USAGE_MEDIA;
44    property public static int USAGE_NOTIFICATION;
45    property public static int USAGE_PHYSICAL_EMULATION;
46    property public static int USAGE_RINGTONE;
47    property public static int USAGE_TOUCH;
48    property public static int USAGE_UNKNOWN;
49  }
50
51  public interface HapticManager {
52    method @RequiresPermission(android.Manifest.permission.VIBRATE) public void cancel();
53    method public static androidx.core.haptics.HapticManager? create(android.content.Context context);
54    method public androidx.core.haptics.device.HapticDeviceProfile getDeviceProfile();
55    method @RequiresPermission(android.Manifest.permission.VIBRATE) public void play(androidx.core.haptics.signal.HapticSignal signal, androidx.core.haptics.HapticAttributes attrs);
56    method @RequiresPermission(android.Manifest.permission.VIBRATE) public default void play(androidx.core.haptics.signal.ResolvableSignal signal, androidx.core.haptics.HapticAttributes attrs);
57    property public abstract androidx.core.haptics.device.HapticDeviceProfile deviceProfile;
58    field public static final androidx.core.haptics.HapticManager.Companion Companion;
59  }
60
61  public static final class HapticManager.Companion {
62    method public androidx.core.haptics.HapticManager? create(android.content.Context context);
63  }
64
65}
66
67package androidx.core.haptics.device {
68
69  public final class HapticCompositionProfile {
70    ctor public HapticCompositionProfile();
71    ctor public HapticCompositionProfile(optional java.util.Set<java.lang.Integer> supportedPrimitiveTypesHint);
72    ctor public HapticCompositionProfile(optional java.util.Set<java.lang.Integer> supportedPrimitiveTypesHint, optional java.util.Map<java.lang.Integer,java.lang.Long>? primitiveDurationMillisMapHint);
73    method public long getPrimitiveDurationMillis(int primitiveType);
74    method public java.util.Set<java.lang.Integer> getSupportedPrimitiveTypes();
75    method public boolean isPrimitiveDurationReported();
76    property public boolean isPrimitiveDurationReported;
77    property public java.util.Set<java.lang.Integer> supportedPrimitiveTypes;
78  }
79
80  public final class HapticDeviceProfile {
81    ctor public HapticDeviceProfile();
82    ctor public HapticDeviceProfile(optional boolean amplitudeControlSupportHint);
83    ctor public HapticDeviceProfile(optional boolean amplitudeControlSupportHint, optional java.util.Set<androidx.core.haptics.signal.PredefinedEffectSignal> hardwareOptimizedPredefinedEffectsHint);
84    ctor public HapticDeviceProfile(optional boolean amplitudeControlSupportHint, optional java.util.Set<androidx.core.haptics.signal.PredefinedEffectSignal> hardwareOptimizedPredefinedEffectsHint, optional androidx.core.haptics.device.HapticCompositionProfile compositionProfile);
85    method public androidx.core.haptics.device.HapticCompositionProfile getCompositionProfile();
86    method public java.util.Set<androidx.core.haptics.signal.PredefinedEffectSignal> getHardwareOptimizedPredefinedEffects();
87    method public boolean isAmplitudeControlSupported();
88    method public boolean supports(androidx.core.haptics.signal.HapticSignal signal);
89    property public androidx.core.haptics.device.HapticCompositionProfile compositionProfile;
90    property public java.util.Set<androidx.core.haptics.signal.PredefinedEffectSignal> hardwareOptimizedPredefinedEffects;
91    property public boolean isAmplitudeControlSupported;
92  }
93
94}
95
96package androidx.core.haptics.extensions {
97
98  public final class HapticAttributesUtils {
99    method @RequiresApi(android.os.Build.VERSION_CODES.LOLLIPOP) public static android.media.AudioAttributes toAudioAttributes(androidx.core.haptics.HapticAttributes);
100    method @RequiresApi(android.os.Build.VERSION_CODES.R) public static android.os.VibrationAttributes toVibrationAttributes(androidx.core.haptics.HapticAttributes);
101  }
102
103}
104
105package androidx.core.haptics.signal {
106
107  public final class CompositionSignal extends androidx.core.haptics.signal.FiniteSignal {
108    ctor public CompositionSignal(java.util.List<? extends androidx.core.haptics.signal.CompositionSignal.Atom> atoms);
109    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom click();
110    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom click(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
111    method public static androidx.core.haptics.signal.CompositionSignal compositionOf(androidx.core.haptics.signal.CompositionSignal.Atom... atoms);
112    method public java.util.List<androidx.core.haptics.signal.CompositionSignal.Atom> getAtoms();
113    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom lowTick();
114    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom lowTick(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
115    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.core.haptics.signal.CompositionSignal.OffAtom off(java.time.Duration duration);
116    method public static androidx.core.haptics.signal.CompositionSignal.OffAtom off(long durationMillis);
117    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickFall();
118    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickFall(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
119    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickRise();
120    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickRise(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
121    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom slowRise();
122    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom slowRise(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
123    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom spin();
124    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom spin(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
125    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom thud();
126    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom thud(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
127    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom tick();
128    method public static androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom tick(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
129    property public java.util.List<androidx.core.haptics.signal.CompositionSignal.Atom> atoms;
130    field public static final androidx.core.haptics.signal.CompositionSignal.Companion Companion;
131  }
132
133  public abstract static class CompositionSignal.Atom {
134  }
135
136  public static final class CompositionSignal.Companion {
137    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom click();
138    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom click(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
139    method public androidx.core.haptics.signal.CompositionSignal compositionOf(androidx.core.haptics.signal.CompositionSignal.Atom... atoms);
140    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom lowTick();
141    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom lowTick(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
142    method @RequiresApi(android.os.Build.VERSION_CODES.O) public androidx.core.haptics.signal.CompositionSignal.OffAtom off(java.time.Duration duration);
143    method public androidx.core.haptics.signal.CompositionSignal.OffAtom off(long durationMillis);
144    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickFall();
145    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickFall(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
146    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickRise();
147    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom quickRise(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
148    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom slowRise();
149    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom slowRise(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
150    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom spin();
151    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom spin(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
152    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom thud();
153    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom thud(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
154    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom tick();
155    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom tick(optional @FloatRange(from=0.0, to=1.0) float amplitudeScale);
156  }
157
158  public static final class CompositionSignal.OffAtom extends androidx.core.haptics.signal.CompositionSignal.Atom {
159    method public long getDurationMillis();
160    property public long durationMillis;
161  }
162
163  public static final class CompositionSignal.PrimitiveAtom extends androidx.core.haptics.signal.CompositionSignal.Atom {
164    method public float getAmplitudeScale();
165    method public int getType();
166    method public androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom withAmplitudeScale(@FloatRange(from=0.0, to=1.0) float newAmplitudeScale);
167    property @FloatRange(from=0.0, to=1.0) public float amplitudeScale;
168    property public int type;
169    field public static final int CLICK = 1; // 0x1
170    field public static final androidx.core.haptics.signal.CompositionSignal.PrimitiveAtom.Companion Companion;
171    field public static final int LOW_TICK = 8; // 0x8
172    field public static final int QUICK_FALL = 6; // 0x6
173    field public static final int QUICK_RISE = 4; // 0x4
174    field public static final int SLOW_RISE = 5; // 0x5
175    field public static final int SPIN = 3; // 0x3
176    field public static final int THUD = 2; // 0x2
177    field public static final int TICK = 7; // 0x7
178  }
179
180  public static final class CompositionSignal.PrimitiveAtom.Companion {
181    property public static int CLICK;
182    property public static int LOW_TICK;
183    property public static int QUICK_FALL;
184    property public static int QUICK_RISE;
185    property public static int SLOW_RISE;
186    property public static int SPIN;
187    property public static int THUD;
188    property public static int TICK;
189  }
190
191  public final class FallbackChainSignal implements androidx.core.haptics.signal.ResolvableSignal {
192    ctor public FallbackChainSignal(java.util.List<? extends androidx.core.haptics.signal.ResolvableSignal> signals);
193    method public static androidx.core.haptics.signal.FallbackChainSignal fallbackChainOf(androidx.core.haptics.signal.ResolvableSignal... signals);
194    method public java.util.List<androidx.core.haptics.signal.ResolvableSignal> getSignals();
195    method public androidx.core.haptics.signal.HapticSignal? resolve(androidx.core.haptics.device.HapticDeviceProfile deviceProfile);
196    property public java.util.List<androidx.core.haptics.signal.ResolvableSignal> signals;
197    field public static final androidx.core.haptics.signal.FallbackChainSignal.Companion Companion;
198  }
199
200  public static final class FallbackChainSignal.Companion {
201    method public androidx.core.haptics.signal.FallbackChainSignal fallbackChainOf(androidx.core.haptics.signal.ResolvableSignal... signals);
202  }
203
204  public abstract class FiniteSignal extends androidx.core.haptics.signal.HapticSignal {
205  }
206
207  public abstract class HapticSignal implements androidx.core.haptics.signal.ResolvableSignal {
208    method public androidx.core.haptics.signal.HapticSignal? resolve(androidx.core.haptics.device.HapticDeviceProfile deviceProfile);
209  }
210
211  public abstract class InfiniteSignal extends androidx.core.haptics.signal.HapticSignal {
212  }
213
214  public final class PredefinedEffectSignal extends androidx.core.haptics.signal.FiniteSignal {
215    method public static androidx.core.haptics.signal.PredefinedEffectSignal predefinedClick();
216    method public static androidx.core.haptics.signal.PredefinedEffectSignal predefinedDoubleClick();
217    method public static androidx.core.haptics.signal.PredefinedEffectSignal predefinedHeavyClick();
218    method public static androidx.core.haptics.signal.PredefinedEffectSignal predefinedTick();
219    field public static final androidx.core.haptics.signal.PredefinedEffectSignal.Companion Companion;
220  }
221
222  public static final class PredefinedEffectSignal.Companion {
223    method public androidx.core.haptics.signal.PredefinedEffectSignal predefinedClick();
224    method public androidx.core.haptics.signal.PredefinedEffectSignal predefinedDoubleClick();
225    method public androidx.core.haptics.signal.PredefinedEffectSignal predefinedHeavyClick();
226    method public androidx.core.haptics.signal.PredefinedEffectSignal predefinedTick();
227  }
228
229  public final class RepeatingWaveformSignal extends androidx.core.haptics.signal.InfiniteSignal {
230    method public androidx.core.haptics.signal.WaveformSignal? getInitialWaveform();
231    method public androidx.core.haptics.signal.WaveformSignal getRepeatingWaveform();
232    property public androidx.core.haptics.signal.WaveformSignal? initialWaveform;
233    property public androidx.core.haptics.signal.WaveformSignal repeatingWaveform;
234  }
235
236  public fun interface ResolvableSignal {
237    method public androidx.core.haptics.signal.HapticSignal? resolve(androidx.core.haptics.device.HapticDeviceProfile deviceProfile);
238  }
239
240  public final class WaveformSignal extends androidx.core.haptics.signal.FiniteSignal {
241    ctor public WaveformSignal(java.util.List<? extends androidx.core.haptics.signal.WaveformSignal.Atom> atoms);
242    method public java.util.List<androidx.core.haptics.signal.WaveformSignal.Atom> getAtoms();
243    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom off(java.time.Duration duration);
244    method public static androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom off(long durationMillis);
245    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(java.time.Duration duration);
246    method @RequiresApi(android.os.Build.VERSION_CODES.O) public static androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(java.time.Duration duration, @FloatRange(from=0.0, to=1.0) float amplitude);
247    method public static androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(long durationMillis);
248    method public static androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(long durationMillis, @FloatRange(from=0.0, to=1.0) float amplitude);
249    method public androidx.core.haptics.signal.RepeatingWaveformSignal repeat();
250    method public static androidx.core.haptics.signal.RepeatingWaveformSignal repeatingWaveformOf(androidx.core.haptics.signal.WaveformSignal.Atom... atoms);
251    method public androidx.core.haptics.signal.RepeatingWaveformSignal thenRepeat(androidx.core.haptics.signal.WaveformSignal waveformToRepeat);
252    method public androidx.core.haptics.signal.RepeatingWaveformSignal thenRepeat(androidx.core.haptics.signal.WaveformSignal.Atom... atoms);
253    method public static androidx.core.haptics.signal.WaveformSignal waveformOf(androidx.core.haptics.signal.WaveformSignal.Atom... atoms);
254    property public java.util.List<androidx.core.haptics.signal.WaveformSignal.Atom> atoms;
255    field public static final androidx.core.haptics.signal.WaveformSignal.Companion Companion;
256  }
257
258  public abstract static class WaveformSignal.Atom {
259  }
260
261  public static final class WaveformSignal.Companion {
262    method @RequiresApi(android.os.Build.VERSION_CODES.O) public androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom off(java.time.Duration duration);
263    method public androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom off(long durationMillis);
264    method @RequiresApi(android.os.Build.VERSION_CODES.O) public androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(java.time.Duration duration);
265    method @RequiresApi(android.os.Build.VERSION_CODES.O) public androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(java.time.Duration duration, @FloatRange(from=0.0, to=1.0) float amplitude);
266    method public androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(long durationMillis);
267    method public androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom on(long durationMillis, @FloatRange(from=0.0, to=1.0) float amplitude);
268    method public androidx.core.haptics.signal.RepeatingWaveformSignal repeatingWaveformOf(androidx.core.haptics.signal.WaveformSignal.Atom... atoms);
269    method public androidx.core.haptics.signal.WaveformSignal waveformOf(androidx.core.haptics.signal.WaveformSignal.Atom... atoms);
270  }
271
272  public static final class WaveformSignal.ConstantVibrationAtom extends androidx.core.haptics.signal.WaveformSignal.Atom {
273    method public float getAmplitude();
274    method public long getDurationMillis();
275    property public float amplitude;
276    property public long durationMillis;
277    field public static final androidx.core.haptics.signal.WaveformSignal.ConstantVibrationAtom.Companion Companion;
278    field public static final float DEFAULT_AMPLITUDE = -1.0f;
279  }
280
281  public static final class WaveformSignal.ConstantVibrationAtom.Companion {
282    property public static float DEFAULT_AMPLITUDE;
283  }
284
285}
286
287