package Ġio . me how . labor atory . inspector Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Base Adapter Ċ import Ġcom . google . android . material . text view . Material TextView Ċ import Ġio . me how . labor atory . Feature Ċ Ċ internal Ġclass ĠFeature Source Adapter ( ĊĠ Ġprivate Ġval Ġfeatures : ĠList < Feature <* >>, Ċ ) Ġ: ĠBase Adapter () Ġ{ ĊĠ Ġoverride Ġfun Ġget View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠ Ġval ĠviewHolder Ġ= Ġif Ġ( convert View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . io _ me how _ labor atory _ feature _ source _ spinner _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠ ĠFeature Source ViewHolder ( view Ġas ĠMaterial TextView ). apply Ġ{ Ġview . tag Ġ= Ġthis Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠconvertView . tag Ġas ĠFeature Source ViewHolder ĊĠĠĠ Ġ} ĊĠĠĠ ĠviewHolder . bind ( getItem ( position )) ĊĠĠĠ Ġreturn ĠviewHolder . item ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget DropDown View ( position : ĠInt , ĠconvertView : ĠView ?, Ġparent : ĠViewGroup ): ĠView Ġ{ ĊĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠ Ġval ĠviewHolder Ġ= Ġif Ġ( convert View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . io _ me how _ labor atory _ feature _ source _ drop _ down _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠ ĠFeature Source ViewHolder ( view Ġas ĠMaterial TextView ). apply Ġ{ Ġview . tag Ġ= Ġthis Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠ ĠconvertView . tag Ġas ĠFeature Source ViewHolder ĊĠĠĠ Ġ} ĊĠĠĠ ĠviewHolder . bind ( getItem ( position )) ĊĠĠĠ Ġreturn ĠviewHolder . item ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġget Count () Ġ= Ġfeatures . size ĊĊĠ Ġoverride Ġfun ĠgetItem ( position : ĠInt ) Ġ= Ġfeatures [ position ] ĊĊĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ) Ġ= Ġposition . to Long () ĊĊĠ Ġfun Ġposition Of ( feature : ĠFeature < *> ): ĠInt Ġ= Ġfeatures . indexOf ( feature ) Ċ } Ċ