package Ġcom . p uk kol . launcher . ui . item view Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . p uk kol . launcher . R Ċ import Ġcom . p uk kol . launcher . data . model . App Ċ import Ġcom . p uk kol . launcher . data . model . Item Ċ import Ġcom . p uk kol . launcher . ui . home . desktop . Desktop Fragment Ċ import Ġcom . p uk kol . launcher . ui . item view . Item App View . On ActionListener Ċ import Ġkotlinx . android . synt hetic . main . view _ menu _ adapter . view .* Ċ Ċ /** Ċ Ġ* Ġ@ author Ġok ido Ċ Ġ* Ġ@ since Ġ 1 / 2 2 / 2 0 2 1 Ċ Ġ* Ċ Ġ* Ġadapter Ġfor Ġgrid layouts Ċ Ġ*/ Ċ class ĠGrid Adapter ( private Ġval Ġm Location : ĠItem . Location , Ġvar Ġdesktop Fragment : ĠDesktop Fragment ) Ġ: ĠRecyclerView . Adapter < Grid Adapter . ViewHolder >() Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġapps Ġ= ĠArrayList < App >() ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . view _ menu _ adapter , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( desktop Fragment , Ġview , Ġm Location ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . create Grid ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapps [ position ] ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Id ( position : ĠInt ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġposition . to Long () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġapps . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Data ( items : ĠArrayList < App >) Ġ{ ĊĠĠĠĠĠĠĠ Ġapps Ġ= Ġitems ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( var Ġdesktop Fragment : ĠDesktop Fragment , Ġresource View : ĠView ?, Ġvar Ġlocation : ĠItem . Location ) Ġ: ĠRecyclerView . ViewHolder ( resource View !! ), ĠOn ActionListener Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġm Layout : ĠLinearLayout Ġ= ĠitemView . frame _ menu _ adapter _ layout ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate Grid ( app : ĠApp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠItem App View ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdesktop Fragment , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp . label , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Layout , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocation ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). with Listener ( this ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġremove Ġall Ġviews Ġ( search Ġfreeze Ġview Ġissue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Layout . removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Layout . addView ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġreplace Old View ( app : ĠApp ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Grid ( app ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }