package Ġcom . hz l gr n . p dx rail . data . repository Ċ Ċ import Ġcom . google . android . gms . maps . model . Bitmap Descriptor Factory Ċ import Ġcom . google . android . gms . maps . model . LatLng Ċ import Ġcom . google . android . gms . maps . model . Marker Options Ċ import Ġcom . hz l gr n . p dx rail . Domain Ċ import Ġcom . hz l gr n . p dx rail . R Ċ import Ġcom . hz l gr n . p dx rail . data . repository . view model . Arrival Item ViewModel Ċ import Ġcom . hz l gr n . p dx rail . data . room . dao . Arrival Dao Ċ import Ġkotlinx . coroutines . flow . Flow Ċ import Ġkotlinx . coroutines . flow . map Ċ Ċ class ĠAr rival Repository ( private Ġval Ġdao : ĠAr rival Dao ) Ġ{ ĊĊĠĠĠ Ġfun Ġar rival Items ViewModel ( list Loc Id : ĠList < Long >): ĠFlow < List < Arrival Item ViewModel >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdao . arrival Items For ( list Loc Id ). map Ġ{ Ġlist Arrival Item Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Arrival Item . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġar rival Lat Ġ= Ġit . block Position . first OrNull ()?. lat Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġar rival Lon Ġ= Ġit . block Position . first OrNull ()?. lng Ġ?: Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġar rival Position Ġ= ĠLat Lng ( arrival Lat , arrival Lon ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAr rival Item ViewModel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Short Sign Ġ= Ġ( it . short Sign Ġ?: Ġ""). remove Prefix ( Domain . R ail System . PREFIX _ PORT LAND _ STRE ET CAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscheduled Ġ= Ġit . scheduled , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġestimated Ġ= Ġit . estimated , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Arrival Marker Ġ= Ġdrawable From Short Sign ( it . short Sign ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdrawable Rotation Ġ= Ġit . block Position . first OrNull ()?. heading ?. toFloat () Ġ?: Ġ 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlat lng Ġ= Ġar rival Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġar rival Markers ViewModel ( list Loc Id : ĠList < Long >): ĠFlow < List < Marker Options >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdao . arrival Markers For ( list Loc Id ). map Ġ{ Ġlist Ar ri vals Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Ar ri vals . filter Ġ{ Ġit . block Position . isNotEmpty () Ġ}. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblock Position Ġ= Ġit . block Position . first OrNull () !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMarker Options () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. flat ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. icon ( Bitmap Descriptor Factory . from Resource ( drawable From Short Sign ( it . short Sign ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. anchor ( 0 . 5 f , 0 . 5 f ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. position ( LatLng ( block Position . lat , block Position . lng )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. rotation ( block Position . heading . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. visible ( block Position . lat Ġ!= Ġ 0 . 0 Ġ&& Ġblock Position . lng Ġ!= Ġ 0 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdrawable From Short Sign ( short Sign : ĠString ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshort Sign Ġ== Ġnull Ġ-> ĠR . drawable . marker _ max _ arrival ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is Blue ( short Sign ) Ġ-> ĠR . drawable . marker _ max _ arrival _ blue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is Green ( short Sign ) Ġ-> ĠR . drawable . marker _ max _ arrival _ green ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is Orange ( short Sign ) Ġ-> ĠR . drawable . marker _ max _ arrival _ orange ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is Red ( short Sign ) Ġ-> ĠR . drawable . marker _ max _ arrival _ red ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is Yellow ( short Sign ) Ġ-> ĠR . drawable . marker _ max _ arrival _ yellow ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is NS Line ( short Sign ) Ġ-> ĠR . drawable . marker _ street car _ ns _ line ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is AL oop ( short Sign ) Ġ-> ĠR . drawable . marker _ street car _ a _ loop ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDomain . R ail System . is B Loop ( short Sign ) Ġ-> ĠR . drawable . marker _ street car _ b _ loop ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠR . drawable . marker _ max _ arrival ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }