package Ġdev . jer emy ko . prox imity _ sensor Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Event Ċ import Ġandroid . hardware . Sensor EventListener Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġio . flutter . plugin . common . Binary Messenger Ċ import Ġio . flutter . plugin . common . Event Channel Ċ import Ġjava . io . IOException Ċ import Ġjava . lang . Unsupported OperationException Ċ Ċ //////////////////////////////////////////////////////////////// //////////////////////////////// //// Ċ class ĠPro x imity Stream Handler ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapplication Context : ĠContext , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġmess enger : ĠBinary Messenger Ċ ): ĠEvent Channel . Stream Handler , ĠSensor EventListener Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġevent Sink : ĠEvent Channel . Event Sink ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsensor Manager : ĠSensor Manager ĊĠĠĠ Ġprivate Ġvar Ġprox imity Sensor : ĠSensor ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Listen ( arguments : ĠAny ?, Ġevents : ĠEvent Channel . Event Sink ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġevent Sink Ġ= Ġevents ĊĠĠĠĠĠĠĠ Ġsensor Manager Ġ= Ġ Ġapplication Context . getSystem Service ( Context . SENSOR _ SERVICE ) Ġas ĠSensor Manager ĊĠĠĠĠĠĠĠ Ġprox imity Sensor Ġ= Ġsensor Manager . getDefault Sensor ( Sensor . TYPE _ PRO X IM ITY ) Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠUnsupportedOperationException (" prox imity Ġsensor Ġunavailable ") ĊĊĠĠĠĠĠĠĠ Ġsensor Manager . register Listener ( this , Ġprox imity Sensor , ĠSensor Manager . SENSOR _ DELAY _ NORMAL ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel ( arguments : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsensor Manager . unregister Listener ( this , Ġprox imity Sensor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sensor Changed ( event : ĠSensor Event ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdistance Ġ= Ġevent Ġ? . values ?. get ( 0 )?. toInt () Ġ// get Ġdistance ĊĠĠĠĠĠĠĠ Ġif Ġ( distance Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( distance Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdistance Ġ> Ġ 0 Ġ, Ġnothing Ġis Ġnear ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Sink Ġ? . success ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdistance Ġ== Ġ 0 , Ġsomething Ġis Ġnear ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent Sink Ġ? . success ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Accuracy Changed ( sensor : ĠSensor ?, Ġaccuracy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// do Ġnothing ĊĠĠĠ Ġ} Ċ }