@capawesome/capacitor-haptics 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CapawesomeCapacitorHaptics.podspec +17 -0
  2. package/LICENSE +21 -0
  3. package/Package.swift +28 -0
  4. package/README.md +457 -0
  5. package/android/build.gradle +58 -0
  6. package/android/src/main/AndroidManifest.xml +3 -0
  7. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/Haptics.java +284 -0
  8. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/HapticsPlugin.java +239 -0
  9. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/CustomException.java +20 -0
  10. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/CustomExceptions.java +18 -0
  11. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/options/ImpactOptions.java +24 -0
  12. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/options/NotificationOptions.java +24 -0
  13. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/options/PerformAndroidHapticOptions.java +29 -0
  14. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/options/PlayPatternOptions.java +89 -0
  15. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/options/VibrateOptions.java +26 -0
  16. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/classes/results/IsAvailableResult.java +22 -0
  17. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/interfaces/Callback.java +5 -0
  18. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/interfaces/EmptyCallback.java +5 -0
  19. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/interfaces/NonEmptyResultCallback.java +7 -0
  20. package/android/src/main/java/io/capawesome/capacitorjs/plugins/haptics/interfaces/Result.java +7 -0
  21. package/android/src/main/res/.gitkeep +0 -0
  22. package/dist/docs.json +665 -0
  23. package/dist/esm/definitions.d.ts +363 -0
  24. package/dist/esm/definitions.js +150 -0
  25. package/dist/esm/definitions.js.map +1 -0
  26. package/dist/esm/index.d.ts +4 -0
  27. package/dist/esm/index.js +7 -0
  28. package/dist/esm/index.js.map +1 -0
  29. package/dist/esm/web.d.ts +21 -0
  30. package/dist/esm/web.js +100 -0
  31. package/dist/esm/web.js.map +1 -0
  32. package/dist/plugin.cjs.js +263 -0
  33. package/dist/plugin.cjs.js.map +1 -0
  34. package/dist/plugin.js +266 -0
  35. package/dist/plugin.js.map +1 -0
  36. package/ios/Plugin/Classes/Options/ImpactOptions.swift +29 -0
  37. package/ios/Plugin/Classes/Options/NotificationOptions.swift +25 -0
  38. package/ios/Plugin/Classes/Options/PlayPatternOptions.swift +54 -0
  39. package/ios/Plugin/Classes/Results/IsAvailableResult.swift +16 -0
  40. package/ios/Plugin/Enums/CustomError.swift +50 -0
  41. package/ios/Plugin/Haptics.swift +115 -0
  42. package/ios/Plugin/HapticsPlugin.swift +155 -0
  43. package/ios/Plugin/Info.plist +24 -0
  44. package/ios/Plugin/Protocols/Result.swift +5 -0
  45. package/package.json +96 -0
