@siteed/expo-audio-stream 1.1.16 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/.cursorrules +112 -0
  2. package/CHANGELOG.md +13 -17
  3. package/README.md +5 -0
  4. package/android/build/.transforms/78826170c90a6133e31ab67915bce724/transformed/classes/classes_dex/classes.dex +0 -0
  5. package/android/build/.transforms/7c8f45a7979f7f92ba944aa5701c97dc/transformed/classes/classes_dex/classes.dex +0 -0
  6. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioFormatInfo.dex +0 -0
  7. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioFormatUtils.dex +0 -0
  8. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioNotificationManager$Companion.dex +0 -0
  9. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioNotificationManager.dex +0 -0
  10. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$AudioData.dex +0 -0
  11. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$Companion.dex +0 -0
  12. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$extractMFCC$powerSpectrum$2.dex +0 -0
  13. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor.dex +0 -0
  14. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecorderManager$Companion.dex +0 -0
  15. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecorderManager.dex +0 -0
  16. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecordingService$Companion.dex +0 -0
  17. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecordingService$notificationManager$2.dex +0 -0
  18. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecordingService.dex +0 -0
  19. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$1.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$1.dex} +0 -0
  20. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$10.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$10.dex} +0 -0
  21. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$11.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$11.dex} +0 -0
  22. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$12.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$12.dex} +0 -0
  23. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$13.dex +0 -0
  24. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$17.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$14.dex} +0 -0
  25. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$15.dex +0 -0
  26. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$16.dex +0 -0
  27. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$14.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$17.dex} +0 -0
  28. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$18.dex +0 -0
  29. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$19.dex +0 -0
  30. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$5.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$2.dex} +0 -0
  31. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$20.dex +0 -0
  32. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$21.dex +0 -0
  33. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$22.dex +0 -0
  34. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$23.dex +0 -0
  35. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$24.dex +0 -0
  36. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$3.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$3.dex} +0 -0
  37. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$4.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$4.dex} +0 -0
  38. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$2.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$5.dex} +0 -0
  39. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$6.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$6.dex} +0 -0
  40. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$7.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$7.dex} +0 -0
  41. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$8.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$8.dex} +0 -0
  42. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$9.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$9.dex} +0 -0
  43. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$1.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$1.dex} +0 -0
  44. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$2.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$2.dex} +0 -0
  45. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$3.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$3.dex} +0 -0
  46. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
  47. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$1.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$1.dex} +0 -0
  48. package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$2.dex → dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$2.dex} +0 -0
  49. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule.dex +0 -0
  50. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/NotificationAction.dex +0 -0
  51. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/NotificationConfig$Companion.dex +0 -0
  52. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/NotificationConfig.dex +0 -0
  53. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/PermissionUtils.dex +0 -0
  54. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingActionReceiver$Companion.dex +0 -0
  55. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingActionReceiver$handleRecordingAction$notificationPromise$1.dex +0 -0
  56. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingActionReceiver.dex +0 -0
  57. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfig$Companion.dex +0 -0
  58. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfig.dex +0 -0
  59. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfigKt.dex +0 -0
  60. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformConfig.dex +0 -0
  61. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$RenderConfig$Companion.dex +0 -0
  62. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$RenderConfig.dex +0 -0
  63. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$Style.dex +0 -0
  64. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer$WhenMappings.dex +0 -0
  65. package/android/build/.transforms/dfac117b512a43872cc8ea7286b996cc/transformed/debug/debug_dex/net/siteed/audiostream/WaveformRenderer.dex +0 -0
  66. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/aapt/AndroidManifest.xml +23 -2
  67. package/android/build/intermediates/compile_library_classes_jar/debug/classes.jar +0 -0
  68. package/android/build/intermediates/compile_r_class_jar/debug/R.jar +0 -0
  69. package/android/build/intermediates/compile_symbol_list/debug/R.txt +11 -0
  70. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_default_action_icon.xml.flat +0 -0
  71. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_microphone.xml.flat +0 -0
  72. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_pause.xml.flat +0 -0
  73. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_play.xml.flat +0 -0
  74. package/android/build/intermediates/compiled_local_resources/debug/out/drawable_ic_stop.xml.flat +0 -0
  75. package/android/build/intermediates/compiled_local_resources/debug/out/layout_notification_recording.xml.flat +0 -0
  76. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +8 -1
  77. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +1 -1
  78. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +2 -0
  79. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +2 -0
  80. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +2 -0
  81. package/android/build/intermediates/java_res/debug/out/META-INF/siteed-expo-audio-stream_debug.kotlin_module +0 -0
  82. package/android/build/intermediates/local_only_symbol_list/debug/R-def.txt +11 -0
  83. package/android/build/intermediates/manifest_merge_blame_file/debug/manifest-merger-blame-debug-report.txt +51 -8
  84. package/android/build/intermediates/merged_manifest/debug/AndroidManifest.xml +23 -2
  85. package/android/build/intermediates/packaged_res/debug/drawable/ic_default_action_icon.xml +16 -0
  86. package/android/build/intermediates/packaged_res/debug/drawable/ic_microphone.xml +13 -0
  87. package/android/build/intermediates/packaged_res/debug/drawable/ic_pause.xml +10 -0
  88. package/android/build/intermediates/packaged_res/debug/drawable/ic_play.xml +10 -0
  89. package/android/build/intermediates/packaged_res/debug/drawable/ic_stop.xml +10 -0
  90. package/android/build/intermediates/packaged_res/debug/layout/notification_recording.xml +37 -0
  91. package/android/build/intermediates/runtime_library_classes_dir/debug/META-INF/siteed-expo-audio-stream_debug.kotlin_module +0 -0
  92. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioFormatInfo.class +0 -0
  93. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioFormatUtils.class +0 -0
  94. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioNotificationManager$Companion.class +0 -0
  95. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioNotificationManager.class +0 -0
  96. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor$AudioData.class +0 -0
  97. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor$Companion.class +0 -0
  98. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor$extractMFCC$powerSpectrum$2.class +0 -0
  99. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioProcessor.class +0 -0
  100. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecorderManager$Companion.class +0 -0
  101. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecorderManager.class +0 -0
  102. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecordingService$Companion.class +0 -0
  103. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecordingService$notificationManager$2.class +0 -0
  104. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/AudioRecordingService.class +0 -0
  105. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$1.class} +0 -0
  106. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$10.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$10.class} +0 -0
  107. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$14.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$11.class} +0 -0
  108. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$12.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$12.class} +0 -0
  109. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$13.class +0 -0
  110. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$17.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$14.class} +0 -0
  111. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$15.class +0 -0
  112. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$16.class +0 -0
  113. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$11.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$17.class} +0 -0
  114. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$18.class +0 -0
  115. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$19.class +0 -0
  116. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$5.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$2.class} +0 -0
  117. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$11.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$20.class} +0 -0
  118. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$21.class +0 -0
  119. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$22.class +0 -0
  120. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$23.class +0 -0
  121. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$24.class +0 -0
  122. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$3.class} +0 -0
  123. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$4.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$4.class} +0 -0
  124. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$8.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$5.class} +0 -0
  125. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$6.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$6.class} +0 -0
  126. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$7.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$7.class} +0 -0
  127. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$8.class} +0 -0
  128. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$9.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$9.class} +0 -0
  129. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$1.class} +0 -0
  130. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$2.class} +0 -0
  131. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$3.class} +0 -0
  132. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$4.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$4.class} +0 -0
  133. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$1.class} +0 -0
  134. package/android/build/{tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$2.class → intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$2.class} +0 -0
  135. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule.class +0 -0
  136. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/NotificationAction.class +0 -0
  137. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/NotificationConfig$Companion.class +0 -0
  138. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/NotificationConfig.class +0 -0
  139. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/PermissionUtils.class +0 -0
  140. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingActionReceiver$Companion.class +0 -0
  141. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingActionReceiver$handleRecordingAction$notificationPromise$1.class +0 -0
  142. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingActionReceiver.class +0 -0
  143. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingConfig$Companion.class +0 -0
  144. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingConfig.class +0 -0
  145. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/RecordingConfigKt.class +0 -0
  146. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformConfig.class +0 -0
  147. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig$Companion.class +0 -0
  148. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig.class +0 -0
  149. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$Style.class +0 -0
  150. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer$WhenMappings.class +0 -0
  151. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/WaveformRenderer.class +0 -0
  152. package/android/build/intermediates/runtime_library_classes_jar/debug/classes.jar +0 -0
  153. package/android/build/intermediates/symbol_list_with_package_name/debug/package-aware-r.txt +11 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  171. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  172. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  173. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  174. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  175. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  176. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  177. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  178. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  179. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  180. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  181. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  182. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  183. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  184. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  185. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  186. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  187. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  188. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  189. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  190. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  191. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  192. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  193. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  194. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  195. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  196. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  197. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  198. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  199. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  200. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  201. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  202. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  203. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  204. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  205. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  206. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  207. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  208. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  209. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  210. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  211. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  212. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  213. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  214. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  215. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  216. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  217. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  218. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  219. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  220. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  221. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  222. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  223. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  224. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  225. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  226. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  227. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  228. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  229. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  230. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  231. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  232. package/android/build/outputs/logs/manifest-merger-debug-report.txt +51 -7
  233. package/android/build/tmp/kotlin-classes/debug/META-INF/siteed-expo-audio-stream_debug.kotlin_module +0 -0
  234. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioFormatInfo.class +0 -0
  235. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioFormatUtils.class +0 -0
  236. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioNotificationManager$Companion.class +0 -0
  237. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioNotificationManager.class +0 -0
  238. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor$AudioData.class +0 -0
  239. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor$Companion.class +0 -0
  240. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor$extractMFCC$powerSpectrum$2.class +0 -0
  241. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioProcessor.class +0 -0
  242. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecorderManager$Companion.class +0 -0
  243. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecorderManager.class +0 -0
  244. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecordingService$Companion.class +0 -0
  245. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecordingService$notificationManager$2.class +0 -0
  246. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/AudioRecordingService.class +0 -0
  247. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$1.class} +0 -0
  248. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$10.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$10.class} +0 -0
  249. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$11.class +0 -0
  250. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$12.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$12.class} +0 -0
  251. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$13.class +0 -0
  252. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$14.class +0 -0
  253. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$15.class +0 -0
  254. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$16.class +0 -0
  255. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$17.class +0 -0
  256. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$18.class +0 -0
  257. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$19.class +0 -0
  258. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$2.class} +0 -0
  259. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$20.class +0 -0
  260. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$21.class +0 -0
  261. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$22.class +0 -0
  262. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$23.class +0 -0
  263. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$24.class +0 -0
  264. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$3.class} +0 -0
  265. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$4.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$4.class} +0 -0
  266. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$5.class +0 -0
  267. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$6.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$6.class} +0 -0
  268. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$7.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$7.class} +0 -0
  269. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$8.class +0 -0
  270. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$9.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunction$9.class} +0 -0
  271. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$1.class} +0 -0
  272. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$2.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$2.class} +0 -0
  273. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$3.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$3.class} +0 -0
  274. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$4.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$AsyncFunctionWithPromise$4.class} +0 -0
  275. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/{ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$1.class → ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$1.class} +0 -0
  276. package/android/build/{intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$FunctionWithoutArgs$2.class → tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$16$$inlined$FunctionWithoutArgs$2.class} +0 -0
  277. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule.class +0 -0
  278. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/NotificationAction.class +0 -0
  279. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/NotificationConfig$Companion.class +0 -0
  280. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/NotificationConfig.class +0 -0
  281. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/PermissionUtils.class +0 -0
  282. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingActionReceiver$Companion.class +0 -0
  283. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingActionReceiver$handleRecordingAction$notificationPromise$1.class +0 -0
  284. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingActionReceiver.class +0 -0
  285. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingConfig$Companion.class +0 -0
  286. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingConfig.class +0 -0
  287. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/RecordingConfigKt.class +0 -0
  288. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformConfig.class +0 -0
  289. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig$Companion.class +0 -0
  290. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$RenderConfig.class +0 -0
  291. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$Style.class +0 -0
  292. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer$WhenMappings.class +0 -0
  293. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/WaveformRenderer.class +0 -0
  294. package/android/src/main/AndroidManifest.xml +24 -2
  295. package/android/src/main/java/net/siteed/audiostream/AudioFormatUtils.kt +76 -1
  296. package/android/src/main/java/net/siteed/audiostream/AudioNotificationsManager.kt +362 -0
  297. package/android/src/main/java/net/siteed/audiostream/AudioProcessor.kt +8 -4
  298. package/android/src/main/java/net/siteed/audiostream/AudioRecorderManager.kt +477 -277
  299. package/android/src/main/java/net/siteed/audiostream/AudioRecordingService.kt +71 -0
  300. package/android/src/main/java/net/siteed/audiostream/ExpoAudioStreamModule.kt +78 -7
  301. package/android/src/main/java/net/siteed/audiostream/NotificationConfig.kt +70 -0
  302. package/android/src/main/java/net/siteed/audiostream/PermissionUtils.kt +41 -6
  303. package/android/src/main/java/net/siteed/audiostream/RecordingActionReceiver.kt +59 -0
  304. package/android/src/main/java/net/siteed/audiostream/RecordingConfig.kt +138 -1
  305. package/android/src/main/java/net/siteed/audiostream/WaveformConfig.kt +19 -0
  306. package/android/src/main/java/net/siteed/audiostream/WaveformRenderer.kt +159 -0
  307. package/android/src/main/res/drawable/ic_default_action_icon.xml +16 -0
  308. package/android/src/main/res/drawable/ic_microphone.xml +13 -0
  309. package/android/src/main/res/drawable/ic_pause.xml +10 -0
  310. package/android/src/main/res/drawable/ic_play.xml +10 -0
  311. package/android/src/main/res/drawable/ic_stop.xml +10 -0
  312. package/android/src/main/res/layout/notification_recording.xml +37 -0
  313. package/build/ExpoAudioStream.types.d.ts +36 -0
  314. package/build/ExpoAudioStream.types.d.ts.map +1 -1
  315. package/build/ExpoAudioStream.types.js.map +1 -1
  316. package/build/useAudioRecorder.d.ts.map +1 -1
  317. package/build/useAudioRecorder.js +32 -11
  318. package/build/useAudioRecorder.js.map +1 -1
  319. package/ios/AudioNotificationManager.swift +135 -0
  320. package/ios/AudioStreamManager.swift +387 -13
  321. package/ios/AudioStreamManagerDelegate.swift +4 -0
  322. package/ios/ExpoAudioStreamModule.swift +66 -38
  323. package/ios/NotificationExtension.swift +15 -0
  324. package/ios/RecordingSettings.swift +83 -5
  325. package/package.json +1 -1
  326. package/plugin/build/index.d.ts +1 -3
  327. package/plugin/build/index.js +103 -10
  328. package/plugin/src/index.ts +124 -21
  329. package/publish.sh +36 -3
  330. package/src/ExpoAudioStream.types.ts +108 -13
  331. package/src/useAudioRecorder.tsx +46 -12
  332. package/android/build/.transforms/871e87a512fbb418f6a6523c40225bac/transformed/classes/classes_dex/classes.dex +0 -0
  333. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioFormatUtils.dex +0 -0
  334. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor$Companion.dex +0 -0
  335. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioProcessor.dex +0 -0
  336. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/AudioRecorderManager.dex +0 -0
  337. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$13.dex +0 -0
  338. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$15.dex +0 -0
  339. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$16.dex +0 -0
  340. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$18.dex +0 -0
  341. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunctionWithPromise$4.dex +0 -0
  342. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/ExpoAudioStreamModule.dex +0 -0
  343. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/PermissionUtils.dex +0 -0
  344. package/android/build/.transforms/99bb16aff51bfafd6c73c1b96e3e0dcf/transformed/debug/debug_dex/net/siteed/audiostream/RecordingConfig.dex +0 -0
  345. package/android/build/.transforms/a758925c83c348fb1544431cf45e6a05/transformed/classes/classes_dex/classes.dex +0 -0
  346. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$13.class +0 -0
  347. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$15.class +0 -0
  348. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$16.class +0 -0
  349. package/android/build/intermediates/runtime_library_classes_dir/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$18.class +0 -0
  350. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +0 -0
  351. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +0 -1
  352. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$13.class +0 -0
  353. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$14.class +0 -0
  354. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$15.class +0 -0
  355. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$16.class +0 -0
  356. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$17.class +0 -0
  357. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$18.class +0 -0
  358. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$5.class +0 -0
  359. package/android/build/tmp/kotlin-classes/debug/net/siteed/audiostream/ExpoAudioStreamModule$definition$lambda$14$$inlined$AsyncFunction$8.class +0 -0
  360. /package/android/build/.transforms/{871e87a512fbb418f6a6523c40225bac → 78826170c90a6133e31ab67915bce724}/results.bin +0 -0
  361. /package/android/build/.transforms/{a758925c83c348fb1544431cf45e6a05 → 7c8f45a7979f7f92ba944aa5701c97dc}/results.bin +0 -0
  362. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/results.bin +0 -0
  363. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/AudioAnalysisData$AmplitudeRange.dex +0 -0
  364. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/AudioAnalysisData$SpeakerChange.dex +0 -0
  365. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/AudioAnalysisData.dex +0 -0
  366. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/AudioDataEncoder.dex +0 -0
  367. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/AudioFileHandler.dex +0 -0
  368. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/BuildConfig.dex +0 -0
  369. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/Constants.dex +0 -0
  370. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/DataPoint.dex +0 -0
  371. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/EventSender.dex +0 -0
  372. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/FFT.dex +0 -0
  373. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/debug_dex/net/siteed/audiostream/Features.dex +0 -0
  374. /package/android/build/.transforms/{99bb16aff51bfafd6c73c1b96e3e0dcf → dfac117b512a43872cc8ea7286b996cc}/transformed/debug/desugar_graph.bin +0 -0
@@ -6,12 +6,14 @@ let audioAnalysisEvent: String = "AudioAnalysis"
6
6
 
7
7
  public class ExpoAudioStreamModule: Module, AudioStreamManagerDelegate {
8
8
  private var streamManager = AudioStreamManager()
9
-
9
+ private let notificationCenter = UNUserNotificationCenter.current()
10
+ private let notificationIdentifier = "audio_recording_notification"
11
+
10
12
  public func definition() -> ModuleDefinition {
11
13
  Name("ExpoAudioStream")
12
14
 
13
15
  // Defines event names that the module can send to JavaScript.
14
- Events([audioDataEvent, audioAnalysisEvent])
16
+ Events([audioDataEvent, audioAnalysisEvent, "recordingStateChanged", "notificationStateChanged"])
15
17
 
16
18
  OnCreate {
17
19
  print("Setting streamManager delegate")
@@ -130,44 +132,30 @@ public class ExpoAudioStreamModule: Module, AudioStreamManagerDelegate {
130
132
  return
131
133
  }
132
134
 
133
- // Extract settings from provided options, using default values if necessary
134
- let sampleRate = options["sampleRate"] as? Double ?? 16000.0 // it fails if not 48000, why?
135
- let numberOfChannels = options["channelConfig"] as? Int ?? 1 // Mono channel configuration
136
- let bitDepth = options["audioFormat"] as? Int ?? 16 // 16bits
137
- let interval = options["interval"] as? Int ?? 1000
138
-
139
- // Extract processing options with default values
140
- let enableProcessing = options["enableProcessing"] as? Bool ?? false
141
- let pointsPerSecond = options["pointsPerSecond"] as? Int ?? 20
142
- let algorithm = options["algorithm"] as? String ?? "rms"
143
- let featureOptions = options["featureOptions"] as? [String: Bool] ?? [:]
144
- let maxRecentDataDuration = options["maxRecentDataDuration"] as? Double ?? 10.0
135
+ let settings = RecordingSettings.fromDictionary(options)
145
136
 
146
- // Create recording settings
147
- let settings = RecordingSettings(
148
- sampleRate: sampleRate,
149
- desiredSampleRate: sampleRate,
150
- numberOfChannels: numberOfChannels,
151
- bitDepth: bitDepth,
152
- maxRecentDataDuration: enableProcessing ? maxRecentDataDuration : nil,
153
- enableProcessing: enableProcessing,
154
- pointsPerSecond: enableProcessing ? pointsPerSecond : nil,
155
- algorithm: enableProcessing ? algorithm : nil,
156
- featureOptions: enableProcessing ? featureOptions : nil
157
- )
158
-
159
- if let result = self.streamManager.startRecording(settings: settings, intervalMilliseconds: interval) {
160
- let resultDict: [String: Any] = [
161
- "fileUri": result.fileUri,
162
- "channels": result.channels,
163
- "bitDepth": result.bitDepth,
164
- "sampleRate": result.sampleRate,
165
- "mimeType": result.mimeType,
166
- ]
167
- promise.resolve(resultDict)
168
- } else {
169
- promise.reject("ERROR", "Failed to start recording.")
137
+ // Initialize notification if enabled
138
+ if settings.showNotification {
139
+ Task {
140
+ let notificationGranted = await self.requestNotificationPermissions()
141
+ if !notificationGranted {
142
+ Logger.debug("Notification permissions not granted")
143
+ }
144
+ }
170
145
  }
146
+
147
+ if let result = self.streamManager.startRecording(settings: settings, intervalMilliseconds: settings.interval ?? 1000) {
148
+ let resultDict: [String: Any] = [
149
+ "fileUri": result.fileUri,
150
+ "channels": result.channels,
151
+ "bitDepth": result.bitDepth,
152
+ "sampleRate": result.sampleRate,
153
+ "mimeType": result.mimeType,
154
+ ]
155
+ promise.resolve(resultDict)
156
+ } else {
157
+ promise.reject("ERROR", "Failed to start recording.")
158
+ }
171
159
  }
172
160
  }
173
161
 
@@ -242,6 +230,16 @@ public class ExpoAudioStreamModule: Module, AudioStreamManagerDelegate {
242
230
  }
243
231
  }
244
232
 
233
+ AsyncFunction("requestNotificationPermissionsAsync") { (promise: Promise) in
234
+ Task {
235
+ let granted = await requestNotificationPermissions()
236
+ promise.resolve([
237
+ "granted": granted,
238
+ "status": granted ? "granted" : "denied"
239
+ ])
240
+ }
241
+ }
242
+
245
243
  /// Gets the current audio recording permissions.
246
244
  ///
247
245
  /// - Parameters:
@@ -262,6 +260,26 @@ public class ExpoAudioStreamModule: Module, AudioStreamManagerDelegate {
262
260
  }
263
261
  }
