react-native-video-trim 4.1.0 → 5.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 (99) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +89 -76
  3. package/VideoTrim.podspec +3 -3
  4. package/android/build.gradle +6 -53
  5. package/android/gradle.properties +1 -1
  6. package/android/src/main/AndroidManifest.xml +1 -1
  7. package/android/src/main/java/com/{margelo/nitro/videotrim/VideoTrim.kt → videotrim/VideoTrimModule.kt} +246 -232
  8. package/android/src/main/java/com/videotrim/VideoTrimPackage.kt +33 -0
  9. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/enums/ErrorCode.java +1 -1
  10. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/interfaces/IVideoTrimmerView.java +1 -1
  11. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/interfaces/VideoTrimListener.java +5 -4
  12. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/MediaMetadataUtil.java +1 -1
  13. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/StorageUtil.java +1 -1
  14. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/utils/VideoTrimmerUtil.java +20 -18
  15. package/android/src/main/java/com/{margelo/nitro/videotrim → videotrim}/widgets/VideoTrimmerView.java +44 -45
  16. package/ios/AssetLoader.h +19 -0
  17. package/ios/AssetLoader.mm +87 -0
  18. package/ios/ErrorCode.h +9 -0
  19. package/ios/ProgressAlertController.h +15 -0
  20. package/ios/ProgressAlertController.mm +78 -0
  21. package/ios/VideoTrim.h +31 -0
  22. package/ios/VideoTrim.mm +663 -0
  23. package/ios/VideoTrimmer.h +67 -0
  24. package/ios/VideoTrimmer.mm +863 -0
  25. package/ios/VideoTrimmerThumb.h +23 -0
  26. package/ios/VideoTrimmerThumb.mm +175 -0
  27. package/ios/VideoTrimmerViewController.h +52 -0
  28. package/ios/VideoTrimmerViewController.mm +533 -0
  29. package/lib/module/NativeVideoTrim.js +5 -0
  30. package/lib/module/NativeVideoTrim.js.map +1 -0
  31. package/lib/module/index.js +24 -24
  32. package/lib/module/index.js.map +1 -1
  33. package/lib/typescript/src/NativeVideoTrim.d.ts +107 -0
  34. package/lib/typescript/src/NativeVideoTrim.d.ts.map +1 -0
  35. package/lib/typescript/src/index.d.ts +16 -10
  36. package/lib/typescript/src/index.d.ts.map +1 -1
  37. package/package.json +15 -18
  38. package/src/NativeVideoTrim.ts +113 -0
  39. package/src/index.tsx +29 -31
  40. package/android/CMakeLists.txt +0 -24
  41. package/android/src/main/cpp/cpp-adapter.cpp +0 -6
  42. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +0 -22
  43. package/ios/AssetLoader.swift +0 -99
  44. package/ios/ErrorCode.swift +0 -17
  45. package/ios/ProgressAlertController.swift +0 -100
  46. package/ios/VideoTrim.swift +0 -67
  47. package/ios/VideoTrimImpl.swift +0 -957
  48. package/ios/VideoTrimmer.swift +0 -872
  49. package/ios/VideoTrimmerThumb.swift +0 -175
  50. package/ios/VideoTrimmerViewController.swift +0 -557
  51. package/lib/module/VideoTrim.nitro.js +0 -4
  52. package/lib/module/VideoTrim.nitro.js.map +0 -1
  53. package/lib/typescript/src/VideoTrim.nitro.d.ts +0 -257
  54. package/lib/typescript/src/VideoTrim.nitro.d.ts.map +0 -1
  55. package/nitrogen/generated/android/c++/JEditorConfig.hpp +0 -237
  56. package/nitrogen/generated/android/c++/JFileValidationResult.hpp +0 -61
  57. package/nitrogen/generated/android/c++/JFunc_void.hpp +0 -74
  58. package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +0 -89
  59. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +0 -151
  60. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +0 -68
  61. package/nitrogen/generated/android/c++/JTrimOptions.hpp +0 -109
  62. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +0 -72
  63. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +0 -28
  64. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +0 -80
  65. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +0 -80
  66. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +0 -86
  67. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +0 -40
  68. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +0 -35
  69. package/nitrogen/generated/android/videotrim+autolinking.cmake +0 -78
  70. package/nitrogen/generated/android/videotrim+autolinking.gradle +0 -27
  71. package/nitrogen/generated/android/videotrimOnLoad.cpp +0 -50
  72. package/nitrogen/generated/android/videotrimOnLoad.hpp +0 -25
  73. package/nitrogen/generated/ios/VideoTrim+autolinking.rb +0 -60
  74. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +0 -96
  75. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +0 -374
  76. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +0 -56
  77. package/nitrogen/generated/ios/VideoTrimAutolinking.mm +0 -33
  78. package/nitrogen/generated/ios/VideoTrimAutolinking.swift +0 -25
  79. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +0 -11
  80. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +0 -127
  81. package/nitrogen/generated/ios/swift/EditorConfig.swift +0 -541
  82. package/nitrogen/generated/ios/swift/FileValidationResult.swift +0 -57
  83. package/nitrogen/generated/ios/swift/Func_void.swift +0 -46
  84. package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +0 -46
  85. package/nitrogen/generated/ios/swift/Func_void_bool.swift +0 -46
  86. package/nitrogen/generated/ios/swift/Func_void_double.swift +0 -46
  87. package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +0 -46
  88. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +0 -46
  89. package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +0 -54
  90. package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +0 -46
  91. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +0 -54
  92. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +0 -241
  93. package/nitrogen/generated/ios/swift/TrimOptions.swift +0 -189
  94. package/nitrogen/generated/shared/c++/EditorConfig.hpp +0 -253
  95. package/nitrogen/generated/shared/c++/FileValidationResult.hpp +0 -77
  96. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +0 -27
  97. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +0 -80
  98. package/nitrogen/generated/shared/c++/TrimOptions.hpp +0 -125
  99. package/src/VideoTrim.nitro.ts +0 -263
