@papyrus-sdk/engine-native 0.1.0 → 0.1.2

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 (323) hide show
  1. package/android/build.gradle +40 -40
  2. package/android/src/main/AndroidManifest.xml +3 -3
  3. package/android/src/main/java/com/papyrus/engine/PapyrusEngineStore.java +71 -71
  4. package/android/src/main/java/com/papyrus/engine/PapyrusNativeEngineModule.java +529 -529
  5. package/android/src/main/java/com/papyrus/engine/PapyrusNativeEngineModule.kt +540 -0
  6. package/android/src/main/java/com/papyrus/engine/PapyrusOutline.java +20 -20
  7. package/android/src/main/java/com/papyrus/engine/PapyrusOutlineItem.java +13 -13
  8. package/android/src/main/java/com/papyrus/engine/PapyrusPackage.java +24 -24
  9. package/android/src/main/java/com/papyrus/engine/PapyrusPageView.java +86 -86
  10. package/android/src/main/java/com/papyrus/engine/PapyrusPageViewManager.java +16 -16
  11. package/android/src/main/java/com/papyrus/engine/PapyrusPageViewModule.kt +12 -0
  12. package/android/src/main/java/com/papyrus/engine/PapyrusTextHit.java +15 -15
  13. package/android/src/main/java/com/papyrus/engine/PapyrusTextSearch.java +20 -20
  14. package/android/src/main/java/com/papyrus/engine/PapyrusTextSelect.java +20 -20
  15. package/android/src/main/java/com/papyrus/engine/PapyrusTextSelection.java +11 -11
  16. package/dist/index.d.mts +95 -7
  17. package/dist/index.d.ts +95 -7
  18. package/dist/index.js +683 -12
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.mjs +684 -13
  21. package/dist/index.mjs.map +1 -1
  22. package/ios/PapyrusNativeEngine.m +447 -372
  23. package/ios/PapyrusNativeEngine.podspec +15 -15
  24. package/ios/PapyrusPageView.h +19 -16
  25. package/ios/PapyrusPageView.m +63 -54
  26. package/ios/PapyrusPageViewManager.m +19 -19
  27. package/package.json +11 -7
  28. package/react-native.config.js +10 -10
  29. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  30. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  31. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  32. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/cache-v2-55a2e41fcdfef7f23046.json +0 -1323
  33. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/cmakeFiles-v1-ce719ceafe10fdc060d9.json +0 -184
  34. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/codemodel-v2-ba59984c0779dea51592.json +0 -60
  35. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +0 -14
  36. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/index-2025-12-22T13-33-34-0909.json +0 -92
  37. package/android/.cxx/Debug/6t29645j/arm64-v8a/.cmake/api/v1/reply/target-papyrus_text-Debug-29cd4996bc13fe24a65c.json +0 -168
  38. package/android/.cxx/Debug/6t29645j/arm64-v8a/.ninja_deps +0 -0
  39. package/android/.cxx/Debug/6t29645j/arm64-v8a/.ninja_log +0 -20
  40. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeCache.txt +0 -400
  41. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +0 -72
  42. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +0 -83
  43. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  44. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  45. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +0 -15
  46. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +0 -803
  47. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  48. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -791
  49. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  50. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/CMakeOutput.log +0 -264
  51. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/TargetDirectories.txt +0 -3
  52. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/cmake.check_cache +0 -1
  53. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  54. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  55. package/android/.cxx/Debug/6t29645j/arm64-v8a/CMakeFiles/rules.ninja +0 -64
  56. package/android/.cxx/Debug/6t29645j/arm64-v8a/additional_project_files.txt +0 -0
  57. package/android/.cxx/Debug/6t29645j/arm64-v8a/android_gradle_build.json +0 -38
  58. package/android/.cxx/Debug/6t29645j/arm64-v8a/android_gradle_build_mini.json +0 -27
  59. package/android/.cxx/Debug/6t29645j/arm64-v8a/build.ninja +0 -158
  60. package/android/.cxx/Debug/6t29645j/arm64-v8a/build_file_index.txt +0 -1
  61. package/android/.cxx/Debug/6t29645j/arm64-v8a/cmake_install.cmake +0 -54
  62. package/android/.cxx/Debug/6t29645j/arm64-v8a/compile_commands.json +0 -12
  63. package/android/.cxx/Debug/6t29645j/arm64-v8a/compile_commands.json.bin +0 -0
  64. package/android/.cxx/Debug/6t29645j/arm64-v8a/configure_fingerprint.bin +0 -28
  65. package/android/.cxx/Debug/6t29645j/arm64-v8a/metadata_generation_command.txt +0 -19
  66. package/android/.cxx/Debug/6t29645j/arm64-v8a/prefab_config.json +0 -4
  67. package/android/.cxx/Debug/6t29645j/arm64-v8a/symbol_folder_index.txt +0 -1
  68. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  69. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  70. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  71. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/cache-v2-7f933b968e76d6ce336c.json +0 -1323
  72. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/cmakeFiles-v1-439d2bc9e04bf2a43452.json +0 -184
  73. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/codemodel-v2-efc4cfee3dc3a5ec05be.json +0 -60
  74. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +0 -14
  75. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/index-2025-12-22T13-33-36-0881.json +0 -92
  76. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.cmake/api/v1/reply/target-papyrus_text-Debug-e3f83458cbaf3644c279.json +0 -168
  77. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.ninja_deps +0 -0
  78. package/android/.cxx/Debug/6t29645j/armeabi-v7a/.ninja_log +0 -20
  79. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeCache.txt +0 -400
  80. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +0 -72
  81. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +0 -83
  82. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  83. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  84. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +0 -15
  85. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +0 -803
  86. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  87. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -791
  88. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  89. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/CMakeOutput.log +0 -268
  90. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/TargetDirectories.txt +0 -3
  91. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/cmake.check_cache +0 -1
  92. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  93. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  94. package/android/.cxx/Debug/6t29645j/armeabi-v7a/CMakeFiles/rules.ninja +0 -64
  95. package/android/.cxx/Debug/6t29645j/armeabi-v7a/additional_project_files.txt +0 -0
  96. package/android/.cxx/Debug/6t29645j/armeabi-v7a/android_gradle_build.json +0 -38
  97. package/android/.cxx/Debug/6t29645j/armeabi-v7a/android_gradle_build_mini.json +0 -27
  98. package/android/.cxx/Debug/6t29645j/armeabi-v7a/build.ninja +0 -158
  99. package/android/.cxx/Debug/6t29645j/armeabi-v7a/build_file_index.txt +0 -1
  100. package/android/.cxx/Debug/6t29645j/armeabi-v7a/cmake_install.cmake +0 -54
  101. package/android/.cxx/Debug/6t29645j/armeabi-v7a/compile_commands.json +0 -12
  102. package/android/.cxx/Debug/6t29645j/armeabi-v7a/compile_commands.json.bin +0 -0
  103. package/android/.cxx/Debug/6t29645j/armeabi-v7a/configure_fingerprint.bin +0 -28
  104. package/android/.cxx/Debug/6t29645j/armeabi-v7a/metadata_generation_command.txt +0 -19
  105. package/android/.cxx/Debug/6t29645j/armeabi-v7a/prefab_config.json +0 -4
  106. package/android/.cxx/Debug/6t29645j/armeabi-v7a/symbol_folder_index.txt +0 -1
  107. package/android/.cxx/Debug/6t29645j/hash_key.txt +0 -26
  108. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  109. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  110. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  111. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/cache-v2-921e99e188641cccb611.json +0 -1323
  112. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/cmakeFiles-v1-842a746390c683135141.json +0 -184
  113. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/codemodel-v2-5a1f9507fc5ae29259c9.json +0 -60
  114. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +0 -14
  115. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/index-2025-12-22T13-33-37-0961.json +0 -92
  116. package/android/.cxx/Debug/6t29645j/x86/.cmake/api/v1/reply/target-papyrus_text-Debug-3cc07532ad82ada3b95c.json +0 -168
  117. package/android/.cxx/Debug/6t29645j/x86/.ninja_deps +0 -0
  118. package/android/.cxx/Debug/6t29645j/x86/.ninja_log +0 -20
  119. package/android/.cxx/Debug/6t29645j/x86/CMakeCache.txt +0 -400
  120. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +0 -72
  121. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +0 -83
  122. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  123. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  124. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +0 -15
  125. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +0 -803
  126. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  127. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -791
  128. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  129. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/CMakeOutput.log +0 -258
  130. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/TargetDirectories.txt +0 -3
  131. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/cmake.check_cache +0 -1
  132. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  133. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  134. package/android/.cxx/Debug/6t29645j/x86/CMakeFiles/rules.ninja +0 -64
  135. package/android/.cxx/Debug/6t29645j/x86/additional_project_files.txt +0 -0
  136. package/android/.cxx/Debug/6t29645j/x86/android_gradle_build.json +0 -38
  137. package/android/.cxx/Debug/6t29645j/x86/android_gradle_build_mini.json +0 -27
  138. package/android/.cxx/Debug/6t29645j/x86/build.ninja +0 -158
  139. package/android/.cxx/Debug/6t29645j/x86/build_file_index.txt +0 -1
  140. package/android/.cxx/Debug/6t29645j/x86/cmake_install.cmake +0 -54
  141. package/android/.cxx/Debug/6t29645j/x86/compile_commands.json +0 -12
  142. package/android/.cxx/Debug/6t29645j/x86/compile_commands.json.bin +0 -0
  143. package/android/.cxx/Debug/6t29645j/x86/configure_fingerprint.bin +0 -28
  144. package/android/.cxx/Debug/6t29645j/x86/metadata_generation_command.txt +0 -19
  145. package/android/.cxx/Debug/6t29645j/x86/prefab_config.json +0 -4
  146. package/android/.cxx/Debug/6t29645j/x86/symbol_folder_index.txt +0 -1
  147. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/query/client-agp/cache-v2 +0 -0
  148. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/query/client-agp/cmakeFiles-v1 +0 -0
  149. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/query/client-agp/codemodel-v2 +0 -0
  150. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/cache-v2-de693df49d051882903b.json +0 -1323
  151. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/cmakeFiles-v1-8206847cf10ce80b1459.json +0 -184
  152. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/codemodel-v2-ad9301b1a16c83f532c2.json +0 -60
  153. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/directory-.-Debug-d0094a50bb2071803777.json +0 -14
  154. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/index-2025-12-22T13-33-39-0005.json +0 -92
  155. package/android/.cxx/Debug/6t29645j/x86_64/.cmake/api/v1/reply/target-papyrus_text-Debug-e1bb1d27c41dc820b379.json +0 -168
  156. package/android/.cxx/Debug/6t29645j/x86_64/.ninja_deps +0 -0
  157. package/android/.cxx/Debug/6t29645j/x86_64/.ninja_log +0 -20
  158. package/android/.cxx/Debug/6t29645j/x86_64/CMakeCache.txt +0 -400
  159. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCCompiler.cmake +0 -72
  160. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeCXXCompiler.cmake +0 -83
  161. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_C.bin +0 -0
  162. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeDetermineCompilerABI_CXX.bin +0 -0
  163. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CMakeSystem.cmake +0 -15
  164. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.c +0 -803
  165. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdC/CMakeCCompilerId.o +0 -0
  166. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.cpp +0 -791
  167. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/3.22.1-g37088a8-dirty/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
  168. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/CMakeOutput.log +0 -258
  169. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/TargetDirectories.txt +0 -3
  170. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/cmake.check_cache +0 -1
  171. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/papyrus_text.dir/papyrus_outline.cpp.o +0 -0
  172. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/papyrus_text.dir/papyrus_text_search.cpp.o +0 -0
  173. package/android/.cxx/Debug/6t29645j/x86_64/CMakeFiles/rules.ninja +0 -64
  174. package/android/.cxx/Debug/6t29645j/x86_64/additional_project_files.txt +0 -0
  175. package/android/.cxx/Debug/6t29645j/x86_64/android_gradle_build.json +0 -38
  176. package/android/.cxx/Debug/6t29645j/x86_64/android_gradle_build_mini.json +0 -27
  177. package/android/.cxx/Debug/6t29645j/x86_64/build.ninja +0 -158
  178. package/android/.cxx/Debug/6t29645j/x86_64/build_file_index.txt +0 -1
  179. package/android/.cxx/Debug/6t29645j/x86_64/cmake_install.cmake +0 -54
  180. package/android/.cxx/Debug/6t29645j/x86_64/compile_commands.json +0 -12
  181. package/android/.cxx/Debug/6t29645j/x86_64/compile_commands.json.bin +0 -0
  182. package/android/.cxx/Debug/6t29645j/x86_64/configure_fingerprint.bin +0 -28
  183. package/android/.cxx/Debug/6t29645j/x86_64/metadata_generation_command.txt +0 -19
  184. package/android/.cxx/Debug/6t29645j/x86_64/prefab_config.json +0 -4
  185. package/android/.cxx/Debug/6t29645j/x86_64/symbol_folder_index.txt +0 -1
  186. package/android/.cxx/tools/debug/arm64-v8a/compile_commands.json +0 -12
  187. package/android/.cxx/tools/debug/armeabi-v7a/compile_commands.json +0 -12
  188. package/android/.cxx/tools/debug/x86/compile_commands.json +0 -12
  189. package/android/.cxx/tools/debug/x86_64/compile_commands.json +0 -12
  190. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/results.bin +0 -1
  191. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/android/support/v4/util/ArrayMap.dex +0 -0
  192. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/BuildConfig.dex +0 -0
  193. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusEngineStore$EngineState.dex +0 -0
  194. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusEngineStore.dex +0 -0
  195. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusNativeEngineModule$1.dex +0 -0
  196. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusNativeEngineModule.dex +0 -0
  197. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusOutline.dex +0 -0
  198. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusOutlineItem.dex +0 -0
  199. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusPackage.dex +0 -0
  200. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusPageView.dex +0 -0
  201. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusPageViewManager.dex +0 -0
  202. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextHit.dex +0 -0
  203. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextSearch.dex +0 -0
  204. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextSelect.dex +0 -0
  205. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/papyrus/engine/PapyrusTextSelection.dex +0 -0
  206. package/android/build/.transforms/2a70e7e4bf5a7ddacb39b95e5520ae88/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  207. package/android/build/.transforms/b336bac6032a9c6be0544a913e5a030c/results.bin +0 -1
  208. package/android/build/.transforms/b336bac6032a9c6be0544a913e5a030c/transformed/classes/classes_dex/classes.dex +0 -0
  209. package/android/build/generated/source/buildConfig/debug/com/papyrus/engine/BuildConfig.java +0 -10
  210. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  211. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  212. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  213. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  214. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  215. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  216. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  217. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_command_papyrus_text.bat +0 -5
  218. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_model.json +0 -186
  219. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_stderr_papyrus_text.txt +0 -0
  220. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/build_stdout_papyrus_text.txt +0 -2
  221. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_157_timing.txt +0 -8
  222. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_167_timing.txt +0 -8
  223. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_168_timing.txt +0 -14
  224. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_172_timing.txt +0 -8
  225. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_2919_timing.txt +0 -6
  226. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_3311_timing.txt +0 -3
  227. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/generate_cxx_metadata_450_timing.txt +0 -3
  228. package/android/build/intermediates/cxx/Debug/6t29645j/logs/arm64-v8a/metadata_generation_record.json +0 -41
  229. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_command_papyrus_text.bat +0 -5
  230. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_model.json +0 -186
  231. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_stderr_papyrus_text.txt +0 -0
  232. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/build_stdout_papyrus_text.txt +0 -2
  233. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_158_timing.txt +0 -6
  234. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_160_timing.txt +0 -6
  235. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_164_timing.txt +0 -6
  236. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_168_timing.txt +0 -6
  237. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_2922_timing.txt +0 -6
  238. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_3311_timing.txt +0 -3
  239. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/generate_cxx_metadata_450_timing.txt +0 -3
  240. package/android/build/intermediates/cxx/Debug/6t29645j/logs/armeabi-v7a/metadata_generation_record.json +0 -41
  241. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_command_papyrus_text.bat +0 -5
  242. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_model.json +0 -186
  243. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_stderr_papyrus_text.txt +0 -0
  244. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/build_stdout_papyrus_text.txt +0 -2
  245. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_160_timing.txt +0 -5
  246. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_164_timing.txt +0 -3
  247. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_168_timing.txt +0 -6
  248. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_170_timing.txt +0 -6
  249. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_2907_timing.txt +0 -6
  250. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_3311_timing.txt +0 -3
  251. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/generate_cxx_metadata_450_timing.txt +0 -3
  252. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86/metadata_generation_record.json +0 -41
  253. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_command_papyrus_text.bat +0 -5
  254. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_model.json +0 -186
  255. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_stderr_papyrus_text.txt +0 -0
  256. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/build_stdout_papyrus_text.txt +0 -2
  257. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_155_timing.txt +0 -6
  258. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_160_timing.txt +0 -6
  259. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_164_timing.txt +0 -3
  260. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_168_timing.txt +0 -6
  261. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_2916_timing.txt +0 -6
  262. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_3311_timing.txt +0 -5
  263. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/generate_cxx_metadata_450_timing.txt +0 -6
  264. package/android/build/intermediates/cxx/Debug/6t29645j/logs/x86_64/metadata_generation_record.json +0 -41
  265. package/android/build/intermediates/cxx/Debug/6t29645j/obj/arm64-v8a/libpapyrus_text.so +0 -0
  266. package/android/build/intermediates/cxx/Debug/6t29645j/obj/armeabi-v7a/libpapyrus_text.so +0 -0
  267. package/android/build/intermediates/cxx/Debug/6t29645j/obj/x86/libpapyrus_text.so +0 -0
  268. package/android/build/intermediates/cxx/Debug/6t29645j/obj/x86_64/libpapyrus_text.so +0 -0
  269. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  270. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  271. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  272. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  273. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  274. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/android/support/v4/util/ArrayMap.class +0 -0
  275. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/BuildConfig.class +0 -0
  276. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusEngineStore$EngineState.class +0 -0
  277. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusEngineStore.class +0 -0
  278. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusNativeEngineModule$1.class +0 -0
  279. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusNativeEngineModule.class +0 -0
  280. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusOutline.class +0 -0
  281. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusOutlineItem.class +0 -0
  282. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusPackage.class +0 -0
  283. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusPageView.class +0 -0
  284. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusPageViewManager.class +0 -0
  285. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextHit.class +0 -0
  286. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextSearch.class +0 -0
  287. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextSelect.class +0 -0
  288. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/papyrus/engine/PapyrusTextSelection.class +0 -0
  289. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/arm64-v8a/libpapyrus_text.so +0 -0
  290. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/armeabi-v7a/libpapyrus_text.so +0 -0
  291. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86/libpapyrus_text.so +0 -0
  292. package/android/build/intermediates/library_jni/debug/copyDebugJniLibsProjectOnly/jni/x86_64/libpapyrus_text.so +0 -0
  293. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  294. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  295. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  296. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/arm64-v8a/libpapyrus_text.so +0 -0
  297. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/armeabi-v7a/libpapyrus_text.so +0 -0
  298. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86/libpapyrus_text.so +0 -0
  299. package/android/build/intermediates/merged_native_libs/debug/mergeDebugNativeLibs/out/lib/x86_64/libpapyrus_text.so +0 -0
  300. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  301. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  302. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/android/support/v4/util/ArrayMap.class +0 -0
  303. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/BuildConfig.class +0 -0
  304. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusEngineStore$EngineState.class +0 -0
  305. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusEngineStore.class +0 -0
  306. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusNativeEngineModule$1.class +0 -0
  307. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusNativeEngineModule.class +0 -0
  308. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusOutline.class +0 -0
  309. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusOutlineItem.class +0 -0
  310. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusPackage.class +0 -0
  311. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusPageView.class +0 -0
  312. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusPageViewManager.class +0 -0
  313. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextHit.class +0 -0
  314. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextSearch.class +0 -0
  315. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextSelect.class +0 -0
  316. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/papyrus/engine/PapyrusTextSelection.class +0 -0
  317. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  318. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  319. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -17
  320. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PapyrusNativeEngineModule$1.class.uniqueId2 +0 -0
  321. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PapyrusNativeEngineModule.class.uniqueId1 +0 -0
  322. package/android/build/tmp/compileDebugJavaWithJavac/compileTransaction/stash-dir/PapyrusPackage.class.uniqueId0 +0 -0
  323. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
