package Ġcom . golden pie devs . schedule . app . ui . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroid . widget . Remote Views Service Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġcom . golden pie devs . schedule . app . R Ċ import Ġcom . golden pie devs . schedule . app . core . dao . timetable .* Ċ import Ġcom . golden pie devs . schedule . app . core . ext . current Week Ċ import Ġcom . golden pie devs . schedule . app . core . ext . today Number In Week Ċ import Ġcom . golden pie devs . schedule . app . core . utils . preference . App Preference Ċ import Ġjava . util .* ĊĊ Ċ /** Ċ Ġ* ĠWidget DataProvider Ġacts Ġas Ġthe Ġadapter Ġfor Ġthe Ġcollection Ġview Ġwidget , Ċ Ġ* Ġproviding ĠRemote Views Ġto Ġthe Ġwidget Ġin Ġthe Ġget View At Ġmethod . Ċ Ġ*/ Ċ class ĠWidget DataProvider ( val Ġcontext : ĠContext ) Ġ: ĠRemote Views Service . Remote Views Factory Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Collection : ĠMutable List < Dao Lesson Model > Ġ= ĠArrayList () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon DataSet Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Collection . clear () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Collection . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View At ( position : ĠInt ): ĠRemote Views Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġm Collection [ position ] ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠRemote Views ( context . packageName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . widget _ item _ view ) ĊĊĠĠĠĠĠĠĠ Ġview . setView Visibility ( R . id . widget _ lesson _ has _ note , Ġif Ġ( model . have Note ) ĠView . VISIBLE Ġelse ĠView . IN VISIBLE ) ĊĊĠĠĠĠĠĠĠ Ġview . setText View Text ( R . id . widget _ lesson _ title , Ġmodel . lesson Name ) ĊĠĠĠĠĠĠĠ Ġview . setTextColor ( R . id . widget _ lesson _ number , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model . have Note ) ĠColor . WHITE Ġelse ĠContext Compat . getColor ( context , ĠR . color . secondary _ text )) ĊĠĠĠĠĠĠĠ Ġview . setText View Text ( R . id . widget _ lesson _ number , Ġmodel . lesson Number . toString ()) ĊĠĠĠĠĠĠĠ Ġview . setText View Text ( R . id . widget _ lesson _ time , Ġmodel . getTime ()) ĊĠĠĠĠĠĠĠ Ġview . setText View Text ( R . id . widget _ lesson _ location , Ġ"${ model . lesson Room } Ġ${ model . lesson Type }") ĊĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġextras . putString ( Schedule Widget Provider . LESS ON _ ID , Ġmodel . id ) ĊĠĠĠĠĠĠĠ Ġval Ġfill In Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġfill In Intent . put Extras ( extras ) ĊĠĠĠĠĠĠĠ Ġview . setOn Click Fill In Intent ( R . id . widget _ item _ row _ view , Ġfill In Intent ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Loading View (): ĠRemote Views ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewType Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition . to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Stable Ids (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Collection . clear () ĊĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠDao Day Model . get Less ons () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. for Group WithName ( App Preference . groupName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. for Week ( current Week Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull Ġ{ Ġit . day Number Ġ== Ġtoday Number In Week Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . lessons ĊĠĠĠĠĠĠĠ Ġdata ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Collection . addAll ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