package Ġsubmission . and hir at ob ing . github user . view . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Binder Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroid . widget . Remote Views Service Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . resource . bitmap . Circle Crop Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġsubmission . and hir at ob ing . github user . R Ċ import Ġsubmission . and hir at ob ing . github user . data . local . entities . Favorite Entity Ċ import Ġsubmission . and hir at ob ing . github user . data . repositories . local . Favorite Repository Ċ Ċ @ Experimental Cor outines Api Ċ class ĠF avorite Remote View Factory Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġfavorite Repository : ĠF avorite Repository Ċ ) Ġ: ĠRemote Views Service . Remote Views Factory Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġlist Widget Items Ġ= ĠArrayList < Favorite Entity >() ĊĊĠĠĠ Ġprivate Ġfun Ġfetch Data Favorite User () Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite Repository . getAll DataTo Favorite Widget (). forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Widget Items . add ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġon DataSet Changed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġidentity Ġ= ĠB inder . clear Calling Identity () ĊĠĠĠĠĠĠĠ Ġlist Widget Items . clear () ĊĠĠĠĠĠĠĠ Ġfetch Data Favorite User () ĊĠĠĠĠĠĠĠ ĠB inder . restore Calling Identity ( identity ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{} ĊĊĊĠĠĠ Ġoverride Ġfun Ġget View At ( position : ĠInt ): ĠRemote Views Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġremote Views Ġ= ĠRemote Views ( context . packageName , ĠR . layout . layout _ favorite _ widget _ item ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġlist Widget Items [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠG lide . with ( context ). as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( data . avatar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transform ( Circle Crop ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. submit (). get () ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Views . set ImageView Bitmap ( R . id . iv Item Favorite Widget , Ġbitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Views . setText View Text ( R . id . tv Username Widget , Ġdata . username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextras Ġ= Ġbundle Of ( Favorite Widget . EXTRA _ ITEM Ġto Ġdata . username ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfill In Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfill In Intent . put Extras ( extras ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġremote Views . setOn Click Fill In Intent ( R . id . iv Item Favorite Widget , Ġfill In Intent ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġremote Views ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ= Ġlist Widget Items . size ĊĊĠĠĠ Ġoverride Ġfun Ġget Loading View (): ĠRemote Views ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewType Count (): ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( p 0 : ĠInt ): ĠLong Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun Ġhas Stable Ids (): ĠBoolean Ġ= Ġfalse Ċ }