@@ -1,257 +0,0 @@
1
- import type { HybridObject } from 'react-native-nitro-modules';
2
- export interface BaseOptions {
3
- /**
4
- * Save the output file to Photos Library. Only video is supported. Note that you have to make sure you have permission to save to Photos Library.
5
- * @default false
6
- */
7
- saveToPhoto: boolean;
8
- /**
9
- * Type of the file to edit. If video file, recommend to use `video`. If audio file, recommend to use `audio`.
10
- * @default "video"
11
- */
12
- type: string;
13
- /**
14
- * Output file extension. If video file, recommend to use `mp4` or `mov`. If audio file, recommend to use `wav` or `m4a`.
15
- * @default "mp4"
16
- * @example "mp4", "mov", "wav", "m4a", "3gp", "avi", "mkv", "flv", "wmv", "webm"
17
- */
18
- outputExt: string;
19
- /**
20
- * Whether to open Documents app after finish editing
21
- * @default false
22
- */
23
- openDocumentsOnFinish: boolean;
24
- /**
25
- * Whether to open Share Sheet after finish editing
26
- * @default false
27
- */
28
- openShareSheetOnFinish: boolean;
29
- /**
30
- * Remove the file after saved to Photos Library
31
- * @default false
32
- */
33
- removeAfterSavedToPhoto: boolean;
34
- /**
35
- * Remove the file after failed to save to Photos Library
36
- * @default false
37
- */
38
- removeAfterFailedToSavePhoto: boolean;
39
- /**
40
- * Remove the file after saved to Documents app
41
- * @default false
42
- */
43
- removeAfterSavedToDocuments: boolean;
44
- /**
45
- * Remove the file after failed to save to Documents app
46
- * @default false
47
- */
48
- removeAfterFailedToSaveDocuments: boolean;
49
- /**
50
- * Remove the file after shared to other apps. Currently only support iOS, on Android there's no way to detect if the file is shared or not.
51
- * @default false
52
- */
53
- removeAfterShared: boolean;
54
- /**
55
- * Remove the file after failed to share to other apps. Currently only support iOS, on Android there's no way to detect if the file is shared or not.
56
- * @default false
57
- */
58
- removeAfterFailedToShare: boolean;
59
- /**
60
- * Enable rotation
61
- * @default false
62
- */
63
- enableRotation: boolean;
64
- /**
65
- * Rotation angle in degrees
66
- * @default 0
67
- */
68
- rotationAngle: number;
69
- }
70
- export interface EditorConfig extends BaseOptions {
71
- /**
72
- * Enable haptic feedback
73
- * @default true
74
- */
75
- enableHapticFeedback: boolean;
76
- maxDuration: number;
77
- /**
78
- * Minimum duration for trimmer
79
- * @default 1000
80
- */
81
- minDuration: number;
82
- /**
83
- * Cancel button text
84
- * @default "Cancel"
85
- */
86
- cancelButtonText: string;
87
- /**
88
- * Save button text
89
- * @default "Save"
90
- */
91
- saveButtonText: string;
92
- /**
93
- * Enable cancel dialog
94
- * @default true
95
- */
96
- enableCancelDialog: boolean;
97
- /**
98
- * Cancel dialog title
99
- * @default "Warning!"
100
- */
101
- cancelDialogTitle: string;
102
- /**
103
- * Cancel dialog message
104
- * @default "Are you sure want to cancel?"
105
- */
106
- cancelDialogMessage: string;
107
- /**
108
- * Cancel dialog cancel text
109
- * @default "Close"
110
- */
111
- cancelDialogCancelText: string;
112
- /**
113
- * Cancel dialog confirm text
114
- * @default "Proceed"
115
- */
116
- cancelDialogConfirmText: string;
117
- /**
118
- * Enable save dialog
119
- * @default true
120
- */
121
- enableSaveDialog: boolean;
122
- /**
123
- * Save dialog title
124
- * @default "Confirmation!"
125
- */
126
- saveDialogTitle: string;
127
- /**
128
- * Save dialog message
129
- * @default "Are you sure want to save?"
130
- */
131
- saveDialogMessage: string;
132
- /**
133
- * Save dialog cancel text
134
- * @default "Close"
135
- */
136
- saveDialogCancelText: string;
137
- /**
138
- * Save dialog confirm text
139
- * @default "Proceed"
140
- */
141
- saveDialogConfirmText: string;
142
- /**
143
- * Trimming text
144
- * @default "Trimming video..."
145
- */
146
- trimmingText: string;
147
- /**
148
- * By default, on iOS the editor will be presented as a modal. If you want to present it as a full screen modal, set this to `true`.
149
- * @default false
150
- */
151
- fullScreenModalIOS: boolean;
152
- /**
153
- * Whether to enable autoplay on load
154
- */
155
- autoplay: boolean;
156
- /**
157
- * Jump to position on load in milliseconds
158
- * @default `undefined` (beginning of the video)
159
- */
160
- jumpToPositionOnLoad: number;
161
- /**
162
- * Whether to close the editor when finish editing
163
- * @default true
164
- */
165
- closeWhenFinish: boolean;
166
- /**
167
- * Enable cancel trimming
168
- * @default true
169
- */
170
- enableCancelTrimming: boolean;
171
- /**
172
- * Cancel trimming button text
173
- * @default "Cancel"
174
- */
175
- cancelTrimmingButtonText: string;
176
- /**
177
- * Enable cancel trimming dialog
178
- * @default true
179
- */
180
- enableCancelTrimmingDialog: boolean;
181
- /**
182
- * Cancel trimming dialog title
183
- * @default "Warning!"
184
- */
185
- cancelTrimmingDialogTitle: string;
186
- /**
187
- * Cancel trimming dialog message
188
- * @default "Are you sure want to cancel trimming?"
189
- */
190
- cancelTrimmingDialogMessage: string;
191
- /**
192
- * Cancel trimming dialog cancel text
193
- * @default "Close"
194
- */
195
- cancelTrimmingDialogCancelText: string;
196
- /**
197
- * Cancel trimming dialog confirm text
198
- * @default "Proceed"
199
- */
200
- cancelTrimmingDialogConfirmText: string;
201
- /**
202
- * Header text
203
- */
204
- headerText: string;
205
- /**
206
- * Header text size
207
- * @default 16
208
- */
209
- headerTextSize: number;
210
- /**
211
- * Header text color
212
- * @default white
213
- */
214
- headerTextColor: number;
215
- /**
216
- * Alert on fail to load media
217
- * @default true
218
- */
219
- alertOnFailToLoad: boolean;
220
- /**
221
- * Alert on fail to load media title
222
- * @default "Error"
223
- */
224
- alertOnFailTitle: string;
225
- /**
226
- * Alert on fail to load media message
227
- * @default "Fail to load media. Possibly invalid file or no network connection"
228
- */
229
- alertOnFailMessage: string;
230
- /**
231
- * Alert on fail to load media close text
232
- * @default "Close"
233
- */
234
- alertOnFailCloseText: string;
235
- }
236
- export interface TrimOptions extends BaseOptions {
237
- startTime: number;
238
- endTime: number;
239
- }
240
- export interface FileValidationResult {
241
- isValid: boolean;
242
- fileType: string;
243
- duration: number;
244
- }
245
- export interface VideoTrim extends HybridObject<{
246
- ios: 'swift';
247
- android: 'kotlin';
248
- }> {
249
- showEditor(filePath: string, config: EditorConfig, onEvent: (eventName: string, payload: Record<string, string>) => void): void;
250
- listFiles(): Promise<string[]>;
251
- cleanFiles(): Promise<number>;
252
- deleteFile(filePath: string): Promise<boolean>;
253
- closeEditor(onComplete: () => void): void;
254
- isValidFile(url: string): Promise<FileValidationResult>;
255
- trim(url: string, options: TrimOptions): Promise<string>;
256
- }
257
- //# sourceMappingURL=VideoTrim.nitro.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VideoTrim.nitro.d.ts","sourceRoot":"","sources":["../../../src/VideoTrim.nitro.ts"],"names":[],"mappings":"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"}
@@ -1,237 +0,0 @@
1
- ///
2
- /// JEditorConfig.hpp
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
6
- ///
7
-
8
- #pragma once
9
-
10
- #include <fbjni/fbjni.h>
11
- #include "EditorConfig.hpp"
12
-
13
- #include <string>
14
-
15
- namespace margelo::nitro::videotrim {
16
-
17
- using namespace facebook;
18
-
19
- /**
20
- * The C++ JNI bridge between the C++ struct "EditorConfig" and the the Kotlin data class "EditorConfig".
21
- */
22
- struct JEditorConfig final: public jni::JavaClass<JEditorConfig> {
23
- public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/videotrim/EditorConfig;";
25
-
26
- public:
27
- /**
28
- * Convert this Java/Kotlin-based struct to the C++ struct EditorConfig by copying all values to C++.
29
- */
30
- [[maybe_unused]]
31
- [[nodiscard]]
32
- EditorConfig toCpp() const {
33
- static const auto clazz = javaClassStatic();
34
- static const auto fieldEnableHapticFeedback = clazz->getField<jboolean>("enableHapticFeedback");
35
- jboolean enableHapticFeedback = this->getFieldValue(fieldEnableHapticFeedback);
36
- static const auto fieldMaxDuration = clazz->getField<double>("maxDuration");
37
- double maxDuration = this->getFieldValue(fieldMaxDuration);
38
- static const auto fieldMinDuration = clazz->getField<double>("minDuration");
39
- double minDuration = this->getFieldValue(fieldMinDuration);
40
- static const auto fieldCancelButtonText = clazz->getField<jni::JString>("cancelButtonText");
41
- jni::local_ref<jni::JString> cancelButtonText = this->getFieldValue(fieldCancelButtonText);
42
- static const auto fieldSaveButtonText = clazz->getField<jni::JString>("saveButtonText");
43
- jni::local_ref<jni::JString> saveButtonText = this->getFieldValue(fieldSaveButtonText);
44
- static const auto fieldEnableCancelDialog = clazz->getField<jboolean>("enableCancelDialog");
45
- jboolean enableCancelDialog = this->getFieldValue(fieldEnableCancelDialog);
46
- static const auto fieldCancelDialogTitle = clazz->getField<jni::JString>("cancelDialogTitle");
47
- jni::local_ref<jni::JString> cancelDialogTitle = this->getFieldValue(fieldCancelDialogTitle);
48
- static const auto fieldCancelDialogMessage = clazz->getField<jni::JString>("cancelDialogMessage");
49
- jni::local_ref<jni::JString> cancelDialogMessage = this->getFieldValue(fieldCancelDialogMessage);
50
- static const auto fieldCancelDialogCancelText = clazz->getField<jni::JString>("cancelDialogCancelText");
51
- jni::local_ref<jni::JString> cancelDialogCancelText = this->getFieldValue(fieldCancelDialogCancelText);
52
- static const auto fieldCancelDialogConfirmText = clazz->getField<jni::JString>("cancelDialogConfirmText");
53
- jni::local_ref<jni::JString> cancelDialogConfirmText = this->getFieldValue(fieldCancelDialogConfirmText);
54
- static const auto fieldEnableSaveDialog = clazz->getField<jboolean>("enableSaveDialog");
55
- jboolean enableSaveDialog = this->getFieldValue(fieldEnableSaveDialog);
56
- static const auto fieldSaveDialogTitle = clazz->getField<jni::JString>("saveDialogTitle");
57
- jni::local_ref<jni::JString> saveDialogTitle = this->getFieldValue(fieldSaveDialogTitle);
58
- static const auto fieldSaveDialogMessage = clazz->getField<jni::JString>("saveDialogMessage");
59
- jni::local_ref<jni::JString> saveDialogMessage = this->getFieldValue(fieldSaveDialogMessage);
60
- static const auto fieldSaveDialogCancelText = clazz->getField<jni::JString>("saveDialogCancelText");
61
- jni::local_ref<jni::JString> saveDialogCancelText = this->getFieldValue(fieldSaveDialogCancelText);
62
- static const auto fieldSaveDialogConfirmText = clazz->getField<jni::JString>("saveDialogConfirmText");
63
- jni::local_ref<jni::JString> saveDialogConfirmText = this->getFieldValue(fieldSaveDialogConfirmText);
64
- static const auto fieldTrimmingText = clazz->getField<jni::JString>("trimmingText");
65
- jni::local_ref<jni::JString> trimmingText = this->getFieldValue(fieldTrimmingText);
66
- static const auto fieldFullScreenModalIOS = clazz->getField<jboolean>("fullScreenModalIOS");
67
- jboolean fullScreenModalIOS = this->getFieldValue(fieldFullScreenModalIOS);
68
- static const auto fieldAutoplay = clazz->getField<jboolean>("autoplay");
69
- jboolean autoplay = this->getFieldValue(fieldAutoplay);
70
- static const auto fieldJumpToPositionOnLoad = clazz->getField<double>("jumpToPositionOnLoad");
71
- double jumpToPositionOnLoad = this->getFieldValue(fieldJumpToPositionOnLoad);
72
- static const auto fieldCloseWhenFinish = clazz->getField<jboolean>("closeWhenFinish");
73
- jboolean closeWhenFinish = this->getFieldValue(fieldCloseWhenFinish);
74
- static const auto fieldEnableCancelTrimming = clazz->getField<jboolean>("enableCancelTrimming");
75
- jboolean enableCancelTrimming = this->getFieldValue(fieldEnableCancelTrimming);
76
- static const auto fieldCancelTrimmingButtonText = clazz->getField<jni::JString>("cancelTrimmingButtonText");
77
- jni::local_ref<jni::JString> cancelTrimmingButtonText = this->getFieldValue(fieldCancelTrimmingButtonText);
78
- static const auto fieldEnableCancelTrimmingDialog = clazz->getField<jboolean>("enableCancelTrimmingDialog");
79
- jboolean enableCancelTrimmingDialog = this->getFieldValue(fieldEnableCancelTrimmingDialog);
80
- static const auto fieldCancelTrimmingDialogTitle = clazz->getField<jni::JString>("cancelTrimmingDialogTitle");
81
- jni::local_ref<jni::JString> cancelTrimmingDialogTitle = this->getFieldValue(fieldCancelTrimmingDialogTitle);
82
- static const auto fieldCancelTrimmingDialogMessage = clazz->getField<jni::JString>("cancelTrimmingDialogMessage");
83
- jni::local_ref<jni::JString> cancelTrimmingDialogMessage = this->getFieldValue(fieldCancelTrimmingDialogMessage);
84
- static const auto fieldCancelTrimmingDialogCancelText = clazz->getField<jni::JString>("cancelTrimmingDialogCancelText");
85
- jni::local_ref<jni::JString> cancelTrimmingDialogCancelText = this->getFieldValue(fieldCancelTrimmingDialogCancelText);
86
- static const auto fieldCancelTrimmingDialogConfirmText = clazz->getField<jni::JString>("cancelTrimmingDialogConfirmText");
87
- jni::local_ref<jni::JString> cancelTrimmingDialogConfirmText = this->getFieldValue(fieldCancelTrimmingDialogConfirmText);
88
- static const auto fieldHeaderText = clazz->getField<jni::JString>("headerText");
89
- jni::local_ref<jni::JString> headerText = this->getFieldValue(fieldHeaderText);
90
- static const auto fieldHeaderTextSize = clazz->getField<double>("headerTextSize");
91
- double headerTextSize = this->getFieldValue(fieldHeaderTextSize);
92
- static const auto fieldHeaderTextColor = clazz->getField<double>("headerTextColor");
93
- double headerTextColor = this->getFieldValue(fieldHeaderTextColor);
94
- static const auto fieldAlertOnFailToLoad = clazz->getField<jboolean>("alertOnFailToLoad");
95
- jboolean alertOnFailToLoad = this->getFieldValue(fieldAlertOnFailToLoad);
96
- static const auto fieldAlertOnFailTitle = clazz->getField<jni::JString>("alertOnFailTitle");
97
- jni::local_ref<jni::JString> alertOnFailTitle = this->getFieldValue(fieldAlertOnFailTitle);
98
- static const auto fieldAlertOnFailMessage = clazz->getField<jni::JString>("alertOnFailMessage");
99
- jni::local_ref<jni::JString> alertOnFailMessage = this->getFieldValue(fieldAlertOnFailMessage);
100
- static const auto fieldAlertOnFailCloseText = clazz->getField<jni::JString>("alertOnFailCloseText");
101
- jni::local_ref<jni::JString> alertOnFailCloseText = this->getFieldValue(fieldAlertOnFailCloseText);
102
- static const auto fieldSaveToPhoto = clazz->getField<jboolean>("saveToPhoto");
103
- jboolean saveToPhoto = this->getFieldValue(fieldSaveToPhoto);
104
- static const auto fieldType = clazz->getField<jni::JString>("type");
105
- jni::local_ref<jni::JString> type = this->getFieldValue(fieldType);
106
- static const auto fieldOutputExt = clazz->getField<jni::JString>("outputExt");
107
- jni::local_ref<jni::JString> outputExt = this->getFieldValue(fieldOutputExt);
108
- static const auto fieldOpenDocumentsOnFinish = clazz->getField<jboolean>("openDocumentsOnFinish");
109
- jboolean openDocumentsOnFinish = this->getFieldValue(fieldOpenDocumentsOnFinish);
110
- static const auto fieldOpenShareSheetOnFinish = clazz->getField<jboolean>("openShareSheetOnFinish");
111
- jboolean openShareSheetOnFinish = this->getFieldValue(fieldOpenShareSheetOnFinish);
112
- static const auto fieldRemoveAfterSavedToPhoto = clazz->getField<jboolean>("removeAfterSavedToPhoto");
113
- jboolean removeAfterSavedToPhoto = this->getFieldValue(fieldRemoveAfterSavedToPhoto);
114
- static const auto fieldRemoveAfterFailedToSavePhoto = clazz->getField<jboolean>("removeAfterFailedToSavePhoto");
115
- jboolean removeAfterFailedToSavePhoto = this->getFieldValue(fieldRemoveAfterFailedToSavePhoto);
116
- static const auto fieldRemoveAfterSavedToDocuments = clazz->getField<jboolean>("removeAfterSavedToDocuments");
117
- jboolean removeAfterSavedToDocuments = this->getFieldValue(fieldRemoveAfterSavedToDocuments);
118
- static const auto fieldRemoveAfterFailedToSaveDocuments = clazz->getField<jboolean>("removeAfterFailedToSaveDocuments");
119
- jboolean removeAfterFailedToSaveDocuments = this->getFieldValue(fieldRemoveAfterFailedToSaveDocuments);
120
- static const auto fieldRemoveAfterShared = clazz->getField<jboolean>("removeAfterShared");
121
- jboolean removeAfterShared = this->getFieldValue(fieldRemoveAfterShared);
122
- static const auto fieldRemoveAfterFailedToShare = clazz->getField<jboolean>("removeAfterFailedToShare");
123
- jboolean removeAfterFailedToShare = this->getFieldValue(fieldRemoveAfterFailedToShare);
124
- static const auto fieldEnableRotation = clazz->getField<jboolean>("enableRotation");
125
- jboolean enableRotation = this->getFieldValue(fieldEnableRotation);
126
- static const auto fieldRotationAngle = clazz->getField<double>("rotationAngle");
127
- double rotationAngle = this->getFieldValue(fieldRotationAngle);
128
- return EditorConfig(
129
- static_cast<bool>(enableHapticFeedback),
130
- maxDuration,
131
- minDuration,
132
- cancelButtonText->toStdString(),
133
- saveButtonText->toStdString(),
134
- static_cast<bool>(enableCancelDialog),
135
- cancelDialogTitle->toStdString(),
136
- cancelDialogMessage->toStdString(),
137
- cancelDialogCancelText->toStdString(),
138
- cancelDialogConfirmText->toStdString(),
139
- static_cast<bool>(enableSaveDialog),
140
- saveDialogTitle->toStdString(),
141
- saveDialogMessage->toStdString(),
142
- saveDialogCancelText->toStdString(),
143
- saveDialogConfirmText->toStdString(),
144
- trimmingText->toStdString(),
145
- static_cast<bool>(fullScreenModalIOS),
146
- static_cast<bool>(autoplay),
147
- jumpToPositionOnLoad,
148
- static_cast<bool>(closeWhenFinish),
149
- static_cast<bool>(enableCancelTrimming),
150
- cancelTrimmingButtonText->toStdString(),
151
- static_cast<bool>(enableCancelTrimmingDialog),
152
- cancelTrimmingDialogTitle->toStdString(),
153
- cancelTrimmingDialogMessage->toStdString(),
154
- cancelTrimmingDialogCancelText->toStdString(),
155
- cancelTrimmingDialogConfirmText->toStdString(),
156
- headerText->toStdString(),
157
- headerTextSize,
158
- headerTextColor,
159
- static_cast<bool>(alertOnFailToLoad),
160
- alertOnFailTitle->toStdString(),
161
- alertOnFailMessage->toStdString(),
162
- alertOnFailCloseText->toStdString(),
163
- static_cast<bool>(saveToPhoto),
164
- type->toStdString(),
165
- outputExt->toStdString(),
166
- static_cast<bool>(openDocumentsOnFinish),
167
- static_cast<bool>(openShareSheetOnFinish),
168
- static_cast<bool>(removeAfterSavedToPhoto),
169
- static_cast<bool>(removeAfterFailedToSavePhoto),
170
- static_cast<bool>(removeAfterSavedToDocuments),
171
- static_cast<bool>(removeAfterFailedToSaveDocuments),
172
- static_cast<bool>(removeAfterShared),
173
- static_cast<bool>(removeAfterFailedToShare),
174
- static_cast<bool>(enableRotation),
175
- rotationAngle
176
- );
177
- }
178
-
179
- public:
180
- /**
181
- * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
182
- */
183
- [[maybe_unused]]
184
- static jni::local_ref<JEditorConfig::javaobject> fromCpp(const EditorConfig& value) {
185
- return newInstance(
186
- value.enableHapticFeedback,
187
- value.maxDuration,
188
- value.minDuration,
189
- jni::make_jstring(value.cancelButtonText),
190
- jni::make_jstring(value.saveButtonText),
191
- value.enableCancelDialog,
192
- jni::make_jstring(value.cancelDialogTitle),
193
- jni::make_jstring(value.cancelDialogMessage),
194
- jni::make_jstring(value.cancelDialogCancelText),
195
- jni::make_jstring(value.cancelDialogConfirmText),
196
- value.enableSaveDialog,
197
- jni::make_jstring(value.saveDialogTitle),
198
- jni::make_jstring(value.saveDialogMessage),
199
- jni::make_jstring(value.saveDialogCancelText),
200
- jni::make_jstring(value.saveDialogConfirmText),
201
- jni::make_jstring(value.trimmingText),
202
- value.fullScreenModalIOS,
203
- value.autoplay,
204
- value.jumpToPositionOnLoad,
205
- value.closeWhenFinish,
206
- value.enableCancelTrimming,
207
- jni::make_jstring(value.cancelTrimmingButtonText),
208
- value.enableCancelTrimmingDialog,
209
- jni::make_jstring(value.cancelTrimmingDialogTitle),
210
- jni::make_jstring(value.cancelTrimmingDialogMessage),
211
- jni::make_jstring(value.cancelTrimmingDialogCancelText),
212
- jni::make_jstring(value.cancelTrimmingDialogConfirmText),
213
- jni::make_jstring(value.headerText),
214
- value.headerTextSize,
215
- value.headerTextColor,
216
- value.alertOnFailToLoad,
217
- jni::make_jstring(value.alertOnFailTitle),
218
- jni::make_jstring(value.alertOnFailMessage),
219
- jni::make_jstring(value.alertOnFailCloseText),
220
- value.saveToPhoto,
221
- jni::make_jstring(value.type),
222
- jni::make_jstring(value.outputExt),
223
- value.openDocumentsOnFinish,
224
- value.openShareSheetOnFinish,
225
- value.removeAfterSavedToPhoto,
226
- value.removeAfterFailedToSavePhoto,
227
- value.removeAfterSavedToDocuments,
228
- value.removeAfterFailedToSaveDocuments,
229
- value.removeAfterShared,
230
- value.removeAfterFailedToShare,
231
- value.enableRotation,
232
- value.rotationAngle
233
- );
234
- }
235
- };
236
-
237
- } // namespace margelo::nitro::videotrim
@@ -1,61 +0,0 @@
1
- ///
2
- /// JFileValidationResult.hpp
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
6
- ///
7
-
8
- #pragma once
9
-
10
- #include <fbjni/fbjni.h>
11
- #include "FileValidationResult.hpp"
12
-
13
- #include <string>
14
-
15
- namespace margelo::nitro::videotrim {
16
-
17
- using namespace facebook;
18
-
19
- /**
20
- * The C++ JNI bridge between the C++ struct "FileValidationResult" and the the Kotlin data class "FileValidationResult".
21
- */
22
- struct JFileValidationResult final: public jni::JavaClass<JFileValidationResult> {
23
- public:
24
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/videotrim/FileValidationResult;";
25
-
26
- public:
27
- /**
28
- * Convert this Java/Kotlin-based struct to the C++ struct FileValidationResult by copying all values to C++.
29
- */
30
- [[maybe_unused]]
31
- [[nodiscard]]
32
- FileValidationResult toCpp() const {
33
- static const auto clazz = javaClassStatic();
34
- static const auto fieldIsValid = clazz->getField<jboolean>("isValid");
35
- jboolean isValid = this->getFieldValue(fieldIsValid);
36
- static const auto fieldFileType = clazz->getField<jni::JString>("fileType");
37
- jni::local_ref<jni::JString> fileType = this->getFieldValue(fieldFileType);
38
- static const auto fieldDuration = clazz->getField<double>("duration");
39
- double duration = this->getFieldValue(fieldDuration);
40
- return FileValidationResult(
41
- static_cast<bool>(isValid),
42
- fileType->toStdString(),
43
- duration
44
- );
45
- }
46
-
47
- public:
48
- /**
49
- * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
50
- */
51
- [[maybe_unused]]
52
- static jni::local_ref<JFileValidationResult::javaobject> fromCpp(const FileValidationResult& value) {
53
- return newInstance(
54
- value.isValid,
55
- jni::make_jstring(value.fileType),
56
- value.duration
57
- );
58
- }
59
- };
60
-
61
- } // namespace margelo::nitro::videotrim
@@ -1,74 +0,0 @@
1
- ///
2
- /// JFunc_void.hpp
3
- /// This file was generated by nitrogen. DO NOT MODIFY THIS FILE.
4
- /// https://github.com/mrousavy/nitro
5
- /// Copyright © 2025 Marc Rousavy @ Margelo
6
- ///
7
-
8
- #pragma once
9
-
10
- #include <fbjni/fbjni.h>
11
- #include <functional>
12
-
13
- #include <functional>
14
-
15
- namespace margelo::nitro::videotrim {
16
-
17
- using namespace facebook;
18
-
19
- /**
20
- * Represents the Java/Kotlin callback `() -> Unit`.
21
- * This can be passed around between C++ and Java/Kotlin.
22
- */
23
- struct JFunc_void: public jni::JavaClass<JFunc_void> {
24
- public:
25
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/videotrim/Func_void;";
26
-
27
- public:
28
- /**
29
- * Invokes the function this `JFunc_void` instance holds through JNI.
30
- */
31
- void invoke() const {
32
- static const auto method = javaClassStatic()->getMethod<void()>("invoke");
33
- method(self());
34
- }
35
- };
36
-
37
- /**
38
- * An implementation of Func_void that is backed by a C++ implementation (using `std::function<...>`)
39
- */
40
- struct JFunc_void_cxx final: public jni::HybridClass<JFunc_void_cxx, JFunc_void> {
41
- public:
42
- static jni::local_ref<JFunc_void::javaobject> fromCpp(const std::function<void()>& func) {
43
- return JFunc_void_cxx::newObjectCxxArgs(func);
44
- }
45
-
46
- public:
47
- /**
48
- * Invokes the C++ `std::function<...>` this `JFunc_void_cxx` instance holds.
49
- */
50
- void invoke_cxx() {
51
- _func();
52
- }
53
-
54
- public:
55
- [[nodiscard]]
56
- inline const std::function<void()>& getFunction() const {
57
- return _func;
58
- }
59
-
60
- public:
61
- static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/videotrim/Func_void_cxx;";
62
- static void registerNatives() {
63
- registerHybrid({makeNativeMethod("invoke_cxx", JFunc_void_cxx::invoke_cxx)});
64
- }
65
-
66
- private:
67
- explicit JFunc_void_cxx(const std::function<void()>& func): _func(func) { }
68
-
69
- private:
70
- friend HybridBase;
71
- std::function<void()> _func;
72
- };
73
-
74
- } // namespace margelo::nitro::videotrim