@@ -1,86 +1,86 @@
1
- package com.papyrus.engine;
2
-
3
- import android.content.Context;
4
- import android.graphics.Bitmap;
5
- import android.graphics.Canvas;
6
- import android.graphics.Paint;
7
- import android.graphics.Rect;
8
- import android.util.AttributeSet;
9
- import android.view.View;
10
-
11
- import com.shockwave.pdfium.PdfDocument;
12
-
13
- import java.util.concurrent.ExecutorService;
14
- import java.util.concurrent.Executors;
15
-
16
- class PapyrusPageView extends View {
17
- private static final ExecutorService RENDER_EXECUTOR = Executors.newSingleThreadExecutor();
18
-
19
- private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
20
- private Bitmap bitmap;
21
-
22
- PapyrusPageView(Context context) {
23
- super(context);
24
- }
25
-
26
- PapyrusPageView(Context context, AttributeSet attrs) {
27
- super(context, attrs);
28
- }
29
-
30
- void render(final PapyrusEngineStore.EngineState state,
31
- final int pageIndex,
32
- final float scale,
33
- final float zoom,
34
- final int rotation) {
35
- if (state == null || state.document == null) return;
36
- if (state.isSearching) return;
37
- if (getWidth() == 0 || getHeight() == 0) {
38
- post(() -> render(state, pageIndex, scale, zoom, rotation));
39
- return;
40
- }
41
-
42
- final int viewWidth = getWidth();
43
- final int viewHeight = getHeight();
44
- final float clampedZoom = Math.max(0.1f, Math.min(5.0f, zoom));
45
- final float targetScale = Math.max(0.1f, scale) * clampedZoom;
46
- final int renderWidth = Math.max(1, (int) (viewWidth * targetScale));
47
- final int renderHeight = Math.max(1, (int) (viewHeight * targetScale));
48
-
49
- RENDER_EXECUTOR.execute(() -> {
50
- PdfDocument doc = state.document;
51
- if (doc == null) return;
52
-
53
- try {
54
- Bitmap rendered = null;
55
- synchronized (state.pdfiumLock) {
56
- if (doc != state.document) return;
57
- int pageCount = state.pdfium.getPageCount(doc);
58
- if (pageIndex < 0 || pageIndex >= pageCount) return;
59
- state.pdfium.openPage(doc, pageIndex);
60
- rendered = Bitmap.createBitmap(renderWidth, renderHeight, Bitmap.Config.ARGB_8888);
61
- state.pdfium.renderPageBitmap(doc, rendered, pageIndex, 0, 0, renderWidth, renderHeight, true);
62
- }
63
-
64
- if (rendered == null) return;
65
- final Bitmap renderedBitmap = rendered;
66
-
67
- post(() -> {
68
- if (bitmap != null && !bitmap.isRecycled()) {
69
- bitmap.recycle();
70
- }
71
- bitmap = renderedBitmap;
72
- invalidate();
73
- });
74
- } catch (Throwable ignored) {
75
- }
76
- });
77
- }
78
-
79
- @Override
80
- protected void onDraw(Canvas canvas) {
81
- super.onDraw(canvas);
82
- if (bitmap == null) return;
83
- Rect dest = new Rect(0, 0, getWidth(), getHeight());
84
- canvas.drawBitmap(bitmap, null, dest, paint);
85
- }
86
- }
1
+ package com.papyrus.engine;
2
+
3
+ import android.content.Context;
4
+ import android.graphics.Bitmap;
5
+ import android.graphics.Canvas;
6
+ import android.graphics.Paint;
7
+ import android.graphics.Rect;
8
+ import android.util.AttributeSet;
9
+ import android.view.View;
10
+
11
+ import com.shockwave.pdfium.PdfDocument;
12
+
13
+ import java.util.concurrent.ExecutorService;
14
+ import java.util.concurrent.Executors;
15
+
16
+ public class PapyrusPageView extends View {
17
+ private static final ExecutorService RENDER_EXECUTOR = Executors.newSingleThreadExecutor();
18
+
19
+ private final Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
20
+ private Bitmap bitmap;
21
+
22
+ public PapyrusPageView(Context context) {
23
+ super(context);
24
+ }
25
+
26
+ public PapyrusPageView(Context context, AttributeSet attrs) {
27
+ super(context, attrs);
28
+ }
29
+
30
+ void render(final PapyrusEngineStore.EngineState state,
31
+ final int pageIndex,
32
+ final float scale,
33
+ final float zoom,
34
+ final int rotation) {
35
+ if (state == null || state.document == null) return;
36
+ if (state.isSearching) return;
37
+ if (getWidth() == 0 || getHeight() == 0) {
38
+ post(() -> render(state, pageIndex, scale, zoom, rotation));
39
+ return;
40
+ }
41
+
42
+ final int viewWidth = getWidth();
43
+ final int viewHeight = getHeight();
44
+ final float clampedZoom = Math.max(0.1f, Math.min(5.0f, zoom));
45
+ final float targetScale = Math.max(0.1f, scale) * clampedZoom;
46
+ final int renderWidth = Math.max(1, (int) (viewWidth * targetScale));
47
+ final int renderHeight = Math.max(1, (int) (viewHeight * targetScale));
48
+
49
+ RENDER_EXECUTOR.execute(() -> {
50
+ PdfDocument doc = state.document;
51
+ if (doc == null) return;
52
+
53
+ try {
54
+ Bitmap rendered = null;
55
+ synchronized (state.pdfiumLock) {
56
+ if (doc != state.document) return;
57
+ int pageCount = state.pdfium.getPageCount(doc);
58
+ if (pageIndex < 0 || pageIndex >= pageCount) return;
59
+ state.pdfium.openPage(doc, pageIndex);
60
+ rendered = Bitmap.createBitmap(renderWidth, renderHeight, Bitmap.Config.ARGB_8888);
61
+ state.pdfium.renderPageBitmap(doc, rendered, pageIndex, 0, 0, renderWidth, renderHeight, true);
62
+ }
63
+
64
+ if (rendered == null) return;
65
+ final Bitmap renderedBitmap = rendered;
66
+
67
+ post(() -> {
68
+ if (bitmap != null && !bitmap.isRecycled()) {
69
+ bitmap.recycle();
70
+ }
71
+ bitmap = renderedBitmap;
72
+ invalidate();
73
+ });
74
+ } catch (Throwable ignored) {
75
+ }
76
+ });
77
+ }
78
+
79
+ @Override
80
+ protected void onDraw(Canvas canvas) {
81
+ super.onDraw(canvas);
82
+ if (bitmap == null) return;
83
+ Rect dest = new Rect(0, 0, getWidth(), getHeight());
84
+ canvas.drawBitmap(bitmap, null, dest, paint);
85
+ }
86
+ }
@@ -1,16 +1,16 @@
1
- package com.papyrus.engine;
2
-
3
- import com.facebook.react.uimanager.SimpleViewManager;
4
- import com.facebook.react.uimanager.ThemedReactContext;
5
-
6
- public class PapyrusPageViewManager extends SimpleViewManager<PapyrusPageView> {
7
- @Override
8
- public String getName() {
9
- return "PapyrusPageView";
10
- }
11
-
12
- @Override
13
- protected PapyrusPageView createViewInstance(ThemedReactContext reactContext) {
14
- return new PapyrusPageView(reactContext);
15
- }
16
- }
1
+ package com.papyrus.engine;
2
+
3
+ import com.facebook.react.uimanager.SimpleViewManager;
4
+ import com.facebook.react.uimanager.ThemedReactContext;
5
+
6
+ public class PapyrusPageViewManager extends SimpleViewManager<PapyrusPageView> {
7
+ @Override
8
+ public String getName() {
9
+ return "PapyrusPageView";
10
+ }
11
+
12
+ @Override
13
+ protected PapyrusPageView createViewInstance(ThemedReactContext reactContext) {
14
+ return new PapyrusPageView(reactContext);
15
+ }
16
+ }
@@ -0,0 +1,12 @@
1
+ package com.papyrus.engine
2
+
3
+ import expo.modules.kotlin.modules.Module
4
+ import expo.modules.kotlin.modules.ModuleDefinition
5
+
6
+ class PapyrusPageViewModule : Module() {
7
+ override fun definition() = ModuleDefinition {
8
+ Name("PapyrusPageView")
9
+ View(PapyrusPageView::class) {
10
+ }
11
+ }
12
+ }
@@ -1,15 +1,15 @@
1
- package com.papyrus.engine;
2
-
3
- final class PapyrusTextHit {
4
- final int pageIndex;
5
- final int matchIndex;
6
- final String text;
7
- final float[] rects;
8
-
9
- PapyrusTextHit(int pageIndex, int matchIndex, String text, float[] rects) {
10
- this.pageIndex = pageIndex;
11
- this.matchIndex = matchIndex;
12
- this.text = text;
13
- this.rects = rects;
14
- }
15
- }
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextHit {
4
+ final int pageIndex;
5
+ final int matchIndex;
6
+ final String text;
7
+ final float[] rects;
8
+
9
+ PapyrusTextHit(int pageIndex, int matchIndex, String text, float[] rects) {
10
+ this.pageIndex = pageIndex;
11
+ this.matchIndex = matchIndex;
12
+ this.text = text;
13
+ this.rects = rects;
14
+ }
15
+ }
@@ -1,20 +1,20 @@
1
- package com.papyrus.engine;
2
-
3
- final class PapyrusTextSearch {
4
- static final boolean AVAILABLE;
5
-
6
- static {
7
- boolean available = false;
8
- try {
9
- System.loadLibrary("papyrus_text");
10
- available = true;
11
- } catch (Throwable ignored) {
12
- available = false;
13
- }
14
- AVAILABLE = available;
15
- }
16
-
17
- static native PapyrusTextHit[] nativeSearch(long docPtr, int pageCount, String query);
18
-
19
- static native PapyrusTextHit[] nativeSearchFile(String filePath, String query);
20
- }
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextSearch {
4
+ static final boolean AVAILABLE;
5
+
6
+ static {
7
+ boolean available = false;
8
+ try {
9
+ System.loadLibrary("papyrus_text");
10
+ available = true;
11
+ } catch (Throwable ignored) {
12
+ available = false;
13
+ }
14
+ AVAILABLE = available;
15
+ }
16
+
17
+ static native PapyrusTextHit[] nativeSearch(long docPtr, int pageCount, String query);
18
+
19
+ static native PapyrusTextHit[] nativeSearchFile(String filePath, String query);
20
+ }
@@ -1,20 +1,20 @@
1
- package com.papyrus.engine;
2
-
3
- final class PapyrusTextSelect {
4
- static final boolean AVAILABLE;
5
-
6
- static {
7
- boolean available = false;
8
- try {
9
- System.loadLibrary("papyrus_text");
10
- available = true;
11
- } catch (Throwable ignored) {
12
- available = false;
13
- }
14
- AVAILABLE = available;
15
- }
16
-
17
- static native PapyrusTextSelection nativeSelectText(long docPtr, int pageIndex, float x, float y, float width, float height);
18
-
19
- static native PapyrusTextSelection nativeSelectTextFile(String filePath, int pageIndex, float x, float y, float width, float height);
20
- }
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextSelect {
4
+ static final boolean AVAILABLE;
5
+
6
+ static {
7
+ boolean available = false;
8
+ try {
9
+ System.loadLibrary("papyrus_text");
10
+ available = true;
11
+ } catch (Throwable ignored) {
12
+ available = false;
13
+ }
14
+ AVAILABLE = available;
15
+ }
16
+
17
+ static native PapyrusTextSelection nativeSelectText(long docPtr, int pageIndex, float x, float y, float width, float height);
18
+
19
+ static native PapyrusTextSelection nativeSelectTextFile(String filePath, int pageIndex, float x, float y, float width, float height);
20
+ }
@@ -1,11 +1,11 @@
1
- package com.papyrus.engine;
2
-
3
- final class PapyrusTextSelection {
4
- final String text;
5
- final float[] rects;
6
-
7
- PapyrusTextSelection(String text, float[] rects) {
8
- this.text = text != null ? text : "";
9
- this.rects = rects;
10
- }
11
- }
1
+ package com.papyrus.engine;
2
+
3
+ final class PapyrusTextSelection {
4
+ final String text;
5
+ final float[] rects;
6
+
7
+ PapyrusTextSelection(String text, float[] rects) {
8
+ this.text = text != null ? text : "";
9
+ this.rects = rects;
10
+ }
11
+ }
package/dist/index.d.mts CHANGED
@@ -1,12 +1,13 @@
1
- import * as react_native from 'react-native';
2
- import { ViewProps } from 'react-native';
1
+ import { ComponentType, RefAttributes } from 'react';
2
+ import { ViewProps, View } from 'react-native';
3
3
  import { BaseDocumentEngine } from '@papyrus-sdk/core';
4
- import { DocumentSource, TextItem, TextSelection, OutlineItem, SearchResult } from '@papyrus-sdk/types';
4
+ import { DocumentLoadInput, TextItem, TextSelection, OutlineItem, SearchResult, PageDestination, RenderTargetType } from '@papyrus-sdk/types';
5
5
 
6
6
  type PapyrusPageViewProps = ViewProps & {
7
7
  engineId?: string;
8
8
  };
9
- declare const PapyrusPageView: react_native.HostComponent<PapyrusPageViewProps>;
9
+ type PapyrusPageViewComponent = ComponentType<PapyrusPageViewProps & RefAttributes<View>>;
10
+ declare const PapyrusPageView: PapyrusPageViewComponent;
10
11
  declare class NativeDocumentEngine extends BaseDocumentEngine {
11
12
  private nativeModule;
12
13
  private engineId;
@@ -15,7 +16,7 @@ declare class NativeDocumentEngine extends BaseDocumentEngine {
15
16
  private zoom;
16
17
  private rotation;
17
18
  constructor();
18
- load(source: DocumentSource): Promise<void>;
19
+ load(input: DocumentLoadInput): Promise<void>;
19
20
  getPageCount(): number;
20
21
  getCurrentPage(): number;
21
22
  goToPage(page: number): void;
@@ -38,7 +39,7 @@ declare class NativeDocumentEngine extends BaseDocumentEngine {
38
39
  }): Promise<TextSelection | null>;
39
40
  getOutline(): Promise<OutlineItem[]>;
40
41
  searchText(query: string): Promise<SearchResult[]>;
41
- getPageIndex(dest: any): Promise<number | null>;
42
+ getPageIndex(dest: PageDestination): Promise<number | null>;
42
43
  destroy(): void;
43
44
  private assertNativeModule;
44
45
  private normalizeSource;
@@ -47,5 +48,92 @@ declare class NativeDocumentEngine extends BaseDocumentEngine {
47
48
  private isFileLike;
48
49
  private toNativeViewTag;
49
50
  }
51
+ type WebViewBridge = {
52
+ postMessage: (message: string) => void;
53
+ };
54
+ declare class WebViewDocumentEngine extends BaseDocumentEngine {
55
+ private bridge;
56
+ private ready;
57
+ private requestId;
58
+ private pending;
59
+ private bridgeResolvers;
60
+ private readyResolvers;
61
+ private pageCount;
62
+ private currentPage;
63
+ private zoom;
64
+ private rotation;
65
+ private outline;
66
+ getRenderTargetType(): 'webview';
67
+ attachBridge(bridge: WebViewBridge): void;
68
+ handleMessage(raw: string): void;
69
+ load(input: DocumentLoadInput): Promise<void>;
70
+ getPageCount(): number;
71
+ getCurrentPage(): number;
72
+ goToPage(page: number): void;
73
+ setZoom(zoom: number): void;
74
+ getZoom(): number;
75
+ rotate(direction: 'clockwise' | 'counterclockwise'): void;
76
+ getRotation(): number;
77
+ renderPage(pageIndex: number, target: any, scale: number): Promise<void>;
78
+ renderTextLayer(pageIndex: number, container: any, scale: number): Promise<void>;
79
+ getTextContent(pageIndex: number): Promise<TextItem[]>;
80
+ getPageDimensions(pageIndex: number): Promise<{
81
+ width: number;
82
+ height: number;
83
+ }>;
84
+ searchText(query: string): Promise<SearchResult[]>;
85
+ selectText(pageIndex: number, rect: {
86
+ x: number;
87
+ y: number;
88
+ width: number;
89
+ height: number;
90
+ }): Promise<TextSelection | null>;
91
+ getOutline(): Promise<OutlineItem[]>;
92
+ getPageIndex(dest: PageDestination): Promise<number | null>;
93
+ destroy(): void;
94
+ private ensureBridge;
95
+ private ensureReady;
96
+ private request;
97
+ private normalizeRuntimeSource;
98
+ private fetchRemoteSource;
99
+ private readResponseBuffer;
100
+ private isUriSource;
101
+ private isDataSource;
102
+ private isFileLike;
103
+ }
104
+ declare class MobileDocumentEngine extends BaseDocumentEngine {
105
+ private pdfEngine;
106
+ private webEngine;
107
+ private activeEngine;
108
+ constructor();
109
+ getRenderTargetType(): RenderTargetType;
110
+ attachWebView(bridge: WebViewBridge): void;
111
+ handleWebViewMessage(data: string): void;
112
+ load(input: DocumentLoadInput): Promise<void>;
113
+ getPageCount(): number;
114
+ getCurrentPage(): number;
115
+ goToPage(page: number): void;
116
+ setZoom(zoom: number): void;
117
+ getZoom(): number;
118
+ rotate(direction: 'clockwise' | 'counterclockwise'): void;
119
+ getRotation(): number;
120
+ renderPage(pageIndex: number, target: any, scale: number): Promise<void>;
121
+ renderTextLayer(pageIndex: number, container: any, scale: number): Promise<void>;
122
+ getTextContent(pageIndex: number): Promise<TextItem[]>;
123
+ getPageDimensions(pageIndex: number): Promise<{
124
+ width: number;
125
+ height: number;
126
+ }>;
127
+ searchText(query: string): Promise<SearchResult[]>;
128
+ selectText(pageIndex: number, rect: {
129
+ x: number;
130
+ y: number;
131
+ width: number;
132
+ height: number;
133
+ }): Promise<TextSelection | null>;
134
+ getOutline(): Promise<OutlineItem[]>;
135
+ getPageIndex(dest: PageDestination): Promise<number | null>;
136
+ destroy(): void;
137
+ }
50
138
 
51
- export { NativeDocumentEngine, PapyrusPageView, type PapyrusPageViewProps };
139
+ export { MobileDocumentEngine, NativeDocumentEngine, PapyrusPageView, type PapyrusPageViewProps, WebViewDocumentEngine };
package/dist/index.d.ts CHANGED
@@ -1,12 +1,13 @@
1
- import * as react_native from 'react-native';
2
- import { ViewProps } from 'react-native';
1
+ import { ComponentType, RefAttributes } from 'react';
2
+ import { ViewProps, View } from 'react-native';
3
3
  import { BaseDocumentEngine } from '@papyrus-sdk/core';
4
- import { DocumentSource, TextItem, TextSelection, OutlineItem, SearchResult } from '@papyrus-sdk/types';
4
+ import { DocumentLoadInput, TextItem, TextSelection, OutlineItem, SearchResult, PageDestination, RenderTargetType } from '@papyrus-sdk/types';
5
5
 
6
6
  type PapyrusPageViewProps = ViewProps & {
7
7
  engineId?: string;
8
8
  };
9
- declare const PapyrusPageView: react_native.HostComponent<PapyrusPageViewProps>;
9
+ type PapyrusPageViewComponent = ComponentType<PapyrusPageViewProps & RefAttributes<View>>;
10
+ declare const PapyrusPageView: PapyrusPageViewComponent;
10
11
  declare class NativeDocumentEngine extends BaseDocumentEngine {
11
12
  private nativeModule;
12
13
  private engineId;
@@ -15,7 +16,7 @@ declare class NativeDocumentEngine extends BaseDocumentEngine {
15
16
  private zoom;
16
17
  private rotation;
17
18
  constructor();
18
- load(source: DocumentSource): Promise<void>;
19
+ load(input: DocumentLoadInput): Promise<void>;
19
20
  getPageCount(): number;
20
21
  getCurrentPage(): number;
21
22
  goToPage(page: number): void;
@@ -38,7 +39,7 @@ declare class NativeDocumentEngine extends BaseDocumentEngine {
38
39
  }): Promise<TextSelection | null>;
39
40
  getOutline(): Promise<OutlineItem[]>;
40
41
  searchText(query: string): Promise<SearchResult[]>;
41
- getPageIndex(dest: any): Promise<number | null>;
42
+ getPageIndex(dest: PageDestination): Promise<number | null>;
42
43
  destroy(): void;
43
44
  private assertNativeModule;
44
45
  private normalizeSource;
@@ -47,5 +48,92 @@ declare class NativeDocumentEngine extends BaseDocumentEngine {
47
48
  private isFileLike;
48
49
  private toNativeViewTag;
49
50
  }
51
+ type WebViewBridge = {
52
+ postMessage: (message: string) => void;
53
+ };
54
+ declare class WebViewDocumentEngine extends BaseDocumentEngine {
55
+ private bridge;
56
+ private ready;
57
+ private requestId;
58
+ private pending;
59
+ private bridgeResolvers;
60
+ private readyResolvers;
61
+ private pageCount;
62
+ private currentPage;
63
+ private zoom;
64
+ private rotation;
65
+ private outline;
66
+ getRenderTargetType(): 'webview';
67
+ attachBridge(bridge: WebViewBridge): void;
68
+ handleMessage(raw: string): void;
69
+ load(input: DocumentLoadInput): Promise<void>;
70
+ getPageCount(): number;
71
+ getCurrentPage(): number;
72
+ goToPage(page: number): void;
73
+ setZoom(zoom: number): void;
74
+ getZoom(): number;
75
+ rotate(direction: 'clockwise' | 'counterclockwise'): void;
76
+ getRotation(): number;
77
+ renderPage(pageIndex: number, target: any, scale: number): Promise<void>;
78
+ renderTextLayer(pageIndex: number, container: any, scale: number): Promise<void>;
79
+ getTextContent(pageIndex: number): Promise<TextItem[]>;
80
+ getPageDimensions(pageIndex: number): Promise<{
81
+ width: number;
82
+ height: number;
83
+ }>;
84
+ searchText(query: string): Promise<SearchResult[]>;
85
+ selectText(pageIndex: number, rect: {
86
+ x: number;
87
+ y: number;
88
+ width: number;
89
+ height: number;
90
+ }): Promise<TextSelection | null>;
91
+ getOutline(): Promise<OutlineItem[]>;
92
+ getPageIndex(dest: PageDestination): Promise<number | null>;
93
+ destroy(): void;
94
+ private ensureBridge;
95
+ private ensureReady;
96
+ private request;
97
+ private normalizeRuntimeSource;
98
+ private fetchRemoteSource;
99
+ private readResponseBuffer;
100
+ private isUriSource;
101
+ private isDataSource;
102
+ private isFileLike;
103
+ }
104
+ declare class MobileDocumentEngine extends BaseDocumentEngine {
105
+ private pdfEngine;
106
+ private webEngine;
107
+ private activeEngine;
108
+ constructor();
109
+ getRenderTargetType(): RenderTargetType;
110
+ attachWebView(bridge: WebViewBridge): void;
111
+ handleWebViewMessage(data: string): void;
112
+ load(input: DocumentLoadInput): Promise<void>;
113
+ getPageCount(): number;
114
+ getCurrentPage(): number;
115
+ goToPage(page: number): void;
116
+ setZoom(zoom: number): void;
117
+ getZoom(): number;
118
+ rotate(direction: 'clockwise' | 'counterclockwise'): void;
119
+ getRotation(): number;
120
+ renderPage(pageIndex: number, target: any, scale: number): Promise<void>;
121
+ renderTextLayer(pageIndex: number, container: any, scale: number): Promise<void>;
122
+ getTextContent(pageIndex: number): Promise<TextItem[]>;
123
+ getPageDimensions(pageIndex: number): Promise<{
124
+ width: number;
125
+ height: number;
126
+ }>;
127
+ searchText(query: string): Promise<SearchResult[]>;
128
+ selectText(pageIndex: number, rect: {
129
+ x: number;
130
+ y: number;
131
+ width: number;
132
+ height: number;
133
+ }): Promise<TextSelection | null>;
134
+ getOutline(): Promise<OutlineItem[]>;
135
+ getPageIndex(dest: PageDestination): Promise<number | null>;
136
+ destroy(): void;
137
+ }
50
138
 
51
- export { NativeDocumentEngine, PapyrusPageView, type PapyrusPageViewProps };
139
+ export { MobileDocumentEngine, NativeDocumentEngine, PapyrusPageView, type PapyrusPageViewProps, WebViewDocumentEngine };