react-native-picture-selector 1.0.30 → 1.0.32

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.
@@ -18,3 +18,17 @@ include(${CMAKE_SOURCE_DIR}/../nitrogen/generated/android/NitroPictureSelector+a
18
18
  target_sources(${CMAKE_PROJECT_NAME} PRIVATE
19
19
  src/main/cpp/cpp-adapter.cpp
20
20
  )
21
+
22
+ # The react-native-nitro-modules prefab is header-only at CMake configure time,
23
+ # so react-native-nitro-modules::NitroModules adds no .so to the link command.
24
+ # Link libNitroModules.so directly using the known build output path.
25
+ string(TOLOWER "${CMAKE_BUILD_TYPE}" _build_type_lower)
26
+ if(_build_type_lower STREQUAL "release")
27
+ set(NITRO_BUILD_VARIANT "release")
28
+ else()
29
+ set(NITRO_BUILD_VARIANT "debug")
30
+ endif()
31
+
32
+ target_link_libraries(${CMAKE_PROJECT_NAME}
33
+ ${CMAKE_SOURCE_DIR}/../../react-native-nitro-modules/android/build/intermediates/cmake/${NITRO_BUILD_VARIANT}/obj/${ANDROID_ABI}/libNitroModules.so
34
+ )
@@ -6,21 +6,43 @@
6
6
  /// System.loadLibrary("NitroPictureSelector")
7
7
  /// the JVM invokes this function with the JavaVM*, which:
8
8
  /// 1. Initialises fbjni (facebook::jni::initialize)
9
- /// 2. Calls registerAllNatives() — which registers JNI methods and
10
- /// inserts "PictureSelector" into Nitro's HybridObjectRegistry.
11
- ///
12
- /// Without this entry point System.loadLibrary succeeds silently but
13
- /// nothing ever gets registered, so every call to
14
- /// NitroModules.createHybridObject("PictureSelector")
15
- /// throws "It has not yet been registered in the HybridObjectRegistry".
9
+ /// 2. Calls registerAllNatives() — which registers JNI methods.
10
+ /// 3. Registers "HybridPictureSelector" in Nitro's HybridObjectRegistry
11
+ /// so that NitroModules.createHybridObject("HybridPictureSelector")
12
+ /// resolves to the Kotlin HybridPictureSelector class.
16
13
  ///
17
14
 
18
15
  #include <jni.h>
19
16
  #include <fbjni/fbjni.h>
17
+ #include <NitroModules/HybridObjectRegistry.hpp>
20
18
  #include "NitroPictureSelectorOnLoad.hpp"
19
+ #include "JHybridHybridPictureSelectorSpec.hpp"
20
+ #include "HybridHybridPictureSelectorSpec.hpp"
21
21
 
22
22
  JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void*) {
23
23
  return facebook::jni::initialize(vm, []() {
24
+ // 1. Register JNI methods for all generated specs.
24
25
  margelo::nitro::pictureselector::registerAllNatives();
26
+
27
+ // 2. Register the HybridObject factory in Nitro's HybridObjectRegistry.
28
+ // The autolinking block in the generated NitroPictureSelectorOnLoad.cpp
29
+ // is empty (nitrogen was run before autolinking was configured).
30
+ // Registration is done here manually using the TAG from the generated spec.
31
+ margelo::nitro::HybridObjectRegistry::registerHybridObjectConstructor(
32
+ "HybridPictureSelector",
33
+ []() -> std::shared_ptr<margelo::nitro::HybridObject> {
34
+ static const auto cls = facebook::jni::findClassStatic(
35
+ "com/margelo/pictureselector/HybridPictureSelector"
36
+ );
37
+ static const auto ctor = cls->getConstructor<facebook::jni::JObject::javaobject()>();
38
+ auto javaObject = cls->newObject(ctor);
39
+ auto javaPart = facebook::jni::static_ref_cast<
40
+ margelo::nitro::pictureselector::JHybridHybridPictureSelectorSpec::JavaPart
41
+ >(javaObject);
42
+ return std::make_shared<
43
+ margelo::nitro::pictureselector::JHybridHybridPictureSelectorSpec
44
+ >(javaPart);
45
+ }
46
+ );
25
47
  });
26
48
  }
