package Ġcom . par an oid . ma o . ts nd 1 2 1 . ui . main Ċ Ċ import Ġandroid . support . v 7 . widget . RecyclerView Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Switch Ċ import Ġcom . par an oid . ma o . at rs ensor service . A tr Sensor Status Ċ import Ġcom . par an oid . ma o . ts nd 1 2 1 . R Ċ import Ġcom . par an oid . ma o . ts nd 1 2 1 . vo . Sensor Ċ import Ġkotlinx . android . synt hetic . main . sensor _ list _ item . view .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠPar an oid Ġon Ġ 1 / 2 5 / 1 8 . Ċ Ġ*/ Ċ class ĠSensor ListAdapter ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠviewModel : ĠSensor Control ViewModel , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġon Item Click : Ġ( Sensor ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġon Item Long Click : Ġ( Sensor ) Ġ-> ĠUnit Ċ ) ĊĠĠĠ Ġ: ĠRecyclerView . Adapter < Sensor ListAdapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġvar Ġsensor List : ĠList < Pair < Sensor , ĠA tr Sensor Status >> Ġ= ĠlistOf () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . sensor _ list _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġholder Ġ= ĠViewHolder ( view ) ĊĠĠĠĠĠĠĠ Ġwith ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġswitch ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Switch . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsensor Ġ= Ġsensor List [ holder . adapter Position ]. first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( it Ġas ĠSwitch ). isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . connect ( sensor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . disconnect ( sensor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsensor Ġ= Ġsensor List [ holder . adapter Position ]. first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Click ( sensor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setOn Long ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsensor Ġ= Ġsensor List [ holder . adapter Position ]. first ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Item Long Click ( sensor ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġholder ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġsensor List . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsensor And Status Ġ= Ġsensor List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind ( sensor And Status ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( sensor And Status : ĠPair < Sensor , ĠA tr Sensor Status >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( sensor , Ġstatus ) Ġ= Ġsensor And Status ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Name TextView . text Ġ= Ġsensor . name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsensor MA CT ext View . text Ġ= Ġsensor . mac ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Check . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Switch . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Enabled Ġ= Ġstatus Ġ!= ĠA tr Sensor Status . MEAS UR ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Checked Ġ= Ġstatus Ġ!= ĠA tr Sensor Status . OFF LINE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsensor Status View . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġstatus Ġ== ĠA tr Sensor Status . MEAS UR ING ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }