package Ġcom . bos cat ov . scheduler cw . view . ui . dialog . new _ task Ċ Ċ import Ġandroid . app . DatePicker Dialog Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . app . Time Picker Dialog Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Handler Ċ import Ġandroid . text . format . DateFormat Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . DatePicker Ċ import Ġandroid . widget . RadioButton Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Time Picker Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . local broadcast manager . content . Local Broadcast Manager Ċ import Ġcom . bos cat ov . scheduler cw . R Ċ import Ġcom . bos cat ov . scheduler cw . data . entity . Task Ċ import Ġcom . bos cat ov . scheduler cw . data . entity . Task Status Ċ import Ġcom . bos cat ov . scheduler cw . view . adapter . color _ choose . Color Choose Adapter Ċ import Ġcom . bos cat ov . scheduler cw . view . ui . dialog . add _ parent . Add Parent Task Dialog Fragment Ċ import Ġcom . bos cat ov . scheduler cw . view . ui . dialog . add _ project . Add Project Dialog Fragment Ċ import Ġcom . bos cat ov . scheduler cw . view . ui . state . New Task Accept State Ċ import Ġcom . bos cat ov . scheduler cw . view . ui . state . State Ċ import Ġcom . bos cat ov . scheduler cw . view . view model . holder . Main ViewModel Ċ import Ġcom . bos cat ov . scheduler cw . view . view model . new _ task . New Task ViewModel Ċ import Ġkotlinx . android . synt hetic . main . dialog _ new _ task .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util . Calendar Ċ import Ġjava . util . TimeZone Ċ Ċ class ĠNew Task Dialog Fragment Ġ: ĠDialog Fragment (), ĠDate Picker Dialog . On Date Set Listener , ĠTime Picker Dialog . On Time Set Listener Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġmain ViewModel : ĠMain ViewModel ĊĠĠĠ Ġlateinit Ġvar Ġnew Task ViewModel : ĠNew Task ViewModel ĊĠĠĠ Ġprivate Ġval Ġreceiver Ġ= ĠAdd Receiver () ĊĠĠĠ Ġprivate Ġvar Ġtask Parent Id : ĠLong Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar ĠprojectId : ĠLong Ġ= Ġ- 1 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . dialog _ new _ task , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( context !! ) ĊĠĠĠĠĠĠĠ Ġbuilder . setView ( activity ?. layout Inflater ?. inflate ( R . layout . dialog _ new _ task , Ġnull )) ĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġmain ViewModel Ġ= Ġactivity ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠViewModel Providers . of ( this ). get ( Main ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠException (" Invalid ĠActivity ") ĊĠĠĠĠĠĠĠ Ġmain ViewModel . state . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange State ( it ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġnew Task ViewModel Ġ= ĠViewModel Providers . of ( this ). get ( New Task ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit Spinner () ĊĠĠĠĠĠĠĠ Ġdialog New Task Allow Auto Time CB . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Deadline Group . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Date Group . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Deadline Group . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Date Group . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog New Task Parent Task TV . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAdd Parent Task Dialog Fragment . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show ( fragment Manager , Ġ" Add Parent Task Dialog Fragment ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog New Task Project TV . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAdd Project Dialog Fragment . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show ( fragment Manager , Ġ" Add Project Dialog Fragment ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġchange State ( state : ĠState ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( state Ġis ĠNew Task Accept State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave New Task () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave New Task () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtask Ġ= Ġget Task () ĊĠĠĠĠĠĠĠ Ġnew Task ViewModel . on Accept New Task ( task ) ĊĠĠĠĠĠĠĠ Ġmain ViewModel . on New Task Complete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Task (): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġdialog New Task Title ET V . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= Ġdialog New Task Description ET V . text . toString () ĊĠĠĠĠĠĠĠ Ġval ĠstartDate Ġ= Ġdialog New Task StartDate TextView . text . toString () ĊĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= Ġdialog New Task StartTime TextView . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġduration Ġ= Ġdialog New Task Duration Spinner . text . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġradio Button Ġ= Ġview ?. findViewById < RadioButton >( dialog New Task Choose Priority RG . checked RadioButton Id ) ĊĠĠĠĠĠĠĠ Ġval Ġpriority Ġ= Ġradio Button ?. text . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġdialog New Task Color Choose Spinner . selected Item Ġas ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġdeadline Date Ġ= Ġdialog New Task Deadline Date TV . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġdeadline Time Ġ= Ġdialog New Task Deadline Time TV . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġparent Task Ġ= Ġif Ġ( task Parent Id Ġ== Ġ- 1 L ) Ġnull Ġelse Ġtask Parent Id ĊĠĠĠĠĠĠĠ Ġval Ġproject Ġ= Ġif Ġ( projectId Ġ== Ġ- 1 L ) Ġnull Ġelse ĠprojectId ĊĊĊĠĠĠĠĠĠĠ Ġif Ġ( dialog New Task Allow Auto Time CB . isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" dd ĠM MMM , Ġy yyy "). parse ( deadline Date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Format Ġ= ĠSimpleDateFormat (" HH : mm "). parse ( deadline Time ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . time Ġ= ĠdateFormat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime . time Ġ= Ġtime Format ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . set ( Calendar . HOUR _ OF _ DAY , Ġtime . get ( Calendar . HOUR _ OF _ DAY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . set ( Calendar . MINUTE , Ġtime . get ( Calendar . MINUTE )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTask ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Title Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Description Ġ= Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Color Ġ= Ġcolor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Duration Ġ= Ġduration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Priority Ġ= Ġpriority , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Dead Line Ġ= Ġdate . time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Status Ġ= ĠTask Status . AB AND ON ED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Parent Id Ġ= Ġparent Task , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask ProjectId Ġ= Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" dd ĠM MMM , Ġy yyy "). parse ( startDate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Format Ġ= ĠSimpleDateFormat (" HH : mm "). parse ( startTime ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . time Ġ= ĠdateFormat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime . time Ġ= Ġtime Format ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . set ( Calendar . HOUR _ OF _ DAY , Ġtime . get ( Calendar . HOUR _ OF _ DAY )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . set ( Calendar . MINUTE , Ġtime . get ( Calendar . MINUTE )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠTask ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Title Ġ= Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Description Ġ= Ġdescription , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Color Ġ= Ġcolor , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Date Start Ġ= Ġdate . time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Duration Ġ= Ġduration , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Priority Ġ= Ġpriority , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Parent Id Ġ= Ġparent Task , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask ProjectId Ġ= Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Spinner () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġc Ġ= ĠCalendar . getInstance ( TimeZone . getDefault ()) ĊĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġc . get ( Calendar . YEAR ) ĊĠĠĠĠĠĠĠ Ġval Ġmonth Ġ= Ġc . get ( Calendar . MONTH ) ĊĠĠĠĠĠĠĠ Ġval Ġday Ġ= Ġc . get ( Calendar . DAY _ OF _ MONTH ) ĊĠĠĠĠĠĠĠ Ġval Ġminute Ġ= Ġc . get ( Calendar . MINUTE ) ĊĠĠĠĠĠĠĠ Ġval Ġhour Ġ= Ġc . get ( Calendar . HOUR _ OF _ DAY ) ĊĠĠĠĠĠĠĠ Ġval Ġcalendar Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" dd ĠM MMM , Ġy yyy ") ĊĠĠĠĠĠĠĠ Ġdialog New Task StartDate TextView . setText ( date Format . format ( calendar . time )) ĊĠĠĠĠĠĠĠ Ġdialog New Task Deadline Date TV . setText ( date Format . format ( calendar . time )) ĊĊĠĠĠĠĠĠĠ Ġdialog New Task StartDate TextView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate Picker Dialog ( activity , Ġthis , Ġyear , Ġmonth , Ġday ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog New Task StartTime TextView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠTime Picker Dialog ( activity , Ġthis , Ġhour , Ġminute , ĠDate Format . is 2 4 Hour Format ( activity )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog New Task Deadline Date TV . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠDate Picker Dialog ( activity , Ġthis , Ġyear , Ġmonth , Ġday ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdate . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdialog New Task Deadline Time TV . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠTime Picker Dialog ( activity , Ġthis , Ġhour , Ġminute , ĠDate Format . is 2 4 Hour Format ( activity )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtime . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtime Format Ġ= ĠSimpleDateFormat (" HH : mm ") ĊĠĠĠĠĠĠĠ Ġdialog New Task StartTime TextView . setText ( time Format . format ( calendar . time )) ĊĠĠĠĠĠĠĠ Ġdialog New Task Deadline Time TV . setText ( time Format . format ( calendar . time )) ĊĊĠĠĠĠĠĠĠ Ġval Ġspinner Adapter Ġ= ĠColor Choose Adapter ( context !! , ĠR . layout . spinner _ color _ choose ) ĊĠĠĠĠĠĠĠ Ġdialog New Task Color Choose Spinner . adapter Ġ= Ġspinner Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Date Set ( view : ĠDate Picker , Ġyear : ĠInt , Ġmonth : ĠInt , Ġday : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" New Task Dialog ", Ġ"$ day .$ month .$ year ") ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġdate . set ( year , Ġmonth , Ġday ) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat (" dd ĠM MMM , Ġy yyy ") ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠÑĥ Ð± ÑĢ Ð°ÑĤÑĮ ĠÑįÑĤÐ¾ ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog New Task Date Group . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task StartDate TextView . setText ( format . format ( date . time )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Deadline Date TV . setText ( format . format ( date . time )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Time Set ( view : ĠTime Picker ?, Ġhour OfDay : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d (" New Task Dialog ", Ġ"$ hour OfDay :$ minute ") ĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= ĠCalendar . getInstance () ĊĠĠĠĠĠĠĠ Ġdate . set ( Calendar . MINUTE , Ġminute ) ĊĠĠĠĠĠĠĠ Ġdate . set ( Calendar . HOUR _ OF _ DAY , Ġhour OfDay ) ĊĠĠĠĠĠĠĠ Ġval Ġformat Ġ= ĠSimpleDateFormat (" HH : mm ") ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠÑĥ Ð± ÑĢ Ð°ÑĤÑĮ ĠÑįÑĤÐ¾ ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog New Task Date Group . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task StartTime TextView . setText ( format . format ( date . time )) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Deadline Time TV . setText ( format . format ( date . time )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġval Ġfilter Ġ= ĠIntent Filter () ĊĠĠĠĠĠĠĠ Ġfilter . addAction (" com . bos cat ov . scheduler cw . add _ project ") ĊĠĠĠĠĠĠĠ Ġfilter . addAction (" com . bos cat ov . scheduler cw . add _ parent _ task ") ĊĠĠĠĠĠĠĠ ĠLocal Broadcast Manager . getInstance ( require Context ()). register Receiver ( receiver , Ġfilter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ ĠLocal Broadcast Manager . getInstance ( require Context ()). unregister Receiver ( receiver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠAdd Receiver Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . action ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . bos cat ov . scheduler cw . add _ project " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġit . getLong Extra (" PROJECT _ ID ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġit . getString Extra (" PROJECT _ NAME ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectId Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Project TV . setText ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . bos cat ov . scheduler cw . add _ parent _ task " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġit . getLong Extra (" TASK _ ID ", Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġit . getString Extra (" TASK _ TITLE ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask Parent Id Ġ= Ġid ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog New Task Parent Task TV . setText ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }