package Ġcom . give k esh . ner kh Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroid . widget . Remote Views Service Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġorg . json . JSONArray Ċ Ċ class ĠApp Widget Service Ġ: ĠRemote Views Service () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġon Get View Factory ( intent : ĠIntent ): ĠRemote Views Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjson Ġ= Ġintent . getString Extra (" json ") ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= ĠJSONArray ( json ) ĊĠĠĠĠĠĠĠ Ġreturn ĠListView Remote Views Factory ( application Context , Ġitems ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠListView Remote Views Factory ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġitems : ĠJSONArray ) Ġ: ĊĠĠĠ ĠRemote Views Service . Remote Views Factory Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Loading View (): ĠRemote Views ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRemote Views ( context . packageName , ĠR . layout . loading ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition . to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon DataSet Changed () Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Stable Ids (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget View At ( position : ĠInt ): ĠRemote Views Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Item Ġ= Ġitems . getJSONObject ( position ) ĊĠĠĠĠĠĠĠ Ġval Ġchange Indicator Ġ= Ġlist Item . opt String (" change Indicator ", Ġ"") ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Indicator . contains (" low ") Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . low ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchange Indicator . contains (" high ") Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . getColor ( context , ĠR . color . high ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠColor . BLACK ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval ĠbackgroundColor Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ== Ġ 0 Ġ-> ĠContext Compat . getColor ( context , ĠR . color . header _ bg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġposition Ġ% Ġ 2 Ġ== Ġ 0 Ġ-> ĠContext Compat . getColor ( context , ĠR . color . item _ bg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠColor . WHITE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠRemote Views ( context . packageName , ĠR . layout . ner kh _ item ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextView Text ( R . id . title , Ġlist Item . opt String (" item Title ", Ġ" --- ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextView Text ( R . id . price , Ġlist Item . opt String (" current Price ", Ġ" --- ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextView Text ( R . id . changes , Ġlist Item . opt String (" price Changes ", Ġ" --- ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset TextColor ( R . id . changes , Ġcolor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Int ( R . id . ner kh _ item _ holder , Ġ" set BackgroundColor ", ĠbackgroundColor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġitems . length () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ViewType Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