expo-realtime-ivs-broadcast 0.1.7 → 0.1.8

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 (186) hide show
  1. package/README.md +1 -1
  2. package/android/build/.transforms/10a4d332fad050fdaf4ee2d7badc1ee4/transformed/classes/classes_dex/classes.dex +0 -0
  3. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/BuildConfig.dex +0 -0
  4. package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.dex +0 -0
  5. package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView$attachStreamWithRetry$4.dex +0 -0
  6. package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.dex +0 -0
  7. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$1.dex +0 -0
  8. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$2.dex +0 -0
  9. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$11$1.dex +0 -0
  10. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$1.dex +0 -0
  11. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$10.dex +0 -0
  12. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$11.dex +0 -0
  13. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$12.dex +0 -0
  14. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$13.dex +0 -0
  15. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$14.dex +0 -0
  16. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$15.dex +0 -0
  17. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$2.dex +0 -0
  18. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$3.dex +0 -0
  19. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$4.dex +0 -0
  20. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$5.dex +0 -0
  21. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$6.dex +0 -0
  22. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$7.dex +0 -0
  23. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$8.dex +0 -0
  24. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$9.dex +0 -0
  25. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$1.dex +0 -0
  26. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$2.dex +0 -0
  27. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$3.dex +0 -0
  28. package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$OnCreate$1.dex +0 -0
  29. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$1.dex +0 -0
  30. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$2.dex +0 -0
  31. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$10$$inlined$Prop$1.dex +0 -0
  32. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$1.dex +0 -0
  33. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$2.dex +0 -0
  34. package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.dex +0 -0
  35. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastView$webView$1$1.dex +0 -0
  36. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastView.dex +0 -0
  37. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/IVSStageManager$Companion.dex +0 -0
  38. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/IVSStageManager$WhenMappings.dex +0 -0
  39. package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/IVSStageManager.dex +0 -0
  40. package/android/build/.transforms/9f2f591934de19590757f5a4b0b59398/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/IVSStageManagerDelegate.dex +0 -0
  41. package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/StageParticipant.dex +0 -0
  42. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  43. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +1 -1
  44. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/expo-realtime-ivs-broadcast_debug.kotlin_module +0 -0
  45. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/expo-realtime-ivs-broadcast_debug.kotlin_module +0 -0
  46. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.class +0 -0
  47. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView$attachStreamWithRetry$4.class +0 -0
  48. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.class +0 -0
  49. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$1.class +0 -0
  50. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$2.class +0 -0
  51. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$11$1.class +0 -0
  52. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$1.class +0 -0
  53. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$10.class +0 -0
  54. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$11.class +0 -0
  55. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$12.class +0 -0
  56. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$13.class +0 -0
  57. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$14.class +0 -0
  58. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$15.class +0 -0
  59. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$2.class +0 -0
  60. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$3.class +0 -0
  61. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$4.class +0 -0
  62. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$5.class +0 -0
  63. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$6.class +0 -0
  64. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$7.class +0 -0
  65. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$8.class +0 -0
  66. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$9.class +0 -0
  67. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$1.class +0 -0
  68. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$2.class +0 -0
  69. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$3.class +0 -0
  70. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$OnCreate$1.class +0 -0
  71. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$1.class +0 -0
  72. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$2.class +0 -0
  73. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$10$$inlined$Prop$1.class +0 -0
  74. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$1.class +0 -0
  75. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$2.class +0 -0
  76. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.class +0 -0
  77. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastView$webView$1$1.class +0 -0
  78. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastView.class +0 -0
  79. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/IVSStageManager$Companion.class +0 -0
  80. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/IVSStageManager$WhenMappings.class +0 -0
  81. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/IVSStageManager.class +0 -0
  82. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/IVSStageManagerDelegate.class +0 -0
  83. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/expo/modules/realtimeivsbroadcast/StageParticipant.class +0 -0
  84. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +1 -1
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  125. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  126. package/android/build/tmp/kotlin-classes/debug/META-INF/expo-realtime-ivs-broadcast_debug.kotlin_module +0 -0
  127. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.class +0 -0
  128. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView$attachStreamWithRetry$4.class +0 -0
  129. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.class +0 -0
  130. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$1.class +0 -0
  131. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$10$2.class +0 -0
  132. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$1$11$1.class +0 -0
  133. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$1.class +0 -0
  134. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$10.class +0 -0
  135. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$11.class +0 -0
  136. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$12.class +0 -0
  137. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$13.class +0 -0
  138. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$14.class +0 -0
  139. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$15.class +0 -0
  140. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$2.class +0 -0
  141. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$3.class +0 -0
  142. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$4.class +0 -0
  143. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$5.class +0 -0
  144. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$6.class +0 -0
  145. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$7.class +0 -0
  146. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$8.class +0 -0
  147. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunction$9.class +0 -0
  148. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$1.class +0 -0
  149. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$2.class +0 -0
  150. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$AsyncFunctionWithoutArgs$3.class +0 -0
  151. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$OnCreate$1.class +0 -0
  152. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$1.class +0 -0
  153. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$View$2.class +0 -0
  154. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$10$$inlined$Prop$1.class +0 -0
  155. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$1.class +0 -0
  156. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$lambda$9$$inlined$Prop$2.class +0 -0
  157. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.class +0 -0
  158. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastView$webView$1$1.class +0 -0
  159. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastView.class +0 -0
  160. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/IVSStageManager$Companion.class +0 -0
  161. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/IVSStageManager$WhenMappings.class +0 -0
  162. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/IVSStageManager.class +0 -0
  163. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/IVSStageManagerDelegate.class +0 -0
  164. package/android/build/tmp/kotlin-classes/debug/expo/modules/realtimeivsbroadcast/StageParticipant.class +0 -0
  165. package/android/src/main/java/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.kt +166 -21
  166. package/android/src/main/java/expo/modules/realtimeivsbroadcast/IVSStageManager.kt +27 -4
  167. package/package.json +1 -1
  168. package/android/build/.transforms/247a8b1d1f926cbf4f656139274d68b6/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSRemoteStreamView.dex +0 -0
  169. package/android/build/.transforms/247a8b1d1f926cbf4f656139274d68b6/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoIVSStagePreviewView.dex +0 -0
  170. package/android/build/.transforms/247a8b1d1f926cbf4f656139274d68b6/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule$definition$lambda$11$$inlined$OnCreate$1.dex +0 -0
  171. package/android/build/.transforms/247a8b1d1f926cbf4f656139274d68b6/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/ExpoRealtimeIvsBroadcastModule.dex +0 -0
  172. package/android/build/.transforms/247a8b1d1f926cbf4f656139274d68b6/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/IVSStageManager.dex +0 -0
  173. package/android/build/.transforms/247a8b1d1f926cbf4f656139274d68b6/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/expo/modules/realtimeivsbroadcast/IVSStageManagerDelegate.dex +0 -0
  174. package/android/build/.transforms/651ce6100f81d6b65301e359b6eaf22f/transformed/classes/classes_dex/classes.dex +0 -0
  175. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values +0 -0
  176. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.s +0 -1
  177. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values +0 -0
  178. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.s +0 -1
  179. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
  180. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +0 -1
  181. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values +0 -0
  182. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.s +0 -1
  183. /package/android/build/.transforms/{651ce6100f81d6b65301e359b6eaf22f → 10a4d332fad050fdaf4ee2d7badc1ee4}/results.bin +0 -0
  184. /package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/results.bin +0 -0
  185. /package/android/build/.transforms/{247a8b1d1f926cbf4f656139274d68b6 → 9f2f591934de19590757f5a4b0b59398}/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  186. /package/android/build/intermediates/incremental/{packageDebugAssets → mergeDebugAssets}/merger.xml +0 -0
@@ -5,6 +5,8 @@ import android.os.Build
5
5
  import android.os.Handler
6
6
  import android.os.Looper
7
7
  import android.util.Log
8
+ import android.view.View
9
+ import android.view.ViewTreeObserver
8
10
  import android.widget.FrameLayout
9
11
  import androidx.annotation.RequiresApi
10
12
  import com.amazonaws.ivs.broadcast.BroadcastConfiguration.AspectMode
@@ -28,11 +30,52 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
28
30
  // Props from React Native
29
31
  private var mirror: Boolean = false
30
32
  private var scaleMode: String = "fill"
33
+
34
+ // Track view attachment state
35
+ @Volatile
36
+ private var isViewAttached = false
31
37
 
32
38
  init {
33
39
  Log.i("ExpoIVSStagePreviewView", "Initializing Stage Preview View...")
40
+ // Start initialization immediately - don't wait for onAttachedToWindow
41
+ // This ensures the preview is ready when the view becomes visible
34
42
  resolveStageManagerAndStreamWithRetry()
35
43
  }
44
+
45
+ // Override onLayout to ensure child views are properly sized
46
+ override fun onLayout(changed: Boolean, left: Int, top: Int, right: Int, bottom: Int) {
47
+ super.onLayout(changed, left, top, right, bottom)
48
+
49
+ // Manually layout children to fill the entire view
50
+ val childWidth = right - left
51
+ val childHeight = bottom - top
52
+
53
+ for (i in 0 until childCount) {
54
+ val child = getChildAt(i)
55
+ child.layout(0, 0, childWidth, childHeight)
56
+ }
57
+
58
+ Log.d("ExpoIVSStagePreviewView", "📐 onLayout: ${childWidth}x${childHeight}, children: $childCount")
59
+ }
60
+
61
+ // Override onMeasure to properly measure children
62
+ override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
63
+ super.onMeasure(widthMeasureSpec, heightMeasureSpec)
64
+
65
+ val width = MeasureSpec.getSize(widthMeasureSpec)
66
+ val height = MeasureSpec.getSize(heightMeasureSpec)
67
+
68
+ // Measure all children with exact dimensions
69
+ val childWidthSpec = MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY)
70
+ val childHeightSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
71
+
72
+ for (i in 0 until childCount) {
73
+ val child = getChildAt(i)
74
+ child.measure(childWidthSpec, childHeightSpec)
75
+ }
76
+
77
+ Log.d("ExpoIVSStagePreviewView", "📐 onMeasure: ${width}x${height}")
78
+ }
36
79
 
37
80
  private fun resolveStageManagerAndStreamWithRetry() {
38
81
  Log.d("ExpoIVSStagePreviewView", "Attempting to resolve StageManager (attempt ${retryCount + 1})...")
@@ -60,7 +103,6 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
60
103
  val cameraDevice = this.stageManager?.getLocalCameraDevice()
61
104
 
62
105
  if (cameraDevice == null) {
63
- // Camera not ready yet, retry
64
106
  if (retryCount < maxRetries) {
65
107
  retryCount++
66
108
  Log.w("ExpoIVSStagePreviewView", "Camera device not ready, retrying in ${retryDelayMs}ms...")
@@ -78,8 +120,9 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
78
120
  }
79
121
 
80
122
  val newDeviceUrn = cameraDevice.descriptor.urn
123
+ Log.i("ExpoIVSStagePreviewView", "📷 attachStreamWithRetry - Camera: ${cameraDevice.descriptor.friendlyName}, URN: $newDeviceUrn")
124
+ Log.i("ExpoIVSStagePreviewView", "📷 Current preview URN: $currentPreviewDeviceUrn, Has preview: ${ivsImagePreviewView != null}")
81
125
 
82
- // If preview exists for the same device, do nothing.
83
126
  if (ivsImagePreviewView != null && this.currentPreviewDeviceUrn == newDeviceUrn) {
84
127
  Log.d("ExpoIVSStagePreviewView", "Already showing preview for device: $newDeviceUrn")
85
128
  return
@@ -88,9 +131,13 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
88
131
  // Cleanup existing preview
89
132
  if (ivsImagePreviewView != null) {
90
133
  Log.d("ExpoIVSStagePreviewView", "Cleaning up existing preview")
91
- removeView(ivsImagePreviewView)
134
+ try {
135
+ removeView(ivsImagePreviewView)
136
+ } catch (e: Exception) {
137
+ Log.w("ExpoIVSStagePreviewView", "Error removing old preview: ${e.message}")
138
+ }
92
139
  ivsImagePreviewView = null
93
- this.currentPreviewDeviceUrn = null
140
+ currentPreviewDeviceUrn = null
94
141
  }
95
142
 
96
143
  try {
@@ -102,9 +149,16 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
102
149
  return
103
150
  }
104
151
 
105
- val newPreview = imageDevice.previewView
152
+ // Use getPreviewView() with aspect mode to get a fresh preview view
153
+ // This is more reliable than using the previewView property after camera swap
154
+ val newPreview = try {
155
+ imageDevice.getPreviewView(AspectMode.FILL)
156
+ } catch (e: Exception) {
157
+ Log.w("ExpoIVSStagePreviewView", "getPreviewView(FILL) failed, trying previewView property: ${e.message}")
158
+ imageDevice.previewView
159
+ }
160
+
106
161
  if (newPreview == null) {
107
- // Preview view not ready yet, retry after delay
108
162
  if (retryCount < maxRetries) {
109
163
  retryCount++
110
164
  Log.w("ExpoIVSStagePreviewView", "Preview view is null, retrying in ${retryDelayMs}ms (attempt $retryCount)...")
@@ -115,10 +169,22 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
115
169
  return
116
170
  }
117
171
 
118
- // Check if preview is attached to another parent and detach it first
119
- if (newPreview.parent != null) {
120
- Log.w("ExpoIVSStagePreviewView", "Preview view already has a parent, detaching first...")
121
- (newPreview.parent as? android.view.ViewGroup)?.removeView(newPreview)
172
+ Log.i("ExpoIVSStagePreviewView", "📷 Got preview view: ${newPreview.javaClass.simpleName}, hashCode: ${newPreview.hashCode()}")
173
+
174
+ // IMPORTANT: Check if preview is attached to another parent and detach it first
175
+ val existingParent = newPreview.parent
176
+ if (existingParent != null && existingParent != this) {
177
+ Log.w("ExpoIVSStagePreviewView", "Preview view has another parent, detaching first...")
178
+ (existingParent as? android.view.ViewGroup)?.removeView(newPreview)
179
+ }
180
+
181
+ // If already attached to this view, no need to re-add
182
+ if (newPreview.parent == this) {
183
+ Log.d("ExpoIVSStagePreviewView", "Preview already attached to this view")
184
+ this.ivsImagePreviewView = newPreview
185
+ this.currentPreviewDeviceUrn = newDeviceUrn
186
+ applyProps()
187
+ return
122
188
  }
123
189
 
124
190
  newPreview.layoutParams = FrameLayout.LayoutParams(
@@ -131,13 +197,46 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
131
197
  this.currentPreviewDeviceUrn = newDeviceUrn
132
198
 
133
199
  applyProps()
200
+
201
+ // Force layout update - measure and layout immediately with current dimensions
202
+ if (width > 0 && height > 0) {
203
+ val widthSpec = MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY)
204
+ val heightSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
205
+ newPreview.measure(widthSpec, heightSpec)
206
+ newPreview.layout(0, 0, width, height)
207
+ Log.i("ExpoIVSStagePreviewView", "📐 Forced layout: preview now ${newPreview.measuredWidth}x${newPreview.measuredHeight}")
208
+ } else {
209
+ // Parent not yet measured, use ViewTreeObserver to layout after measure
210
+ viewTreeObserver.addOnGlobalLayoutListener(object : ViewTreeObserver.OnGlobalLayoutListener {
211
+ override fun onGlobalLayout() {
212
+ viewTreeObserver.removeOnGlobalLayoutListener(this)
213
+ val preview = ivsImagePreviewView ?: return
214
+ if (this@ExpoIVSStagePreviewView.width > 0 && this@ExpoIVSStagePreviewView.height > 0) {
215
+ val w = this@ExpoIVSStagePreviewView.width
216
+ val h = this@ExpoIVSStagePreviewView.height
217
+ val wSpec = MeasureSpec.makeMeasureSpec(w, MeasureSpec.EXACTLY)
218
+ val hSpec = MeasureSpec.makeMeasureSpec(h, MeasureSpec.EXACTLY)
219
+ preview.measure(wSpec, hSpec)
220
+ preview.layout(0, 0, w, h)
221
+ Log.i("ExpoIVSStagePreviewView", "📐 Deferred layout: preview now ${preview.measuredWidth}x${preview.measuredHeight}")
222
+ }
223
+ }
224
+ })
225
+ }
226
+
227
+ // Also request layout for next frame
228
+ newPreview.requestLayout()
229
+ requestLayout()
230
+ invalidate()
231
+
134
232
  Log.i("ExpoIVSStagePreviewView", "✅ Successfully attached camera preview for: ${cameraDevice.descriptor.friendlyName}")
233
+ Log.i("ExpoIVSStagePreviewView", "📷 Preview dimensions: ${newPreview.width}x${newPreview.height}, visibility: ${newPreview.visibility}")
234
+ Log.i("ExpoIVSStagePreviewView", "📷 Parent dimensions: ${this.width}x${this.height}, childCount: ${this.childCount}")
135
235
  } catch (e: Exception) {
136
236
  Log.e("ExpoIVSStagePreviewView", "❌ Failed to attach camera preview: ${e.message}", e)
137
237
  this.ivsImagePreviewView = null
138
238
  this.currentPreviewDeviceUrn = null
139
239
 
140
- // Retry on exception as well
141
240
  if (retryCount < maxRetries) {
142
241
  retryCount++
143
242
  Log.w("ExpoIVSStagePreviewView", "Retrying after exception in ${retryDelayMs}ms (attempt $retryCount)...")
@@ -148,7 +247,8 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
148
247
 
149
248
  // Public method for manager to notify when camera changes (e.g., after swapCamera)
150
249
  fun refreshPreview() {
151
- Log.d("ExpoIVSStagePreviewView", "Refresh preview requested - clearing current preview and reattaching")
250
+ Log.i("ExpoIVSStagePreviewView", "🔄 Refresh preview requested - clearing current preview and reattaching")
251
+ Log.i("ExpoIVSStagePreviewView", "🔄 Current URN before refresh: $currentPreviewDeviceUrn")
152
252
 
153
253
  // Ensure we're on the main thread
154
254
  if (Looper.myLooper() != Looper.getMainLooper()) {
@@ -157,22 +257,26 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
157
257
  }
158
258
 
159
259
  // Clear the current preview first
160
- if (ivsImagePreviewView != null) {
260
+ val oldPreview = ivsImagePreviewView
261
+ if (oldPreview != null) {
262
+ Log.i("ExpoIVSStagePreviewView", "🔄 Removing old preview view")
161
263
  try {
162
- removeView(ivsImagePreviewView)
264
+ removeView(oldPreview)
163
265
  } catch (e: Exception) {
164
266
  Log.w("ExpoIVSStagePreviewView", "Error removing old preview view: ${e.message}")
165
267
  }
166
268
  ivsImagePreviewView = null
167
269
  }
270
+
271
+ // IMPORTANT: Clear the URN so attachStreamWithRetry will fetch a fresh preview
168
272
  currentPreviewDeviceUrn = null
169
273
 
170
274
  retryCount = 0
171
- // Add a small delay to ensure the old preview is fully detached
172
- // before attaching the new one (prevents green screen on camera swap)
275
+ // Add a delay to allow the new camera stream to initialize
173
276
  mainHandler.postDelayed({
277
+ Log.i("ExpoIVSStagePreviewView", "🔄 Now attaching new preview after delay")
174
278
  attachStreamWithRetry()
175
- }, 50)
279
+ }, 200)
176
280
  }
177
281
 
178
282
  private fun applyProps() {
@@ -180,7 +284,6 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
180
284
  setScaleMode(this.scaleMode)
181
285
  }
182
286
 
183
- // Prop setters
184
287
  fun setMirror(mirror: Boolean) {
185
288
  this.mirror = mirror
186
289
  (ivsImagePreviewView as? ImagePreviewView)?.setMirrored(this.mirror)
@@ -204,20 +307,62 @@ class ExpoIVSStagePreviewView(context: Context, appContext: AppContext) : ExpoVi
204
307
 
205
308
  override fun onAttachedToWindow() {
206
309
  super.onAttachedToWindow()
310
+ isViewAttached = true
207
311
  Log.d("ExpoIVSStagePreviewView", "View attached to window")
208
- // Re-attempt to attach if we don't have a preview yet
312
+
313
+ // If we don't have a preview yet, try to attach one
209
314
  if (ivsImagePreviewView == null) {
210
315
  retryCount = 0
211
316
  resolveStageManagerAndStreamWithRetry()
317
+ } else {
318
+ // Re-add the preview if it was removed during detach
319
+ val preview = ivsImagePreviewView
320
+ if (preview != null && preview.parent == null) {
321
+ Log.d("ExpoIVSStagePreviewView", "Re-adding preview on attach")
322
+ try {
323
+ addView(preview)
324
+ } catch (e: Exception) {
325
+ Log.w("ExpoIVSStagePreviewView", "Error re-adding preview: ${e.message}")
326
+ // Try fresh attach
327
+ ivsImagePreviewView = null
328
+ currentPreviewDeviceUrn = null
329
+ retryCount = 0
330
+ attachStreamWithRetry()
331
+ }
332
+ }
212
333
  }
213
334
  }
214
335
 
215
336
  override fun onDetachedFromWindow() {
216
- super.onDetachedFromWindow()
217
337
  Log.d("ExpoIVSStagePreviewView", "View detached from window")
218
- // Remove any pending retries
338
+ isViewAttached = false
339
+
340
+ // Remove pending callbacks
219
341
  mainHandler.removeCallbacksAndMessages(null)
342
+
343
+ // Remove the preview view from this parent so it can be reused
344
+ // Do this in a post to avoid conflicts with the current render cycle
345
+ val preview = ivsImagePreviewView
346
+ if (preview != null) {
347
+ mainHandler.post {
348
+ try {
349
+ if (preview.parent == this) {
350
+ removeView(preview)
351
+ Log.d("ExpoIVSStagePreviewView", "Preview removed in post")
352
+ }
353
+ } catch (e: Exception) {
354
+ Log.w("ExpoIVSStagePreviewView", "Error removing preview in post: ${e.message}")
355
+ }
356
+ }
357
+ }
358
+
359
+ // Clear references
360
+ ivsImagePreviewView = null
361
+ currentPreviewDeviceUrn = null
362
+
220
363
  // Unregister from manager
221
364
  stageManager?.unregisterPreviewView(this)
365
+
366
+ super.onDetachedFromWindow()
222
367
  }
223
368
  }
@@ -165,16 +165,39 @@ class IVSStageManager(private val context: Context) : Stage.Strategy, StageRende
165
165
  return
166
166
  }
167
167
 
168
+ Log.i("ExpoIVSStageManager", "🔄 Swapping camera from ${currentDevice.descriptor.friendlyName} to ${newCamera.descriptor.friendlyName}")
169
+
170
+ // First, notify preview views to clear their current preview
171
+ // This releases the old camera's preview before we switch
172
+ previewViews.mapNotNull { it.get() }.forEach { view ->
173
+ mainHandler.post {
174
+ try {
175
+ // Force clear the preview by calling refreshPreview which removes the old one
176
+ Log.i("ExpoIVSStageManager", "🔄 Clearing preview before swap")
177
+ } catch (e: Exception) {
178
+ Log.w("ExpoIVSStageManager", "Error clearing preview: ${e.message}")
179
+ }
180
+ }
181
+ }
182
+
183
+ // Update the local camera reference
168
184
  localCamera = newCamera
169
- cameraStream = ImageLocalStageStream(newCamera)
185
+
186
+ // Create new stream with video configuration
187
+ val oldStream = cameraStream
188
+ cameraStream = ImageLocalStageStream(newCamera, this.stageConfiguration.videoConfiguration)
189
+
190
+ // Refresh the stage strategy to use the new stream
170
191
  stage?.refreshStrategy()
171
- Log.i("ExpoIVSStageManager", "✅ Camera swapped to: ${newCamera.descriptor.friendlyName}")
192
+
193
+ Log.i("ExpoIVSStageManager", "✅ Camera swapped to: ${newCamera.descriptor.friendlyName}, URN: ${newCamera.descriptor.urn}")
172
194
 
173
195
  // Delay the preview refresh to allow the new camera stream to fully initialize
174
- // The green screen issue occurs when we try to get previewView before the stream is ready
196
+ // The back camera especially needs more time to warm up
175
197
  mainHandler.postDelayed({
198
+ Log.i("ExpoIVSStageManager", "🔄 Triggering preview refresh after camera swap")
176
199
  notifyPreviewViewsToRefresh()
177
- }, 150) // 150ms delay for stream initialization
200
+ }, 500) // 500ms delay for camera to fully initialize
178
201
  }
179
202
 
180
203
  private fun notifyPreviewViewsToRefresh() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-realtime-ivs-broadcast",
3
- "version": "0.1.7",
3
+ "version": "0.1.8",
4
4
  "description": "An Expo module for real-time broadcasting using Amazon IVS.",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",