package Ġcom . k ato h . camp us schedule . fragments Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . appcompat . view . Action Mode Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . Default Item Animator Ċ import Ġandroidx . recyclerview . widget . Divider Item Decoration Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . k ato h . camp us schedule . R Ċ import Ġcom . k ato h . camp us schedule . fragments . dialogs . Delete Dialog Fragment Ċ 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 . view models . Sort ViewModel Ċ import Ġcom . k ato h . camp us schedule . views . action bar . Time List Action Mode Callback Ċ import Ġcom . k ato h . camp us schedule . views . adapters . Time Selectable Adapter Ċ import Ġcom . k ato h . camp us schedule . views . adapters . TypeInfo Recycler Adapter Ċ import Ġkotlinx . android . synt hetic . main . fragment _ time _ list . view .* Ċ Ċ class ĠTime List Fragment Ġ: ĠCustom Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠViews ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtime RecyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtime Adapter : ĠTime Selectable Adapter ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtype RecyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtype Adapter : ĠType Info Recycler Adapter ĊĊĠĠĠ Ġprivate Ġvar Ġaction Mode : ĠAction Mode ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġaction Mode Callback Ġ= ĠTime List Action Mode Callback () ĊĊĠĠĠ Ġ// ĠView ĠModels ĊĠĠĠ Ġprivate Ġval Ġrealm ViewModel : ĠRealm Result ViewModel Ġby Ġactivity ViewModels () ĊĠĠĠ Ġprivate Ġval Ġsort ViewModel : ĠSort ViewModel Ġby Ġactivity ViewModels () ĊĊĠĠĠ Ġ// ĠDialog s ĊĠĠĠ Ġprivate Ġval Ġdelete Dialog Fragment Ġ= ĠDelete Dialog Fragment () ĊĊĠĠĠ Ġ// ĠShared ĠPreferences ĊĠĠĠ Ġprivate Ġval Ġdefault Preferences : ĠCustom SharedPreferences Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠCustom SharedPreferences ( activity , ĠPreference Names . DEFAULT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ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 ĠEvent ĠListener ĊĠĠĠĠĠĠĠ Ġaction Mode Callback . setAction Mode Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠTime List Action Mode Callback . Action Mode Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Destroy Action Mode () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Adapter . clear Selection () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . support ActionBar ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Action Item Clicked ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmode : ĠAction Mode ?, Ġitem : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item ?. itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . delete Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠActivate Ġdialog Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Dialog Fragment . show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager , ĠDelete Dialog Fragment . TAG _ CAM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdelete Dialog Fragment . set Notice Dialog Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠDelete Dialog Fragment . Notice Dialog Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Positive Click ( dialog : ĠDialog Fragment ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( dialog . tag ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDelete Dialog Fragment . TAG _ POP UP Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInitialize Ġthe Ġcourse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" delete - from - popup ", Ġrealm ViewModel . selected Course . course Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . init Course () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDelete Dialog Fragment . TAG _ CAM Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Courses Ġ= Ġtime Adapter . getSelected Item Positions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsort ViewModel . course Results [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Courses . forEach Ġ{ Ġcourse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . choose Selected Course ( course . day , Ġcourse . order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" delete - from - cam ", Ġcourse . course Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . init Course () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode ?. finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . fragment _ time _ list , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠRe cycler ĠView ĊĠĠĠĠĠĠĠ Ġtime RecyclerView Ġ= Ġview . recyclerview _ time . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtype RecyclerView Ġ= Ġview . recyclerview _ type . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Animator Ġ= ĠDefault Item Animator () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( Divider Item Decoration ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĠDiv ider Item Decoration . VERTICAL )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġset View Adapter () ĊĊĠĠĠĠĠĠĠ Ġ// ĠSort ĠItems ĊĠĠĠĠĠĠĠ Ġview . day _ order . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort ViewModel . update Sort Item ( Sort ViewModel . Sort Item . DAY _ ORDER . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . course _ name . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort ViewModel . update Sort Item ( Sort ViewModel . Sort Item . CO URSE _ NAME . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . type . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort ViewModel . update Sort Item ( Sort ViewModel . Sort Item . TYPE . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . point . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort ViewModel . update Sort Item ( Sort ViewModel . Sort Item . POINT . name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠOther ĠViews ĊĠĠĠĠĠĠĠ Ġview . text _ course _ sum . text Ġ= Ġrealm ViewModel . course Results . size . toString () ĊĠĠĠĠĠĠĠ Ġview . text _ point _ sum . text Ġ= Ġrealm ViewModel . course Results . sum (" point "). toString () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġrealm ViewModel . selected Course Data . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġcourse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . text _ course _ sum . text Ġ= Ġrealm ViewModel . course Results . size . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . text _ point _ sum . text Ġ= Ġrealm ViewModel . course Results . sum (" point "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode ?. finish () ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġsort ViewModel . focused Item Data . observe ( view Lifecycle Owner , ĠObserver Ġ{ Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . day _ order _ sort . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . course _ name _ sort . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . type _ sort . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . point _ sort . visibility Ġ= ĠView . IN VISIBLE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort ViewModel . Sort Item . DAY _ ORDER Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Sort ImageView ( view . day _ order _ sort , Ġitem . is Ascending ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort ViewModel . Sort Item . CO URSE _ NAME Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Sort ImageView ( view . course _ name _ sort , Ġitem . is Ascending ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort ViewModel . Sort Item . TYPE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Sort ImageView ( view . type _ sort , Ġitem . is Ascending ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSort ViewModel . Sort Item . POINT Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Sort ImageView ( view . point _ sort , Ġitem . is Ascending ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Sort ImageView ( view . day _ order _ sort , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View Adapter () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode ?. finish () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġaction Mode ?. finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġre cycler Ġview Ġadapter , Ġand Ġshow Ġthe Ġview ĊĠĠĠĠ Ġ* Ġto Ġgenerate Ġre cycler Ġview ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset View Adapter () Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠTime Selectable Adapter Ġ*/ ĊĠĠĠĠĠĠĠ Ġsort ViewModel . update Course Results ( realm ViewModel . course Results ) ĊĠĠĠĠĠĠĠ Ġtime Adapter Ġ= ĠTime Selectable Adapter ( require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsort ViewModel . course Results , Ġsaved Type Contents ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet ĠEvent ĠListener ĊĠĠĠĠĠĠĠ Ġtime Adapter . setOn ItemClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠTime Selectable Adapter . On ItemClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Mode Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Selection ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode ?. finish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġview Ġmodel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcourse Ġ= Ġsort ViewModel . course Results [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException (" The Ġcourse Ġnot Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . choose Selected Course ( course . day , Ġcourse . order ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReplace ĠFragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . init Book () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Parent Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . container _ main , ĠCourse Setting Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Long Click ( position : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( action Mode Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠActivate ĠContext ĠAction ĠMenu Ġ( CAM ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode Ġ= Ġactivity . start Support Action Mode ( action Mode Callback ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . support ActionBar ?. hide () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoggle Selection ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġtime Adapter . setOn MenuItem ClickListener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠTime Selectable Adapter . On MenuItem ClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( menuItem : ĠMenuItem , Ġposition : ĠInt ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġview Ġmodel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcourse Ġ= Ġsort ViewModel . course Results [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException (" The Ġcourse Ġnot Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . choose Selected Course ( course . day , Ġcourse . order ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( menuItem . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . edit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠReplace Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . init Book () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Parent Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . container _ main , ĠCourse Setting Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . delete Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠActivate Ġdialog Ġfragment ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Dialog Fragment . show ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent FragmentManager , ĠDelete Dialog Fragment . TAG _ POP UP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġre cycler Ġview Ġadapter ĊĠĠĠĠĠĠĠ Ġtime RecyclerView . adapter Ġ= Ġtime Adapter ĊĊĊĠĠĠĠĠĠĠ Ġ/* ĠType Recycler Adapter Ġ*/ ĊĠĠĠĠĠĠĠ Ġtype Adapter Ġ= ĠType Info Recycler Adapter ( require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrealm ViewModel . course Results , Ġsaved Type Contents ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġre cycler Ġview Ġadapter ĊĠĠĠĠĠĠĠ Ġtype RecyclerView . adapter Ġ= Ġtype Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠToggle Ġthe Ġselection Ġstatus Ġof Ġthe Ġitem Ġat Ġa Ġgiven Ġposition ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġtoggle Selection ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtime Adapter . toggle Selection ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġtime Adapter . selected ItemCount ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode ?. finish () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode ?. title Ġ= Ġcount . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction Mode ?. invalidate () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġan Ġimage Ġto Ġa Ġfocused Ġsort Ġitem ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Sort ImageView ( img View : ĠImageView , Ġis Ascending : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġimg View . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġif Ġ( is Ascending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg View . setImage Resource ( R . drawable . ic _ ascending _ black _ 1 2 dp ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg View . setImage Resource ( R . drawable . ic _ desc ending _ black _ 1 2 dp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }