package Ġcom . k ato h . camp us schedule . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġcom . k ato h . camp us schedule . R Ċ import Ġcom . k ato h . camp us schedule . fragments . dialogs . Book Setting Dialog Fragment Ċ import Ġcom . k ato h . camp us schedule . models . entity . Book Content Ċ import Ġcom . k ato h . camp us schedule . models . entity . Course Realm Object Ċ import Ġcom . k ato h . camp us schedule . models . entity . Type Content Ċ import Ġcom . k ato h . camp us schedule . models . prefs . Custom SharedPreferences Ċ import Ġcom . k ato h . camp us schedule . models . prefs . Preference Names Ċ import Ġcom . k ato h . camp us schedule . utils . setting Dao Ċ import Ġcom . k ato h . camp us schedule . view models . Realm Result ViewModel Ċ import Ġcom . k ato h . camp us schedule . views . adapters . Type Spinner Adapter Ċ import Ġkotlinx . android . synt hetic . main . fr agn ent _ course _ setting .* Ċ import Ġkotlinx . android . synt hetic . main . fr agn ent _ course _ setting . view .* Ċ Ċ class ĠCourse Setting Fragment Ġ: ĠCustom Fragment () Ġ{ ĊĠĠĠ Ġ// ĠView ĠModels ĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠRealm Result ViewModel Ġby Ġactivity ViewModels () ĊĊĠĠĠ Ġ// ĠShared ĠPreferences ĊĠĠĠ Ġprivate Ġval Ġdefault Preferences : ĠCustom SharedPreferences Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠCustom SharedPreferences ( activity , ĠPreference Names . DEFAULT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠDialog s ĊĠĠĠ Ġprivate Ġval Ġbook Setting Dialog Fragment Ġ= ĠBook Setting Dialog Fragment () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġthe Ġtype Ġcontents , Ġsaved Ġin Ġshared Ġpreferences ĊĠĠĠĠ Ġ* Ġor Ġdefault Ġones Ġof Ġarray Ġresources ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġsaved Type Contents : ĠList < Type Content > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Preferences . setting Dao (). saved Type Contents ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠAction ĠBar ĊĠĠĠĠĠĠĠ Ġactivity . support ActionBar ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ"% s Ġ% s ". format ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtranslate Week Day ( viewModel . selected Course . day ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . selected Course . order ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . fr agn ent _ course _ setting , Ġcontainer , Ġfalse ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSet Ġtexts Ġfrom Ġmodel Ġto ĠEdit View ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ course . setText ( viewModel . selected Course . course Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ teacher . setText ( viewModel . selected Course . teacher Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ point . setText ( viewModel . selected Course . point . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ grade . setText ( viewModel . selected Course . grade . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ book . text Ġ= ĠviewModel . temp Book . join ToString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ email . setText ( viewModel . selected Course . email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ url . setText ( viewModel . selected Course . url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ additional . setText ( viewModel . selected Course . additional ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . spinner _ type . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠType Spinner Adapter ( context , Ġsaved Type Contents ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . insert ( Type Content ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . un selected _ text ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . getColor ( R . color . white ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Adapter ( adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Selection ( viewModel . selected Course . type Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . button _ edit _ book . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbook Setting Dialog Fragment . show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager , ĠBook Setting Dialog Fragment . TAG _ DEFAULT ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbook Setting Dialog Fragment . set Notice Dialog Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠBook Setting Dialog Fragment . Notice Dialog Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Positive Click ( dialog : ĠDialog Fragment , Ġbook : ĠBook Content ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . edit _ book . text Ġ= Ġbook . join ToString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate Options Menu ( menu , Ġinflater ) ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . menu _ course _ setting , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit _ course . text . toString (). isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ course . error Ġ= ĠgetString ( R . string . blank _ message _ course _ name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit _ point . text . toString (). isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ point . error Ġ= ĠgetString ( R . string . blank _ message _ point ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( edit _ grade . text . toString (). isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ grade . error Ġ= ĠgetString ( R . string . blank _ message _ grade ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( spinner _ type . selected Item Position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( spinner _ type . selected View Ġas ĠTextView ). run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= ĠgetString ( R . string . un selected _ text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( context . getColor ( R . color . design _ default _ color _ error )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ course . text . toString (). isBlank () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ point . text . toString (). isBlank () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ grade . text . toString (). isBlank () Ġor ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( spinner _ type . selected Item Position Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . warning _ message _ input , ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcourse Ġ= ĠCourse Realm Object (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcourse Name Ġ= Ġedit _ course . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġteacher Name Ġ= Ġedit _ teacher . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġspinner _ type . selected Item Position Ġ- Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpoint Ġ= Ġedit _ point . text . toString (). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgrade Ġ= Ġedit _ grade . text . toString (). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext book Ġ= ĠviewModel . temp Book . join ToString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Title Ġ= ĠviewModel . temp Book . title ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Author Ġ= ĠviewModel . temp Book . author ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Publisher Ġ= ĠviewModel . temp Book . publisher ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġedit _ email . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġedit _ url . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadditional Ġ= Ġedit _ additional . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Course Setting ( course ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager . pop Back Stack () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTranslate Ġthe Ġday Ġindex Ġto Ġthe Ġstring Ġresource ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtranslate Week Day ( day : ĠInt ) Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġweek Days Ġ= Ġresources . getString Array ( R . array . labels _ weekday ) ĊĠĠĠĠĠĠĠ Ġreturn Ġweek Days [ day ] ĊĠĠĠ Ġ} Ċ }