package Ġcom . amb ers un 1 2 3 4 . z odi ac ; Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . DatePicker Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget .* Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class Ġconstant Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdate _ map Ġ= Ġmap Of < Int , ĠInt >( ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġto Ġ 3 1 , Ġ 2 Ġto Ġ 3 0 , Ġ 3 Ġto Ġ 3 1 , Ġ 4 Ġto Ġ 3 0 , Ġ 5 Ġto Ġ 3 1 , Ġ 6 Ġto Ġ 3 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġto Ġ 3 1 , Ġ 8 Ġto Ġ 3 1 , Ġ 9 Ġto Ġ 3 0 , Ġ 1 0 Ġto Ġ 3 1 , Ġ 1 1 Ġto Ġ 3 0 , Ġ 1 2 Ġto Ġ 3 1 ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval ĠP REF _ FILE _ LOCATION Ġ= Ġ" z odi ac " ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġid : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġim : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġinput : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġres : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbtn : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġex : ĠBundle ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġd btn : ĠButton ĊĊĠĠĠ Ġprivate Ġvar Ġname _ arr : ĠArrayList < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġstar _ arr : ĠArrayList < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġdate _ arr : ĠArrayList < String > Ġ= ĠArrayList () ĊĠĠĠ Ġprivate Ġvar Ġimg _ arr : Ġ ĠArrayList < Int > ĠĠĠ Ġ= ĠArrayList () ĊĊĠĠĠ Ġprivate Ġval Ġcal Ġ= ĠCalendar . getInstance () ĊĊĠĠĠ Ġprivate Ġval Ġmy ActionListener Ġ= Ġobject : ĠTextView . On Editor ActionListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Editor Action ( v : ĠTextView ?, Ġaction Id : ĠInt , Ġevent : ĠKeyEvent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ DONE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore Info () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdate Set Listener Ġ= Ġobject : ĠDate Picker Dialog . On Date Set Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Date Set ( view : ĠDate Picker ?, Ġyear : ĠInt , Ġmonth : ĠInt , Ġday OfMonth : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal . set ( Calendar . YEAR , Ġyear ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal . set ( Calendar . MONTH , Ġmonth ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcal . set ( Calendar . DAY _ OF _ MONTH , Ġday OfMonth ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġselected Ġto ĠTextView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid . text Ġ= Ġday OfMonth . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġim . text Ġ= Ġ( month Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* Ġhttps :// stackoverflow . com / a / 4 4 6 7 8 9 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġaccording Ġto Ġdocumentation , Ġmonth Ġstart Ġat Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdate Btn Listener Ġ= Ġobject : ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpref : ĠSharedPreferences Ġ= Ġget SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstant . PRE F _ FILE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate Picker Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ MainActivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate Set Listener , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcal . get ( Calendar . YEAR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . getInt (" month ", Ġcal . get ( Calendar . MONTH )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpref . getInt (" date ", Ġcal . get ( Calendar . DAY _ OF _ MONTH )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmy ClickListener Ġ= Ġobject : ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġit Ġ= ĠIntent ( this @ MainActivity , ĠShow Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . putString ArrayList Extra (" name ", Ġname _ arr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . putString ArrayList Extra (" date ", Ġdate _ arr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . putString ArrayList Extra (" star ", Ġstar _ arr ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . put Integer ArrayList Extra (" img " Ġ, Ġimg _ arr ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( it , Ġ 0 x 1 1 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġid ( m : ĠInt , Ġd : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( m ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 2 Ġ-> Ġreturn Ġif Ġ( d Ġin Ġ 2 2 .. 3 1 ) Ġ 0 Ġ Ġelse Ġ 1 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 1 9 ) Ġ 0 Ġ Ġelse Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 1 8 ) Ġ 1 Ġ Ġelse Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 0 ) Ġ 2 Ġ Ġelse Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 1 9 ) Ġ 3 Ġ Ġelse Ġ 4 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 0 ) Ġ 4 Ġ Ġelse Ġ 5 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 0 ) Ġ 5 Ġ Ġelse Ġ 6 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 2 ) Ġ 6 Ġ Ġelse Ġ 7 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 8 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 2 ) Ġ 7 Ġ Ġelse Ġ 8 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 9 Ġ Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 2 ) Ġ 8 Ġ Ġelse Ġ 9 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 0 Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 2 ) Ġ 9 Ġ Ġelse Ġ 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 1 Ġ-> Ġreturn Ġif Ġ( d Ġin ĠĠ 1 .. 2 1 ) Ġ 1 0 Ġelse Ġ 1 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ", Ġ" Commit Pref Ed its ") ĊĠĠĠ Ġfun Ġstore Info (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġthis . im . text . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġthis . id . text . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġthis . input . text . toString () ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġthis . id ( m , Ġd ) ĊĠĠĠĠĠĠĠ Ġval Ġstar Ġ= Ġresources . getString Array ( R . array . star _ zh )[ res ] ĊĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . base Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" è¼ ¸ åħ¥ å§ĵ åĲį æīį åı¯ æŁ¥ è© ¢ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( date _ check () Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġpref : SharedPreferences Ġ= Ġget SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant . PRE F _ FILE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġed : SharedPreferences . Editor Ġ= Ġpref . edit () ĊĊĠĠĠĠĠĠĠ Ġed . put Int (" month ", Ġm Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġed . put Int (" date ", Ġd ) ĊĠĠĠĠĠĠĠ Ġed . putString (" name ", Ġname ) ĊĠĠĠĠĠĠĠ Ġed . apply () ĊĊĠĠĠĠĠĠĠ Ġthis . res . text Ġ= Ġ" çĶŁ æĹ¥ : Ġ$ m Ġ æľĪ Ġ$ d Ġ æĹ¥ \ n æĺŁ åº§ : Ġ" Ġ+ Ġstar . toString () ĊĊĠĠĠĠĠĠĠ Ġ// Ġadd Ġdata ĊĠĠĠĠĠĠĠ Ġthis . name _ arr . add ( name ) ĊĠĠĠĠĠĠĠ Ġthis . date _ arr . add ("$ m /$ d ") ĊĠĠĠĠĠĠĠ Ġthis . star _ arr . add ( star !! ) ĊĠĠĠĠĠĠĠ Ġthis . img _ arr . add ( res ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdate _ check (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġthis . id . text . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġthis . im . text . toString (). toInt () ĊĠĠĠĠĠĠĠ Ġvar Ġrt Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġif Ġ( d Ġ> Ġconstant . date _ map [ m ] !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . base Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" æĹ¥æľŁ éĮ ¯ èª ¤ !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrt Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrt Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( intent . extras Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . ex Ġ= Ġintent . extras !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġretrieve Ġdata Ġfrom Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name _ arr Ġ= Ġthis . ex . getString ArrayList (" name ") !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . date _ arr Ġ= Ġthis . ex . getString ArrayList (" date ") !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . star _ arr Ġ= Ġthis . ex . getString ArrayList (" star ") !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . img _ arr Ġ= Ġthis . ex . getInteger ArrayList (" img ") !! ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . im Ġ= ĠfindViewById ( R . id . input _ month ) ĊĠĠĠĠĠĠĠ Ġthis . id Ġ= ĠfindViewById ( R . id . input _ date ) ĊĠĠĠĠĠĠĠ Ġthis . input Ġ= ĠfindViewById ( R . id . input _ name ) ĊĠĠĠĠĠĠĠ Ġthis . res Ġ= ĠfindViewById ( R . id . result ) ĊĠĠĠĠĠĠĠ Ġthis . btn Ġ= ĠfindViewById ( R . id . r view _ btn ) ĊĠĠĠĠĠĠĠ Ġthis . db tn Ġ= ĠfindViewById ( R . id . date _ button ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġset Ġshared Preferences ĊĠĠĠĠĠĠĠ Ġval Ġpref : ĠSharedPreferences Ġ= Ġget SharedPreferences ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstant . PRE F _ FILE _ LOCATION , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠContext . MODE _ PRIVATE ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . input . setText ( pref . getString (" name ", Ġ"")) ĊĠĠĠĠĠĠĠ Ġthis . im . text Ġ= Ġ( pref . getInt (" month ", Ġ 1 ) Ġ+ Ġ 1 ). toString () ĊĠĠĠĠĠĠĠ Ġ// Ġ+ Ġ 1 Ġdue Ġto Ġdate Picker Dialog Ġstarting Ġoffset ĊĠĠĠĠĠĠĠ Ġthis . id . text Ġ= Ġpref . getInt (" date ", Ġ 1 ). toString () ĊĊĠĠĠĠĠĠĠ Ġthis . db tn . setOnClickListener ( this . date Btn Listener ) ĊĠĠĠĠĠĠĠ Ġthis . input . setOn Editor ActionListener ( this . my ActionListener ) ĊĠĠĠĠĠĠĠ Ġthis . btn . setOnClickListener ( this . my ClickListener ) ĊĠĠĠ Ġ} Ċ } Ċ