package Ġcom . k rist j ans k ut ta . g izmo led Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Image Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ Ċ class ĠCol lar s Adapter ( val Ġitems : ĠArrayList < Col lar >, Ġval Ġcontext : ĠContext ) Ġ: ĊĠĠĠ ĠRecyclerView . Adapter < ViewHolder >() Ġ{ ĊĊĠĠĠ Ġ// ĠGets Ġthe Ġnumber Ġof Ġanimal s Ġin Ġthe Ġlist ĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠIn fl ates Ġthe Ġitem Ġviews ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . coll ar _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠBind s Ġeach Ġanimal Ġin Ġthe ĠArrayList Ġto Ġa Ġview ĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcol lar Ġ= Ġitems . get ( position ) ĊĠĠĠĠĠĠĠ Ġholder . tv Col lar Name ?. text Ġ= Ġcol lar . name ĊĠĠĠĠĠĠĠ Ġholder . img Che v ?. visibility Ġ= Ġif Ġ( coll ar . device Ġ!= Ġnull ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġholder . tv Status ?. visibility Ġ= Ġif Ġ( coll ar . connected ) ĠView . VISIBLE Ġelse ĠView . GONE ĊĠĠĠĠĠĠĠ Ġholder . coll ar Ġ= Ġcol lar ĊĊĠĠĠĠĠĠĠ Ġ////////////////////////////////// //////// / ĊĠĠĠĠĠĠĠ Ġ// ĠDEBUG Ġauto Ġselect Ġfirst Ġdevice ĊĠĠĠĠĠĠĠ Ġ////////////////////////////////// //////// / Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( coll ar ?. device Ġ!= Ġnull ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstop Scanner Intent Ġ= ĠIntent (" STOP SCAN NER ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . send Broadcast ( stop Scanner Intent ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠCol lar Settings Activity :: class . java ). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" coll ar Name ", Ġcol lar ?. name ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" coll ar Device ", Ġcol lar ?. device ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠViewHolder ( val Ġcontext : ĠContext , Ġview : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠ Ġ// ĠHold s Ġthe ĠTextView Ġthat Ġwill Ġadd Ġeach Ġanimal Ġto ĊĠĠĠ Ġval Ġtv Col lar Name Ġ= Ġview . findViewById < TextView >( R . id . tv _ coll ar ) ĊĠĠĠ Ġval Ġimg Che v Ġ= Ġview . findViewById < Image Button >( R . id . img _ che v ) ĊĠĠĠ Ġval Ġtv Status Ġ= Ġview . findViewById < TextView >( R . id . tv _ status ) ĊĠĠĠ Ġvar Ġcol lar : ĠCol lar ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( coll ar ?. device Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstop Scanner Intent Ġ= ĠIntent (" STOP SCAN NER ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . send Broadcast ( stop Scanner Intent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠCol lar Settings Activity :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" coll ar Name ", Ġcol lar ?. name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra (" coll ar Device ", Ġcol lar ?. device ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