package Ġcom . dit clear . pa onet . view . home . view model Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . databinding . Observable ArrayList Ċ import Ġandroidx . databinding . Observable Boolean Ċ import Ġcom . dit clear . pa onet . helper . ext ens .* Ċ import Ġcom . dit clear . pa onet . model . data . Category Ċ import Ġcom . dit clear . pa onet . model . data . User Ċ import Ġcom . dit clear . pa onet . model . remote . api . P ao Service Ċ import Ġcom . dit clear . pa onet . model . repository . P ao Repository Ċ import Ġcom . dit clear . pa onet . view model . Base ViewModel ĊĊ Ċ /** Ċ Ġ* Ġ é¡µéĿ¢ æııè¿° ï¼ļ Main ViewModel Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġdit clear Ġon Ġ 2 0 1 7 / 1 0 / 2 7 . Ċ Ġ*/ Ċ Ċ class ĠMain ViewModel ( private Ġval Ġrepo : ĠP ao Repository ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġuser Ġ= ĠMutable LiveData < User >(). init ( User ()) ĊĠĠĠ Ġval Ġcategories Ġ= ĠObservable ArrayList < Category Item ViewModel >() ĊĊĠĠĠ Ġval Ġc ate Visible Ġ= ĠMutable LiveData < Boolean >(). init ( false ) ĊĊĠĠĠ Ġval Ġface Ġ= ĠMutable LiveData < String >() ĊĊĠĠĠ Ġvar Ġq ian ming Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġvar Ġnav Header Name Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġvar Ġlogin Btn Text Ġ= ĠMutable LiveData < String >(). init (" LOG ĠIN ") ĊĊĠĠĠ Ġval Ġexit Event Ġ= ĠObservable Boolean ( false ) ĊĊĠĠĠ Ġfun Ġexit () Ġ= Ġexit Event . to Flow able (). async ( 2 0 0 0 ). do On Next Ġ{ Ġexit Event . set ( false ) Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġuser . to Flow able () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Next Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġface . set ( user . get ()?. face ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġq ian ming . set ( user . get ()?. q ian ming ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnav Header Name . set ( user . get ()?. nickname Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Btn Text . set ( if Ġ( user . get ()?. nickname Ġ== Ġnull ) Ġ" LOG ĠIN " Ġelse Ġ" LOG ĠOUT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. subscribe () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// //////////////// bind Ġview //////// ///// ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ ä»£çłģ åĪĨç±» ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Code Categories () Ġ= Ġrepo . getCode Category (). async () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategories . add ( Category Item ViewModel ( Category (" åħ¨éĥ¨ ( All ) "))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategories . addAll ( it . map Ġ{ ĠCategory Item ViewModel ( it ) Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle Category () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvisible Ġ= Ġc ate Visible . get () Ġ?: Ġfalse ĊĠĠĠĠĠĠĠ Ġc ate Visible . set (! visible ) ĊĠĠĠ Ġ} Ċ }