react-native-video-trim 4.0.0 → 4.1.0

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 (38) hide show
  1. package/README.md +36 -8
  2. package/VideoTrim.podspec +1 -1
  3. package/android/build.gradle +9 -1
  4. package/android/gradle.properties +2 -0
  5. package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +138 -121
  6. package/android/src/main/java/com/margelo/nitro/videotrim/utils/VideoTrimmerUtil.java +29 -21
  7. package/android/src/main/java/com/margelo/nitro/videotrim/widgets/VideoTrimmerView.java +10 -6
  8. package/ios/VideoTrim.swift +7 -0
  9. package/ios/VideoTrimImpl.swift +221 -124
  10. package/lib/module/index.js +38 -11
  11. package/lib/module/index.js.map +1 -1
  12. package/lib/typescript/src/VideoTrim.nitro.d.ts +74 -57
  13. package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -1
  14. package/lib/typescript/src/index.d.ts +9 -1
  15. package/lib/typescript/src/index.d.ts.map +1 -1
  16. package/nitrogen/generated/android/c++/JEditorConfig.hpp +54 -46
  17. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +20 -0
  18. package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +1 -0
  19. package/nitrogen/generated/android/c++/JTrimOptions.hpp +109 -0
  20. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +14 -12
  21. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +4 -0
  22. package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +40 -0
  23. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +8 -0
  24. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +43 -0
  25. package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +3 -0
  26. package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +11 -0
  27. package/nitrogen/generated/ios/swift/EditorConfig.swift +116 -94
  28. package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
  29. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +1 -0
  30. package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +19 -0
  31. package/nitrogen/generated/ios/swift/TrimOptions.swift +189 -0
  32. package/nitrogen/generated/shared/c++/EditorConfig.hpp +54 -46
  33. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +1 -0
  34. package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +4 -0
  35. package/nitrogen/generated/shared/c++/TrimOptions.hpp +125 -0
  36. package/package.json +1 -1
  37. package/src/VideoTrim.nitro.ts +76 -57
  38. package/src/index.tsx +45 -11
