package Ġcom . cyber log ite c . fre ight 9 . ui . route select . featured Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . widget . Toast Ċ import Ġcom . cyber log ite c . fre ight 9 . common . Base ViewModel Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . model . Feature d Route Ċ import Ġcom . cyber log ite c . fre ight 9 . lib . rx . Parameter Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . subjects . Publish Subject Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠP referred Route Edit ViewModel ( context : ĠContext ) Ġ: ĠBase ViewModel ( context ), ĠP referred Route Edit Inputs , ĠP referred Route Edit Outputs Ġ{ ĊĠĠĠ Ġval Ġin Put s : ĠP referred Route Edit Inputs Ġ= Ġthis ĊĠĠĠ Ġprivate Ġval Ġload Feature d Route Ġ= ĠPublish Subject . create < Parameter >() ĊĠĠĠ Ġprivate Ġval Ġadd Feature d Route Ġ= ĠPublish Subject . create < Feature d Route >() ĊĠĠĠ Ġprivate Ġval Ġdelete Feature d Route Ġ= ĠPublish Subject . create < Long >() ĊĠĠĠ Ġprivate Ġval Ġupdate Feature d Routes Ġ= ĠPublish Subject . create < List < Feature d Route >>() ĊĠĠĠ Ġval Ġout Put s : ĠP referred Route Edit Outputs Ġ= Ġthis ĊĠĠĠ Ġprivate Ġval Ġfeatured Routes Ġ= ĠPublish Subject . create < List < Feature d Route >>() ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Feature d Route . flatMap Single Ġ{ Ġenv ior ment . featured Route Repository . load Feature d Routes () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. bind To Life Cycle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" route :/ load Ġon Ġpreferred Ġview ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ( featured Routes ) ĊĊĠĠĠĠĠĠĠ Ġadd Feature d Route . bind To Life Cycle (). ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubscribe Ġ{ Ġadd Route -> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenv ior ment . featured Route Repository . load Feature d Routes (). to Observable () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . filter Ġ{ Ġit . from Code Ġ== Ġadd Route . from Code Ġ&& Ġit . to Code Ġ== Ġadd Route . to Code Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . size Ġ> Ġ 0 ) ĠToast . makeText ( context , Ġ" Already Ġcontained Ġroute .. ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġenv ior ment . featured Route Repository . insert Feature d Route ( add Route ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" div er :/ Ġc ot ained Ġroute Ġcnt ="+ it . size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdelete Feature d Route . bind To Life Cycle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenv ior ment . featured Route Repository . delete Route ById ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" delete Ġroute Ġby Ġfavorite ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdate Feature d Routes . bind To Life Cycle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenv ior ment . featured Route Repository . update Feature Routes ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" update Ġroute Ġby Ġfavorite ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun Ġcall Feature d Route ( parameter : ĠParameter ) Ġ= Ġload Feature d Route . onNext ( parameter ) ĊĠĠĠ Ġoverride Ġfun Ġadd Feature Route ( route : ĠFeature d Route ) Ġ= Ġadd Feature d Route . onNext ( route ) ĊĠĠĠ Ġoverride Ġfun Ġdelete Feature d Route ( target _ id : ĠLong ) Ġ= Ġdelete Feature d Route . onNext ( target _ id ) ĊĠĠĠ Ġoverride Ġfun Ġupdate Feature d R to ues ( routes : ĠList < Feature d Route >) Ġ= Ġupdate Feature d Routes . onNext ( routes ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Feature d Routes (): ĠObservable < List < Feature d Route >> Ġ= Ġfeatured Routes Ċ } ĊĊ Ċ interface ĠP referred Route Edit Inputs Ġ{ ĊĠĠĠ Ġfun Ġcall Feature d Route ( parameter : ĠParameter ) ĊĠĠĠ Ġfun Ġadd Feature Route ( route : ĠFeature d Route ) ĊĠĠĠ Ġfun Ġdelete Feature d Route ( target _ id : ĠLong ) ĊĠĠĠ Ġfun Ġupdate Feature d R to ues ( routes : ĠList < Feature d Route >) Ċ } Ċ Ċ interface ĠP referred Route Edit Outputs Ġ{ ĊĠĠĠ Ġfun Ġget Feature d Routes (): ĠObservable < List < Feature d Route >> Ċ }