package Ġcom . brid ou _ n . beacon scanner . utils Ċ Ċ import Ġandroid . bluetooth . Bluetooth Adapter Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġcom . brid ou _ n . beacon scanner . features . beacon List . Beacon List Activity Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . processors . Behavior Processor Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠBluetooth Manager Ġ@ Inject Ġconstructor ( private Ġval Ġadapter : ĠBluetooth Adapter ?, Ġcontext : ĠContext ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġsubject : ĠBehavior Processor < Beacon List Activity . Bluetooth State > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBehavior Processor . create Default ( getState From Adapter State ( adapter ?. state Ġ?: ĠBluetooth Adapter . STATE _ OFF )) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreceiver Ġ= Ġobject Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( ctx : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Bluetooth Adapter . ACTION _ STATE _ CHANGED Ġ== Ġintent . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠgetState From Adapter State ( intent . getInt Extra ( Bluetooth Adapter . EXTRA _ STATE , ĠBluetooth Adapter . ERROR )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubject . onNext ( state ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext . register Receiver ( receiver , ĠIntent Filter ( Bluetooth Adapter . ACTION _ STATE _ CHANGED )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetState From Adapter State ( state : ĠInt ) Ġ: ĠBe acon List Activity . Bluetooth State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( state ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . STATE _ OFF Ġ-> ĠBe acon List Activity . Bluetooth State . STATE _ OFF ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . STATE _ TUR NING _ OFF Ġ-> ĠBe acon List Activity . Bluetooth State . STATE _ TUR NING _ OFF ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . STATE _ ON Ġ-> ĠBe acon List Activity . Bluetooth State . STATE _ ON ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBluetooth Adapter . STATE _ TUR NING _ ON Ġ-> ĠBe acon List Activity . Bluetooth State . STATE _ TUR NING _ ON ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠBe acon List Activity . Bluetooth State . STATE _ OFF ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable () Ġ= Ġadapter ?. disable () ĊĊĠĠĠ Ġfun Ġenable () Ġ= Ġadapter ?. enable () ĊĊĠĠĠ Ġfun Ġas Flow able (): ĠFlow able < Beacon List Activity . Bluetooth State > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsubject ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Enabled () Ġ= Ġadapter ?. isEnabled Ġ== Ġtrue ĊĊĠĠĠ Ġfun Ġtoggle () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isEnabled ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisable () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenable () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