package Ġsh ah in . lu as forecast . utility Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . net . to Uri Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġsh ah in . lu as forecast . R Ċ import Ġsh ah in . lu as forecast . forecast . Lu as Api Status Ċ import Ġsh ah in . lu as forecast . network . Tr am Ċ Ċ /** Ċ Ġ* ĠBinding Ġfor Ġdata Ġon Ġthe Ġviews Ċ Ġ*/ Ċ @ Binding Adapter (" due ") Ċ fun ĠTextView . set Due M ins ( item : ĠTr am ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= ĠString . format ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item . due ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" D UE " Ġ-> Ġresources . getString ( R . string . coming _ now ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"${ item . due } Ġ${ resources . getString ( R . string . minutes )}" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" destination ") Ċ fun ĠTextView . set Destination ( item : ĠTr am ?) Ġ{ ĊĠĠĠ Ġitem ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtext Ġ= ĠString . format ("${ resources . getString ( R . string . to )} Ġ${ item . destination }") ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter (" list Data ") Ċ fun Ġbind RecyclerView ( re cyclerView : ĠRecyclerView , Ġdata : ĠList < Tr am > ?) Ġ{ ĊĠĠĠ Ġval Ġadapter Ġ= Ġre cyclerView . adapter Ġas ? ĠTr ams Adapter ĊĠĠĠ Ġadapter ?. submit List ( data ) Ċ } Ċ Ċ /** Ċ Ġ* ĠFor Ġdisplaying Ġloading Ġor Ġerror Ġimage Ġin Ġwhile Ġfetching Ġthe Ġdata Ġbased Ġon Ġthree Ġstatus Ċ Ġ* ĠLO ADING Ġ-> ĠWhile Ġit 's Ġfetching , Ġit Ġwill Ġdisplay Ġloading Ġicon Ċ Ġ* ĠERROR Ġ-> ĠIf Ġno Ġinternet Ġconnection , Ġit Ġwill Ġdisplay Ġimage Ġno Ġconnection Ċ Ġ* ĠDONE Ġ-> ĠNo Ġimage Ġrelated Ġto Ġthat Ġbut Ġto Ġupdate Ġthe Ġstatus Ċ Ġ*/ Ċ @ Binding Adapter (" lu as Api Status ") Ċ fun Ġbind Status ( status ImageView : ĠImageView , Ġstatus : ĠLu as Api Status ?) Ġ{ ĊĠĠĠ Ġwhen Ġ( status ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLu as Api Status . LOADING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus ImageView . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus ImageView . setImage Resource ( R . drawable . loading _ animation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLu as Api Status . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus ImageView . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus ImageView . setImage Resource ( R . drawable . ic _ connection _ error ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLu as Api Status . DONE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus ImageView . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠFor Ġdownloading Ġand Ġdisplay ĠLu as ĠStop Ġimage Ġbased Ġon Ġthe Ġconstants Ġbelow Ċ Ġ*/ Ċ Ċ const Ġval ĠBRO O MB RID GE Ġ= Ġ"" Ġ+ ĊĠĠĠĠĠĠĠ Ġ" https :// live . static flickr . com / 4 7 3 8 / 3 8 9 5 8 7 0 1 9 7 2 _ 6 2 3 8 8 a 6 d 5 6 _ b . jpg " Ċ const Ġval ĠS AND Y F ORD Ġ= ĊĠĠĠ Ġ" h https :// live . static flickr . com / 6 0 0 6 / 5 9 7 3 4 2 1 6 0 7 _ ab 6 a 7 5 8 5 2 8 _ b . jpg " Ċ const Ġval ĠBR ID ES _ GL EN Ġ= ĊĠĠĠ Ġ" https :// upload . wik imedia . org / wikipedia / commons / thumb / 8 / 8 5 / The _ New _ Lu as _ Extension _-_ B rides _ G len _ Termin us _% 2 8 5 0 9 4 5 3 9 5 3 0 % 2 9 . jpg / 1 5 9 9 px - The _ New _ Lu as _ Extension _-_ B rides _ G len _ Termin us _% 2 8 5 0 9 4 5 3 9 5 3 0 % 2 9 . jpg " Ċ const Ġval ĠPAR NEL L Ġ= ĊĠĠĠ Ġ" https :// upload . wik imedia . org / wikipedia / commons / thumb / c / c 8 / Par n ell _ Lu as _ Stop _% 2 8 D ub lin % 2 9 . jpg / 8 0 0 px - Par n ell _ Lu as _ Stop _% 2 8 D ub lin % 2 9 . jpg " Ċ Ċ @ Binding Adapter (" imageUrl ") Ċ fun Ġbind Image ( img View : ĠImageView , Ġimg Url : ĠString ?) Ġ{ ĊĠĠĠ Ġimg Url ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimg Uri Ġ= Ġimg Url . to Uri (). build Up on (). scheme (" https "). build () ĊĠĠĠĠĠĠĠ ĠG lide . with ( img View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( img Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( img View ) ĊĠĠĠ Ġ} Ċ }