OverviewPrzegląd
The Haptics module provides a simple, unified API for haptic feedback (vibrations)
across all Android versions. It handles the complexity of different APIs and
provides predefined patterns for common use cases.
Moduł Haptics zapewnia prosty, zunifikowany API do wibracji haptic
dla wszystkich wersji Androida. Obsługuje złożoność różnych API i
udostępnia predefiniowane wzorce dla popularnych przypadków użycia.
Basic UsagePodstawowe użycie
// Simple vibration / Prosta wibracja
ADict.Haptics.vibrate(100) // 100ms
// With intensity / Z intensywnością
ADict.Haptics.vibrate(200, Haptics.Intensity.STRONG)
// Predefined feedback / Predefiniowany feedback
ADict.Haptics.click()
ADict.Haptics.success()
ADict.Haptics.error()
ADict.Haptics.warning()
Predefined PatternsPredefiniowane wzorce
| MethodMetoda |
DescriptionOpis |
Use CaseZastosowanie |
click() |
Light click feedbackLekkie kliknięcie |
Button tapsTapnięcia przycisków |
doubleClick() |
Double tap feedbackPodwójne tapnięcie |
Double tap actionsAkcje podwójnego tapnięcia |
tick() |
Very light tickBardzo lekkie tknięcie |
Scrolling, selectionsScrollowanie, zaznaczanie |
success() |
Success patternWzorzec sukcesu |
Completed actionsUkończone akcje |
error() |
Error patternWzorzec błędu |
Failed actionsNieudane akcje |
warning() |
Warning patternWzorzec ostrzeżenia |
Alerts, warningsAlerty, ostrzeżenia |
notification() |
Notification patternWzorzec powiadomienia |
New notificationsNowe powiadomienia |
heartbeat() |
Heartbeat patternWzorzec bicia serca |
Timers, countdownsTimery, odliczanie |
longPress() |
Long press feedbackFeedback długiego naciśnięcia |
Long press actionsAkcje długiego naciśnięcia |
View ExtensionsRozszerzenia widoków
import rip.nerd.adictlibrary.modules.setOnClickWithHaptic
import rip.nerd.adictlibrary.modules.hapticClick
// Extension function for click with haptic
button.setOnClickWithHaptic {
doSomething()
}
// Manual haptic on view
button.setOnClickListener { view ->
view.hapticClick()
doSomething()
}
// Long press with haptic
button.setOnLongClickWithHaptic {
doLongPressAction()
true
}
Custom PatternsWłasne wzorce
// Custom vibration pattern
// timings: [delay, vibrate, pause, vibrate, ...]
ADict.Haptics.pattern(
timings = longArrayOf(0, 100, 50, 100, 50, 200),
amplitudes = intArrayOf(0, 150, 0, 200, 0, 255) // API 26+
)
// Play predefined pattern enum
ADict.Haptics.play(Haptics.Pattern.HEARTBEAT)
System Effects (API 29+)Efekty systemowe (API 29+)
// Use system predefined effects for best quality
ADict.Haptics.systemClick()
ADict.Haptics.systemDoubleClick()
ADict.Haptics.systemHeavyClick()
ADict.Haptics.systemTick()
ConfigurationKonfiguracja
// Configure global settings / Konfiguracja globalna
ADict.Haptics.configure(
enabled = true,
defaultIntensity = Haptics.Intensity.MEDIUM
)
// Enable/disable haptics / Włącz/wyłącz
ADict.Haptics.setEnabled(false)
// Check if available / Sprawdź dostępność
if (ADict.Haptics.isAvailable()) {
ADict.Haptics.click()
}
Intensity LevelsPoziomy intensywności
| LevelPoziom |
AmplitudeAmplituda |
DescriptionOpis |
LIGHT |
50 |
Subtle feedbackSubtelny feedback |
MEDIUM |
128 |
Standard feedback (default)Standardowy feedback (domyślny) |
STRONG |
255 |
Strong feedbackSilny feedback |
Integration with Other ModulesIntegracja z innymi modułami
// With Achievements / Z osiągnięciami
ADict.Achievements.unlock("first_win") { achievement ->
ADict.Haptics.success()
showAchievementPopup(achievement)
}
// With Timer / Z timerem
ADict.Timer.countdown("game", 10_000) {
onTick = { remaining ->
if (remaining <= 3000) {
ADict.Haptics.tick()
}
}
onFinish = {
ADict.Haptics.notification()
}
}
// With ReviewTrap / Z ReviewTrap
ADict.ReviewTrap.prompt(activity) { event ->
when (event) {
is ReviewTrap.Event.LikedYes -> ADict.Haptics.success()
is ReviewTrap.Event.DislikedNo -> ADict.Haptics.error()
}
}