package Ġcom . p uk kol . launcher . ui . home . desktop . edit . wall paper Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . p uk kol . launcher . R Ċ import Ġcom . p uk kol . launcher . ui . home . desktop . edit . wall paper . Wall paper Option Adapter . ViewHolder . on ClickListener Ċ import Ġjava . util .* Ċ Ċ class ĠWall paper Option Adapter ( private Ġval ĠmContext : ĠContext , Ġprivate Ġval Ġm Listener : ĠonClick Listener ) Ġ: ĠRecyclerView . Adapter < Wall paper Option Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Items : ĠList < Wall paper Option Container >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Latest Selected Ġ= Ġ- 1 ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . view holder _ wall paper , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( mContext , Ġview , Ġm Listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= Ġm Items ! ![ position ] ĊĊĠĠĠĠĠĠĠ Ġ// Ġset Ġsize ĊĠĠĠĠĠĠĠ Ġif Ġ( model . label Size . width Ġ!= Ġ- 1 Ġ&& Ġmodel . label Size . height Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( model . bitmap Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpick Ġimage ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . layout Params . width Ġ= Ġmodel . label Size . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . item View . layout Params . height Ġ= Ġmodel . label Size . height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . text Pick Image . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġset Ġwall paper ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image Icon . layout Params . width Ġ= Ġmodel . label Size . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image Icon . layout Params . height Ġ= Ġmodel . label Size . height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . image Icon . setImage Bitmap ( model . label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . set Done ( model . is Current Wall paper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( model , Ġposition ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( m Items Ġ== Ġnull ) Ġ 0 Ġelse Ġm Items !!. size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġitems : ĠList < Wall paper Option Container >? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( m Items Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠArrayList () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġm Items ĊĠĠĠĠĠĠĠ Ġset ( wall paper Option Containers ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Items Ġ= Ġwall paper Option Containers ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġval Ġcurrent Wall paper : ĠBitmap ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Items ! ![ m Latest Selected ]. bitmap ĊĊĠĠĠ Ġfun Ġupdate Usage s ( position : ĠInt , Ġremove All : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Latest Selected Ġ== Ġposition ) Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġitems Ġ= Ġitems !! ĊĠĠĠĠĠĠĠ Ġif Ġ( m Latest Selected Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems [ m Latest Selected ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . is Current Wall paper ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Changed ( m Latest Selected , Ġitem ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! removeAll ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= Ġitems [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . is Current Wall paper ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnotify Item Changed ( position , Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Latest Selected Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( private Ġval ĠmContext : ĠContext , ĠitemView : ĠView , Ġprivate Ġval Ġm Listener : ĠonClick Listener ) Ġ: ĠRecyclerView . ViewHolder ( item View ), ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġimage Icon : ĠImageView ĊĠĠĠĠĠĠĠ Ġvar Ġtext Pick Image : ĠTextView ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm DataModel : ĠWall paper Option Container ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Position Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( data Model : ĠWall paper Option Container ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm DataModel Ġ= Ġdata Model ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Position Ġ= Ġposition ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġset Done ( done : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( done ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= ĠContext Compat . get Drawable ( mContext , ĠR . drawable . ic _ check _ white _ gray ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . foreground Ġ= Ġdrawable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon . foreground Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener . on ItemClickListener ( m DataModel , Ġm Position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinterface ĠonClick Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġon ItemClickListener ( item : ĠWall paper Option Container ?, Ġposition : ĠInt ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Icon Ġ= ĠitemView . findViewById ( R . id . image _ label _ wall paper ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Pick Image Ġ= ĠitemView . findViewById ( R . id . text _ bmp _ pick _ image ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }