package Ġfr . uge . sound roid . fragments Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . PopupMenu Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġfr . uge . sound roid . R Ċ import Ġfr . uge . sound roid . activities . others . Playlist Activity Ċ import Ġfr . uge . sound roid . adapters . Playlist ListAdapter Ċ import Ġfr . uge . sound roid . listener . Default Popup Playlist Menu Listener Ċ import Ġfr . uge . sound roid . listener . Default Popup Sound track Menu Listener Ċ import Ġfr . uge . sound roid . models . Playlist Ċ import Ġfr . uge . sound roid . repositories . Playlist Repository Ċ import Ġio . realm . Realm Ċ import Ġio . realm . Realm ChangeListener Ċ Ċ class ĠPlaylist List Fragment Ġ: ĠFragment (), ĠPlaylist ListAdapter . ItemClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġplaylist List : ĠArrayList < Playlist > Ġ= ĠArrayList () ĊĊĠĠĠ Ġprivate Ġval Ġadapter Ġ= ĠPlaylist ListAdapter ( playlist List , Ġthis ) ĊĊĠĠĠ Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ playlist _ list , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġplaylist List . clear () ĊĠĠĠĠĠĠĠ Ġplaylist List . addAll ( Playlist Repository . findAll ()) ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġview . findViewById ( R . id . fragment _ playlist _ list _ recycler _ view ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġval Ġrealm Ġ= ĠRealm . getDefaultInstance () ĊĠĠĠĠĠĠĠ Ġval Ġrealm Listener : ĠRealm ChangeListener < Realm > Ġ= ĠRealm ChangeListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist List . addAll ( Playlist Repository . findAll ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrealm . add ChangeListener ( realm Listener ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfloating ActionButton Ġ= Ġview . findViewById < Floating ActionButton >( R . id . fragment _ playlist _ list _ add ) ĊĠĠĠĠĠĠĠ Ġfloating ActionButton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠDirect Create Playlist Dialog Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . listener Ġ= Ġobject Ġ: ĠDirect Create Playlist Dialog Fragment . Confirm Create Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Dialog Confirm Create Click () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditable Ġ= Ġfragment . dialog ?. findViewById < EditText >( R . id . dialog _ direct _ create _ playlist _ edit _ text )?. text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġeditable . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplaylist Ġ= ĠPlaylist ( null , Ġtitle ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexisting Ġ= ĠPlaylist Repository . find Playlist ById ( playlist . hashCode ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Ġexisting Ġ== Ġnull Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplaylist . init PrimaryKey () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlaylist Repository . save Playlist ( playlist ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠR . string . create _ playlist _ toast _ success , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , ĠR . string . create _ playlist _ toast _ already _ exist _ error , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . show ( parent FragmentManager , Ġ" confirm Create ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( context , ĠPlaylist Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" playlist Id ", Ġplaylist List [ index ]. id ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon More Click ( view : ĠView , Ġindex : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplaylist Ġ= Ġplaylist List [ index ] ĊĊĠĠĠĠĠĠĠ Ġval Ġpopup Menu Ġ= ĠPopup Menu ( context , Ġview . findViewById ( R . id . item _ playlist _ more )) ĊĠĠĠĠĠĠĠ Ġpopup Menu . inflate ( R . menu . popup _ playlist _ more ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Ġcontext Ġ== Ġnull Ġ) Ġreturn ĊĠĠĠĠĠĠĠ Ġpopup Menu . setOn MenuItem ClickListener ( Default Popup Playlist Menu Listener ( playlist , Ġplaylist List , Ġindex , Ġcontext !! , Ġparent FragmentManager )) ĊĠĠĠĠĠĠĠ Ġpopup Menu . show () ĊĠĠĠ Ġ} Ċ Ċ }