diff --git a/app/src/main/java/com/cappielloantonio/tempo/interfaces/PlaylistCallback.java b/app/src/main/java/com/cappielloantonio/tempo/interfaces/PlaylistCallback.java new file mode 100644 index 00000000..73caf6df --- /dev/null +++ b/app/src/main/java/com/cappielloantonio/tempo/interfaces/PlaylistCallback.java @@ -0,0 +1,8 @@ +package com.cappielloantonio.tempo.interfaces; + +import androidx.annotation.Keep; + +@Keep +public interface PlaylistCallback { + default void onDismiss() {} +} diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java index b91bea15..e7d1e740 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistChooserDialog.java @@ -67,7 +67,7 @@ public class PlaylistChooserDialog extends DialogFragment implements ClickCallba Bundle bundle = new Bundle(); bundle.putParcelable(Constants.TRACK_OBJECT, playlistChooserViewModel.getSongToAdd()); - PlaylistEditorDialog dialog = new PlaylistEditorDialog(); + PlaylistEditorDialog dialog = new PlaylistEditorDialog(null); dialog.setArguments(bundle); dialog.show(requireActivity().getSupportFragmentManager(), null); diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java index 8f5b2a87..995f3e7f 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/dialog/PlaylistEditorDialog.java @@ -14,6 +14,7 @@ import androidx.recyclerview.widget.RecyclerView; import com.cappielloantonio.tempo.R; import com.cappielloantonio.tempo.databinding.DialogPlaylistEditorBinding; +import com.cappielloantonio.tempo.interfaces.PlaylistCallback; import com.cappielloantonio.tempo.ui.adapter.PlaylistDialogSongHorizontalAdapter; import com.cappielloantonio.tempo.util.Constants; import com.cappielloantonio.tempo.util.MusicUtil; @@ -25,10 +26,15 @@ import java.util.Objects; public class PlaylistEditorDialog extends DialogFragment { private DialogPlaylistEditorBinding bind; private PlaylistEditorViewModel playlistEditorViewModel; + private PlaylistCallback playlistCallback; private String playlistName; private PlaylistDialogSongHorizontalAdapter playlistDialogSongHorizontalAdapter; + public PlaylistEditorDialog(PlaylistCallback playlistCallback) { + this.playlistCallback = playlistCallback; + } + @NonNull @Override public Dialog onCreateDialog(Bundle savedInstanceState) { @@ -85,13 +91,13 @@ public class PlaylistEditorDialog extends DialogFragment { playlistEditorViewModel.updatePlaylist(playlistName); } - Objects.requireNonNull(getDialog()).dismiss(); + dialogDismiss(); } }); ((AlertDialog) Objects.requireNonNull(getDialog())).getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> { playlistEditorViewModel.deletePlaylist(); - Objects.requireNonNull(getDialog()).dismiss(); + dialogDismiss(); }); } @@ -157,4 +163,9 @@ public class PlaylistEditorDialog extends DialogFragment { return true; } + + private void dialogDismiss() { + Objects.requireNonNull(getDialog()).dismiss(); + playlistCallback.onDismiss(); + } } diff --git a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistCatalogueFragment.java b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistCatalogueFragment.java index 05468469..17bd58c3 100644 --- a/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistCatalogueFragment.java +++ b/app/src/main/java/com/cappielloantonio/tempo/ui/fragment/PlaylistCatalogueFragment.java @@ -178,7 +178,7 @@ public class PlaylistCatalogueFragment extends Fragment implements ClickCallback @Override public void onPlaylistLongClick(Bundle bundle) { - PlaylistEditorDialog dialog = new PlaylistEditorDialog(); + PlaylistEditorDialog dialog = new PlaylistEditorDialog(null); dialog.setArguments(bundle); dialog.show(activity.getSupportFragmentManager(), null); hideKeyboard(requireView());