package Ġedu . rose h ul man . cond r ak . rose schedule Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app widget . App Widget Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Radio Group Ċ Ċ /** Ċ Ġ* ĠThe Ġconfiguration Ġscreen Ġfor Ġthe Ġ[ Week ly View Widget ] ĠApp Widget . Ċ Ġ*/ Ċ class ĠWeek ly View Widget Configure Activity Ġ: ĠActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm App Widget Id Ġ= ĠApp Widget Manager . INVALID _ APP WIDGET _ ID ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Radio Group : ĠRadio Group ĊĠĠĠ Ġprivate Ġvar Ġm OnClickListener : ĠView . OnClickListener Ġ= ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġthis @ Week ly View Widget Configure Activity ĊĊĠĠĠĠĠĠĠ Ġ// ĠWhen Ġthe Ġbutton Ġis Ġclicked , Ġstore Ġthe Ġstring Ġlocally ĊĠĠĠĠĠĠĠ Ġval Ġwidget Color Ġ= Ġif Ġ( m Radio Group . checked RadioButton Id Ġ== ĠR . id . radioButton White ) ĠR . color . white Ġelse ĠR . color . text Dark Primary ĊĠĠĠĠĠĠĠ Ġsave Color Pref ( context , Ġm App Widget Id , Ġwidget Color ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠIt Ġis Ġthe Ġresponsibility Ġof Ġthe Ġconfiguration Ġactivity Ġto Ġupdate Ġthe Ġapp Ġwidget ĊĠĠĠĠĠĠĠ Ġval Ġapp Widget Manager Ġ= ĠApp Widget Manager . getInstance ( context ) ĊĠĠĠĠĠĠĠ ĠWeek ly View Widget . update App Widget ( context , Ġapp Widget Manager , Ġm App Widget Id ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠMake Ġsure Ġwe Ġpass Ġback Ġthe Ġoriginal Ġapp Widget Id ĊĠĠĠĠĠĠĠ Ġval Ġresult Value Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġresult Value . putExtra ( App Widget Manager . EXTRA _ APP WIDGET _ ID , Ġm App Widget Id ) ĊĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ OK , Ġresult Value ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( ic icle : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( ic icle ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġthe Ġresult Ġto ĠC ANCE LED . Ġ ĠThis Ġwill Ġcause Ġthe Ġwidget Ġhost Ġto Ġcancel ĊĠĠĠĠĠĠĠ Ġ// Ġout Ġof Ġthe Ġwidget Ġplacement Ġif Ġthe Ġuser Ġp resses Ġthe Ġback Ġbutton . ĊĠĠĠĠĠĠĠ Ġset Result ( Activity . RESULT _ C ANCE LED ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . weekly _ view _ widget _ configure ) ĊĠĠĠĠĠĠĠ Ġm Radio Group Ġ= ĠfindViewById < View >( R . id . radio Group ) Ġas ĠRadio Group ĊĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . add _ button ). setOnClickListener ( m OnClickListener ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠFind Ġthe Ġwidget Ġid Ġfrom Ġthe Ġintent . ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġintent ĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= Ġintent . extras ĊĠĠĠĠĠĠĠ Ġif Ġ( extras Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm App Widget Id Ġ= Ġextras . getInt ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Widget Manager . EXTRA _ APP WIDGET _ ID , ĠApp Widget Manager . INVALID _ APP WIDGET _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġthis Ġactivity Ġwas Ġstarted Ġwith Ġan Ġintent Ġwithout Ġan Ġapp Ġwidget ĠID , Ġfinish Ġwith Ġan Ġerror . ĊĠĠĠĠĠĠĠ Ġif Ġ( m App Widget Id Ġ== ĠApp Widget Manager . INVALID _ APP WIDGET _ ID ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġm Radio Group . check ( if Ġ( load Color Pref ( this @ Week ly View Widget Configure Activity , Ġm App Widget Id ) Ġ== ĠR . color . white ) ĠR . id . radioButton White Ġelse ĠR . id . radioButton Black ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP REF S _ NAME Ġ= Ġ" edu . rose h ul man . cond r ak . rose schedule . Week ly View Widget " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠP REF _ PREFIX _ KEY Ġ= Ġ" app widget _" ĊĊĠĠĠĠĠĠĠ Ġ// ĠWrite Ġthe Ġprefix Ġto Ġthe ĠSharedPreferences Ġobject Ġfor Ġthis Ġwidget ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġsave Color Pref ( context : ĠContext , Ġapp Widget Id : ĠInt , Ġcolor : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġcontext . get SharedPreferences ( PRE FS _ NAME , Ġ 0 ). edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs . put Int ( PRE F _ PREFIX _ KEY Ġ+ Ġapp Widget Id , Ġcolor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs . apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠRead Ġthe Ġprefix Ġfrom Ġthe ĠSharedPreferences Ġobject Ġfor Ġthis Ġwidget . ĊĠĠĠĠĠĠĠ Ġ// ĠIf Ġthere Ġis Ġno Ġpreference Ġsaved , Ġget Ġthe Ġdefault Ġfrom Ġa Ġresource ĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġload Color Pref ( context : ĠContext , Ġapp Widget Id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġcontext . get SharedPreferences ( PRE FS _ NAME , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Value Ġ= Ġprefs . getInt ( PRE F _ PREFIX _ KEY Ġ+ Ġapp Widget Id , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( color Value Ġ== Ġ 0 ) ĠR . color . text Dark Primary Ġelse Ġcolor Value ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġdelete Color Pref ( context : ĠContext , Ġapp Widget Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefs Ġ= Ġcontext . get SharedPreferences ( PRE FS _ NAME , Ġ 0 ). edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs . remove ( PRE F _ PREFIX _ KEY Ġ+ Ġapp Widget Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprefs . apply () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