@@ -1 +1 @@
1
- {"version":3,"file":"VideoTrim.nitro.d.ts","sourceRoot":"","sources":["../../../src/VideoTrim.nitro.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VideoTrim.nitro.d.ts","sourceRoot":"","sources":["../../../src/VideoTrim.nitro.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { EditorConfig, FileValidationResult } from './VideoTrim.nitro';
1
+ import type { EditorConfig, FileValidationResult, TrimOptions } from './VideoTrim.nitro';
2
2
  /**
3
3
  * Delete a file
4
4
  *
@@ -38,4 +38,12 @@ export declare function closeEditor(onComplete?: () => void): void;
38
38
  * @returns {Promise} A **Promise** which resolves file info if successful
39
39
  */
40
40
  export declare function isValidFile(url: string): Promise<FileValidationResult>;
41
+ /**
42
+ * Trim a video file
43
+ *
44
+ * @param {string} url: absolute non-empty file path to edit
45
+ * @param {TrimOptions} options: trim options
46
+ * @returns {Promise<string>} A **Promise** which resolves to the trimmed file path
47
+ */
48
+ export declare function trim(url: string, options: Partial<TrimOptions>): Promise<string>;
41
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AA8D3B;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,GAAG;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,GACrE,IAAI,CAYN;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEtE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,YAAY,EACZ,oBAAoB,EACpB,WAAW,EAEZ,MAAM,mBAAmB,CAAC;AAgF3B;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,GAAG;IACvD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,EACD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,GACrE,IAAI,CAYN;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAE5C;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAK7D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAEtE;AAED;;;;;;GAMG;AACH,wBAAgB,IAAI,CAClB,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,CAEjB"}
@@ -33,8 +33,6 @@ namespace margelo::nitro::videotrim {
33
33
  static const auto clazz = javaClassStatic();
34
34
  static const auto fieldEnableHapticFeedback = clazz->getField<jboolean>("enableHapticFeedback");
35
35
  jboolean enableHapticFeedback = this->getFieldValue(fieldEnableHapticFeedback);
36
- static const auto fieldSaveToPhoto = clazz->getField<jboolean>("saveToPhoto");
37
- jboolean saveToPhoto = this->getFieldValue(fieldSaveToPhoto);
38
36
  static const auto fieldMaxDuration = clazz->getField<double>("maxDuration");
39
37
  double maxDuration = this->getFieldValue(fieldMaxDuration);
40
38
  static const auto fieldMinDuration = clazz->getField<double>("minDuration");
@@ -67,26 +65,6 @@ namespace margelo::nitro::videotrim {
67
65
  jni::local_ref<jni::JString> trimmingText = this->getFieldValue(fieldTrimmingText);
68
66
  static const auto fieldFullScreenModalIOS = clazz->getField<jboolean>("fullScreenModalIOS");
69
67
  jboolean fullScreenModalIOS = this->getFieldValue(fieldFullScreenModalIOS);
70
- static const auto fieldType = clazz->getField<jni::JString>("type");
71
- jni::local_ref<jni::JString> type = this->getFieldValue(fieldType);
72
- static const auto fieldOutputExt = clazz->getField<jni::JString>("outputExt");
73
- jni::local_ref<jni::JString> outputExt = this->getFieldValue(fieldOutputExt);
74
- static const auto fieldOpenDocumentsOnFinish = clazz->getField<jboolean>("openDocumentsOnFinish");
75
- jboolean openDocumentsOnFinish = this->getFieldValue(fieldOpenDocumentsOnFinish);
76
- static const auto fieldOpenShareSheetOnFinish = clazz->getField<jboolean>("openShareSheetOnFinish");
77
- jboolean openShareSheetOnFinish = this->getFieldValue(fieldOpenShareSheetOnFinish);
78
- static const auto fieldRemoveAfterSavedToPhoto = clazz->getField<jboolean>("removeAfterSavedToPhoto");
79
- jboolean removeAfterSavedToPhoto = this->getFieldValue(fieldRemoveAfterSavedToPhoto);
80
- static const auto fieldRemoveAfterFailedToSavePhoto = clazz->getField<jboolean>("removeAfterFailedToSavePhoto");
81
- jboolean removeAfterFailedToSavePhoto = this->getFieldValue(fieldRemoveAfterFailedToSavePhoto);
82
- static const auto fieldRemoveAfterSavedToDocuments = clazz->getField<jboolean>("removeAfterSavedToDocuments");
83
- jboolean removeAfterSavedToDocuments = this->getFieldValue(fieldRemoveAfterSavedToDocuments);
84
- static const auto fieldRemoveAfterFailedToSaveDocuments = clazz->getField<jboolean>("removeAfterFailedToSaveDocuments");
85
- jboolean removeAfterFailedToSaveDocuments = this->getFieldValue(fieldRemoveAfterFailedToSaveDocuments);
86
- static const auto fieldRemoveAfterShared = clazz->getField<jboolean>("removeAfterShared");
87
- jboolean removeAfterShared = this->getFieldValue(fieldRemoveAfterShared);
88
- static const auto fieldRemoveAfterFailedToShare = clazz->getField<jboolean>("removeAfterFailedToShare");
89
- jboolean removeAfterFailedToShare = this->getFieldValue(fieldRemoveAfterFailedToShare);
90
68
  static const auto fieldAutoplay = clazz->getField<jboolean>("autoplay");
91
69
  jboolean autoplay = this->getFieldValue(fieldAutoplay);
92
70
  static const auto fieldJumpToPositionOnLoad = clazz->getField<double>("jumpToPositionOnLoad");
@@ -121,9 +99,34 @@ namespace margelo::nitro::videotrim {
121
99
  jni::local_ref<jni::JString> alertOnFailMessage = this->getFieldValue(fieldAlertOnFailMessage);
122
100
  static const auto fieldAlertOnFailCloseText = clazz->getField<jni::JString>("alertOnFailCloseText");
123
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);
124
128
  return EditorConfig(
125
129
  static_cast<bool>(enableHapticFeedback),
126
- static_cast<bool>(saveToPhoto),
127
130
  maxDuration,
128
131
  minDuration,
129
132
  cancelButtonText->toStdString(),
@@ -140,16 +143,6 @@ namespace margelo::nitro::videotrim {
140
143
  saveDialogConfirmText->toStdString(),
141
144
  trimmingText->toStdString(),
142
145
  static_cast<bool>(fullScreenModalIOS),
143
- type->toStdString(),
144
- outputExt->toStdString(),
145
- static_cast<bool>(openDocumentsOnFinish),
146
- static_cast<bool>(openShareSheetOnFinish),
147
- static_cast<bool>(removeAfterSavedToPhoto),
148
- static_cast<bool>(removeAfterFailedToSavePhoto),
149
- static_cast<bool>(removeAfterSavedToDocuments),
150
- static_cast<bool>(removeAfterFailedToSaveDocuments),
151
- static_cast<bool>(removeAfterShared),
152
- static_cast<bool>(removeAfterFailedToShare),
153
146
  static_cast<bool>(autoplay),
154
147
  jumpToPositionOnLoad,
155
148
  static_cast<bool>(closeWhenFinish),
@@ -166,7 +159,20 @@ namespace margelo::nitro::videotrim {
166
159
  static_cast<bool>(alertOnFailToLoad),
167
160
  alertOnFailTitle->toStdString(),
168
161
  alertOnFailMessage->toStdString(),
169
- alertOnFailCloseText->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
170
176
  );
171
177
  }
172
178
 
@@ -178,7 +184,6 @@ namespace margelo::nitro::videotrim {
178
184
  static jni::local_ref<JEditorConfig::javaobject> fromCpp(const EditorConfig& value) {
179
185
  return newInstance(
180
186
  value.enableHapticFeedback,
181
- value.saveToPhoto,
182
187
  value.maxDuration,
183
188
  value.minDuration,
184
189
  jni::make_jstring(value.cancelButtonText),
@@ -195,16 +200,6 @@ namespace margelo::nitro::videotrim {
195
200
  jni::make_jstring(value.saveDialogConfirmText),
196
201
  jni::make_jstring(value.trimmingText),
197
202
  value.fullScreenModalIOS,
198
- jni::make_jstring(value.type),
199
- jni::make_jstring(value.outputExt),
200
- value.openDocumentsOnFinish,
201
- value.openShareSheetOnFinish,
202
- value.removeAfterSavedToPhoto,
203
- value.removeAfterFailedToSavePhoto,
204
- value.removeAfterSavedToDocuments,
205
- value.removeAfterFailedToSaveDocuments,
206
- value.removeAfterShared,
207
- value.removeAfterFailedToShare,
208
203
  value.autoplay,
209
204
  value.jumpToPositionOnLoad,
210
205
  value.closeWhenFinish,
@@ -221,7 +216,20 @@ namespace margelo::nitro::videotrim {
221
216
  value.alertOnFailToLoad,
222
217
  jni::make_jstring(value.alertOnFailTitle),
223
218
  jni::make_jstring(value.alertOnFailMessage),
224
- jni::make_jstring(value.alertOnFailCloseText)
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
225
233
  );
226
234
  }
227
235
  };
@@ -11,6 +11,8 @@
11
11
  namespace margelo::nitro::videotrim { struct FileValidationResult; }
12
12
  // Forward declaration of `EditorConfig` to properly resolve imports.
13
13
  namespace margelo::nitro::videotrim { struct EditorConfig; }
14
+ // Forward declaration of `TrimOptions` to properly resolve imports.
15
+ namespace margelo::nitro::videotrim { struct TrimOptions; }
14
16
 
15
17
  #include <NitroModules/Promise.hpp>
16
18
  #include <vector>
@@ -24,6 +26,8 @@ namespace margelo::nitro::videotrim { struct EditorConfig; }
24
26
  #include <unordered_map>
25
27
  #include "JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp"
26
28
  #include "JFunc_void.hpp"
29
+ #include "TrimOptions.hpp"
30
+ #include "JTrimOptions.hpp"
27
31
 
28
32
  namespace margelo::nitro::videotrim {
29
33
 
@@ -127,5 +131,21 @@ namespace margelo::nitro::videotrim {
127
131
  return __promise;
128
132
  }();
129
133
  }
134
+ std::shared_ptr<Promise<std::string>> JHybridVideoTrimSpec::trim(const std::string& url, const TrimOptions& options) {
135
+ static const auto method = javaClassStatic()->getMethod<jni::local_ref<JPromise::javaobject>(jni::alias_ref<jni::JString> /* url */, jni::alias_ref<JTrimOptions> /* options */)>("trim");
136
+ auto __result = method(_javaPart, jni::make_jstring(url), JTrimOptions::fromCpp(options));
137
+ return [&]() {
138
+ auto __promise = Promise<std::string>::create();
139
+ __result->cthis()->addOnResolvedListener([=](const jni::alias_ref<jni::JObject>& __boxedResult) {
140
+ auto __result = jni::static_ref_cast<jni::JString>(__boxedResult);
141
+ __promise->resolve(__result->toStdString());
142
+ });
143
+ __result->cthis()->addOnRejectedListener([=](const jni::alias_ref<jni::JThrowable>& __throwable) {
144
+ jni::JniException __jniError(__throwable);
145
+ __promise->reject(std::make_exception_ptr(__jniError));
146
+ });
147
+ return __promise;
148
+ }();
149
+ }
130
150
 
131
151
  } // namespace margelo::nitro::videotrim
@@ -57,6 +57,7 @@ namespace margelo::nitro::videotrim {
57
57
  std::shared_ptr<Promise<bool>> deleteFile(const std::string& filePath) override;
58
58
  void closeEditor(const std::function<void()>& onComplete) override;
59
59
  std::shared_ptr<Promise<FileValidationResult>> isValidFile(const std::string& url) override;
60
+ std::shared_ptr<Promise<std::string>> trim(const std::string& url, const TrimOptions& options) override;
60
61
 
61
62
  private:
62
63
  friend HybridBase;
@@ -0,0 +1,109 @@
1
+ ///
2
+ /// JTrimOptions.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 "TrimOptions.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 "TrimOptions" and the the Kotlin data class "TrimOptions".
21
+ */
22
+ struct JTrimOptions final: public jni::JavaClass<JTrimOptions> {
23
+ public:
24
+ static auto constexpr kJavaDescriptor = "Lcom/margelo/nitro/videotrim/TrimOptions;";
25
+
26
+ public:
27
+ /**
28
+ * Convert this Java/Kotlin-based struct to the C++ struct TrimOptions by copying all values to C++.
29
+ */
30
+ [[maybe_unused]]
31
+ [[nodiscard]]
32
+ TrimOptions toCpp() const {
33
+ static const auto clazz = javaClassStatic();
34
+ static const auto fieldStartTime = clazz->getField<double>("startTime");
35
+ double startTime = this->getFieldValue(fieldStartTime);
36
+ static const auto fieldEndTime = clazz->getField<double>("endTime");
37
+ double endTime = this->getFieldValue(fieldEndTime);
38
+ static const auto fieldSaveToPhoto = clazz->getField<jboolean>("saveToPhoto");
39
+ jboolean saveToPhoto = this->getFieldValue(fieldSaveToPhoto);
40
+ static const auto fieldType = clazz->getField<jni::JString>("type");
41
+ jni::local_ref<jni::JString> type = this->getFieldValue(fieldType);
42
+ static const auto fieldOutputExt = clazz->getField<jni::JString>("outputExt");
43
+ jni::local_ref<jni::JString> outputExt = this->getFieldValue(fieldOutputExt);
44
+ static const auto fieldOpenDocumentsOnFinish = clazz->getField<jboolean>("openDocumentsOnFinish");
45
+ jboolean openDocumentsOnFinish = this->getFieldValue(fieldOpenDocumentsOnFinish);
46
+ static const auto fieldOpenShareSheetOnFinish = clazz->getField<jboolean>("openShareSheetOnFinish");
47
+ jboolean openShareSheetOnFinish = this->getFieldValue(fieldOpenShareSheetOnFinish);
48
+ static const auto fieldRemoveAfterSavedToPhoto = clazz->getField<jboolean>("removeAfterSavedToPhoto");
49
+ jboolean removeAfterSavedToPhoto = this->getFieldValue(fieldRemoveAfterSavedToPhoto);
50
+ static const auto fieldRemoveAfterFailedToSavePhoto = clazz->getField<jboolean>("removeAfterFailedToSavePhoto");
51
+ jboolean removeAfterFailedToSavePhoto = this->getFieldValue(fieldRemoveAfterFailedToSavePhoto);
52
+ static const auto fieldRemoveAfterSavedToDocuments = clazz->getField<jboolean>("removeAfterSavedToDocuments");
53
+ jboolean removeAfterSavedToDocuments = this->getFieldValue(fieldRemoveAfterSavedToDocuments);
54
+ static const auto fieldRemoveAfterFailedToSaveDocuments = clazz->getField<jboolean>("removeAfterFailedToSaveDocuments");
55
+ jboolean removeAfterFailedToSaveDocuments = this->getFieldValue(fieldRemoveAfterFailedToSaveDocuments);
56
+ static const auto fieldRemoveAfterShared = clazz->getField<jboolean>("removeAfterShared");
57
+ jboolean removeAfterShared = this->getFieldValue(fieldRemoveAfterShared);
58
+ static const auto fieldRemoveAfterFailedToShare = clazz->getField<jboolean>("removeAfterFailedToShare");
59
+ jboolean removeAfterFailedToShare = this->getFieldValue(fieldRemoveAfterFailedToShare);
60
+ static const auto fieldEnableRotation = clazz->getField<jboolean>("enableRotation");
61
+ jboolean enableRotation = this->getFieldValue(fieldEnableRotation);
62
+ static const auto fieldRotationAngle = clazz->getField<double>("rotationAngle");
63
+ double rotationAngle = this->getFieldValue(fieldRotationAngle);
64
+ return TrimOptions(
65
+ startTime,
66
+ endTime,
67
+ static_cast<bool>(saveToPhoto),
68
+ type->toStdString(),
69
+ outputExt->toStdString(),
70
+ static_cast<bool>(openDocumentsOnFinish),
71
+ static_cast<bool>(openShareSheetOnFinish),
72
+ static_cast<bool>(removeAfterSavedToPhoto),
73
+ static_cast<bool>(removeAfterFailedToSavePhoto),
74
+ static_cast<bool>(removeAfterSavedToDocuments),
75
+ static_cast<bool>(removeAfterFailedToSaveDocuments),
76
+ static_cast<bool>(removeAfterShared),
77
+ static_cast<bool>(removeAfterFailedToShare),
78
+ static_cast<bool>(enableRotation),
79
+ rotationAngle
80
+ );
81
+ }
82
+
83
+ public:
84
+ /**
85
+ * Create a Java/Kotlin-based struct by copying all values from the given C++ struct to Java.
86
+ */
87
+ [[maybe_unused]]
88
+ static jni::local_ref<JTrimOptions::javaobject> fromCpp(const TrimOptions& value) {
89
+ return newInstance(
90
+ value.startTime,
91
+ value.endTime,
92
+ value.saveToPhoto,
93
+ jni::make_jstring(value.type),
94
+ jni::make_jstring(value.outputExt),
95
+ value.openDocumentsOnFinish,
96
+ value.openShareSheetOnFinish,
97
+ value.removeAfterSavedToPhoto,
98
+ value.removeAfterFailedToSavePhoto,
99
+ value.removeAfterSavedToDocuments,
100
+ value.removeAfterFailedToSaveDocuments,
101
+ value.removeAfterShared,
102
+ value.removeAfterFailedToShare,
103
+ value.enableRotation,
104
+ value.rotationAngle
105
+ );
106
+ }
107
+ };
108
+
109
+ } // namespace margelo::nitro::videotrim
@@ -21,7 +21,6 @@ data class EditorConfig
21
21
  @Keep
22
22
  constructor(
23
23
  val enableHapticFeedback: Boolean,
24
- val saveToPhoto: Boolean,
25
24
  val maxDuration: Double,
26
25
  val minDuration: Double,
27
26
  val cancelButtonText: String,
@@ -38,16 +37,6 @@ data class EditorConfig
38
37
  val saveDialogConfirmText: String,
39
38
  val trimmingText: String,
40
39
  val fullScreenModalIOS: Boolean,
41
- val type: String,
42
- val outputExt: String,
43
- val openDocumentsOnFinish: Boolean,
44
- val openShareSheetOnFinish: Boolean,
45
- val removeAfterSavedToPhoto: Boolean,
46
- val removeAfterFailedToSavePhoto: Boolean,
47
- val removeAfterSavedToDocuments: Boolean,
48
- val removeAfterFailedToSaveDocuments: Boolean,
49
- val removeAfterShared: Boolean,
50
- val removeAfterFailedToShare: Boolean,
51
40
  val autoplay: Boolean,
52
41
  val jumpToPositionOnLoad: Double,
53
42
  val closeWhenFinish: Boolean,
@@ -64,7 +53,20 @@ data class EditorConfig
64
53
  val alertOnFailToLoad: Boolean,
65
54
  val alertOnFailTitle: String,
66
55
  val alertOnFailMessage: String,
67
- val alertOnFailCloseText: String
56
+ val alertOnFailCloseText: String,
57
+ val saveToPhoto: Boolean,
58
+ val type: String,
59
+ val outputExt: String,
60
+ val openDocumentsOnFinish: Boolean,
61
+ val openShareSheetOnFinish: Boolean,
62
+ val removeAfterSavedToPhoto: Boolean,
63
+ val removeAfterFailedToSavePhoto: Boolean,
64
+ val removeAfterSavedToDocuments: Boolean,
65
+ val removeAfterFailedToSaveDocuments: Boolean,
66
+ val removeAfterShared: Boolean,
67
+ val removeAfterFailedToShare: Boolean,
68
+ val enableRotation: Boolean,
69
+ val rotationAngle: Double
68
70
  ) {
69
71
  /* main constructor */
70
72
  }
@@ -73,6 +73,10 @@ abstract class HybridVideoTrimSpec: HybridObject() {
73
73
  @DoNotStrip
74
74
  @Keep
75
75
  abstract fun isValidFile(url: String): Promise<FileValidationResult>
76
+
77
+ @DoNotStrip
78
+ @Keep
79
+ abstract fun trim(url: String, options: TrimOptions): Promise<String>
76
80
 
77
81
  private external fun initHybrid(): HybridData
78
82
 
@@ -0,0 +1,40 @@
1
+ ///
2
+ /// TrimOptions.kt
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
+ package com.margelo.nitro.videotrim
9
+
10
+ import androidx.annotation.Keep
11
+ import com.facebook.proguard.annotations.DoNotStrip
12
+ import com.margelo.nitro.core.*
13
+
14
+ /**
15
+ * Represents the JavaScript object/struct "TrimOptions".
16
+ */
17
+ @DoNotStrip
18
+ @Keep
19
+ data class TrimOptions
20
+ @DoNotStrip
21
+ @Keep
22
+ constructor(
23
+ val startTime: Double,
24
+ val endTime: Double,
25
+ val saveToPhoto: Boolean,
26
+ val type: String,
27
+ val outputExt: String,
28
+ val openDocumentsOnFinish: Boolean,
29
+ val openShareSheetOnFinish: Boolean,
30
+ val removeAfterSavedToPhoto: Boolean,
31
+ val removeAfterFailedToSavePhoto: Boolean,
32
+ val removeAfterSavedToDocuments: Boolean,
33
+ val removeAfterFailedToSaveDocuments: Boolean,
34
+ val removeAfterShared: Boolean,
35
+ val removeAfterFailedToShare: Boolean,
36
+ val enableRotation: Boolean,
37
+ val rotationAngle: Double
38
+ ) {
39
+ /* main constructor */
40
+ }
@@ -69,6 +69,14 @@ namespace margelo::nitro::videotrim::bridge::swift {
69
69
  };
70
70
  }
71
71
 
72
+ // pragma MARK: std::function<void(const std::string& /* result */)>
73
+ Func_void_std__string create_Func_void_std__string(void* _Nonnull swiftClosureWrapper) {
74
+ auto swiftClosure = VideoTrim::Func_void_std__string::fromUnsafe(swiftClosureWrapper);
75
+ return [swiftClosure = std::move(swiftClosure)](const std::string& result) mutable -> void {
76
+ swiftClosure.call(result);
77
+ };
78
+ }
79
+
72
80
  // pragma MARK: std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec>
73
81
  std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec> create_std__shared_ptr_margelo__nitro__videotrim__HybridVideoTrimSpec_(void* _Nonnull swiftUnsafePointer) {
74
82
  VideoTrim::HybridVideoTrimSpec_cxx swiftPart = VideoTrim::HybridVideoTrimSpec_cxx::fromUnsafe(swiftUnsafePointer);
@@ -271,6 +271,40 @@ namespace margelo::nitro::videotrim::bridge::swift {
271
271
  return Func_void_FileValidationResult_Wrapper(std::move(value));
272
272
  }
273
273
 
274
+ // pragma MARK: std::shared_ptr<Promise<std::string>>
275
+ /**
276
+ * Specialized version of `std::shared_ptr<Promise<std::string>>`.
277
+ */
278
+ using std__shared_ptr_Promise_std__string__ = std::shared_ptr<Promise<std::string>>;
279
+ inline std::shared_ptr<Promise<std::string>> create_std__shared_ptr_Promise_std__string__() {
280
+ return Promise<std::string>::create();
281
+ }
282
+ inline PromiseHolder<std::string> wrap_std__shared_ptr_Promise_std__string__(std::shared_ptr<Promise<std::string>> promise) {
283
+ return PromiseHolder<std::string>(std::move(promise));
284
+ }
285
+
286
+ // pragma MARK: std::function<void(const std::string& /* result */)>
287
+ /**
288
+ * Specialized version of `std::function<void(const std::string&)>`.
289
+ */
290
+ using Func_void_std__string = std::function<void(const std::string& /* result */)>;
291
+ /**
292
+ * Wrapper class for a `std::function<void(const std::string& / * result * /)>`, this can be used from Swift.
293
+ */
294
+ class Func_void_std__string_Wrapper final {
295
+ public:
296
+ explicit Func_void_std__string_Wrapper(std::function<void(const std::string& /* result */)>&& func): _function(std::make_shared<std::function<void(const std::string& /* result */)>>(std::move(func))) {}
297
+ inline void call(std::string result) const {
298
+ _function->operator()(result);
299
+ }
300
+ private:
301
+ std::shared_ptr<std::function<void(const std::string& /* result */)>> _function;
302
+ };
303
+ Func_void_std__string create_Func_void_std__string(void* _Nonnull swiftClosureWrapper);
304
+ inline Func_void_std__string_Wrapper wrap_Func_void_std__string(Func_void_std__string value) {
305
+ return Func_void_std__string_Wrapper(std::move(value));
306
+ }
307
+
274
308
  // pragma MARK: std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec>
275
309
  /**
276
310
  * Specialized version of `std::shared_ptr<margelo::nitro::videotrim::HybridVideoTrimSpec>`.
@@ -327,5 +361,14 @@ namespace margelo::nitro::videotrim::bridge::swift {
327
361
  inline Result_std__shared_ptr_Promise_FileValidationResult___ create_Result_std__shared_ptr_Promise_FileValidationResult___(const std::exception_ptr& error) {
328
362
  return Result<std::shared_ptr<Promise<FileValidationResult>>>::withError(error);
329
363
  }
364
+
365
+ // pragma MARK: Result<std::shared_ptr<Promise<std::string>>>
366
+ using Result_std__shared_ptr_Promise_std__string___ = Result<std::shared_ptr<Promise<std::string>>>;
367
+ inline Result_std__shared_ptr_Promise_std__string___ create_Result_std__shared_ptr_Promise_std__string___(const std::shared_ptr<Promise<std::string>>& value) {
368
+ return Result<std::shared_ptr<Promise<std::string>>>::withValue(value);
369
+ }
370
+ inline Result_std__shared_ptr_Promise_std__string___ create_Result_std__shared_ptr_Promise_std__string___(const std::exception_ptr& error) {
371
+ return Result<std::shared_ptr<Promise<std::string>>>::withError(error);
372
+ }
330
373
 
331
374
  } // namespace margelo::nitro::videotrim::bridge::swift
@@ -14,11 +14,14 @@ namespace margelo::nitro::videotrim { struct EditorConfig; }
14
14
  namespace margelo::nitro::videotrim { struct FileValidationResult; }
15
15
  // Forward declaration of `HybridVideoTrimSpec` to properly resolve imports.
16
16
  namespace margelo::nitro::videotrim { class HybridVideoTrimSpec; }
17
+ // Forward declaration of `TrimOptions` to properly resolve imports.
18
+ namespace margelo::nitro::videotrim { struct TrimOptions; }
17
19
 
18
20
  // Include C++ defined types
19
21
  #include "EditorConfig.hpp"
20
22
  #include "FileValidationResult.hpp"
21
23
  #include "HybridVideoTrimSpec.hpp"
24
+ #include "TrimOptions.hpp"
22
25
  #include <NitroModules/Promise.hpp>
23
26
  #include <NitroModules/Result.hpp>
24
27
  #include <exception>
@@ -16,6 +16,8 @@ namespace VideoTrim { class HybridVideoTrimSpec_cxx; }
16
16
  namespace margelo::nitro::videotrim { struct EditorConfig; }
17
17
  // Forward declaration of `FileValidationResult` to properly resolve imports.
18
18
  namespace margelo::nitro::videotrim { struct FileValidationResult; }
19
+ // Forward declaration of `TrimOptions` to properly resolve imports.
20
+ namespace margelo::nitro::videotrim { struct TrimOptions; }
19
21
 
20
22
  #include <string>
21
23
  #include "EditorConfig.hpp"
@@ -24,6 +26,7 @@ namespace margelo::nitro::videotrim { struct FileValidationResult; }
24
26
  #include <NitroModules/Promise.hpp>
25
27
  #include <vector>
26
28
  #include "FileValidationResult.hpp"
29
+ #include "TrimOptions.hpp"
27
30
 
28
31
  #include "VideoTrim-Swift-Cxx-Umbrella.hpp"
29
32
 
@@ -108,6 +111,14 @@ namespace margelo::nitro::videotrim {
108
111
  auto __value = std::move(__result.value());
109
112
  return __value;
110
113
  }
114
+ inline std::shared_ptr<Promise<std::string>> trim(const std::string& url, const TrimOptions& options) override {
115
+ auto __result = _swiftPart.trim(url, options);
116
+ if (__result.hasError()) [[unlikely]] {
117
+ std::rethrow_exception(__result.error());
118
+ }
119
+ auto __value = std::move(__result.value());
120
+ return __value;
121
+ }
111
122
 
112
123
  private:
113
124
  VideoTrim::HybridVideoTrimSpec_cxx _swiftPart;