package Ġcom . mike pen z . fast adapter . ui . dialog Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġcom . mike pen z . fast adapter . Fast Adapter Ċ import Ġcom . mike pen z . fast adapter . Generic Item Ċ import Ġcom . mike pen z . fast adapter . adapters . Item Adapter Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġfab ian ter hor st Ġon Ġ 0 4 . 0 7 . 1 6 . Ċ Ġ*/ Ċ Ċ class ĠFast Adapter Bottom Sheet Dialog < Item Ġ: ĠGeneric Item > Ġ: ĠBottom Sheet Dialog Ġ{ ĊĊĠĠĠ Ġvar Ġre cyclerView : ĠRecyclerView ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġvar Ġfast Adapter : ĠFast Adapter < Item >? Ġ= Ġnull ĊĊĠĠĠ Ġlateinit Ġvar Ġitem Adapter : ĠItem Adapter < Item > ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . re cyclerView Ġ= Ġcreate RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġtheme : ĠInt ) Ġ: Ġsuper ( context , Ġtheme ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . re cyclerView Ġ= Ġcreate RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġthe ĠRecyclerView Ġand Ġset Ġit Ġas Ġthe Ġdialog Ġview . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġthe Ġcreated ĠRecyclerView ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcreate RecyclerView (): ĠRecyclerView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġre cyclerView Ġ= ĠRecyclerView ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠRecyclerView . LayoutParams ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠViewGroup . LayoutParams . MATCH _ PARENT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Params Ġ= Ġparams ĊĠĠĠĠĠĠĠ ĠsetContentView ( re cyclerView ) ĊĠĠĠĠĠĠĠ Ġreturn Ġre cyclerView ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Fast Item Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfast Adapter : ĠFast Adapter < Item >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Adapter : ĠItem Adapter < Item > ĊĠĠĠ Ġ): ĠFast Adapter Bottom Sheet Dialog < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . fast Adapter Ġ= Ġfast Adapter ĊĠĠĠĠĠĠĠ Ġthis . item Adapter Ġ= Ġitem Adapter ĊĠĠĠĠĠĠĠ Ġre cyclerView ?. adapter Ġ= Ġthis . fast Adapter ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Adapter IfNeeded () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( fast Adapter Ġ== Ġnull Ġ|| Ġre cyclerView ?. adapter Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Adapter Ġ= ĠItem Adapter . items () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfast Adapter Ġ= ĠFast Adapter . with ( item Adapter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView ?. adapter Ġ= Ġfast Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Items ( items : ĠList < Item >): ĠFast Adapter Bottom Sheet Dialog < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Adapter IfNeeded () ĊĠĠĠĠĠĠĠ Ġitem Adapter . set ( items ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Items ( var arg Ġitems : ĠItem ): ĠFast Adapter Bottom Sheet Dialog < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Adapter IfNeeded () ĊĠĠĠĠĠĠĠ Ġitem Adapter . add (* items ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġwith Adapter ( adapter : ĠFast Adapter < Item >): ĠFast Adapter Bottom Sheet Dialog < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . re cyclerView ?. adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġthe Ġ[ RecyclerView . LayoutManager ] Ġthat Ġthe ĠRecyclerView Ġwill Ġuse . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlayout Manager ĠLayout Manager Ġto Ġuse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwith LayoutManager ( layout Manager : ĠRecyclerView . LayoutManager ): ĠFast Adapter Bottom Sheet Dialog < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . re cyclerView ?. layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdd Ġa Ġlistener Ġthat Ġwill Ġbe Ġnotified Ġof Ġany Ġchanges Ġin Ġscroll Ġstate Ġor Ġposition Ġof Ġthe ĊĠĠĠĠ Ġ* ĠRecyclerView . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġlistener Ġlistener Ġto Ġset Ġor Ġnull Ġto Ġclear ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġwith On Scroll Listener ( listener : ĠRecyclerView . On Scroll Listener ): ĠFast Adapter Bottom Sheet Dialog < Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġre cyclerView ?. add On Scroll Listener ( listener ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStart Ġthe Ġdialog Ġand Ġdisplay Ġit Ġon Ġscreen . Ġ ĠThe Ġwindow Ġis Ġplaced Ġin Ġthe ĊĠĠĠĠ Ġ* Ġapplication Ġlayer Ġand Ġopaque . Ġ ĠNote Ġthat Ġyou Ġshould Ġnot Ġoverride Ġthis ĊĠĠĠĠ Ġ* Ġmethod Ġto Ġdo Ġinitialization Ġwhen Ġthe Ġdialog Ġis Ġshown , Ġinstead Ġimplement ĊĠĠĠĠ Ġ* Ġthat Ġin Ġ[ onStart ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( re cyclerView ?. layout Manager Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView ?. layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġinit Adapter IfNeeded () ĊĠĠĠĠĠĠĠ Ġsuper . show () ĊĠĠĠ Ġ} Ċ }