264
262
 
263
+ func audioStreamManager(_ manager: AudioStreamManager, didPauseRecording pauseTime: Date) {
264
+ sendEvent("recordingStateChanged", [
265
+ "state": "paused",
266
+ "timestamp": pauseTime.timeIntervalSince1970 * 1000
267
+ ])
268
+ }
269
+
270
+ func audioStreamManager(_ manager: AudioStreamManager, didResumeRecording resumeTime: Date) {
271
+ sendEvent("recordingStateChanged", [
272
+ "state": "recording",
273
+ "timestamp": resumeTime.timeIntervalSince1970 * 1000
274
+ ])
275
+ }
276
+
277
+ func audioStreamManager(_ manager: AudioStreamManager, didUpdateNotificationState isPaused: Bool) {
278
+ sendEvent("notificationStateChanged", [
279
+ "isPaused": isPaused
280
+ ])
281
+ }
282
+
265
283
  /// Handles the reception of audio data from the AudioStreamManager.
266
284
  ///
267
285
  /// - Parameters:
@@ -301,6 +319,16 @@ public class ExpoAudioStreamModule: Module, AudioStreamManagerDelegate {
301
319
  sendEvent(audioDataEvent, eventBody)
302
320
  }
303
321
 
322
+ private func requestNotificationPermissions() async -> Bool {
323
+ do {
324
+ let options: UNAuthorizationOptions = [.alert, .sound]
325
+ return try await notificationCenter.requestAuthorization(options: options)
326
+ } catch {
327
+ Logger.debug("Failed to request notification permissions: \(error)")
328
+ return false
329
+ }
330
+ }
331
+
304
332
  func audioStreamManager(_ manager: AudioStreamManager, didReceiveProcessingResult result: AudioAnalysisData?) {
305
333
  // Handle the processed audio data
306
334
  // Emit the processing result event to JavaScript
@@ -0,0 +1,15 @@
1
+ //
2
+ // NotificationExtension.swift
3
+ // Pods
4
+ //
5
+ // Created by Arthur Breton on 27/10/2024.
6
+ //
7
+
8
+
9
+ import Foundation
10
+
11
+ extension Notification.Name {
12
+ static let pauseRecording = Notification.Name("PAUSE_RECORDING")
13
+ static let resumeRecording = Notification.Name("RESUME_RECORDING")
14
+ static let notificationActionTriggered = Notification.Name("notificationActionTriggered")
15
+ }
@@ -1,13 +1,91 @@
1
1
  // RecordingSettings.swift
2
2
 
3
+ struct NotificationAction {
4
+ var title: String
5
+ var identifier: String
6
+ }
7
+
8
+ struct IOSNotificationConfig {
9
+ var categoryIdentifier: String?
10
+ var actions: [NotificationAction]?
11
+ }
12
+
13
+ struct NotificationConfig {
14
+ var title: String?
15
+ var text: String?
16
+ var icon: String?
17
+ var ios: IOSNotificationConfig?
18
+ }
19
+
3
20
  struct RecordingSettings {
21
+ // Core recording settings
4
22
  var sampleRate: Double
5
23
  var desiredSampleRate: Double
6
24
  var numberOfChannels: Int = 1
7
25
  var bitDepth: Int = 16
8
- var maxRecentDataDuration: Double? = 10.0 // Default to 10 seconds
9
- var enableProcessing: Bool = false // Flag to enable/disable processing
10
- var pointsPerSecond: Int? = 1000 // Default value
11
- var algorithm: String? = "rms" // Default algorithm
12
- var featureOptions: [String: Bool]? = ["rms": true, "zcr": true] // Default features
26
+ var interval: Int?
27
+
28
+ // Feature flags
29
+ var keepAwake: Bool = false
30
+ var showNotification: Bool = false
31
+ var enableProcessing: Bool = false
32
+
33
+ // Analysis settings
34
+ var pointsPerSecond: Int? = 1000
35
+ var algorithm: String? = "rms"
36
+ var featureOptions: [String: Bool]? = ["rms": true, "zcr": true]
37
+
38
+ // Notification configuration
39
+ var notification: NotificationConfig?
40
+
41
+ static func fromDictionary(_ dict: [String: Any]) -> RecordingSettings {
42
+ var settings = RecordingSettings(
43
+ sampleRate: dict["sampleRate"] as? Double ?? 44100.0,
44
+ desiredSampleRate: dict["desiredSampleRate"] as? Double ?? 44100.0
45
+ )
46
+
47
+ // Parse core settings
48
+ settings.numberOfChannels = dict["channels"] as? Int ?? 1
49
+ settings.bitDepth = dict["bitDepth"] as? Int ?? 16
50
+ settings.interval = dict["interval"] as? Int
51
+
52
+ // Parse feature flags
53
+ settings.keepAwake = dict["keepAwake"] as? Bool ?? false
54
+ settings.showNotification = dict["showNotification"] as? Bool ?? false
55
+ settings.enableProcessing = dict["enableProcessing"] as? Bool ?? false
56
+
57
+ // Parse analysis settings
58
+ settings.pointsPerSecond = dict["pointsPerSecond"] as? Int
59
+ settings.algorithm = dict["algorithm"] as? String
60
+ settings.featureOptions = dict["features"] as? [String: Bool]
61
+
62
+ // Parse notification config
63
+ if let notificationDict = dict["notification"] as? [String: Any] {
64
+ var notificationConfig = NotificationConfig()
65
+ notificationConfig.title = notificationDict["title"] as? String
66
+ notificationConfig.text = notificationDict["text"] as? String
67
+ notificationConfig.icon = notificationDict["icon"] as? String
68
+
69
+ // Parse iOS-specific notification config
70
+ if let iosDict = notificationDict["ios"] as? [String: Any] {
71
+ var iosConfig = IOSNotificationConfig()
72
+ iosConfig.categoryIdentifier = iosDict["categoryIdentifier"] as? String
73
+
74
+ if let actionsArray = iosDict["actions"] as? [[String: Any]] {
75
+ iosConfig.actions = actionsArray.map { actionDict in
76
+ NotificationAction(
77
+ title: actionDict["title"] as? String ?? "",
78
+ identifier: actionDict["identifier"] as? String ?? ""
79
+ )
80
+ }
81
+ }
82
+
83
+ notificationConfig.ios = iosConfig
84
+ }
85
+
86
+ settings.notification = notificationConfig
87
+ }
88
+
89
+ return settings
90
+ }
13
91
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siteed/expo-audio-stream",
3
- "version": "1.1.16",
3
+ "version": "1.2.0",
4
4
  "description": "stream audio crossplatform",
5
5
  "license": "MIT",
6
6
  "main": "build/index.js",
@@ -1,5 +1,3 @@
1
1
  import { ConfigPlugin } from '@expo/config-plugins';
2
- declare const withRecordingPermission: ConfigPlugin<{
3
- microphonePermission: string;
4
- }>;
2
+ declare const withRecordingPermission: ConfigPlugin;
5
3
  export default withRecordingPermission;
@@ -2,25 +2,118 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const config_plugins_1 = require("@expo/config-plugins");
4
4
  const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
5
- const withRecordingPermission = (config, existingPerms) => {
6
- if (!existingPerms) {
7
- console.warn('No previous permissions provided');
8
- }
5
+ const NOTIFICATION_USAGE = 'Show recording notifications and controls';
6
+ const withRecordingPermission = (config) => {
7
+ // iOS Configuration
9
8
  config = (0, config_plugins_1.withInfoPlist)(config, (config) => {
10
- config.modResults['NSMicrophoneUsageDescription'] = MICROPHONE_USAGE;
11
- // Add audio to UIBackgroundModes to allow background audio recording
9
+ // Existing microphone permission
10
+ config.modResults['NSMicrophoneUsageDescription'] =
11
+ config.modResults['NSMicrophoneUsageDescription'] ||
12
+ MICROPHONE_USAGE;
13
+ // Add notification permissions
14
+ // This is the correct key for iOS notifications
15
+ config.modResults['NSUserNotificationsUsageDescription'] =
16
+ NOTIFICATION_USAGE;
17
+ // Add notification style
18
+ config.modResults['NSUserNotificationAlertStyle'] = 'alert';
19
+ // Background modes
12
20
  const existingBackgroundModes = config.modResults.UIBackgroundModes || [];
13
21
  if (!existingBackgroundModes.includes('audio')) {
14
22
  existingBackgroundModes.push('audio');
15
23
  }
24
+ if (!existingBackgroundModes.includes('remote-notification')) {
25
+ existingBackgroundModes.push('remote-notification');
26
+ }
16
27
  config.modResults.UIBackgroundModes = existingBackgroundModes;
28
+ // Required capabilities for notifications
29
+ if (!config.modResults.UIRequiredDeviceCapabilities) {
30
+ config.modResults.UIRequiredDeviceCapabilities = [];
31
+ }
32
+ const capabilities = config.modResults
33
+ .UIRequiredDeviceCapabilities;
34
+ if (!capabilities.includes('notification')) {
35
+ capabilities.push('notification');
36
+ }
17
37
  return config;
18
38
  });
39
+ // Android Configuration
19
40
  config = (0, config_plugins_1.withAndroidManifest)(config, (config) => {
20
- const mainApplication = config_plugins_1.AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults);
21
- config_plugins_1.AndroidConfig.Manifest.addMetaDataItemToMainApplication(mainApplication, 'android.permission.RECORD_AUDIO', MICROPHONE_USAGE);
22
- // Add FOREGROUND_SERVICE permission for handling background recording
23
- config_plugins_1.AndroidConfig.Manifest.addMetaDataItemToMainApplication(mainApplication, 'android.permission.FOREGROUND_SERVICE', 'This apps needs access to the foreground service to record audio in the background');
41
+ const androidManifest = config.modResults;
42
+ if (!androidManifest.manifest) {
43
+ console.warn('withRecordingPermission: androidManifest.manifest is null');
44
+ return config;
45
+ }
46
+ // Add xmlns:android attribute to manifest
47
+ androidManifest.manifest.$ = {
48
+ ...androidManifest.manifest.$,
49
+ 'xmlns:android': 'http://schemas.android.com/apk/res/android',
50
+ };
51
+ // Ensure permissions array exists
52
+ if (!androidManifest.manifest['uses-permission']) {
53
+ androidManifest.manifest['uses-permission'] = [];
54
+ }
55
+ const { addPermission } = config_plugins_1.AndroidConfig.Permissions;
56
+ // Required permissions
57
+ const permissionsToAdd = [
58
+ 'android.permission.RECORD_AUDIO',
59
+ 'android.permission.FOREGROUND_SERVICE',
60
+ 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
61
+ 'android.permission.WAKE_LOCK',
62
+ 'android.permission.POST_NOTIFICATIONS',
63
+ ];
64
+ // Add each permission
65
+ permissionsToAdd.forEach((permission) => {
66
+ addPermission(androidManifest, permission);
67
+ });
68
+ // Get the main application node
69
+ const mainApplication = androidManifest.manifest.application?.[0];
70
+ if (mainApplication) {
71
+ // Add RecordingActionReceiver
72
+ if (!mainApplication.receiver) {
73
+ mainApplication.receiver = [];
74
+ }
75
+ const receiverConfig = {
76
+ $: {
77
+ 'android:name': '.RecordingActionReceiver',
78
+ 'android:exported': 'false',
79
+ },
80
+ 'intent-filter': [
81
+ {
82
+ action: [
83
+ { $: { 'android:name': 'PAUSE_RECORDING' } },
84
+ { $: { 'android:name': 'RESUME_RECORDING' } },
85
+ { $: { 'android:name': 'STOP_RECORDING' } },
86
+ ],
87
+ },
88
+ ],
89
+ };
90
+ const receiverIndex = mainApplication.receiver.findIndex((receiver) => receiver.$?.['android:name'] === '.RecordingActionReceiver');
91
+ if (receiverIndex >= 0) {
92
+ mainApplication.receiver[receiverIndex] = receiverConfig;
93
+ }
94
+ else {
95
+ mainApplication.receiver.push(receiverConfig);
96
+ }
97
+ // Add AudioRecordingService
98
+ if (!mainApplication.service) {
99
+ mainApplication.service = [];
100
+ }
101
+ const serviceConfig = {
102
+ $: {
103
+ 'android:name': '.AudioRecordingService',
104
+ 'android:enabled': 'true',
105
+ 'android:exported': 'false',
106
+ 'android:foregroundServiceType': 'microphone',
107
+ },
108
+ };
109
+ const serviceIndex = mainApplication.service.findIndex((service) => service.$?.['android:name'] === '.AudioRecordingService');
110
+ if (serviceIndex >= 0) {
111
+ mainApplication.service[serviceIndex] = serviceConfig;
112
+ }
113
+ else {
114
+ mainApplication.service.push(serviceConfig);
115
+ }
116
+ }
24
117
  return config;
25
118
  });
26
119
  return config;
@@ -1,48 +1,151 @@
1
1
  import {
2
- AndroidConfig,
3
2
  ConfigPlugin,
4
3
  withAndroidManifest,
5
4
  withInfoPlist,
5
+ AndroidConfig,
6
6
  } from '@expo/config-plugins'
7
+ import { ExpoConfig } from '@expo/config-types'
7
8
 
8
9
  const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone'
10
+ const NOTIFICATION_USAGE = 'Show recording notifications and controls'
9
11
 
10
- const withRecordingPermission: ConfigPlugin<{
11
- microphonePermission: string
12
- }> = (config, existingPerms) => {
13
- if (!existingPerms) {
14
- console.warn('No previous permissions provided')
15
- }
12
+ const withRecordingPermission: ConfigPlugin = (config: ExpoConfig) => {
13
+ // iOS Configuration
16
14
  config = withInfoPlist(config, (config) => {
17
- config.modResults['NSMicrophoneUsageDescription'] = MICROPHONE_USAGE
15
+ // Existing microphone permission
16
+ config.modResults['NSMicrophoneUsageDescription'] =
17
+ config.modResults['NSMicrophoneUsageDescription'] ||
18
+ MICROPHONE_USAGE
19
+
20
+ // Add notification permissions
21
+ // This is the correct key for iOS notifications
22
+ config.modResults['NSUserNotificationsUsageDescription'] =
23
+ NOTIFICATION_USAGE
18
24
 
19
- // Add audio to UIBackgroundModes to allow background audio recording
25
+ // Add notification style
26
+ config.modResults['NSUserNotificationAlertStyle'] = 'alert'
27
+
28
+ // Background modes
20
29
  const existingBackgroundModes =
21
30
  config.modResults.UIBackgroundModes || []
22
31
  if (!existingBackgroundModes.includes('audio')) {
23
32
  existingBackgroundModes.push('audio')
24
33
  }
34
+ if (!existingBackgroundModes.includes('remote-notification')) {
35
+ existingBackgroundModes.push('remote-notification')
36
+ }
25
37
  config.modResults.UIBackgroundModes = existingBackgroundModes
26
38
 
39
+ // Required capabilities for notifications
40
+ if (!config.modResults.UIRequiredDeviceCapabilities) {
41
+ config.modResults.UIRequiredDeviceCapabilities = []
42
+ }
43
+ const capabilities = config.modResults
44
+ .UIRequiredDeviceCapabilities as string[]
45
+ if (!capabilities.includes('notification')) {
46
+ capabilities.push('notification')
47
+ }
48
+
27
49
  return config
28
50
  })
29
51
 
52
+ // Android Configuration
30
53
  config = withAndroidManifest(config, (config) => {
31
- const mainApplication =
32
- AndroidConfig.Manifest.getMainApplicationOrThrow(config.modResults)
54
+ const androidManifest = config.modResults
55
+ if (!androidManifest.manifest) {
56
+ console.warn(
57
+ 'withRecordingPermission: androidManifest.manifest is null'
58
+ )
59
+ return config
60
+ }
33
61
 
34
- AndroidConfig.Manifest.addMetaDataItemToMainApplication(
35
- mainApplication,
36
- 'android.permission.RECORD_AUDIO',
37
- MICROPHONE_USAGE
38
- )
62
+ // Add xmlns:android attribute to manifest
63
+ androidManifest.manifest.$ = {
64
+ ...androidManifest.manifest.$,
65
+ 'xmlns:android': 'http://schemas.android.com/apk/res/android',
66
+ }
39
67
 
40
- // Add FOREGROUND_SERVICE permission for handling background recording
41
- AndroidConfig.Manifest.addMetaDataItemToMainApplication(
42
- mainApplication,
68
+ // Ensure permissions array exists
69
+ if (!androidManifest.manifest['uses-permission']) {
70
+ androidManifest.manifest['uses-permission'] = []
71
+ }
72
+
73
+ const { addPermission } = AndroidConfig.Permissions
74
+
75
+ // Required permissions
76
+ const permissionsToAdd = [
77
+ 'android.permission.RECORD_AUDIO',
43
78
  'android.permission.FOREGROUND_SERVICE',
44
- 'This apps needs access to the foreground service to record audio in the background'
45
- )
79
+ 'android.permission.FOREGROUND_SERVICE_MICROPHONE',
80
+ 'android.permission.WAKE_LOCK',
81
+ 'android.permission.POST_NOTIFICATIONS',
82
+ ]
83
+
84
+ // Add each permission
85
+ permissionsToAdd.forEach((permission) => {
86
+ addPermission(androidManifest, permission)
87
+ })
88
+
89
+ // Get the main application node
90
+ const mainApplication = androidManifest.manifest.application?.[0]
91
+ if (mainApplication) {
92
+ // Add RecordingActionReceiver
93
+ if (!mainApplication.receiver) {
94
+ mainApplication.receiver = []
95
+ }
96
+
97
+ const receiverConfig = {
98
+ $: {
99
+ 'android:name': '.RecordingActionReceiver',
100
+ 'android:exported': 'false' as const,
101
+ },
102
+ 'intent-filter': [
103
+ {
104
+ action: [
105
+ { $: { 'android:name': 'PAUSE_RECORDING' } },
106
+ { $: { 'android:name': 'RESUME_RECORDING' } },
107
+ { $: { 'android:name': 'STOP_RECORDING' } },
108
+ ],
109
+ },
110
+ ],
111
+ }
112
+
113
+ const receiverIndex = mainApplication.receiver.findIndex(
114
+ (receiver: any) =>
115
+ receiver.$?.['android:name'] === '.RecordingActionReceiver'
116
+ )
117
+
118
+ if (receiverIndex >= 0) {
119
+ mainApplication.receiver[receiverIndex] = receiverConfig
120
+ } else {
121
+ mainApplication.receiver.push(receiverConfig)
122
+ }
123
+
124
+ // Add AudioRecordingService
125
+ if (!mainApplication.service) {
126
+ mainApplication.service = []
127
+ }
128
+
129
+ const serviceConfig = {
130
+ $: {
131
+ 'android:name': '.AudioRecordingService',
132
+ 'android:enabled': 'true' as const,
133
+ 'android:exported': 'false' as const,
134
+ 'android:foregroundServiceType': 'microphone',
135
+ },
136
+ }
137
+
138
+ const serviceIndex = mainApplication.service.findIndex(
139
+ (service: any) =>
140
+ service.$?.['android:name'] === '.AudioRecordingService'
141
+ )
142
+
143
+ if (serviceIndex >= 0) {
144
+ mainApplication.service[serviceIndex] = serviceConfig
145
+ } else {
146
+ mainApplication.service.push(serviceConfig)
147
+ }
148
+ }
46
149
 
47
150
  return config
48
151
  })
package/publish.sh CHANGED
@@ -3,9 +3,39 @@ set -e
3
3
 
4
4
  echo "Starting publication process..."
5
5
 
6
- # Bump version
7
- echo "Bumping version..."
8
- yarn version patch
6
+ # Get current version from package.json
7
+ current_version=$(node -p "require('./package.json').version")
8
+ echo "Current version: $current_version"
9
+
10
+ # Ask user for version bump type
11
+ echo "Please select version bump type:"
12
+ echo "1) patch (x.x.X)"
13
+ echo "2) minor (x.X.0)"
14
+ echo "3) major (X.0.0)"
15
+ echo "4) manual"
16
+ read -p "Enter choice (1-4): " choice
17
+
18
+ case $choice in
19
+ 1)
20
+ yarn version patch
21
+ ;;
22
+ 2)
23
+ yarn version minor
24
+ ;;
25
+ 3)
26
+ yarn version major
27
+ ;;
28
+ 4)
29
+ read -p "Enter new version (current: $current_version): " new_version
30
+ yarn version $new_version
31
+ ;;
32
+ *)
33
+ echo "Invalid choice. Exiting."
34
+ exit 1
35
+ ;;
36
+ esac
37
+
38
+ # Get new version after bump
9
39
  version=$(node -p "require('./package.json').version")
10
40
  echo "New version: $version"
11
41
 
@@ -13,6 +43,9 @@ echo "New version: $version"
13
43
  echo "Generating updated documentation..."
14
44
  yarn docgen
15
45
 
46
+ echo "Waiting while docs are generated..."
47
+ sleep 3000
48
+
16
49
  # Prepare and publish package
17
50
  echo "Preparing and publishing package..."
18
51
  yarn clean && yarn prepare && yarn npm publish