package Ġcom . inter view . saf eb oda . activities . schedules Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġcom . inter view . saf eb oda . activities . map . Maps Activity Ċ import Ġcom . inter view . saf eb oda . R Ċ import Ġcom . inter view . saf eb oda . activities . airport . view model . Air port ViewModel Ċ import Ġcom . inter view . saf eb oda . common . Air port Callback Ċ import Ġcom . inter view . saf eb oda . model Layer . model . schedule . Schedule Ċ import Ġcom . inter view . saf eb oda . utils . helper . Helper ĊĊĊĊ Ċ class ĠSchedule Adapter ( ĊĠĠĠ Ġvar Ġschedule List : ĠList < Schedule >, ĊĠĠĠ Ġvar Ġcontext : ĠContext Ġ, ĊĠĠĠ Ġvar Ġ Ġm OnClickListener : ListItem ClickListener Ċ ) Ġ: ĊĠĠĠ Ġandroidx . recyclerview . widget . RecyclerView . Adapter < Schedule Adapter . ViewHolder >() Ġ{ ĊĊĊĠĠĠ Ġinterface ĠList ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon ListItem Click ( clicked Item Index : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( p 0 : ĠViewGroup , Ġp 1 : ĠInt ): ĠViewHolder Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( p 0 . context ). inflate ( R . layout . item _ schedule , Ġp 0 , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġschedule List . count () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġp 1 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind Views ( schedule List [ p 1 ], Ġcontext ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinner Ġclass ĠViewHolder ( item View : ĠView ) Ġ: Ġandroidx . recyclerview . widget . RecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠitemView . findViewById < TextView >( R . id . txt Date ) ĊĠĠĠĠĠĠĠ Ġval Ġtotal Duration Ġ= ĠitemView . findViewById < TextView >( R . id . txt _ total Duration ) ĊĠĠĠĠĠĠĠ Ġval Ġdepart ure Ġ= ĠitemView . findViewById < TextView >( R . id . txt Depart ure ) ĊĠĠĠĠĠĠĠ Ġval Ġar ival Ġ= ĠitemView . findViewById < TextView >( R . id . arrival ) ĊĠĠĠĠĠĠĠ Ġval Ġar riv a Time Ġ= ĠitemView . findViewById < TextView >( R . id . arrival _ time ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdepart ure Time Ġ= ĠitemView . findViewById < TextView >( R . id . depart ure _ time ) ĊĠĠĠĠĠĠĠ Ġval Ġflight Details Ġ= ĠitemView . findViewById < TextView >( R . id . flight _ data ils ) ĊĠĠĠĠĠĠĠ Ġval Ġgoto Map Ġ= ĠitemView . findViewById < LinearLayout >( R . id . goto _ map ) ĊĊĊĊĠĠĠĠĠĠĠ Ġfun Ġbind Views ( schedule : ĠSchedule , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Duration . text Ġ= Ġschedule . total . Duration ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelper . log (" Response Ġis Ġ$ schedule ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschedule . flight . forEach Indexed Ġ{ Ġindex , Ġresponse Flight Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepart ure . text Ġ= Ġresponse Flight . Depart ure . Air port Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepart ure Time . text Ġ= ĠHelper . date Conversion ( response Flight . Depart ure . Scheduled Time Local . DateTime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar ival . text Ġ= Ġresponse Flight . Arrival . Air port Code ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar riv a Time . text Ġ= ĠHelper . date Conversion ( response Flight . Arrival . Scheduled Time Local . DateTime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflight Details . text Ġ= Ġresponse Flight . Mark eting Carrier . Flight Number . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġschedule List . forEach Indexed Ġ{ Ġindex , Ġresponse Flight Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġval Ġgson Ġ Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠĠ Ġval Ġjson Ġ= Ġgson . toJson ( schedule . flight ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠHelper . gson . fromJson ( json , ĠFlight :: class . java ) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHelper . log ( response . toString ()) Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepart ure . text Ġ= ĠĠĠĠ Ġresponse . Depart ure . Air port Code Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepart ure Time . text Ġ= ĠHelper . date Conversion ( response . Depart ure . Scheduled Time Local . DateTime ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar ival . text Ġ= Ġresponse . Arrival . Air port Code Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġar riv a Time . text Ġ= ĠHelper . date Conversion ( response . Arrival . Scheduled Time Local . DateTime ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflight Details . text Ġ= Ġresponse . Mark eting Carrier . Flight Number . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġ} ĊĊ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġgoto Map . setOnClickListener Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ðŁĺ ĵ Selected ĠItem Ġ${ schedule . flight }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . startActivity ( Intent ( context , ĠMaps Activity :: class . java )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm OnClickListener . on ListItem Click ( adapter Position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// 2 0 1 9 - 0 2 - 2 7 T 0 6 : 5 5 ĊĊĊĠĠĠ Ġ// ĠM MMMM Ġdd , yyyy Ċ }