package Ġy osh ik ii . com . record _ nut rient s . view Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Dialog Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġy osh ik ii . com . record _ nut rient s . R Ċ import Ġy osh ik ii . com . record _ nut rient s . common . click s Ċ import Ġy osh ik ii . com . record _ nut rient s . databinding . View Dialog Add Me al Binding Ċ import Ġy osh ik ii . com . record _ nut rient s . repository . model . Me al ĊĊĊ Ċ @ Suppress (" DE PREC ATION ") Ċ class ĠUpdate Me al Fragment Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġinterface ĠOn Update Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** Ġ åħ¥åĬĽ æĥħåł± ãĤĴ æ¸ ¡ ãģĻ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun ĠonUpdate ( meal : ĠMe al ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlistener : ĠOn Update Listener ĊĠĠĠ Ġprivate Ġval Ġoriginal Id Ġby Ġlazy Ġ{ Ġarguments ?. getInt ( KEY _ ID ) Ġ?: Ġ 0 Ġ} ĊĠĠĠ Ġprivate Ġval Ġoriginal Time Ġby Ġlazy Ġ{ Ġarguments ?. getString ( KEY _ TIME ) Ġ?: Ġ"" Ġ} ĊĠĠĠ Ġprivate Ġval Ġoriginal Item Ġby Ġlazy Ġ{ Ġarguments ?. getString ( KEY _ ITEM ) Ġ?: Ġ"" Ġ} ĊĠĠĠ Ġprivate Ġval Ġoriginal Amount Ġby Ġlazy Ġ{ Ġarguments ?. getInt ( KEY _ AMOUNT ) Ġ?: Ġ 0 Ġ} ĊĠĠĠ Ġprivate Ġval Ġoriginal N ut rient Ġby Ġlazy Ġ{ Ġarguments ?. getInt ( KEY _ N UT RI ENT ) Ġ?: Ġ 0 Ġ} ĊĠĠĠ Ġprivate Ġval Ġoriginal Memo Ġby Ġlazy Ġ{ Ġarguments ?. getString ( KEY _ ME MO ) Ġ?: Ġ"" Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġ/** Ġ åĳ¼ ãģ³ åĩº ãģĹ åħĥ ãģ® fragment ãģ§ è¨Ńå®ļ ãģĹãģŁ target Fragment Ġ*/ ĊĠĠĠĠĠĠĠ Ġlistener Ġ= Ġtarget Fragment Ġas ĠOn Update Listener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( require Activity ()) ĊĠĠĠĠĠĠĠ Ġval Ġdialog Binding Ġ= ĠData Binding Util . inflate < View Dialog Add Me al Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( require Activity ()), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . view _ dialog _ add _ meal , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdialog Binding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ é£Ł äºĭ ãĥªãĤ¹ãĥĪ ãģ® æĸ° è¦ı è¿½åĬł ãģ® åł´åĲĪ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( original Id Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Picker . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetIs 2 4 Hour View ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhour Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminute Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Hour Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Minute Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ é£Ł äºĭ ãĥªãĤ¹ãĥĪ ãģ® æĽ´æĸ° ãģ® åł´åĲĪ ãĢģ ä¸Ģ è¦§ ãģ« è¡¨ç¤º ãģķãĤĮãģ¦ãģĦãĤĭ åĨħå®¹ ãĤĴ ä¸Ģ æĹ ¦ è¡¨ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Picker . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetIs 2 4 Hour View ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhour Ġ= Ġoriginal Time . split (": ")[ 0 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminute Ġ= Ġoriginal Time . split (": ")[ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Hour Ġ= Ġoriginal Time . split (": ")[ 0 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Minute Ġ= Ġoriginal Time . split (": ")[ 1 ]. toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . setText ( original Item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount . setText ( original Amount . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnut rient . setText ( original N ut rient . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemo . setText ( original Memo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġæ Ļ Ĥ åĪ» åħ¥åĬĽ çĶ¨ ãģ® ãĤ¹ ãĥĶ ãĥĬ ãĥ¼ è¨Ńå®ļ ĊĠĠĠĠĠĠĠ Ġdialog Binding . time Picker . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetIs 2 4 Hour View ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhour Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminute Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Hour Ġ= Ġ 1 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurrent Minute Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġbuilder ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( dialog Binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" è¿½åĬł ") Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" ãĤŃ ãĥ£ ãĥ³ ãĤ» ãĥ« ") Ġ{ Ġ_, Ġ_ Ġ-> Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĊĠĠĠĠĠĠĠ Ġval Ġadd Button Ġ= Ġdialog . get Button ( DialogInterface . BUTTON _ POSITIVE ) ĊĊĠĠĠĠĠĠĠ Ġadd Button . click s Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog Binding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ å¿ħ éł Ī éłħ çĽ® ãģ« åħ¥åĬĽ ãģĮ ãģªãģĦ æĻĤ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item . text . toString (). isEmpty () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount . text . toString (). isEmpty () Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnut rient . text . toString (). isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠãĤ¨ ãĥ© ãĥ¼ãĥĪ ãĥ¼ ãĤ¹ãĥĪ è¡¨ç¤º ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoast Ġ= ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĠgetString ( R . string . add _ meal _ error _ message ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtoast Message Ġ= Ġtoast . view . findViewById < View >( android . R . id . message ) Ġas ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast Message . setTextColor ( resources . getColor ( R . color . color Accent )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( hour , Ġminute ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Picker . hour Ġto ĠString . format ("% 0 2 d ", Ġtime Picker . minute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Picker . current Hour Ġto ĠString . format ("% 0 2 d ", Ġtime Picker . current Minute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãĥĩãĥ¼ãĤ¿ è¿½åĬł ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Update ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMe al ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġoriginal Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Ġ= Ġ"$ hour :$ minute ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem Ġ= Ġitem . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġamount . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnut rient Ġ= Ġnut rient . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmemo Ġ= Ġmemo . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdialog ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ ID Ġ= Ġ" id " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ TIME Ġ= Ġ" original Time " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ ITEM Ġ= Ġ" original Item " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ AMOUNT Ġ= Ġ" original Amount " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ N UT RI ENT Ġ= Ġ" original N ut rient " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠKEY _ ME MO Ġ= Ġ" original Memo " ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġamount : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnut rient : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmemo : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġ): ĠUpdate Me al Fragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠUpdate Me al Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( KEY _ ID , Ġid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( KEY _ TIME , Ġtime ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( KEY _ ITEM , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( KEY _ AMOUNT , Ġamount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( KEY _ N UT RI ENT , Ġnut rient ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( KEY _ ME MO , Ġmemo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTAG Ġ= Ġ" Update Me al Fragment " ĊĠĠĠ Ġ} Ċ }