package Ġcom . p uk kol . launcher . ui . item view Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . p uk kol . launcher . R Ċ import Ġcom . p uk kol . launcher . data . model . App Ċ Ċ class ĠSettings Adapter ( private Ġval Ġm Local DataSet : ĠList < App > ?, Ġprivate Ġval Ġm Callback : ĠOn Adapter Listener ) Ġ: ĠRecyclerView . Adapter < Settings Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( view Group : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( view Group . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . view _ item _ edit , Ġview Group , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view , Ġm Callback ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition . to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( view Holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Ġ= Ġm Local DataSet ! ![ position ] ĊĠĠĠĠĠĠĠ ĠviewHolder . create Holder ( app ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Local DataSet ?. size Ġ?: Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProvide Ġa Ġreference Ġto Ġthe Ġtype Ġof Ġviews Ġthat Ġyou Ġare Ġusing ĊĠĠĠĠ Ġ* Ġ( custom ĠViewHolder ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠViewHolder ( view : ĠView , Ġprivate Ġval Ġm Callback : ĠOn Adapter Listener ) Ġ: ĠRecyclerView . ViewHolder ( view ), ĠView . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġicon View : ĠImageView ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtitle View : ĠTextView ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġwarning View : ĠTextView ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlimit Button : ĠLinearLayout ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlimit Image : ĠImageView ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġremove Button : ĠImageView ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm App : ĠApp ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġm Prev Clicked ID Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Holder ( app : ĠApp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm App Ġ= Ġapp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon View . setImage Bitmap ( app . icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle View . text Ġ= Ġapp . label ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġundo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Prev Clicked ID Ġ== Ġview . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Image . setColor Filter ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Button . alpha Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button . setColor Filter ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button . alpha Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Callback . undo App ( m App ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Prev Clicked ID Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . button _ edit _ limit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Image . setColor Filter ( Color . RED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Button . alpha Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button . setColor Filter ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button . alpha Ġ= Ġ 0 . 5 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Callback . limit App ( m App ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . button _ edit _ remove Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Image . setColor Filter ( Color . BLACK ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Button . alpha Ġ= Ġ 0 . 5 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button . setColor Filter ( Color . RED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button . alpha Ġ= Ġ 1 . 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Callback . remove App ( m App ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Prev Clicked ID Ġ= Ġview . id ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon View Ġ= Ġview . findViewById ( R . id . image _ edit _ icon ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle View Ġ= Ġview . findViewById ( R . id . text _ edit _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwarning View Ġ= Ġview . findViewById ( R . id . text _ edit _ warning ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Button Ġ= Ġview . findViewById ( R . id . button _ edit _ limit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Image Ġ= Ġview . findViewById ( R . id . image _ edit _ limit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove Button Ġ= Ġview . findViewById ( R . id . button _ edit _ remove ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Adapter Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġundo App ( app : ĠApp ?) ĊĠĠĠĠĠĠĠ Ġfun Ġlimit App ( app : ĠApp ?) ĊĠĠĠĠĠĠĠ Ġfun Ġremove App ( app : ĠApp ?) ĊĠĠĠĠĠĠĠ Ġfun Ġdisplay Warning ( value : ĠBoolean ) ĊĠĠĠ Ġ} Ċ }