diff --git a/app/src/main/java/com/cappielloantonio/play/adapter/PlaylistHorizontalAdapter.java b/app/src/main/java/com/cappielloantonio/play/adapter/PlaylistHorizontalAdapter.java index 22b9b860..2483d436 100644 --- a/app/src/main/java/com/cappielloantonio/play/adapter/PlaylistHorizontalAdapter.java +++ b/app/src/main/java/com/cappielloantonio/play/adapter/PlaylistHorizontalAdapter.java @@ -15,12 +15,15 @@ import androidx.navigation.Navigation; import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.play.R; +import com.cappielloantonio.play.model.Genre; import com.cappielloantonio.play.model.Playlist; import com.cappielloantonio.play.ui.activity.MainActivity; import com.cappielloantonio.play.ui.dialog.PlaylistEditorDialog; import com.cappielloantonio.play.util.MusicUtil; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import java.util.Objects; @@ -158,4 +161,17 @@ public class PlaylistHorizontalAdapter extends RecyclerView.Adapter showPopupMenu(view, R.menu.sort_playlist_popup_menu)); } @Override @@ -175,4 +179,23 @@ public class PlaylistCatalogueFragment extends Fragment { InputMethodManager imm = (InputMethodManager) activity.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(view.getWindowToken(), 0); } + + private void showPopupMenu(View view, int menuResource) { + PopupMenu popup = new PopupMenu(requireContext(), view); + popup.getMenuInflater().inflate(menuResource, popup.getMenu()); + + popup.setOnMenuItemClickListener(menuItem -> { + if (menuItem.getItemId() == R.id.menu_playlist_sort_name) { + playlistHorizontalAdapter.sort(Genre.ORDER_BY_NAME); + return true; + } else if (menuItem.getItemId() == R.id.menu_playlist_sort_random) { + playlistHorizontalAdapter.sort(Genre.ORDER_BY_RANDOM); + return true; + } + + return false; + }); + + popup.show(); + } } \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_playlist_catalogue.xml b/app/src/main/res/layout/fragment_playlist_catalogue.xml index 328ef6db..b9752464 100644 --- a/app/src/main/res/layout/fragment_playlist_catalogue.xml +++ b/app/src/main/res/layout/fragment_playlist_catalogue.xml @@ -41,6 +41,24 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="parent" /> + +