package Ġcom . github . di abet es assistant . dos age . presentation Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . widget . do On TextChanged Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . github . di abet es assistant . R Ċ import Ġcom . github . di abet es assistant . databinding . Activity Calculate Dos age Binding Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ Ċ class ĠCalculate Dos age Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcalculate Dos age ViewModel : ĠCalculate Dos age ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Calculate Dos age Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity Calculate Dos age Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠ Ġcalculate Dos age ViewModel Ġ= ĠViewModel Provider ( this ). get ( Calculate Dos age ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age G lu co se Level ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On TextChanged ( this :: set G lu co se Level State ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Amount Car bo hy dr ates ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On TextChanged ( this :: set Amount Car bo hy dr ates State ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Submit Button . setOnClickListener ( this :: handle Submit ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Clear . setOnClickListener ( this :: handle Clear ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Save . setOnClickListener ( this :: handle Save ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Result Description . setText ("") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO Ġw ann Ġim mer Ġdie ĠPatient : in Ġne ue ĠW erte Ġe ing ibt Ġmuss Ġder ĠWert ĠfÃ¼r Ġdie Ġemp fo h lene ĠIns ul ind osis Ġz un Ã¤ch st ĊĠĠĠ Ġ// ĠTODO Ġge l Ã¶sch t Ġwerden Ġund Ġdar f Ġer st Ġnach ĠBet Ã¤t igung Ġdes ĠSubmit - Buttons Ġw ieder Ġne u Ġbere ch net Ġ ers che inen ĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprivate Ġfun Ġhandle Submit ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġerror Snackbar Ġ= ĠSn ackbar . make ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Container , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ LONG ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ// ĠUm Ġden Ġsn ackbar Ġob en Ġin Ġder ĠActivity Ġdar z ust ellen : ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// stackoverflow . com / questions / 3 1 7 4 6 3 0 0 / how - to - show - sn ackbar - at - top - of - the - screen ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġerror Snackbar . view . layout Params Ġas ĠFrame Layout . LayoutParams ĊĠĠĠĠĠĠĠ Ġparams . gravity Ġ= ĠGr avity . TOP ĊĠĠĠĠĠĠĠ Ġerror Snackbar . view . layout Params Ġ= Ġparams ĊĊĠĠĠĠĠĠĠ Ġif Ġ( calculate Dos age ViewModel . is Invalid ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// stackoverflow . com / questions / 4 4 8 7 1 4 8 1 / how - to - access - values - from - strings - xml ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Snackbar . setText ( getString ( R . string . calculate _ dos age _ invalid _ input )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror Snackbar . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( calculate Dos age ViewModel . is G lu co se Level Too High ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAm Ġbest en Ġist Ġes , Ġbei Ġzu Ġho hen Ġoder Ġzu Ġn ied rig en ĠBl ut zu cker w erten ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnicht Ġeine Ġsn ackbar Ġein z ub l enden , Ġson der n Ġeine Ġne ue ĠActivity Ġauf z ur ufen , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġeine Ġsn ackbar Ġw Ã¤ re Ġzu Ġw en ig Ġe ind ru ck sv oll ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent : ĠIntent ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent Ġ= ĠIntent ( application Context , ĠWarning Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" error Type ", Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( calculate Dos age ViewModel . is G lu co se Level Too Low ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent : ĠIntent ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent Ġ= ĠIntent ( application Context , ĠWarning Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" error Type ", Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠH ier Ġwird Ġdie ĠBere chn ung Ġder ĠIns ul ind osis Ġinit ii ert , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdie ĠBere chn ung Ġsel ber Ġfin det Ġim ĠViewModel Ġst att ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalculate Dos age ViewModel . calculate Ins ul in Dos age () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( calculate Dos age ViewModel . ins ul in Dos age Recommended . value . toString (). toInt () Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWenn Ġdie ĠBere chn ung Ġr icht ig Ġver la ufen Ġist , Ġdann ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠkÃ¶nn te Ġman Ġin Ġdie ĠShow Calculation Result Activity Ġwe ch se ln ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠstartActivity ( Intent ( this , ĠShow Calculation Result :: class . java )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAltern ativ : ĠAl les Ġwe itere Ġin Ġdieser ĠActivity Ġver an lass en ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Result ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . calculate Dos age ViewModel . ins ul in Dos age Recommended . value Ġ+ Ġ" ĠIE " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Result Description . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . calculate _ dos age _ result _ description ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Calculate Dos age Clear : ĠView Ġ= Ġbinding . calculate Dos age Clear ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Calculate Dos age Clear . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Calculate Dos age Save : ĠView Ġ= Ġbinding . calculate Dos age Save ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Calculate Dos age Save . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Snackbar . setText ( getString ( R . string . calculate _ dos age _ no _ ins ul in _ recommended )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Snackbar . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprivate Ġfun Ġhandle Clear ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . calculate Dos age ViewModel . clear ViewModel () ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age G lu co se Level . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalculate Dos age ViewModel . glu co se Level . value . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Amount Car bo hy dr ates . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalculate Dos age ViewModel . car bo hyd rate Amount . value . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbinding . calculate Dos age Result . setText ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalculate Dos age ViewModel . ins ul in Dos age Recommended . value . toString () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġview Calculate Dos age Clear : ĠView Ġ= Ġbinding . calculate Dos age Clear ĊĠĠĠĠĠĠĠ Ġview Calculate Dos age Clear . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠ Ġval Ġview Calculate Dos age Save : ĠView Ġ= Ġbinding . calculate Dos age Save ĊĠĠĠĠĠĠĠ Ġview Calculate Dos age Save . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTODO Ġ!! ĠH ier Ġwe iter mach en , Ġdie Ġe inge geben en / Ġer rech net en ĠDB Entries Ġj ew e ils Ġan Ġdas Ġent sp re chen de ĊĠĠĠĠ Ġ* ĠTODO ĠArrayList Ġan fÃ¼ gen Ġund Ġdiese Ġdann Ġin Ġder ĠShow Di ary Activity Ġs icht bar Ġmach en . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprivate Ġfun Ġhandle Save ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠDe aktiv iert Ġwe gen Ġstatic _ code _ check - Warn ung ĊĠĠĠĠĠĠĠ Ġval Ġcurrent DateTime : ĠLocalDateTime Ġ= ĠLocalDateTime . now () ĊĠĠĠĠĠĠĠ Ġvar Ġgl u co se Level DB Entry : ĠG lu co se Level DB Entry Ġ= ĠG lu co se Level DB Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ġcurrent DateTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . calculate Dos age ViewModel . glu co se Level . value . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġvar Ġins ul in Dos age DB Entry : ĠIns ul in Dos age DB Entry Ġ= ĠIns ul in Dos age DB Entry ( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 , Ġcurrent DateTime , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . calculate Dos age ViewModel . ins ul in Dos age Recommended . value . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġthis . calculate Dos age ViewModel . clear ViewModel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprivate Ġfun Ġset G lu co se Level State ( chars : ĠCharSequence ?, Ġa : ĠInt , Ġb : ĠInt , Ġc : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . calculate Dos age ViewModel . glu co se Level . value Ġ= Ġchars . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" UNUSED _ PARAMETER ") ĊĠĠĠ Ġprivate Ġfun Ġset Amount Car bo hy dr ates State ( chars : ĠCharSequence ?, Ġa : ĠInt , Ġb : ĠInt , Ġc : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . calculate Dos age ViewModel . car bo hyd rate Amount . value Ġ= Ġchars . toString () ĊĠĠĠ Ġ} Ċ } Ċ