@@ -0,0 +1,89 @@
1
+ package io.capawesome.capacitorjs.plugins.haptics.classes.options;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSArray;
5
+ import com.getcapacitor.PluginCall;
6
+ import io.capawesome.capacitorjs.plugins.haptics.classes.CustomExceptions;
7
+ import java.util.ArrayList;
8
+ import java.util.List;
9
+ import org.json.JSONObject;
10
+
11
+ public class PlayPatternOptions {
12
+
13
+ public static class Event {
14
+
15
+ private final long durationMs;
16
+ private final float intensity;
17
+ private final long timeMs;
18
+
19
+ public Event(long durationMs, float intensity, long timeMs) {
20
+ this.durationMs = durationMs;
21
+ this.intensity = intensity;
22
+ this.timeMs = timeMs;
23
+ }
24
+
25
+ public long getDurationMs() {
26
+ return durationMs;
27
+ }
28
+
29
+ public float getIntensity() {
30
+ return intensity;
31
+ }
32
+
33
+ public long getTimeMs() {
34
+ return timeMs;
35
+ }
36
+
37
+ public boolean isTransient() {
38
+ return durationMs == 0;
39
+ }
40
+ }
41
+
42
+ @NonNull
43
+ private final List<Event> events;
44
+
45
+ public PlayPatternOptions(@NonNull PluginCall call) throws Exception {
46
+ this.events = PlayPatternOptions.getEventsFromCall(call);
47
+ }
48
+
49
+ @NonNull
50
+ public List<Event> getEvents() {
51
+ return events;
52
+ }
53
+
54
+ @NonNull
55
+ private static List<Event> getEventsFromCall(@NonNull PluginCall call) throws Exception {
56
+ JSArray eventsArray = call.getArray("events");
57
+ if (eventsArray == null || eventsArray.length() == 0) {
58
+ throw CustomExceptions.EVENTS_MISSING;
59
+ }
60
+ List<Event> events = new ArrayList<>();
61
+ for (int index = 0; index < eventsArray.length(); index++) {
62
+ JSONObject eventObject = eventsArray.getJSONObject(index);
63
+ if (!eventObject.has("time")) {
64
+ throw CustomExceptions.TIME_MISSING;
65
+ }
66
+ double time = eventObject.getDouble("time");
67
+ if (time < 0) {
68
+ throw CustomExceptions.TIME_INVALID;
69
+ }
70
+ if (!eventObject.has("intensity")) {
71
+ throw CustomExceptions.INTENSITY_MISSING;
72
+ }
73
+ double intensity = eventObject.getDouble("intensity");
74
+ if (intensity < 0 || intensity > 1) {
75
+ throw CustomExceptions.INTENSITY_INVALID;
76
+ }
77
+ long durationMs = 0;
78
+ if (eventObject.has("duration")) {
79
+ double duration = eventObject.getDouble("duration");
80
+ if (duration <= 0) {
81
+ throw CustomExceptions.DURATION_INVALID;
82
+ }
83
+ durationMs = Math.round(duration * 1000);
84
+ }
85
+ events.add(new Event(durationMs, (float) intensity, Math.round(time * 1000)));
86
+ }
87
+ return events;
88
+ }
89
+ }
@@ -0,0 +1,26 @@
1
+ package io.capawesome.capacitorjs.plugins.haptics.classes.options;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.PluginCall;
5
+ import io.capawesome.capacitorjs.plugins.haptics.classes.CustomExceptions;
6
+
7
+ public class VibrateOptions {
8
+
9
+ private final long duration;
10
+
11
+ public VibrateOptions(@NonNull PluginCall call) throws Exception {
12
+ this.duration = VibrateOptions.getDurationFromCall(call);
13
+ }
14
+
15
+ public long getDuration() {
16
+ return duration;
17
+ }
18
+
19
+ private static long getDurationFromCall(@NonNull PluginCall call) throws Exception {
20
+ int duration = call.getInt("duration", 300);
21
+ if (duration <= 0) {
22
+ throw CustomExceptions.DURATION_INVALID;
23
+ }
24
+ return duration;
25
+ }
26
+ }
@@ -0,0 +1,22 @@
1
+ package io.capawesome.capacitorjs.plugins.haptics.classes.results;
2
+
3
+ import androidx.annotation.NonNull;
4
+ import com.getcapacitor.JSObject;
5
+ import io.capawesome.capacitorjs.plugins.haptics.interfaces.Result;
6
+
7
+ public class IsAvailableResult implements Result {
8
+
9
+ private final boolean available;
10
+
11
+ public IsAvailableResult(boolean available) {
12
+ this.available = available;
13
+ }
14
+
15
+ @Override
16
+ @NonNull
17
+ public JSObject toJSObject() {
18
+ JSObject result = new JSObject();
19
+ result.put("available", available);
20
+ return result;
21
+ }
22
+ }
@@ -0,0 +1,5 @@
1
+ package io.capawesome.capacitorjs.plugins.haptics.interfaces;
2
+
3
+ public interface Callback {
4
+ void error(Exception exception);
5
+ }
@@ -0,0 +1,5 @@
1
+ package io.capawesome.capacitorjs.plugins.haptics.interfaces;
2
+
3
+ public interface EmptyCallback extends Callback {
4
+ void success();
5
+ }
@@ -0,0 +1,7 @@
1
+ package io.capawesome.capacitorjs.plugins.haptics.interfaces;
2
+
3
+ import androidx.annotation.NonNull;
4
+
5
+ public interface NonEmptyResultCallback<T extends Result> extends Callback {
6
+ void success(@NonNull T result);
7
+ }
@@ -0,0 +1,7 @@
1
+ package io.capawesome.capacitorjs.plugins.haptics.interfaces;
2
+
3
+ import com.getcapacitor.JSObject;
4
+
5
+ public interface Result {
6
+ JSObject toJSObject();
7
+ }
File without changes