package Ġcom . rh ino . chron ometer . activities . main . mvp Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġio . reactivex . Flow able Ċ import Ġio . reactivex . Maybe Ċ import Ġio . reactivex . Observable Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAlex ander ĠF ermin Ġ( ale xfer 0 6 @ gmail . com ) Ġon Ġ 1 1 / 2 0 / 1 7 . Ċ Ġ*/ ĊĊ Ċ class ĠMain Contract Ġ{ ĊĠĠĠ Ġinterface ĠModel Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġtimer Observable ( last Time : ĠLong ): ĠFlow able < Long > ĊĠĠĠĠĠĠĠ Ġfun Ġsave Time State ( time : ĠLong ) ĊĠĠĠĠĠĠĠ Ġfun ĠgetTime From Save State (): ĠMaybe < Long >? ĊĠĠĠĠĠĠĠ Ġfun Ġsave Pause State ( pause : ĠBoolean ) ĊĠĠĠĠĠĠĠ Ġfun Ġget Pause From Save State (): ĠMaybe < Boolean >? ĊĠĠĠĠĠĠĠ Ġfun Ġadd Lap ( last Time String : ĠString ) ĊĠĠĠĠĠĠĠ Ġfun Ġget L aps From Save State (): ĠMaybe < ArrayList < String >> ? ĊĠĠĠĠĠĠĠ Ġfun Ġclear Save State () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġadd Spin : ĠObservable < Any > ĊĠĠĠĠĠĠĠ Ġval Ġswitch : ĠObservable < Any > ĊĠĠĠĠĠĠĠ Ġval Ġreset : ĠObservable < Any > ĊĠĠĠĠĠĠĠ Ġfun Ġset Timer ( string : ĠString ) ĊĠĠĠĠĠĠĠ Ġvar Ġvisibility Lap Button : ĠInt ? ĊĠĠĠĠĠĠĠ Ġfun Ġset Timer ( id : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġadd Lap ( text : ĠString ) ĊĠĠĠĠĠĠĠ Ġfun Ġset Content Drawable ( color : ĠInt ) ĊĠĠĠĠĠĠĠ Ġfun Ġinf late Layout ( container : ĠViewGroup ? Ġ= Ġnull ): Ġandroid . view . View ? ĊĠĠĠĠĠĠĠ Ġvar Ġswitch Icon : ĠInt ? ĊĠĠĠĠĠĠĠ Ġfun Ġremove L aps () ĊĠĠĠĠĠĠĠ Ġfun Ġstart Animation Timer () ĊĠĠĠĠĠĠĠ Ġfun Ġclear Animation Timer () ĊĠĠĠĠĠĠĠ Ġfun Ġset L aps ( array : ĠArrayList < String >) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠPres enter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview : ĠView ĊĠĠĠĠĠĠĠ Ġval Ġmodel : ĠModel ĊĠĠĠĠĠĠĠ Ġfun ĠonCreate () ĊĠĠĠĠĠĠĠ Ġfun Ġon Destroy () ĊĠĠĠ Ġ} Ċ }