diff --git a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java index 2db7e0153..a874cdd62 100644 --- a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistAppendDialog.java @@ -33,8 +33,16 @@ public final class PlaylistAppendDialog extends PlaylistDialog { private final CompositeDisposable playlistDisposables = new CompositeDisposable(); - public PlaylistAppendDialog(final List streamEntities) { - super(streamEntities); + /** + * Create a new instance of {@link PlaylistAppendDialog}. + * + * @param streamEntities a list of {@link StreamEntity} to be added to playlists + * @return a new instance of {@link PlaylistAppendDialog} + */ + public static PlaylistAppendDialog newInstance(final List streamEntities) { + final PlaylistAppendDialog dialog = new PlaylistAppendDialog(); + dialog.setStreamEntities(streamEntities); + return dialog; } /*////////////////////////////////////////////////////////////////////////// @@ -103,13 +111,14 @@ public final class PlaylistAppendDialog extends PlaylistDialog { // Helper //////////////////////////////////////////////////////////////////////////*/ + /** Display create playlist dialog. */ public void openCreatePlaylistDialog() { if (getStreamEntities() == null || !isAdded()) { return; } final PlaylistCreationDialog playlistCreationDialog = - new PlaylistCreationDialog(getStreamEntities()); + PlaylistCreationDialog.newInstance(getStreamEntities()); // Move the dismissListener to the new dialog. playlistCreationDialog.setOnDismissListener(this.getOnDismissListener()); this.setOnDismissListener(null); diff --git a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistCreationDialog.java b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistCreationDialog.java index 6664144cd..0c09f3f0d 100644 --- a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistCreationDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistCreationDialog.java @@ -21,8 +21,17 @@ import java.util.List; import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; public final class PlaylistCreationDialog extends PlaylistDialog { - public PlaylistCreationDialog(final List streamEntities) { - super(streamEntities); + + /** + * Create a new instance of {@link PlaylistCreationDialog}. + * + * @param streamEntities a list of {@link StreamEntity} to be added to playlists + * @return a new instance of {@link PlaylistCreationDialog} + */ + public static PlaylistCreationDialog newInstance(final List streamEntities) { + final PlaylistCreationDialog dialog = new PlaylistCreationDialog(); + dialog.setStreamEntities(streamEntities); + return dialog; } /*////////////////////////////////////////////////////////////////////////// diff --git a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java index d43a0981c..f568ef81a 100644 --- a/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java +++ b/app/src/main/java/org/schabi/newpipe/local/dialog/PlaylistDialog.java @@ -31,10 +31,6 @@ public abstract class PlaylistDialog extends DialogFragment implements StateSave private org.schabi.newpipe.util.SavedState savedState; - public PlaylistDialog(final List streamEntities) { - this.streamEntities = streamEntities; - } - /*////////////////////////////////////////////////////////////////////////// // LifeCycle //////////////////////////////////////////////////////////////////////////*/ @@ -120,6 +116,10 @@ public abstract class PlaylistDialog extends DialogFragment implements StateSave this.onDismissListener = onDismissListener; } + protected void setStreamEntities(final List streamEntities) { + this.streamEntities = streamEntities; + } + /*////////////////////////////////////////////////////////////////////////// // Dialog creation //////////////////////////////////////////////////////////////////////////*/ @@ -143,8 +143,8 @@ public abstract class PlaylistDialog extends DialogFragment implements StateSave .observeOn(AndroidSchedulers.mainThread()) .subscribe(hasPlaylists -> onExec.accept(hasPlaylists - ? new PlaylistAppendDialog(streamEntities) - : new PlaylistCreationDialog(streamEntities)) + ? PlaylistAppendDialog.newInstance(streamEntities) + : PlaylistCreationDialog.newInstance(streamEntities)) ); } }