package Ġcom . fo xe k . simp let imer . presentation . round . dialog Ċ Ċ import Ġandroid . os . Bundle Ċ Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Adapter View Ċ import Ġcom . fo xe k . simp let imer . R Ċ import Ġcom . fo xe k . simp let imer . data . model . Round Ċ import Ġcom . fo xe k . simp let imer . presentation . base . Base Dialog Ċ import Ġcom . fo xe k . simp let imer . presentation . round . Round Contact Ċ import Ġcom . fo xe k . simp let imer . common . utils . Constants Ċ Ċ import Ġjavax . inject . Inject Ċ Ċ import Ġcom . fo xe k . simp let imer . common . utils . Constants . EMPTY Ċ import Ġcom . fo xe k . simp let imer . common . utils . Constants . EXTRA _ INTERVAL _ NAME Ċ import Ġcom . fo xe k . simp let imer . common . utils . Constants . EXTRA _ REST _ TIME Ċ import Ġcom . fo xe k . simp let imer . common . utils . Constants . EXTRA _ TYPE Ċ import Ġcom . fo xe k . simp let imer . common . utils . Constants . EXTRA _ WORK _ TIME Ċ import Ġkotlinx . android . synt hetic . main . dialog _ round .* Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . fo xe k . simp let imer . di . Per Fragment Ċ Ċ class ĠRound Edit Dialog Ġ: ĠBase Dialog () Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠRound Contact . Presenter ĊĊĠĠĠ Ġoverride Ġvar Ġdialog Title Ġ= ĠR . string . dialog _ interval _ setting _ title ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout () Ġ= ĠR . layout . dialog _ round ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġcomponent ?. inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġdialog _ round _ group _ checkbox _ repe ats . isVisible Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Round Type ( it . getInt ( EXTRA _ TYPE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprepare Type Spinner ( it . getInt ( EXTRA _ TYPE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprepare EditText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getString ( EXTRA _ INTERVAL _ NAME ). or Empty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getInt ( EXTRA _ WORK _ TIME ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getInt ( EXTRA _ REST _ TIME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġattach Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog _ round _ checkbox _ name . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Name CheckBox Click ( isChecked ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog _ round _ save _ btn . setOnClickListener Ġ{ Ġon Save Button Click () Ġ} ĊĠĠĠĠĠĠĠ Ġdialog _ round _ delete _ btn . setOnClickListener Ġ{ ĠonDelete Button Click () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare EditText ( round Name : ĠString , Ġwork Interval : ĠInt , Ġrest Interval : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( round Name . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ checkbox _ name . isChecked Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ field _ name . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ field _ name . setText ( round Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog _ round _ field _ work . setValue ( work Interval ) ĊĠĠĠĠĠĠĠ Ġdialog _ round _ field _ rest . setValue ( rest Interval ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Type Spinner ( type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarray Adapter Ġ= ĠArray Adapter . createFrom Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext !! , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . array . type _ list , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . view _ spinner _ selected ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġarray Adapter . set DropDown View Resource ( R . layout . view _ spinner _ drop ) ĊĊĠĠĠĠĠĠĠ Ġdialog _ round _ spinner _ type . adapter Ġ= Ġarray Adapter ĊĠĠĠĠĠĠĠ Ġdialog _ round _ spinner _ type . setSelection ( type ) ĊĊĠĠĠĠĠĠĠ Ġdialog _ round _ spinner _ type . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View < *> ?) Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View < *> ?, Ġview : ĠView ?, Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Round Type ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Name CheckBox Click ( isChecked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ field _ name . setText ( EMPTY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ field _ name . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ field _ name . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Round Type ( type : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . WITH _ REST _ TYPE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ group _ rest . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ group _ work . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . WITHOUT _ REST _ TYPE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ group _ work . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ group _ rest . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Save Button Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġname Ġ= ĠEMPTY ĊĠĠĠĠĠĠĠ Ġval Ġtype Ġ= Ġdialog _ round _ spinner _ type . selected Item Position ĊĠĠĠĠĠĠĠ Ġif Ġ( check NotEmpty ( dialog _ round _ field _ name )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġdialog _ round _ field _ name . text . toString () ĊĊĠĠĠĠĠĠĠ Ġpresenter . on Save Round Btn Click ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ field _ work . getValue (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog _ round _ field _ rest . getValue () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonDelete Button Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠ Ġpresenter . onDelete Round Btn Click () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĊĠĠĠĠĠĠĠ Ġdialog _ round _ field _ repe ats . is Cursor Visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġdialog _ round _ field _ name . is Cursor Visible Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( round : ĠRound ): ĠRound Edit Dialog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠRound Edit Dialog () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . arguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ WORK _ TIME , Ġround . work Interval ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ REST _ TIME , Ġround . rest Interval ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ TYPE , Ġround . type ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( EXTRA _ INTERVAL _ NAME , Ġround . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdialog ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }