package Ġcn . edu . nc u . concurrent Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view .* Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcn . edu . nc u . concurrent . data . Music ĊĊ Ċ class ĠMusic List Dialog ( context : ĠContext , Ġprivate Ġval Ġmusic List : ĠList < Music >) Ġ: ĠDialog ( context , ĠR . style . Music List Dialog ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġitem ClickListener : ĠView . OnClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġvar Ġremove ClickListener : ĠRemove ClickListener ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġinterface ĠRemove ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ( position : ĠInt ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġmusic List RecyclerView : ĠRecyclerView Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠfindViewById ( R . id . music List RecyclerView ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠAdapter ( private Ġval Ġmus ics : ĠList < Music >): ĠRecyclerView . Adapter < Adapter . ViewHolder >() Ġ{ ĊĠĠĠĠĠĠĠ Ġinner Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle TextView : ĠTextView Ġ= Ġview . findViewById ( R . id . title TextView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġremove Img : ĠImageView Ġ= Ġview . findViewById ( R . id . remove Img ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġset On Remove ClickListener ( l : ĠRemove ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremove Img . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl . onClick ( adapter Position ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . dialog _ music _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( view ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġholder . title TextView . text Ġ= Ġmus ics [ position ]. title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener ?. let Ġ{ Ġholder . item View . setOnClickListener ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġremove ClickListener ?. let Ġ{ Ġholder . setOn Remove ClickListener ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Count Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . remove Img . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġmus ics . size ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset On ItemClickListener ( l : ĠView . OnClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem ClickListener Ġ= Ġl ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Remove ClickListener ( l : ĠRemove ClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġremove ClickListener Ġ= Ġl ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . dialog _ music _ list ) ĊĠĠĠĠĠĠĠ Ġmusic List RecyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġmusic List RecyclerView . adapter Ġ= ĠAdapter ( music List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . show () ĊĠĠĠĠĠĠĠ Ġwindow ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Params Ġ= Ġit . attributes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . gravity Ġ= ĠGr avity . BOTTOM ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . width Ġ= ĠWindow Manager . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Params . height Ġ= ĠWindow Manager . LayoutParams . WRAP _ CONTENT ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . decor View . set Padding ( 0 , Ġ 0 , Ġ 0 , Ġ 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . attributes Ġ= Ġlayout Params ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }