package Ġcom . tel enav . os v . data . collector . ph oned ata . collector Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Event Ċ import Ġandroid . hardware . Sensor EventListener Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġandroid . os . Handler Ċ import Ġcom . tel enav . os v . data . collector . datatype . datat ypes . Pressure Object Ċ import Ġcom . tel enav . os v . data . collector . datatype . util . Library Util Ċ import Ġcom . tel enav . os v . data . collector . ph oned ata . manager . Phone Data Listener Ċ Ċ /** Ċ Ġ* ĠPress ure Collector Ġclass Ġcollect s Ġthe Ġambient Ġair Ġpressure Ġin Ġm bar Ċ Ġ*/ Ċ class ĠPress ure Collector ( phone Data Listener : ĠPhone Data Listener ?, Ġnotify Handler : ĠHandler ?) Ġ: ĠPhone Collector ( phone Data Listener , Ġnotify Handler ), ĠSensor EventListener Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġsensor Manager : ĠSensor Manager ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Sensor Registered Ġ= Ġfalse ĊĠĠĠ Ġfun Ġregister Pressure Listener ( context : ĠContext , Ġfrequency : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Sensor Registered ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Manager Ġ= Ġcontext . getSystem Service ( Context . SENSOR _ SERVICE ) Ġas ĠSensor Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpressure Sensor : ĠSensor ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sensor Manager Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpressure Sensor Ġ= Ġsensor Manager !!. getDefault Sensor ( Sensor . TYPE _ PRESS URE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pressure Sensor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Manager !!. register Listener ( this , Ġpressure Sensor , Ġfrequency , Ġnotify Handler ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Sensor Registered Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Frequency Filter ( frequency ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsend Sensor Un availability Status ( Pressure Object ( Library Util . PHONE _ SENSOR _ NOT _ AVAILABLE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġunregister Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sensor Manager Ġ!= Ġnull Ġ&& Ġis Sensor Registered ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Manager !!. unregister Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Sensor Registered Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Sensor Changed ( event : ĠSensor Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsensor Values Ġ= Ġevent . values ĊĠĠĠĠĠĠĠ Ġif Ġ( sensor Values Ġ!= Ġnull Ġ&& Ġsensor Values . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetermine Timestamp ( event . timestamp , ĠPress ure Object ( sensor Values [ 0 ] Ġ/ Ġ 1 0 , ĠLibrary Util . PHONE _ SENSOR _ READ _ SUCCESS )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Accuracy Changed ( sensor : ĠSensor , Ġaccuracy : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠNo Ġimplementation Ġneeded ĊĠĠĠ Ġ} Ċ }