package Ġcom . react n ativ er od ney broadcast Ċ Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . util . Log Ċ import Ġcom . facebook . react . bridge .* Ċ import Ġcom . facebook . react . modules . core . Device Event Manager Module . RCT Device EventEmitter ĊĊ Ċ class ĠRod ney Broadcast Module ( react Context : ĠReact ApplicationContext ) Ġ: ĠReact Context Base Java Module ( react Context ) Ġ{ ĊĊĠ Ġprivate Ġvar Ġrec iver List : ĠArrayList < Broadcast Receiver > Ġ= ĠArrayList () ĊĠ Ġoverride Ġfun ĠgetName (): ĠString Ġ{ ĊĠĠĠ Ġreturn Ġ" Rod ney Broadcast " ĊĠ Ġ} ĊĊĠ Ġ@ React Method ĊĠ Ġfun Ġadd Name ( ĠeventName : ĠString ) Ġ{ ĊĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMethod Ġused Ġto Ġprepare Ġand Ġget Ġdata Ġto Ġsend ĊĠĠ Ġ* Ġ@ param Ġiniti ating Intent ĠIntent ĊĠĠ Ġ* Ġ@ param Ġaction Names ĠList < String > Ġof Ġnames Ġto Ġuse Ġfor Ġget Ġdata ĊĠĠ Ġ* Ġ@ param ĠeventName ĠString Ġname Ġof Ġevent ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ returns ĠVoid ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun Ġdisplay Scan Result ( initi ating Intent : ĠIntent , Ġaction Names : ĠList < String >, ĠeventName : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġmap : ĠWrit able Map Ġ= ĠWrit able Native Map () ĊĠĠĠ Ġfor Ġ( action Name Ġin Ġaction Names ){ ĊĠĠĠĠĠ Ġmap . putString ( action Name , Ġiniti ating Intent . getString Extra ( action Name )) ĊĠĠĠ Ġ} ĊĠĠĠ Ġthis . send Event ( eventName , Ġmap ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMethod Ġused Ġto Ġregister Ġbroadcast Ġrec iver ĊĠĠ Ġ* Ġ@ param Ġfilter Name ĠS ring Ġname Ġused Ġto Ġfilter ĊĠĠ Ġ* Ġ@ param Ġaction Names ĠS ring Ġnames Ġused Ġto Ġmap ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ returns ĠPromise < bo lean > ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġunregister ( idx : ĠInt , Ġpromise : ĠPromise ) Ġ{ ĊĠĠĠ Ġif ( this . rec iver List . size > 0 ) Ġ{ ĊĠĠĠĠĠ Ġval Ġrec iver Ġ= Ġthis . rec iver List . get ( idx ) ĊĠĠĠĠĠ Ġthis . react ApplicationContext . unregister Receiver ( rec iver ) ĊĠĠĠĠĠ Ġthis . rec iver List . remove ( rec iver ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġpromise . resolve ( true ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMethod Ġused Ġto Ġregister Ġbroadcast Ġrec iver ĊĠĠ Ġ* Ġ@ param Ġfilter Name ĠS ring Ġname Ġused Ġto Ġfilter ĊĠĠ Ġ* Ġ@ param Ġaction Names ĠS ring Ġnames Ġused Ġto Ġmap ĊĠĠ Ġ* Ġ@ param ĠeventName ĠS ring Ġnames Ġused Ġto Ġevent e Ġemitter ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ returns ĠPromise < Int > Ġindex Ġof Ġrec iver ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġregister ( filter Name : ĠString , Ġaction Names : ĠString , ĠeventName : ĠString , Ġpromise : ĠPromise ) Ġ{ ĊĊĠĠĠ Ġval Ġfilter Ġ= ĠIntent Filter () ĊĠĠĠ Ġfilter . addAction ( filter Name ) ĊĊĠĠĠ Ġval Ġmy Broadcast Receiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġintent . action ĊĊĠĠĠĠĠĠĠ Ġif Ġ( action Ġ== Ġfilter Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisplay Scan Result ( intent , Ġaction Names . split ("; "), ĠeventName ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" R NR od ney Broadcast ", Ġ" Exception Ġin Ġdisplay Scan Result Ġin ĠBroadcast Receiver Ġis :$ e ") ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġthis . react ApplicationContext . register Receiver ( my Broadcast Receiver , Ġfilter ) ĊĊĠĠĠ Ġthis . rec iver List . add ( my Broadcast Receiver ) ĊĊĠĠĠ Ġpromise . resolve ( this . rec iver List . indexOf ( my Broadcast Receiver )) ĊĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠMethod Ġused Ġto Ġsimulate Ġevent ĊĠĠ Ġ* Ġ@ param Ġaction Name ĠS ring Ġname Ġof Ġbroadcast Ġintent ĊĠĠ Ġ* Ġ@ param Ġput Extra ĠS ring Ġnames Ġused Ġto Ġmap ĊĠĠ Ġ* Ġ@ param Ġvalue ĠS ring Ġnames Ġused Ġto Ġmap ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ returns ĠPromise < Int > Ġindex Ġof Ġrec iver ĊĠĠ Ġ*/ ĊĠ Ġ@ React Method ĊĠ Ġfun Ġsend Broadcast ( action Name : ĠString , Ġput Extra : ĠString , Ġvalue : ĠString , Ġpromise : ĠPromise ){ ĊĠĠĠ ĠIntent (). also Ġ{ Ġintent Ġ-> ĊĠĠĠĠĠ Ġintent . setAction ( action Name ) ĊĠĠĠĠĠ Ġintent . putExtra ( putExtra , Ġvalue ) ĊĠĠĠĠĠ Ġthis . react ApplicationContext . send Broadcast ( intent ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġpromise . resolve ( true ); ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSend Ġevent Ġto Ġdevice Ġevent Ġemitter ĊĠĠ Ġ* Ġ@ param ĠeventName ĠS ring Ġof Ġevent Ġname ĊĠĠ Ġ* Ġ@ param Ġmap ĠWrit able Map Ġto Ġsend ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ returns ĠVoid ĊĠĠ Ġ*/ ĊĠ Ġprivate Ġfun Ġsend Event ( eventName : ĠString , Ġmap : ĠWrit able Map ) Ġ{ ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġthis . react ApplicationContext . get JS Module ( RCT Device EventEmitter :: class . java ) ĊĠĠĠĠĠĠĠ Ġ. emit ( eventName , Ġmap ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ ĠLog . d (" R NR od ney Broadcast ", Ġ" Exception Ġin Ġsend Event Ġin ĠBroadcast Receiver Ġis :$ e ") ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ Ċ } Ċ