/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . Ġ- ĠLe bo gang ĠB ants ij ang Ċ Ġ* Ċ Ġ* ĠĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . le bo gang . gens ys music . ui . local . playlist Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . google . android . material . dialog . Material AlertDialog Builder Ċ import Ġcom . le bo gang . gens ys music . G ens ys App Ċ import Ġcom . le bo gang . gens ys music . R Ċ import Ġcom . le bo gang . gens ys music . database . local . models . Playlist Ċ import Ġcom . le bo gang . gens ys music . databinding . Activity Playlist Binding Ċ import Ġcom . le bo gang . gens ys music . ui . utils . Item Click Interface Ċ import Ġcom . le bo gang . gens ys music . ui . utils . Item Options Interface Ċ import Ġcom . le bo gang . gens ys music . ui . utils . Type Ċ import Ġcom . le bo gang . gens ys music . ui . local . adapters . Playlist Adapter Ċ import Ġcom . le bo gang . gens ys music . ui . local . playlist . dialogs . Playlist Dialog Ċ import Ġcom . le bo gang . gens ys music . ui . local . playlist . dialogs . Playlist Options Dialog Ċ import Ġcom . le bo gang . gens ys music . ui . utils . Model Factory Ċ import Ġcom . le bo gang . gens ys music . ui . local . view model . Playlist ViewModel Ċ import Ġcom . le bo gang . gens ys music . utils . Keys Ċ Ċ class ĠPlaylist Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġbind : ĠActivity Playlist Binding Ġby Ġlazy Ġ{ ĠActivity Playlist Binding . inflate ( layout Inflater ) Ġ} ĊĠĠĠ Ġprivate Ġval Ġapp : G ens ys App Ġby Ġlazy { application Ġas ĠG ens ys App } ĊĠĠĠ Ġprivate Ġval Ġplaylist ViewModel : ĠPlaylist ViewModel Ġby Ġlazy { ĠModel Factory ( app ). get Playlist ViewModel ()} ĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĠPlaylist Adapter () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . play lists ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( bind . root ) ĊĠĠĠĠĠĠĠ Ġinit Toolbar () ĊĠĠĠĠĠĠĠ Ġinit RecyclerView () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Toolbar (){ ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( bind . toolbar ) ĊĠĠĠĠĠĠĠ Ġbind . toolbar . set Navigation OnClickListener Ġ{ Ġon Back Pressed () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit RecyclerView (){ ĊĠĠĠĠĠĠĠ Ġadapter . item Options Interface Ġ= Ġget Items Options Item Interface () ĊĠĠĠĠĠĠĠ Ġadapter . item Click Interface Ġ= ĠgetItem Click Interface () ĊĠĠĠĠĠĠĠ Ġplaylist ViewModel . get Play lists (). observe ( this ,{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . setData ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbind . progress Bar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbind . re cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġbind . re cyclerView . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġbind . new Button . setOnClickListener { Playlist Dialog (). show Now ( support FragmentManager , null )} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetItem Click Interface () Ġ= Ġobject Ġ: ĠItem Click Interface Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView , Ġitem : ĠAny ?, Ġtype : ĠType ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaylist Ġ= Ġitem Ġas ĠPlaylist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this @ Playlist Activity , ĠPlaylist Details Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . putExtra ( Keys . PLAY LIST _ KEY , Ġplaylist ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Items Options Item Interface () Ġ= Ġobject Ġ: ĠItem Options Interface Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Options Click ( item : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaylist Ġ= Ġitem Ġas ĠPlaylist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaylist Options Dialog Ġ= ĠPlaylist Options Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist Options Dialog . playlist Ġ= Ġplaylist ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist Options Dialog . show Now ( support FragmentManager , null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . application _ playlist , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( item . itemId ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . add Playlist Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlaylist Dialog (). show Now ( support FragmentManager , null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . clear All Ġ-> { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġare You S ure () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġare You S ure (){ ĊĠĠĠĠĠĠĠ ĠMaterial AlertDialog Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage (" Remove Ġall Ġplay lists ?") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button (" No ", null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button (" Yes ") Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist ViewModel . reset () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. create (). show () ĊĠĠĠ Ġ} Ċ } Ċ