package Ġcom . ero om . er oo ja . feature . join Other List . join Todo List Page Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . databinding . Observable Field Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . ero om . calendar . Air Calendar DatePicker Activity Ċ import Ġcom . ero om . calendar . core . Air Calendar Intent Ċ import Ġcom . ero om . domain . global const . Consts Ċ import Ġcom . ero om . domain . utils . ProgressBar Animation Ċ import Ġcom . ero om . domain . utils . to Local DateFormat Ċ import Ġcom . ero om . domain . utils . toast Short Ċ import Ġcom . ero om . er oo ja . R Ċ import Ġcom . ero om . er oo ja . databinding . Activity Join Other List Binding Ċ import Ġcom . ero om . er oo ja . dialog . E ro o ja Dialog Activity Ċ import Ġcom . ero om . er oo ja . feature . add Direct List . add My Todo List Frame .* Ċ import Ġcom . ero om . er oo ja . feature . add Direct List . inactive job . Inactive Job Fragment Ċ import Ġcom . ero om . er oo ja . feature . add Goal . new Goal Frame . New Goal Finish Activity Ċ import Ġcom . ero om . er oo ja . feature . join Other List . join Todo List Frame . Join Goal Period Fragment Ċ import Ġcom . ero om . er oo ja . feature . join Other List . join Todo List Frame . Join Todo List Fragment Ċ import Ġcom . ero om . er oo ja . singleton . UserInfo Ċ import Ġorg . k oin . android . ext . android . get Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class ĠJoin Other List Activity Ġ: ĠAppCompatActivity (), ĠJoin Other List Contract . View Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠREQUEST _ CODE Ġ= Ġ 3 0 0 0 ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnew Goal Binding : ĠActivity Join Other List Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠJoin Other List Presenter ĊĊĠĠĠ Ġprivate Ġval Ġm Fragment List Ġ= ĠArrayList < Fragment >() ĊĠĠĠ Ġprivate Ġvar Ġm Page Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġnext Clickable : ĠObservable Field < Boolean > Ġ= ĠObservable Field ( true ) ĊĊĠĠĠ Ġprivate Ġvar ĠstartDate : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar ĠendDate Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġadditional Goal List Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġgoal Title Text Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġgoal Detail Content Text : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġgoal Date : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġgoal Id : ĠLong Ġ= Ġ 0 L ĊĠĠĠ Ġprivate Ġvar Ġuser Uid : ĠString Ġ= Ġ"" ĊĠĠĠ Ġvar Ġuser Todo List : ĠArrayList < String > Ġ= ĠArrayList () ĊĠĠĠ Ġvar ĠisActive : ĠObservable Field < Boolean > Ġ= ĠObservable Field ( false ) ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Presenter () ĊĠĠĠĠĠĠĠ ĠsetUp Data Binding () ĊĠĠĠĠĠĠĠ Ġinit Fragment () ĊĠĠĠĠĠĠĠ Ġobserve Data () ĊĠĠĠĠĠĠĠ ĠsetDefault Period () ĊĠĠĠĠĠĠĠ Ġjoin Todo List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġjoin Todo List () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġcase Ġ 1 : Ġê¸° ê°Ħ Ġê³ł ìłķ , Ġëĭ¤ë¥¸ ĠìĤ¬ ëŀ Į ìĿĺ Ġë¦¬ ìĬ¤íĬ¸ ë¥¼ Ġì¶Ķê°Ģ íķĺëĬĶ Ġê²½ìļ° ĊĠĠĠĠĠĠĠ Ġwhen Ġ( m Page ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Goal Date Ġ= Ġgoal Date !!. split (" ~ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Goal Date 1 Ġ= Ġend Goal Date [ 1 ]. split (".") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠendDate Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġto Local DateFormat (" 2 0 " Ġ+ Ġend Goal Date 1 [ 0 ], Ġend Goal Date 1 [ 1 ], Ġend Goal Date 1 [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment List [ 3 ]. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Consts . END _ DATE , Ġend Goal Date [ 1 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// case Ġ 2 : Ġê¸° ê°Ħ ĠìĦ¤ìłķ Ġê°ĢëĬ¥ , Ġëĭ¤ë¥¸ ĠìĤ¬ ëŀ Į ìĿĺ Ġë¦¬ ìĬ¤íĬ¸ ë¥¼ Ġì¶Ķê°Ģ íķĺëĬĶ Ġê²½ìļ° ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġinit Presenter () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠJoin Other List Presenter ( this , Ġget ()) ĊĠĠĠĠĠĠĠ Ġintent . getString ArrayList Extra ( Consts . USER _ TODO _ LIST )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Todo List Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Todo : ĠGoal Detail Activity ìĹĲìĦľ Ġëĭ ´ ìĿĢ Ġëį°ìĿ´íĦ°ë¥¼ Ġë°Ľ ìĿĮ ĊĠĠĠĠĠĠĠ Ġgoal Id Ġ= Ġintent . getLong Extra ( Consts . GO AL _ ID , Ġ- 1 L ) ĊĠĠĠĠĠĠĠ Ġgoal Title Text Ġ= Ġintent . getString Extra ( Consts . GO AL _ TITLE ) ĊĠĠĠĠĠĠĠ Ġgoal Detail Content Text Ġ= Ġintent . getString Extra ( Consts . DESCRIPTION ) ĊĠĠĠĠĠĠĠ Ġgoal Date Ġ= Ġintent . getString Extra ( Consts . DATE ) ĊĠĠĠĠĠĠĠ Ġuser Uid Ġ= Ġintent . getString Extra ( Consts . UID ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! goal Date . equals (" ê¸° ê°Ħ ĠìĦ¤ìłķ ĠìŀĲ ìľł ")) Ġm Page Ġ= Ġ 4 ĊĠĠĠĠĠĠĠ Ġelse Ġm Page Ġ= Ġ 3 ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠsetDefault Period () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtoday : ĠCalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġtoday . time In Millis Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ ĠstartDate Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" Ġ+ Ġtoday . get ( Calendar . YEAR ) Ġ+ Ġ" ëħĦ Ġ" Ġ+ Ġ( today . get ( Calendar . MONTH ) Ġ+ Ġ 1 ) Ġ+ Ġ" ìĽĶ Ġ" Ġ+ Ġtoday . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCalendar . DAY _ OF _ MONTH ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ+ Ġ" ìĿ¼ " ĊĠĠĠĠĠĠĠ Ġ// 2 0 2 0 - 0 5 - 2 5 T 0 0 : 0 0 : 0 0 ĊĠĠĠĠĠĠĠ ĠendDate Ġ= Ġto Local DateFormat ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoday . get ( Calendar . YEAR ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( today . get ( Calendar . MONTH ) Ġ+ Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoday . get ( Calendar . DAY _ OF _ MONTH ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetUp Data Binding () Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Goal Binding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ join _ other _ list ) ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . activity Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( m Fragment List [ 4 ] Ġas ĠJoin Todo List Fragment ). goal List . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Todo List Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Clickable . set (! it . isNull OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠisActive . set ( it . size Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ( m Fragment List [ 4 ] Ġas ĠJoin Todo List Fragment ). goal List Check . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Clickable . set ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ( m Fragment List [ 4 ] Ġas ĠJoin Todo List Fragment ). writing Text . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Goal List Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Fragment List . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd All ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn active Job Fragment . newInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoal Id ?. let Ġ{ Ġput Long ( Consts . GO AL _ ID , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Consts . JOIN _ OTHER _ LIST , ĠConst s . JOIN _ OTHER _ LIST ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn active Goal Title Fragment . newInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Consts . GO AL _ TITLE , Ġgoal Title Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIn active Goal Detail Fragment . newInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( Consts . DESCRIPTION , Ġgoal Detail Content Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJoin Goal Period Fragment . newInstance (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJoin Todo List Fragment . newInstance (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ArrayList ( Consts . USER _ TODO _ LIST , Ġuser Todo List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! goal Date . equals (" ê¸° ê°Ħ ĠìĦ¤ìłķ ĠìŀĲ ìľł ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Fragment List [ 3 ] Ġ= ĠIn active Goal Period Fragment . newInstance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Fragment List . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( it . size ) Ġ{ Ġindex Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). add ( R . id . new Goal Frame , Ġit [ index ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. hide ( it [ index ]). commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). show ( it [ m Page ]). commit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Clickable . set ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset ProgressBar ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġhide Fragment () ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . next TextView . text Ġ= Ġif Ġ( m Page Ġ== Ġ 4 ) Ġ" ìĻ Ħ ë£Į " Ġelse Ġ" ëĭ¤ ìĿĮ " ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). show ( m Fragment List [ m Page ]). commit () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Fragment () Ġ= Ġrepeat ( m Fragment List . size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager . beginTransaction (). hide ( m Fragment List [ it ]). commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset ProgressBar ( isIn creasing : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠprogressBar Ġ= Ġnew Goal Binding . horizontal ProgressBar ĊĠĠĠĠĠĠĠ Ġval Ġprev Ġ= Ġif Ġ( isIn creasing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( progress Bar . max . toDouble () Ġ/ Ġm Fragment List . size ) Ġ* Ġ( m Page ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( progress Bar . max . toDouble () Ġ/ Ġm Fragment List . size ) Ġ* Ġ( m Page Ġ+ Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġnext Ġ= Ġ( 1 0 0 . 0 Ġ/ Ġm Fragment List . size ) Ġ* Ġ( m Page Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġanim Ġ= ĠProgress Bar Animation ( progress Bar , Ġprev . toFloat (), Ġnext . toFloat ()) ĊĠĠĠĠĠĠĠ Ġanim . duration Ġ= Ġ 2 5 0 ĊĠĠĠĠĠĠĠ ĠprogressBar . start Animation ( anim ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprev Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ ĠisActive . set ( true ) ĊĠĠĠĠĠĠĠ Ġhide Key Board () ĊĠĠĠĠĠĠĠ Ġm Page Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠ Ġif Ġ( m Page Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Alert () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġnext Clickable . set ( true ) ĊĠĠĠĠĠĠĠ Ġset ProgressBar ( false ) ĊĠĠĠĠĠĠĠ Ġshow Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Alert () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// íķ´ ëĭ¹ Ġë¦¬ ìĬ¤íĬ¸ ìĹĲ Ġì°¸ ìĹ¬ íķĺê¸° ë¥¼ Ġê·¸ ë§Į ëĳĲ ìĭľ ê²ł ìĸ´ ìļĶ ? ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠE ro o ja Dialog Activity :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Consts . DIALOG _ TITLE , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConst s . DIALOG _ CONTENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" íķ´ ëĭ¹ Ġë¦¬ ìĬ¤íĬ¸ ìĹĲ Ġì°¸ ìĹ¬ íķĺê¸° ë¥¼ Ġê·¸ ë§Į ëĳĲ ìĭľ ê²ł ìĸ´ ìļĶ ?" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Consts . DIALOG _ CONFIRM , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Consts . DIALOG _ CANCEL , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 3 0 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġnext Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠ ĠisActive . get ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Key Board () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Ġ+= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Ġ> Ġm Fragment List . size Ġ- Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnetwork Request () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Page Ġ== Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisActive . set ( user Todo List . size Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Clickable . set ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ProgressBar ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġnetwork Request () Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Block Animation () ĊĠĠĠĠĠĠĠ Ġif Ġ( additional Goal List . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . add My Goal ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgoal Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Uid , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠendDate , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Todo List . apply Ġ{ Ġadd ( additional Goal List ) Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . add My Goal ( goal Id , Ġuser Uid , ĠendDate , Ġuser Todo List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġprev Button Clicked () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcalendar Call () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠAir Calendar Intent ( this ) ĊĠĠĠĠĠĠĠ Ġintent . is Booking ( false ) ĊĠĠĠĠĠĠĠ Ġintent . is Select ( false ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtoday : ĠCalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġtoday . time In Millis Ġ= ĠSystem . currentTimeMillis () ĊĠĠĠĠĠĠĠ Ġintent . set StartDate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoday . get ( Calendar . YEAR ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoday . get ( Calendar . MONTH ) Ġ+ Ġ 1 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoday . get ( Calendar . DAY _ OF _ MONTH ) ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġintent . is Month Labels ( false ) ĊĠĠĠĠĠĠĠ Ġintent . set Select ButtonText (" ìĦł íĥĿ ") Ġ// the Ġselect Ġbutton Ġtext ĊĠĠĠĠĠĠĠ Ġintent . set Week Start ( Calendar . MON DAY ) ĊĠĠĠĠĠĠĠ Ġintent . set Week Days Language ( Air Calendar Intent . Language . KO ) Ġ// language Ġfor Ġthe Ġweek days ĊĠĠĠĠĠĠĠ ĠstartActivity For Result ( intent , ĠREQUEST _ CODE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠĠĠĠĠ Ġif Ġ( result Code Ġ== ĠActivity . RESULT _ OK Ġ&& Ġrequest Code Ġ== ĠREQUEST _ CODE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( data Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠendDate Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata . getString Extra ( Air Calendar DatePicker Activity . RESULT _ SELECT _ END _ DATE ) Ġ?: Ġ"-" ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( endDate Ġ!= Ġ"- ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠendDate . split ("- ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Fragment List [ 3 ] Ġas ĠJoin Goal Period Fragment ). set EndDate ("${ time [ 0 ]} ëħĦ Ġ${ time [ 1 ]} ìĽĶ Ġ${ time [ 2 ]} ìĿ¼ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . endDate Ġ= Ġto Local DateFormat ( time [ 0 ], Ġtime [ 1 ], Ġtime [ 2 ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( request Code Ġ== Ġ 1 3 0 0 Ġ&& ĠresultCode Ġ== Ġ 6 0 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġit . getBoolean Extra ( Consts . DIALOG _ RESULT , Ġfalse ) Ġ// íĻ ķ ìĿ¸ Ġor Ġì · ¨ ìĨĮ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġredirect New Goal Finish ( result Id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠNew Goal Finish Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Consts . GO AL _ TITLE , Ġgoal Title Text ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Consts . ADD _ NEW _ GO AL _ RESULT _ ID , Ġresult Id ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra ( Consts . UID , ĠUserInfo . my U Id ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish Affinity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Keyboard ( input : ĠEditText ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġget System Service ( INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm . show Soft Input ( input , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Key Board () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm . hide Soft Input From Window ( this . current Focus ?. window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfail Request () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Page Ġ-= Ġ 1 ĊĠĠĠĠĠĠĠ Ġthis . toast Short (" ëª© íĳľ ìĥĿ ìĦ± ìĿĦ Ġìĭ¤ íĮ ¨ íķĺ ìĺ Ģ ìĬµëĭĪëĭ¤ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Block Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . color Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . block View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . white Loading . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . color Loading . cancel Animation () ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . white Loading . play Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . block View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . white Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . color Loading . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . white Loading . cancel Animation () ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . color Loading . play Animation () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Animation () Ġ{ ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . block View . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . white Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . color Loading . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . white Loading . cancel Animation () ĊĠĠĠĠĠĠĠ Ġnew Goal Binding . color Loading . cancel Animation () ĊĠĠĠ Ġ} Ċ }