react-native-video-trim 3.0.10 → 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.
- package/LICENSE +1 -1
- package/README.md +80 -63
- package/VideoTrim.podspec +24 -0
- package/android/CMakeLists.txt +24 -0
- package/android/build.gradle +82 -49
- package/android/gradle.properties +7 -5
- package/android/src/main/AndroidManifest.xml +4 -2
- package/android/src/main/cpp/cpp-adapter.cpp +6 -0
- package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrim.kt +646 -0
- package/android/src/main/java/com/margelo/nitro/videotrim/VideoTrimPackage.kt +22 -0
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/enums/ErrorCode.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/IVideoTrimmerView.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/interfaces/VideoTrimListener.java +6 -5
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/MediaMetadataUtil.java +1 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/StorageUtil.java +3 -1
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/VideoTrimmerUtil.java +51 -41
- package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/widgets/VideoTrimmerView.java +45 -69
- package/ios/AssetLoader.swift +2 -2
- package/ios/ErrorCode.swift +2 -2
- package/ios/ProgressAlertController.swift +2 -2
- package/ios/VideoTrim.swift +52 -835
- package/ios/VideoTrimImpl.swift +957 -0
- package/ios/VideoTrimmer.swift +2 -3
- package/ios/VideoTrimmerThumb.swift +33 -26
- package/ios/VideoTrimmerViewController.swift +47 -28
- package/lib/module/VideoTrim.nitro.js +4 -0
- package/lib/module/VideoTrim.nitro.js.map +1 -0
- package/lib/module/index.js +98 -22
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/{index.d.ts → src/VideoTrim.nitro.d.ts} +125 -134
- package/lib/typescript/src/VideoTrim.nitro.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +49 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/nitrogen/generated/android/c++/JEditorConfig.hpp +237 -0
- package/nitrogen/generated/android/c++/JFileValidationResult.hpp +61 -0
- package/nitrogen/generated/android/c++/JFunc_void.hpp +74 -0
- package/nitrogen/generated/android/c++/JFunc_void_std__string_std__unordered_map_std__string__std__string_.hpp +89 -0
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.cpp +151 -0
- package/nitrogen/generated/android/c++/JHybridVideoTrimSpec.hpp +68 -0
- package/nitrogen/generated/android/c++/JTrimOptions.hpp +109 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/EditorConfig.kt +72 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/FileValidationResult.kt +28 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/Func_void_std__string_std__unordered_map_std__string__std__string_.kt +80 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/HybridVideoTrimSpec.kt +86 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/TrimOptions.kt +40 -0
- package/nitrogen/generated/android/kotlin/com/margelo/nitro/videotrim/videotrimOnLoad.kt +35 -0
- package/nitrogen/generated/android/videotrim+autolinking.cmake +78 -0
- package/nitrogen/generated/android/videotrim+autolinking.gradle +27 -0
- package/nitrogen/generated/android/videotrimOnLoad.cpp +50 -0
- package/nitrogen/generated/android/videotrimOnLoad.hpp +25 -0
- package/nitrogen/generated/ios/VideoTrim+autolinking.rb +60 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.cpp +96 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Bridge.hpp +374 -0
- package/nitrogen/generated/ios/VideoTrim-Swift-Cxx-Umbrella.hpp +56 -0
- package/nitrogen/generated/ios/VideoTrimAutolinking.mm +33 -0
- package/nitrogen/generated/ios/VideoTrimAutolinking.swift +25 -0
- package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.cpp +11 -0
- package/nitrogen/generated/ios/c++/HybridVideoTrimSpecSwift.hpp +127 -0
- package/nitrogen/generated/ios/swift/EditorConfig.swift +541 -0
- package/nitrogen/generated/ios/swift/FileValidationResult.swift +57 -0
- package/nitrogen/generated/ios/swift/Func_void.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_FileValidationResult.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_bool.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_double.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__exception_ptr.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string.swift +46 -0
- package/nitrogen/generated/ios/swift/Func_void_std__string_std__unordered_map_std__string__std__string_.swift +54 -0
- package/nitrogen/generated/ios/swift/Func_void_std__vector_std__string_.swift +46 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec.swift +54 -0
- package/nitrogen/generated/ios/swift/HybridVideoTrimSpec_cxx.swift +241 -0
- package/nitrogen/generated/ios/swift/TrimOptions.swift +189 -0
- package/nitrogen/generated/shared/c++/EditorConfig.hpp +253 -0
- package/nitrogen/generated/shared/c++/FileValidationResult.hpp +77 -0
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.cpp +27 -0
- package/nitrogen/generated/shared/c++/HybridVideoTrimSpec.hpp +80 -0
- package/nitrogen/generated/shared/c++/TrimOptions.hpp +125 -0
- package/package.json +75 -71
- package/src/VideoTrim.nitro.ts +263 -0
- package/src/index.tsx +120 -257
- package/android/src/main/AndroidManifestDeprecated.xml +0 -3
- package/android/src/main/java/com/videotrim/VideoTrimModule.java +0 -603
- package/android/src/main/java/com/videotrim/VideoTrimPackage.java +0 -28
- package/ios/VideoTrim-Bridging-Header.h +0 -2
- package/ios/VideoTrim.mm +0 -17
- package/ios/VideoTrim.xcodeproj/project.pbxproj +0 -283
- package/lib/commonjs/index.js +0 -87
- package/lib/commonjs/index.js.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/react-native-video-trim.podspec +0 -43
package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/StorageUtil.java
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.videotrim.utils;
|
|
1
|
+
package com.margelo.nitro.videotrim.utils;
|
|
2
2
|
|
|
3
3
|
import android.content.ContentValues;
|
|
4
4
|
import android.content.Context;
|
|
@@ -8,7 +8,9 @@ import android.os.Build;
|
|
|
8
8
|
import android.os.Environment;
|
|
9
9
|
import android.provider.MediaStore;
|
|
10
10
|
import android.text.TextUtils;
|
|
11
|
+
|
|
11
12
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
13
|
+
|
|
12
14
|
import java.io.File;
|
|
13
15
|
import java.io.FileInputStream;
|
|
14
16
|
import java.io.FileOutputStream;
|
package/android/src/main/java/com/{videotrim → margelo/nitro/videotrim}/utils/VideoTrimmerUtil.java
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
package com.videotrim.utils;
|
|
1
|
+
package com.margelo.nitro.videotrim.utils;
|
|
2
2
|
|
|
3
3
|
import android.annotation.SuppressLint;
|
|
4
4
|
import android.graphics.Bitmap;
|
|
@@ -9,13 +9,15 @@ import com.arthenica.ffmpegkit.FFmpegKit;
|
|
|
9
9
|
import com.arthenica.ffmpegkit.FFmpegSession;
|
|
10
10
|
import com.arthenica.ffmpegkit.ReturnCode;
|
|
11
11
|
import com.arthenica.ffmpegkit.SessionState;
|
|
12
|
-
import com.
|
|
13
|
-
import com.
|
|
14
|
-
import com.videotrim.enums.ErrorCode;
|
|
15
|
-
import com.videotrim.interfaces.VideoTrimListener;
|
|
12
|
+
import com.margelo.nitro.videotrim.enums.ErrorCode;
|
|
13
|
+
import com.margelo.nitro.videotrim.interfaces.VideoTrimListener;
|
|
16
14
|
|
|
17
15
|
import java.text.SimpleDateFormat;
|
|
16
|
+
import java.util.ArrayList;
|
|
18
17
|
import java.util.Date;
|
|
18
|
+
import java.util.HashMap;
|
|
19
|
+
import java.util.List;
|
|
20
|
+
import java.util.Map;
|
|
19
21
|
import java.util.TimeZone;
|
|
20
22
|
|
|
21
23
|
import iknow.android.utils.DeviceUtil;
|
|
@@ -23,6 +25,7 @@ import iknow.android.utils.UnitConverter;
|
|
|
23
25
|
import iknow.android.utils.callback.SingleCallback;
|
|
24
26
|
import iknow.android.utils.thread.BackgroundExecutor;
|
|
25
27
|
|
|
28
|
+
|
|
26
29
|
public class VideoTrimmerUtil {
|
|
27
30
|
|
|
28
31
|
private static final String TAG = VideoTrimmerUtil.class.getSimpleName();
|
|
@@ -42,7 +45,7 @@ public class VideoTrimmerUtil {
|
|
|
42
45
|
public static final int THUMB_WIDTH = UnitConverter.dpToPx(25); // x2 for better resolution
|
|
43
46
|
private static final int THUMB_RESOLUTION_RES = 2; // double thumb resolution for better quality
|
|
44
47
|
|
|
45
|
-
public static FFmpegSession trim(String inputFile, String outputFile, int videoDuration, long startMs, long endMs, final VideoTrimListener callback) {
|
|
48
|
+
public static FFmpegSession trim(String inputFile, String outputFile, int videoDuration, long startMs, long endMs, boolean enableRotation, double rotationAngle, final VideoTrimListener callback) {
|
|
46
49
|
// Get the current date and time
|
|
47
50
|
Date currentDate = new Date();
|
|
48
51
|
|
|
@@ -54,26 +57,32 @@ public class VideoTrimmerUtil {
|
|
|
54
57
|
// Format the current date and time
|
|
55
58
|
String formattedDateTime = dateFormat.format(currentDate);
|
|
56
59
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
"
|
|
66
|
-
"-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
60
|
+
// create list to store commands
|
|
61
|
+
List<String> cmds = new ArrayList<>();
|
|
62
|
+
cmds.add("-ss");
|
|
63
|
+
cmds.add(startMs + "ms");
|
|
64
|
+
cmds.add("-to");
|
|
65
|
+
cmds.add(endMs + "ms");
|
|
66
|
+
|
|
67
|
+
if (enableRotation) {
|
|
68
|
+
// add "-display_rotation" and rotation angle to the command, contact, not creating new
|
|
69
|
+
cmds.add("-display_rotation");
|
|
70
|
+
cmds.add(String.valueOf(rotationAngle));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
cmds.add("-i");
|
|
74
|
+
cmds.add(inputFile);
|
|
75
|
+
cmds.add("-c");
|
|
76
|
+
cmds.add("copy");
|
|
77
|
+
cmds.add("-metadata");
|
|
78
|
+
cmds.add("creation_time=" + formattedDateTime);
|
|
79
|
+
cmds.add(outputFile);
|
|
80
|
+
|
|
81
|
+
String[] command = cmds.toArray(new String[0]);
|
|
82
|
+
|
|
83
|
+
Log.d(TAG,"Command: " + String.join(",", command));
|
|
84
|
+
|
|
85
|
+
return FFmpegKit.executeWithArgumentsAsync(command, session -> {
|
|
77
86
|
SessionState state = session.getState();
|
|
78
87
|
ReturnCode returnCode = session.getReturnCode();
|
|
79
88
|
if (ReturnCode.isSuccess(session.getReturnCode())) {
|
|
@@ -90,11 +99,12 @@ public class VideoTrimmerUtil {
|
|
|
90
99
|
}, log -> {
|
|
91
100
|
Log.d(TAG, "FFmpeg process started with log " + log.getMessage());
|
|
92
101
|
|
|
93
|
-
|
|
94
|
-
map.
|
|
95
|
-
map.
|
|
96
|
-
map.
|
|
97
|
-
map.
|
|
102
|
+
Map<String, String> map = new HashMap<>();
|
|
103
|
+
map.put("level", String.valueOf(log.getLevel().getValue()));
|
|
104
|
+
map.put("message", log.getMessage());
|
|
105
|
+
map.put("sessionId", String.valueOf(log.getSessionId()));
|
|
106
|
+
map.put("logStr", log.toString());
|
|
107
|
+
|
|
98
108
|
callback.onLog(map);
|
|
99
109
|
}, statistics -> {
|
|
100
110
|
int timeInMilliseconds = (int) statistics.getTime();
|
|
@@ -104,16 +114,16 @@ public class VideoTrimmerUtil {
|
|
|
104
114
|
callback.onTrimmingProgress(Math.min(Math.max(completePercentage, 0), 100));
|
|
105
115
|
}
|
|
106
116
|
|
|
107
|
-
|
|
108
|
-
map.
|
|
109
|
-
map.
|
|
110
|
-
map.
|
|
111
|
-
map.
|
|
112
|
-
map.
|
|
113
|
-
map.
|
|
114
|
-
map.
|
|
115
|
-
map.
|
|
116
|
-
map.
|
|
117
|
+
Map<String, String> map = new HashMap<>();
|
|
118
|
+
map.put("sessionId", String.valueOf(statistics.getSessionId()));
|
|
119
|
+
map.put("videoFrameNumber", String.valueOf(statistics.getVideoFrameNumber()));
|
|
120
|
+
map.put("videoFps", String.valueOf(statistics.getVideoFps()));
|
|
121
|
+
map.put("videoQuality", String.valueOf(statistics.getVideoQuality()));
|
|
122
|
+
map.put("size", String.valueOf(statistics.getSize()));
|
|
123
|
+
map.put("time", String.valueOf(statistics.getTime()));
|
|
124
|
+
map.put("bitrate", String.valueOf(statistics.getBitrate()));
|
|
125
|
+
map.put("speed", String.valueOf(statistics.getSpeed()));
|
|
126
|
+
map.put("statisticsStr", statistics.toString());
|
|
117
127
|
callback.onStatistics(map);
|
|
118
128
|
});
|
|
119
129
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
package com.videotrim.widgets;
|
|
1
|
+
package com.margelo.nitro.videotrim.widgets;
|
|
2
2
|
|
|
3
3
|
import static com.facebook.react.bridge.UiThreadUtil.runOnUiThread;
|
|
4
|
-
import static com.videotrim.utils.VideoTrimmerUtil.RECYCLER_VIEW_PADDING;
|
|
5
|
-
import static com.videotrim.utils.VideoTrimmerUtil.VIDEO_FRAMES_WIDTH;
|
|
4
|
+
import static com.margelo.nitro.videotrim.utils.VideoTrimmerUtil.RECYCLER_VIEW_PADDING;
|
|
5
|
+
import static com.margelo.nitro.videotrim.utils.VideoTrimmerUtil.VIDEO_FRAMES_WIDTH;
|
|
6
6
|
|
|
7
7
|
import android.content.Context;
|
|
8
8
|
import android.content.pm.ActivityInfo;
|
|
@@ -32,15 +32,16 @@ import android.widget.VideoView;
|
|
|
32
32
|
|
|
33
33
|
import androidx.appcompat.app.AlertDialog;
|
|
34
34
|
|
|
35
|
+
import com.arthenica.ffmpegkit.FFmpegSession;
|
|
35
36
|
import com.facebook.react.bridge.ReactApplicationContext;
|
|
36
|
-
import com.
|
|
37
|
-
import com.videotrim.R;
|
|
38
|
-
import com.videotrim.enums.ErrorCode;
|
|
39
|
-
import com.videotrim.interfaces.IVideoTrimmerView;
|
|
40
|
-
import com.videotrim.interfaces.VideoTrimListener;
|
|
41
|
-
import com.videotrim.utils.MediaMetadataUtil;
|
|
42
|
-
import com.videotrim.utils.StorageUtil;
|
|
43
|
-
import com.videotrim.utils.VideoTrimmerUtil;
|
|
37
|
+
import com.margelo.nitro.videotrim.EditorConfig;
|
|
38
|
+
import com.margelo.nitro.videotrim.R;
|
|
39
|
+
import com.margelo.nitro.videotrim.enums.ErrorCode;
|
|
40
|
+
import com.margelo.nitro.videotrim.interfaces.IVideoTrimmerView;
|
|
41
|
+
import com.margelo.nitro.videotrim.interfaces.VideoTrimListener;
|
|
42
|
+
import com.margelo.nitro.videotrim.utils.MediaMetadataUtil;
|
|
43
|
+
import com.margelo.nitro.videotrim.utils.StorageUtil;
|
|
44
|
+
import com.margelo.nitro.videotrim.utils.VideoTrimmerUtil;
|
|
44
45
|
|
|
45
46
|
import java.io.IOException;
|
|
46
47
|
import java.util.Locale;
|
|
@@ -48,7 +49,6 @@ import java.util.Locale;
|
|
|
48
49
|
import iknow.android.utils.DeviceUtil;
|
|
49
50
|
import iknow.android.utils.thread.BackgroundExecutor;
|
|
50
51
|
import iknow.android.utils.thread.UiThreadExecutor;
|
|
51
|
-
import com.arthenica.ffmpegkit.FFmpegSession;
|
|
52
52
|
|
|
53
53
|
public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
54
54
|
|
|
@@ -87,6 +87,9 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
87
87
|
private RelativeLayout trimmerContainerWrapper;
|
|
88
88
|
|
|
89
89
|
private long startTime = 0, endTime = 0;
|
|
90
|
+
private boolean enableRotation = false;
|
|
91
|
+
private double rotationAngle = 0.0;
|
|
92
|
+
|
|
90
93
|
private Vibrator vibrator;
|
|
91
94
|
private boolean didClampWhilePanning = false;
|
|
92
95
|
|
|
@@ -116,16 +119,16 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
116
119
|
private String alertOnFailCloseText = "Close";
|
|
117
120
|
private View currentSelectedhandle;
|
|
118
121
|
|
|
119
|
-
public VideoTrimmerView(ReactApplicationContext context,
|
|
122
|
+
public VideoTrimmerView(ReactApplicationContext context, EditorConfig config, AttributeSet attrs) {
|
|
120
123
|
this(context, attrs, 0, config);
|
|
121
124
|
}
|
|
122
125
|
|
|
123
|
-
public VideoTrimmerView(ReactApplicationContext context, AttributeSet attrs, int defStyleAttr,
|
|
126
|
+
public VideoTrimmerView(ReactApplicationContext context, AttributeSet attrs, int defStyleAttr, EditorConfig config) {
|
|
124
127
|
super(context, attrs, defStyleAttr);
|
|
125
128
|
init(context, config);
|
|
126
129
|
}
|
|
127
130
|
|
|
128
|
-
private void init(ReactApplicationContext context,
|
|
131
|
+
private void init(ReactApplicationContext context, EditorConfig config) {
|
|
129
132
|
this.mContext = context;
|
|
130
133
|
|
|
131
134
|
context.getCurrentActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
|
|
@@ -374,6 +377,8 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
374
377
|
mDuration,
|
|
375
378
|
startTime,
|
|
376
379
|
endTime,
|
|
380
|
+
enableRotation,
|
|
381
|
+
rotationAngle,
|
|
377
382
|
mOnTrimVideoListener
|
|
378
383
|
);
|
|
379
384
|
}
|
|
@@ -445,79 +450,50 @@ public class VideoTrimmerView extends FrameLayout implements IVideoTrimmerView {
|
|
|
445
450
|
return screenWidth;
|
|
446
451
|
}
|
|
447
452
|
|
|
448
|
-
private void configure(
|
|
449
|
-
if (config.
|
|
450
|
-
mMaxDuration = Math.max(0, config.
|
|
453
|
+
private void configure(EditorConfig config) {
|
|
454
|
+
if (config.getMaxDuration() > 0) {
|
|
455
|
+
mMaxDuration = (long) Math.max(0, config.getMaxDuration() * 1000L);
|
|
451
456
|
}
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
if (config.hasKey("cancelButtonText")) {
|
|
456
|
-
cancelBtn.setText(config.getString("cancelButtonText"));
|
|
457
|
-
}
|
|
458
|
-
if (config.hasKey("saveButtonText")) {
|
|
459
|
-
saveBtn.setText(config.getString("saveButtonText"));
|
|
457
|
+
|
|
458
|
+
if (config.getMinDuration() > 0) {
|
|
459
|
+
mMinDuration = (long) Math.max(1000L, config.getMinDuration() * 1000L);
|
|
460
460
|
}
|
|
461
461
|
|
|
462
|
-
|
|
463
|
-
isVideoType = !config.getString("type").equals("audio");
|
|
462
|
+
cancelBtn.setText(config.getCancelButtonText());
|
|
464
463
|
|
|
465
|
-
|
|
466
|
-
// mThumbnailContainer.setAlpha(0f);
|
|
467
|
-
// mThumbnailContainer.setBackground(ContextCompat.getDrawable(mContext, R.drawable.thumb_container_bg));
|
|
468
|
-
// }
|
|
469
|
-
}
|
|
464
|
+
saveBtn.setText(config.getSaveButtonText());
|
|
470
465
|
|
|
471
|
-
|
|
472
|
-
mOutputExt = config.getString("outputExt");
|
|
473
|
-
} else if (!isVideoType) {
|
|
474
|
-
mOutputExt = "wav";
|
|
475
|
-
}
|
|
466
|
+
isVideoType = config.getType().equals("video");
|
|
476
467
|
|
|
477
|
-
|
|
478
|
-
|
|
468
|
+
mOutputExt = config.getOutputExt();
|
|
469
|
+
if (!isVideoType) {
|
|
470
|
+
mOutputExt = "wav";
|
|
479
471
|
}
|
|
480
472
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
}
|
|
473
|
+
enableHapticFeedback = config.getEnableHapticFeedback();
|
|
474
|
+
autoplay = config.getAutoplay();
|
|
484
475
|
|
|
485
|
-
if (config.
|
|
486
|
-
jumpToPositionOnLoad = config.
|
|
476
|
+
if (config.getJumpToPositionOnLoad() > 0) {
|
|
477
|
+
jumpToPositionOnLoad = (long) config.getJumpToPositionOnLoad();
|
|
487
478
|
}
|
|
488
|
-
// check if config.getString("headerText") is not empty
|
|
489
479
|
|
|
490
|
-
|
|
491
|
-
headerText.setText(config.getString("headerText"));
|
|
480
|
+
headerText.setText(config.getHeaderText());
|
|
492
481
|
|
|
493
|
-
|
|
494
|
-
int textSize = config.getInt("headerTextSize");
|
|
482
|
+
int textSize = (int) config.getHeaderTextSize();
|
|
495
483
|
if (textSize < 0) {
|
|
496
484
|
textSize = 16;
|
|
497
485
|
}
|
|
498
486
|
headerText.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize);
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
if (config.hasKey("headerTextColor")) {
|
|
502
|
-
headerText.setTextColor(config.getInt("headerTextColor"));
|
|
503
|
-
}
|
|
487
|
+
headerText.setTextColor((int) config.getHeaderTextColor());
|
|
504
488
|
|
|
505
489
|
headerView.setVisibility(View.VISIBLE);
|
|
506
|
-
}
|
|
507
|
-
|
|
508
|
-
alertOnFailToLoad = !config.hasKey("alertOnFailToLoad") || config.getBoolean("alertOnFailToLoad");
|
|
509
490
|
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
}
|
|
517
|
-
|
|
518
|
-
if (config.hasKey("alertOnFailCloseText")) {
|
|
519
|
-
alertOnFailCloseText = config.getString("alertOnFailCloseText");
|
|
520
|
-
}
|
|
491
|
+
alertOnFailToLoad = config.getAlertOnFailToLoad();
|
|
492
|
+
alertOnFailTitle = config.getAlertOnFailTitle();
|
|
493
|
+
alertOnFailMessage = config.getAlertOnFailMessage();
|
|
494
|
+
alertOnFailCloseText = config.getAlertOnFailCloseText();
|
|
495
|
+
enableRotation = config.getEnableRotation();
|
|
496
|
+
rotationAngle = config.getRotationAngle();
|
|
521
497
|
}
|
|
522
498
|
|
|
523
499
|
private void startTimingRunnable() {
|
package/ios/AssetLoader.swift
CHANGED
package/ios/ErrorCode.swift
CHANGED