From 9e135e562b4eac8529bd29a1ecab8a4bcb98c558 Mon Sep 17 00:00:00 2001 From: Quan Nguyen Date: Fri, 10 Jan 2025 09:41:26 -0300 Subject: [PATCH] Feat impact with intensity --- README.md | 8 ++++++++ .../com/margelo/nitro/nitrohaptics/HybridHaptics.kt | 6 ++++++ example/App.tsx | 4 ++++ ios/HybridHaptics.swift | 12 ++++++++++++ .../android/NitroHaptics+autolinking.cmake | 2 +- .../android/NitroHaptics+autolinking.gradle | 2 +- nitrogen/generated/android/NitroHapticsOnLoad.cpp | 2 +- nitrogen/generated/android/NitroHapticsOnLoad.hpp | 2 +- .../generated/android/c++/JHybridHapticsSpec.cpp | 6 +++++- .../generated/android/c++/JHybridHapticsSpec.hpp | 3 ++- .../generated/android/c++/JImpactFeedbackStyle.hpp | 2 +- .../android/c++/JNotificationFeedbackType.hpp | 2 +- .../com/margelo/nitro/haptics/HybridHapticsSpec.kt | 6 +++++- .../margelo/nitro/haptics/ImpactFeedbackStyle.kt | 2 +- .../nitro/haptics/NotificationFeedbackType.kt | 2 +- nitrogen/generated/ios/NitroHaptics+autolinking.rb | 2 +- .../generated/ios/NitroHaptics-Swift-Cxx-Bridge.cpp | 2 +- .../generated/ios/NitroHaptics-Swift-Cxx-Bridge.hpp | 2 +- .../ios/NitroHaptics-Swift-Cxx-Umbrella.hpp | 2 +- nitrogen/generated/ios/NitroHapticsAutolinking.mm | 2 +- .../generated/ios/NitroHapticsAutolinking.swift | 2 +- .../generated/ios/c++/HybridHapticsSpecSwift.cpp | 2 +- .../generated/ios/c++/HybridHapticsSpecSwift.hpp | 8 +++++++- .../generated/ios/swift/HybridHapticsSpec.swift | 3 ++- .../generated/ios/swift/HybridHapticsSpec_cxx.swift | 13 ++++++++++++- .../generated/ios/swift/ImpactFeedbackStyle.swift | 2 +- .../ios/swift/NotificationFeedbackType.swift | 2 +- nitrogen/generated/shared/c++/HybridHapticsSpec.cpp | 3 ++- nitrogen/generated/shared/c++/HybridHapticsSpec.hpp | 3 ++- .../generated/shared/c++/ImpactFeedbackStyle.hpp | 2 +- .../shared/c++/NotificationFeedbackType.hpp | 2 +- src/specs/Haptics.nitro.ts | 1 + 32 files changed, 87 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 5106157..09b6f65 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,14 @@ Notification haptics provide feedback about the outcome of a task or action, suc Selection haptics provide feedback while the values of a UI element are changing, see [HIG for visualization](https://developer.apple.com/design/human-interface-guidelines/playing-haptics#Selection). +### `Haptics.impactWithIntensity(style: 'light' | 'medium' | 'heavy' | 'soft' | 'rigid', intensity: number)` + +**This function is not supported on Android** + +The `impactWithIntensity` provides haptic feedback with a customizable intensity level. This allows to adjust the strength of the haptic feedback based on the needs of the application, offering a more refined and dynamic user experience. + +`intensity`: A number between `0.0` and `1` that determines the strength of the haptic feedback, see [Triggers impact feedback with a specific intensity](https://developer.apple.com/documentation/uikit/uiimpactfeedbackgenerator/impactoccurred(intensity:)) + ## License MIT diff --git a/android/src/main/java/com/margelo/nitro/nitrohaptics/HybridHaptics.kt b/android/src/main/java/com/margelo/nitro/nitrohaptics/HybridHaptics.kt index a3f099f..b5ae60e 100644 --- a/android/src/main/java/com/margelo/nitro/nitrohaptics/HybridHaptics.kt +++ b/android/src/main/java/com/margelo/nitro/nitrohaptics/HybridHaptics.kt @@ -105,6 +105,12 @@ class HybridHaptics: HybridHapticsSpec() { vibrate(selectionType) } + @DoNotStrip + @Keep + override fun impactWithIntensity(style: ImpactFeedbackStyle, intensity: Double): Unit { + Log.e("Haptics", "impactWithIntensity is unsupported on Android") + } + override val memorySize: Long get() = 0L diff --git a/example/App.tsx b/example/App.tsx index 9fa0d23..12a1cbb 100644 --- a/example/App.tsx +++ b/example/App.tsx @@ -47,6 +47,10 @@ function App(): React.JSX.Element { onPress={() => Haptics.notification('warning')} />