/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠI ce Rock ĠMAG ĠInc . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġdev . icer ock . mo ko . widgets . screen Ċ Ċ import Ġdev . icer ock . mo ko . graphics . Color Ċ import Ġdev . icer ock . mo ko . mv vm . dispatcher . Events Dispatcher Ċ import Ġdev . icer ock . mo ko . mv vm . view model . ViewModel Ċ import Ġdev . icer ock . mo ko . parcel ize . Parcelable Ċ Ċ expect Ġabstract Ġclass ĠScreen < Arg Ġ: ĠArgs >() Ġ{ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠVM Ġ: ĠViewModel , ĠKey Ġ: ĠAny > Ġget ViewModel ( key : ĠKey , Ġcross inline ĠviewModel Factory : Ġ() Ġ-> ĠVM ): ĠVM ĊĊĠĠĠ Ġfun Ġ< T Ġ: ĠAny > Ġcreate Events Dispatcher (): ĠEvents Dispatcher < T > ĊĊĠĠĠ Ġopen Ġfun Ġon View Created () ĊĊĠĠĠ Ġopen Ġval Ġandroid StatusBar Color : ĠColor ? ĊĠĠĠ Ġopen Ġval Ġis Light StatusBar : ĠBoolean ? Ċ } Ċ Ċ inline Ġfun Ġ< Arg Ġ: ĠArgs , Ġre ified ĠVM Ġ: ĠViewModel > ĠScreen < Arg >. get ViewModel ( cross inline ĠviewModel Factory : Ġ() Ġ-> ĠVM ): ĠVM Ġ{ ĊĠĠĠ Ġreturn Ġget ViewModel ( Unit , ĠviewModel Factory ) Ċ } Ċ Ċ expect Ġfun Ġ< T Ġ: ĠParcel able > ĠScreen < Args . Parcel < T >> . get Argument (): ĠT Ċ