package no.naiv.tiltshift.util import android.content.Context import android.os.VibrationEffect import android.os.VibratorManager /** * Provides haptic feedback for user interactions. */ class HapticFeedback(private val context: Context) { private val vibrator by lazy { val vibratorManager = context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE) as VibratorManager vibratorManager.defaultVibrator } /** * Light tick for UI feedback (button press, slider change). */ fun tick() { vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_TICK)) } /** * Click feedback for confirmations. */ fun click() { vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_CLICK)) } /** * Heavy click for important actions (photo capture). */ fun heavyClick() { vibrator.vibrate(VibrationEffect.createPredefined(VibrationEffect.EFFECT_HEAVY_CLICK)) } /** * Success feedback pattern. */ fun success() { val timings = longArrayOf(0, 30, 50, 30) val amplitudes = intArrayOf(0, 100, 0, 200) vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, -1)) } /** * Error feedback pattern. */ fun error() { val timings = longArrayOf(0, 50, 30, 50, 30, 50) val amplitudes = intArrayOf(0, 150, 0, 150, 0, 150) vibrator.vibrate(VibrationEffect.createWaveform(timings, amplitudes, -1)) } }