@@ -3,7 +3,7 @@
3
3
  // Registers HybridPictureSelector with Nitro's HybridObjectRegistry.
4
4
  //
5
5
  // The +load ObjC method runs before main(), guaranteeing the factory is
6
- // available when JS calls NitroModules.createHybridObject("PictureSelector").
6
+ // available when JS calls NitroModules.createHybridObject("HybridPictureSelector").
7
7
  //
8
8
  // We bridge to Swift via @_cdecl("NitroPictureSelectorMakeHybrid") to avoid
9
9
  // ambiguous Swift class constructor syntax from C++.
@@ -30,7 +30,7 @@ using namespace margelo::nitro::pictureselector::bridge::swift;
30
30
 
31
31
  + (void)load {
32
32
  HybridObjectRegistry::registerHybridObjectConstructor(
33
- "PictureSelector",
33
+ "HybridPictureSelector",
34
34
  []() -> std::shared_ptr<HybridObject> {
35
35
  void* ptr = NitroPictureSelectorMakeHybrid();
36
36
  return create_std__shared_ptr_HybridHybridPictureSelectorSpec_(ptr);
@@ -13,7 +13,7 @@ var _types = require("./types");
13
13
  let _native = null;
14
14
  function getNative() {
15
15
  if (_native == null) {
16
- _native = _reactNativeNitroModules.NitroModules.createHybridObject('PictureSelector');
16
+ _native = _reactNativeNitroModules.NitroModules.createHybridObject('HybridPictureSelector');
17
17
  }
18
18
  return _native;
19
19
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","_types","_native","getNative","NitroModules","createHybridObject","defaultOptions","mediaType","MediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","toPickerError","PictureSelector","exports","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAEA;AACA;AACA;;AAEA,IAAIE,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGE,qCAAY,CAACC,kBAAkB,CACvC,iBACF,CAAC;EACH;EACA,OAAOH,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA,MAAMI,cAAsC,GAAG;EAC7CC,SAAS,EAAEC,gBAAS,CAACC,KAAK;EAC1BC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE;AAChB,CAAC;;AAED;AACA;AACA;;AAEA,eAAeC,UAAUA,CACvBC,MAAmC,EACnCC,OAA+B,EACR;EACvB,IAAI;IACF,OAAO,MAAMX,SAAS,CAAC,CAAC,CAACU,MAAM,CAAC,CAAC;MAAE,GAAGP,cAAc;MAAE,GAAGQ;IAAQ,CAAC,CAAC;EACrE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAM,IAAAC,oBAAa,EAACD,GAAG,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;;AAEO,MAAME,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,UAAUA,CAACL,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,UAAUA,CAACN,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","_types","_native","getNative","NitroModules","createHybridObject","defaultOptions","mediaType","MediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","toPickerError","PictureSelector","exports","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;;;;;AAAA,IAAAA,wBAAA,GAAAC,OAAA;AAGA,IAAAC,MAAA,GAAAD,OAAA;AAEA;AACA;AACA;;AAEA,IAAIE,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGE,qCAAY,CAACC,kBAAkB,CACvC,uBACF,CAAC;EACH;EACA,OAAOH,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA,MAAMI,cAAsC,GAAG;EAC7CC,SAAS,EAAEC,gBAAS,CAACC,KAAK;EAC1BC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE;AAChB,CAAC;;AAED;AACA;AACA;;AAEA,eAAeC,UAAUA,CACvBC,MAAmC,EACnCC,OAA+B,EACR;EACvB,IAAI;IACF,OAAO,MAAMX,SAAS,CAAC,CAAC,CAACU,MAAM,CAAC,CAAC;MAAE,GAAGP,cAAc;MAAE,GAAGQ;IAAQ,CAAC,CAAC;EACrE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAM,IAAAC,oBAAa,EAACD,GAAG,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;;AAEO,MAAME,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEE,UAAUA,CAACL,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEM,UAAUA,CAACN,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C;AACF,CAAC","ignoreList":[]}
@@ -10,7 +10,7 @@ import { MediaType, toPickerError } from './types';
10
10
  let _native = null;
11
11
  function getNative() {
12
12
  if (_native == null) {
13
- _native = NitroModules.createHybridObject('PictureSelector');
13
+ _native = NitroModules.createHybridObject('HybridPictureSelector');
14
14
  }
15
15
  return _native;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"names":["NitroModules","MediaType","toPickerError","_native","getNative","createHybridObject","defaultOptions","mediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","PictureSelector","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,SAASC,SAAS,EAAEC,aAAa,QAAQ,SAAS;;AAElD;AACA;AACA;;AAEA,IAAIC,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGH,YAAY,CAACK,kBAAkB,CACvC,iBACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA,MAAMG,cAAsC,GAAG;EAC7CC,SAAS,EAAEN,SAAS,CAACO,KAAK;EAC1BC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE;AAChB,CAAC;;AAED;AACA;AACA;;AAEA,eAAeC,UAAUA,CACvBC,MAAmC,EACnCC,OAA+B,EACR;EACvB,IAAI;IACF,OAAO,MAAMT,SAAS,CAAC,CAAC,CAACQ,MAAM,CAAC,CAAC;MAAE,GAAGN,cAAc;MAAE,GAAGO;IAAQ,CAAC,CAAC;EACrE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAMZ,aAAa,CAACY,GAAG,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;;AAEA,OAAO,MAAMC,eAAe,GAAG;EAC7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,UAAUA,CAACH,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEI,UAAUA,CAACJ,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C;AACF,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["NitroModules","MediaType","toPickerError","_native","getNative","createHybridObject","defaultOptions","mediaType","IMAGE","maxCount","enableCamera","callNative","method","options","err","PictureSelector","openPicker","openCamera"],"sourceRoot":"..\\..\\src","sources":["PictureSelector.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,4BAA4B;AAGzD,SAASC,SAAS,EAAEC,aAAa,QAAQ,SAAS;;AAElD;AACA;AACA;;AAEA,IAAIC,OAAqC,GAAG,IAAI;AAEhD,SAASC,SAASA,CAAA,EAA0B;EAC1C,IAAID,OAAO,IAAI,IAAI,EAAE;IACnBA,OAAO,GAAGH,YAAY,CAACK,kBAAkB,CACvC,uBACF,CAAC;EACH;EACA,OAAOF,OAAO;AAChB;;AAEA;AACA;AACA;;AAEA,MAAMG,cAAsC,GAAG;EAC7CC,SAAS,EAAEN,SAAS,CAACO,KAAK;EAC1BC,QAAQ,EAAE,CAAC;EACXC,YAAY,EAAE;AAChB,CAAC;;AAED;AACA;AACA;;AAEA,eAAeC,UAAUA,CACvBC,MAAmC,EACnCC,OAA+B,EACR;EACvB,IAAI;IACF,OAAO,MAAMT,SAAS,CAAC,CAAC,CAACQ,MAAM,CAAC,CAAC;MAAE,GAAGN,cAAc;MAAE,GAAGO;IAAQ,CAAC,CAAC;EACrE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAMZ,aAAa,CAACY,GAAG,CAAC;EAC1B;AACF;;AAEA;AACA;AACA;;AAEA,OAAO,MAAMC,eAAe,GAAG;EAC7B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,UAAUA,CAACH,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEI,UAAUA,CAACJ,OAA+B,GAAG,CAAC,CAAC,EAAyB;IACtE,OAAOF,UAAU,CAAC,YAAY,EAAEE,OAAO,CAAC;EAC1C;AACF,CAAC","ignoreList":[]}
@@ -11,7 +11,7 @@
11
11
  "androidCxxLibName": "NitroPictureSelector"
12
12
  },
13
13
  "autolinking": {
14
- "PictureSelector": {
14
+ "HybridPictureSelector": {
15
15
  "swift": "HybridPictureSelector",
16
16
  "kotlin": "HybridPictureSelector"
17
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-picture-selector",
3
- "version": "1.0.30",
3
+ "version": "1.0.32",
4
4
  "description": "High-performance photo/video picker for React Native using Nitro Modules",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -12,7 +12,7 @@ let _native: HybridPictureSelector | null = null
12
12
  function getNative(): HybridPictureSelector {
13
13
  if (_native == null) {
14
14
  _native = NitroModules.createHybridObject<HybridPictureSelector>(
15
- 'PictureSelector'
15
+ 'HybridPictureSelector'
16
16
  )
17
17
  }
18
18
  return _native