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