@hotta/react-native-imagepicker 0.1.6 → 0.1.7
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/android/src/main/java/com/htreactnative/imagepicker/NativeImagePickerModule.kt +41 -4
- package/android/src/main/res/drawable/checked_select.png +0 -0
- package/android/src/main/res/drawable/unchecked_select.png +0 -0
- package/lib/module/index.js +3 -8
- package/lib/module/index.js.map +2 -1
- package/lib/typescript/src/NativeImagePicker.d.ts +7 -7
- package/lib/typescript/src/NativeImagePicker.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +2 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeImagePicker.ts +7 -7
- package/src/index.ts +11 -2
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
package com.htreactnative.imagepicker
|
|
2
2
|
|
|
3
3
|
import android.graphics.BitmapFactory
|
|
4
|
+
import android.graphics.Color
|
|
4
5
|
import com.facebook.react.bridge.Promise
|
|
5
6
|
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
7
|
import com.facebook.react.bridge.ReadableMap
|
|
@@ -10,8 +11,13 @@ import com.facebook.react.bridge.WritableNativeMap
|
|
|
10
11
|
import com.facebook.react.module.annotations.ReactModule
|
|
11
12
|
import com.luck.picture.lib.basic.PictureSelector
|
|
12
13
|
import com.luck.picture.lib.config.SelectMimeType
|
|
14
|
+
import com.luck.picture.lib.config.SelectModeConfig
|
|
13
15
|
import com.luck.picture.lib.entity.LocalMedia
|
|
14
16
|
import com.luck.picture.lib.interfaces.OnResultCallbackListener
|
|
17
|
+
import com.luck.picture.lib.style.BottomNavBarStyle
|
|
18
|
+
import com.luck.picture.lib.style.PictureSelectorStyle
|
|
19
|
+
import com.luck.picture.lib.style.SelectMainStyle
|
|
20
|
+
import com.luck.picture.lib.style.TitleBarStyle
|
|
15
21
|
import com.luck.picture.lib.utils.SdkVersionUtils
|
|
16
22
|
import java.io.File
|
|
17
23
|
import java.util.ArrayList
|
|
@@ -44,7 +50,7 @@ class NativeImagePickerModule(reactContext: ReactApplicationContext) :
|
|
|
44
50
|
}
|
|
45
51
|
|
|
46
52
|
override fun onCancel() {
|
|
47
|
-
|
|
53
|
+
promise?.reject("", "取消")
|
|
48
54
|
}
|
|
49
55
|
|
|
50
56
|
})
|
|
@@ -56,9 +62,13 @@ class NativeImagePickerModule(reactContext: ReactApplicationContext) :
|
|
|
56
62
|
) {
|
|
57
63
|
pickerOptions = options;
|
|
58
64
|
val videoCount = options?.getInt("videoCount") ?: 1
|
|
65
|
+
val isCamera = options?.getBoolean("isCamera") ?: false
|
|
59
66
|
PictureSelector.create(reactApplicationContext.currentActivity)
|
|
60
67
|
.openGallery(SelectMimeType.ofVideo())
|
|
61
|
-
.
|
|
68
|
+
.setSelectionMode(SelectModeConfig.SINGLE)
|
|
69
|
+
.setMaxSelectNum(1)
|
|
70
|
+
.isDisplayCamera(isCamera)
|
|
71
|
+
.setSelectorUIStyle(getNoCountStyle())
|
|
62
72
|
.setImageEngine(imageEngine)
|
|
63
73
|
.forResult(object : OnResultCallbackListener<LocalMedia> {
|
|
64
74
|
override fun onResult(localMediaList: ArrayList<LocalMedia?>?) {
|
|
@@ -70,12 +80,39 @@ class NativeImagePickerModule(reactContext: ReactApplicationContext) :
|
|
|
70
80
|
}
|
|
71
81
|
|
|
72
82
|
override fun onCancel() {
|
|
73
|
-
|
|
83
|
+
promise?.reject("", "取消")
|
|
74
84
|
}
|
|
75
85
|
|
|
76
86
|
})
|
|
77
87
|
}
|
|
78
88
|
|
|
89
|
+
private fun getNoCountStyle(): PictureSelectorStyle {
|
|
90
|
+
return PictureSelectorStyle().apply {
|
|
91
|
+
selectMainStyle = SelectMainStyle().apply {
|
|
92
|
+
// 隐藏选择后的数字/角标索引
|
|
93
|
+
isSelectNumberStyle = false
|
|
94
|
+
isPreviewSelectNumberStyle = false
|
|
95
|
+
// selectBackground = android.R.color.transparent
|
|
96
|
+
selectText = "下一步"
|
|
97
|
+
selectTextColor = Color.WHITE
|
|
98
|
+
}
|
|
99
|
+
bottomBarStyle = BottomNavBarStyle().apply {
|
|
100
|
+
isCompleteCountTips = false
|
|
101
|
+
bottomPreviewNormalText = "" // 未选中任何文件时的文字设为空
|
|
102
|
+
bottomPreviewSelectText = "" // 选中文件后的文字设为空
|
|
103
|
+
|
|
104
|
+
// (可选保障)为了防止有默认的点击态背景,你可以顺手把它的颜色也设为透明
|
|
105
|
+
bottomPreviewNormalTextColor = android.R.color.transparent
|
|
106
|
+
bottomPreviewSelectTextColor = android.R.color.transparent
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
titleBarStyle = TitleBarStyle().apply {
|
|
110
|
+
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
79
116
|
private fun getVideoResult(media: LocalMedia): WritableMap {
|
|
80
117
|
val videoMap: WritableMap = WritableNativeMap()
|
|
81
118
|
var path: String = media.path
|
|
@@ -92,7 +129,7 @@ class NativeImagePickerModule(reactContext: ReactApplicationContext) :
|
|
|
92
129
|
videoMap.putDouble("width", media.width.toDouble())
|
|
93
130
|
videoMap.putDouble("height", media.height.toDouble())
|
|
94
131
|
videoMap.putDouble("duration", media.duration * 1000.0)
|
|
95
|
-
videoMap.
|
|
132
|
+
videoMap.putLong("size", media.size)
|
|
96
133
|
videoMap.putString("filename", media.fileName)
|
|
97
134
|
return videoMap
|
|
98
135
|
}
|
|
Binary file
|
|
Binary file
|
package/lib/module/index.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import NativeImagePicker
|
|
3
|
+
import NativeImagePicker from "./NativeImagePicker.js";
|
|
4
4
|
const HTNativeImagePicker = (() => {
|
|
5
5
|
return {
|
|
6
|
-
asyncShowImagePicker:
|
|
7
|
-
|
|
8
|
-
...defaultOptions,
|
|
9
|
-
...options
|
|
10
|
-
};
|
|
11
|
-
return NativeImagePicker.asyncShowImagePicker(_options);
|
|
12
|
-
}
|
|
6
|
+
asyncShowImagePicker: NativeImagePicker.asyncShowImagePicker,
|
|
7
|
+
asyncShowVideoPicker: NativeImagePicker.asyncShowVideoPicker
|
|
13
8
|
};
|
|
14
9
|
})();
|
|
15
10
|
export default HTNativeImagePicker;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
{"version":3,"names":["NativeImagePicker","
|
|
1
|
+
{"version":3,"names":["NativeImagePicker","HTNativeImagePicker","asyncShowImagePicker","asyncShowVideoPicker"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA,OAAOA,iBAAiB,MAAM,wBAAqB;AAEnD,MAAMC,mBAAmB,GAAG,CAAC,MAAM;EACjC,OAAO;IACLC,oBAAoB,EAAEF,iBAAiB,CAACE,oBAAoB;IAC5DC,oBAAoB,EAAEH,iBAAiB,CAACG;EAC1C,CAAC;AACH,CAAC,EAAE,CAAC;AAEJ,eAAeF,mBAAmB","ignoreList":[]}
|
|
2
|
+
AClD,OAAOJ,iBAAiB,CAACG,oBAAoB,CAACE,QAAQ,CAAC;IACzD,CAAC;IACDC,oBAAoB,EAAGF,OAA0B,IAAM;MACrD,MAAMC,QAAQ,GAAG;QAAE,GAAGJ,cAAc;QAAE,GAAGG;MAAQ,CAAC;MAClD,OAAOJ,iBAAiB,CAACM,oBAAoB,CAACD,QAAQ,CAAC;IACzD;EACF,CAAC;AACH,CAAC,EAAE,CAAC;AAEJ,eAAeH,mBAAmB","ignoreList":[]}
|
|
@@ -70,14 +70,14 @@ export declare const defaultOptions: {
|
|
|
70
70
|
};
|
|
71
71
|
export type VideoPickerOption = {
|
|
72
72
|
videoCount: number;
|
|
73
|
-
isCamera
|
|
74
|
-
MaxSecond
|
|
75
|
-
MinSecond
|
|
76
|
-
videoMaximumDuration
|
|
77
|
-
sortAscendingByModificationDate
|
|
78
|
-
showSelectedIndex
|
|
73
|
+
isCamera?: boolean;
|
|
74
|
+
MaxSecond?: number;
|
|
75
|
+
MinSecond?: number;
|
|
76
|
+
videoMaximumDuration?: number;
|
|
77
|
+
sortAscendingByModificationDate?: boolean;
|
|
78
|
+
showSelectedIndex?: boolean;
|
|
79
79
|
};
|
|
80
|
-
interface SelectedVideo {
|
|
80
|
+
export interface SelectedVideo {
|
|
81
81
|
path: string;
|
|
82
82
|
size: number;
|
|
83
83
|
width: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeImagePicker.d.ts","sourceRoot":"","sources":["../../../src/NativeImagePicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAC,OAAO,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,yBAAyB,EAAE,OAAO,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,+BAA+B,EAAE,OAAO,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAEH,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAC,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAC,MAAM,CAAC;IACZ,MAAM,EAAC,MAAM,CAAA;CACd;AAGH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeImagePicker.d.ts","sourceRoot":"","sources":["../../../src/NativeImagePicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAC,OAAO,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,yBAAyB,EAAE,OAAO,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,+BAA+B,EAAE,OAAO,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAEH,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAC,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAC,MAAM,CAAC;IACZ,MAAM,EAAC,MAAM,CAAA;CACd;AAGH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+BAA+B,CAAC,EAAE,OAAO,CAAC;IAC1C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC/B,CAAA;AAED,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,mBAAmB;;;;;;;;CAQ/B,CAAA;AAED,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,oBAAoB,CAAC,OAAO,EAAC,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/E,oBAAoB,CAAC,OAAO,EAAC,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;CAChF;;AAED,wBAA2E"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { type ImagePickerOption, type SelectedPhoto } from './NativeImagePicker';
|
|
1
|
+
import { type ImagePickerOption, type SelectedPhoto, type VideoPickerOption } from './NativeImagePicker';
|
|
2
2
|
export type { SelectedPhoto, ImagePickerOption };
|
|
3
3
|
declare const HTNativeImagePicker: {
|
|
4
4
|
asyncShowImagePicker: (options: ImagePickerOption) => Promise<SelectedPhoto[]>;
|
|
5
|
+
asyncShowVideoPicker: (options: VideoPickerOption) => Promise<import("./NativeImagePicker").SelectedVideo[]>;
|
|
5
6
|
};
|
|
6
7
|
export default HTNativeImagePicker;
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAA0B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAA0B,EAExB,KAAK,iBAAiB,EACtB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,MAAM,qBAAqB,CAAC;AAC9B,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;AACjD,QAAA,MAAM,mBAAmB;oCAEW,iBAAiB;oCAIjB,iBAAiB;CAKjD,CAAA;AAEJ,eAAe,mBAAmB,CAAA"}
|
package/package.json
CHANGED
package/src/NativeImagePicker.ts
CHANGED
|
@@ -74,15 +74,15 @@ export const defaultOptions = {
|
|
|
74
74
|
};
|
|
75
75
|
export type VideoPickerOption = {
|
|
76
76
|
videoCount: number, // 最大选择视频数目,默认1
|
|
77
|
-
isCamera
|
|
78
|
-
MaxSecond
|
|
79
|
-
MinSecond
|
|
80
|
-
videoMaximumDuration
|
|
81
|
-
sortAscendingByModificationDate
|
|
82
|
-
showSelectedIndex
|
|
77
|
+
isCamera?: boolean, // 是否允许录制视频,默认true
|
|
78
|
+
MaxSecond?: number, // 选择视频最大时长,默认是180秒
|
|
79
|
+
MinSecond?: number, // 选择视频最小时长,默认是1秒
|
|
80
|
+
videoMaximumDuration?: number, // 视频最大录制时长,默认是600秒
|
|
81
|
+
sortAscendingByModificationDate?: boolean, // 按修改时间升序,默认是YES
|
|
82
|
+
showSelectedIndex?: boolean, // 是否显示序号,默认不显示
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
interface SelectedVideo {
|
|
85
|
+
export interface SelectedVideo {
|
|
86
86
|
path: string, // 视频路径
|
|
87
87
|
size: number, // 文件大小,单位为字节
|
|
88
88
|
width: number, // 视频宽度
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,20 @@
|
|
|
1
|
-
import NativeImagePicker, {
|
|
1
|
+
import NativeImagePicker, {
|
|
2
|
+
defaultOptions,
|
|
3
|
+
type ImagePickerOption,
|
|
4
|
+
type SelectedPhoto,
|
|
5
|
+
type VideoPickerOption
|
|
6
|
+
} from './NativeImagePicker';
|
|
2
7
|
export type { SelectedPhoto, ImagePickerOption };
|
|
3
8
|
const HTNativeImagePicker = (() => {
|
|
4
9
|
return {
|
|
5
10
|
asyncShowImagePicker: (options: ImagePickerOption ) => {
|
|
6
11
|
const _options = { ...defaultOptions, ...options }
|
|
7
12
|
return NativeImagePicker.asyncShowImagePicker(_options)
|
|
8
|
-
}
|
|
13
|
+
},
|
|
14
|
+
asyncShowVideoPicker: (options: VideoPickerOption ) => {
|
|
15
|
+
const _options = { ...defaultOptions, ...options }
|
|
16
|
+
return NativeImagePicker.asyncShowVideoPicker(_options)
|
|
17
|
+
},
|
|
9
18
|
};
|
|
10
19
|
})()
|
|
11
20
|
|