/* Ċ Ġ* ĠD aha eng ĠÂ© Ġ 2 0 2 2 ĠJ i ĠS ung bin , Ġ 2 1 0 2 0 2 . Ġall Ġrights Ġreserved . Ċ Ġ* ĠD aha eng Ġlicense Ġis Ġunder Ġthe ĠMIT . Ċ Ġ* Ċ Ġ* Ġ[ Modify Schedule Activity . kt ] Ġcreated Ġby Ġ 2 1 0 2 0 2 Ċ Ġ* Ċ Ġ* ĠPlease Ġsee : Ġhttps :// github . com / da ha eng / da ha eng - android / blob / main / LICENSE . Ċ Ġ*/ Ċ Ċ package Ġteam . da ha eng . android . activity . modify schedule ĊĊ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Array Adapter Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . core . util . Pair Ċ import Ġcom . google . android . material . datepicker . Material DatePicker Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġteam . da ha eng . android . R Ċ import Ġteam . da ha eng . android . activity . base . Base Activity Ċ import Ġteam . da ha eng . android . databinding . Activity Modify Schedule Binding Ċ import Ġteam . da ha eng . android . domain . community . model . schedule . Schedule Ċ import Ġteam . da ha eng . android . domain . community . model . travel . Course List Ċ import Ġteam . da ha eng . android . domain . community . model . travel . Period Ċ import Ġteam . da ha eng . android . domain . community . model . travel . Theme Ċ import Ġteam . da ha eng . android . domain . community . model . travel . Travel Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ @ Android EntryPoint Ċ class ĠModify Schedule Activity Ġ: ĠBase Activity < Activity Modify Schedule Binding , ĠModify Schedule ViewModel >( ĊĠĠĠ ĠR . layout . activity _ modify _ schedule Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġvm : ĠModify Schedule ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding . schedule Ġ= Ġintent . get Serializable Extra (" modify schedule ") Ġas ĠSchedule ĊĠĠĠĠĠĠĠ Ġval Ġschedule Ġ= Ġbinding . schedule ĊĠĠĠĠĠĠĠ Ġvar Ġchange Course List Ġ= ĠCourse List () ĊĠĠĠĠĠĠĠ Ġbinding . period Ġ= Ġschedule !!. travel . total Period ĊĊĠĠĠĠĠĠĠ Ġbinding . sn Theme . adapter Ġ= ĠArray Adapter . createFrom Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . array . modify _ schedule _ theme _ array , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ dropdown _ item _ 1 line ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġstart For Result Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregister For Activity Result ( Activity Result Contracts . Start Activity For Result ()) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . result Code Ġ== ĠActivity . RESULT _ OK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġresult . data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Course List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( intent !!. get Serializable Extra (" modify course list result ") Ġas ĠCourse List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . rv Modify Schedule . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Item View Cache Size ( 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠModify Schedule Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Edit Click Ġ= Ġ{ Ġ_, Ġcourse List Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠModify Course Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra (" modify course list ", Ġcourse List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart For Result . launch ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse List . courses Ġ= Ġchange Course List . courses ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsubmit List ( schedule . travel . course Lists ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . sn Theme . adapter Ġ= ĠArray Adapter . createFrom Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . array . modify _ schedule _ theme _ array , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . layout . simple _ dropdown _ item _ 1 line ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġbinding . sn Theme . setSelection ( get Theme Position ( schedule . travel . theme . value )) ĊĠĠĠĠĠĠĠ Ġbinding . tv Total period select . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow DatePicker () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . btn Complete . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschedule . title Ġ= Ġbinding . et Title . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschedule . travel Ġ= ĠTr avel ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtheme Ġ= ĠTheme ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sn Theme . selected Item . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommon Address Ġ= Ġbinding . et Common address . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Period Ġ= Ġbinding . period Ġas ĠPeriod , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtotal Price Ġ= Ġbinding . et Total price . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Lists Ġ= Ġ( binding . rv Modify Schedule . adapter Ġas ĠModify Schedule Adapter ). current List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTodo Ġ: Ġchange Ġschedule Ġin Ġfire store ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ Ġvm . change Schedule ( schedule ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Theme Position ( theme : ĠString ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" íİ ľ ìħĺ " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ì º ł íķ ĳ " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ìĬ¤ íı¬ ì¸ ł " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" íŀ Ĳ ë§ģ " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ë°Ķ ëĭ¤ " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ìĤ° " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ìĿĮ ìĭĿ " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ëªħ ìĨĮ " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow DatePicker () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate Range Picker Ġ= ĠMaterial DatePicker . Builder . date Range Picker (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle Text (" ê¸° ê°Ħ ìĿĦ ĠìĦłíĥĿ íķĺ ìĦ¸ìļĶ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Selection ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPair ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial DatePicker . this Month In Utc Milliseconds (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMaterial DatePicker . today In Utc Milliseconds () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠ Ġdate Range Picker . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( support FragmentManager , Ġ" date _ picker ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Negative Button ClickListener Ġ{ Ġdate Range Picker . dismiss () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd On Positive Button ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠstartDate Ġ= ĠSimpleDateFormat (" yyyy MM dd ", ĠLocale . getDefault ()). format ( it . first ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠendDate Ġ= ĠSimpleDateFormat (" yyyy MM dd ", ĠLocale . getDefault ()). format ( it . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . period Ġ= ĠPeriod ( endDate . to Long (), ĠstartDate . to Long ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }