/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠAr th ur ĠI van ets , Ġar th ur . iv an ets . l @ gmail . com Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . arth ur iv an ets . mv vm Ċ Ċ import Ġcom . arth ur iv an ets . mv vm . events . Command Ċ import Ġcom . arth ur iv an ets . mv vm . events . Route Ċ import Ġcom . arth ur iv an ets . mv vm . events . ViewState Ċ import Ġcom . arth ur iv an ets . mv vm . markers . Can Handle Back Press Events Ċ import Ġcom . arth ur iv an ets . mv vm . markers . Can Manage State Ċ import Ġcom . arth ur iv an ets . mv vm . markers . ViewModel Lifecycle Ċ import Ġcom . arth ur iv an ets . r xb us . Rx Bus Ċ Ċ /** Ċ Ġ* ĠA Ġbase Ġcontract Ġused Ġto Ġimplement Ġthe Ġconcrete Ġversion Ġof Ġthe ĠView ĠModel . Ċ Ġ*/ Ċ interface ĠBase ViewModel Ġ: ĠViewModel Lifecycle , ĠCan Manage State , ĠCan Handle Back Press Events Ġ{ ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġ[ Rx Bus ] Ġthat Ġthe ĠViewModel Ġemits Ġthe Ġ[ Command ] s Ġthrough . ĊĠĠĠĠ Ġ* Ġ( The Ġactual Ġhandling Ġof Ġthe Ġemitted Ġ[ Command ] s Ġis Ġcompletely Ġup Ġto Ġthe Ġsub scri bing Ġside Ġ( i . e . ĠActivity , ĠFragment , ĠView )) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcommand Bus Ġ: ĠRx Bus < Command <* >> ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġ[ Rx Bus ] Ġthat Ġthe ĠViewModel Ġnot ifies Ġabout Ġ[ ViewState ] Ġchanges Ġthrough . ĊĠĠĠĠ Ġ* Ġ( The Ġactual Ġhandling Ġof Ġthe Ġ[ ViewState ] Ġchanges Ġis Ġcompletely Ġup Ġto Ġthe Ġsub scri bing Ġside Ġ( i . e . ĠActivity , ĠFragment , ĠView )) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġview State Bus Ġ: ĠRx Bus < ViewState <* >> ĊĠĠĠĠĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAn Ġ[ Rx Bus ] Ġthat Ġthe ĠViewModel Ġemits Ġthe Ġ[ Route ] s Ġthrough . ĊĠĠĠĠ Ġ* Ġ( The Ġactual Ġhandling Ġof Ġthe Ġemitted Ġ[ Route ] s Ġis Ġcompletely Ġup Ġto Ġthe Ġsub scri bing Ġside Ġ( i . e . ĠActivity , ĠFragment , ĠView )) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġroute Bus Ġ: ĠRx Bus < Route <* >> ĊĠĠĠĠ Ċ }