2018-04-23 22:02:36 +02:00
|
|
|
package org.schabi.newpipe.local.dialog;
|
2018-01-16 20:48:52 +01:00
|
|
|
|
|
|
|
import android.app.Dialog;
|
|
|
|
import android.os.Bundle;
|
2021-07-27 19:31:58 +02:00
|
|
|
import android.text.InputType;
|
2018-01-16 20:48:52 +01:00
|
|
|
import android.widget.Toast;
|
|
|
|
|
2020-03-31 19:20:15 +02:00
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.annotation.Nullable;
|
2021-10-03 14:25:50 +02:00
|
|
|
import androidx.appcompat.app.AlertDialog.Builder;
|
2020-03-31 19:20:15 +02:00
|
|
|
|
2018-01-16 20:48:52 +01:00
|
|
|
import org.schabi.newpipe.NewPipeDatabase;
|
|
|
|
import org.schabi.newpipe.R;
|
|
|
|
import org.schabi.newpipe.database.stream.model.StreamEntity;
|
2021-07-27 19:31:58 +02:00
|
|
|
import org.schabi.newpipe.databinding.DialogEditTextBinding;
|
2018-04-12 23:46:03 +02:00
|
|
|
import org.schabi.newpipe.local.playlist.LocalPlaylistManager;
|
2021-10-03 14:25:50 +02:00
|
|
|
import org.schabi.newpipe.util.ThemeHelper;
|
2018-01-16 20:48:52 +01:00
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
2020-10-31 21:55:45 +01:00
|
|
|
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
|
2018-01-16 20:48:52 +01:00
|
|
|
|
2018-01-22 04:32:49 +01:00
|
|
|
public final class PlaylistCreationDialog extends PlaylistDialog {
|
2021-10-09 18:46:20 +02:00
|
|
|
public PlaylistCreationDialog(final List<StreamEntity> streamEntities) {
|
|
|
|
super(streamEntities);
|
2021-10-02 19:21:25 +02:00
|
|
|
}
|
|
|
|
|
2018-01-16 20:48:52 +01:00
|
|
|
/*//////////////////////////////////////////////////////////////////////////
|
2018-01-22 04:32:49 +01:00
|
|
|
// Dialog
|
2018-01-16 20:48:52 +01:00
|
|
|
//////////////////////////////////////////////////////////////////////////*/
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
@Override
|
2020-03-31 19:20:15 +02:00
|
|
|
public Dialog onCreateDialog(@Nullable final Bundle savedInstanceState) {
|
2021-10-09 18:46:20 +02:00
|
|
|
if (getStreamEntities() == null) {
|
2020-03-31 19:20:15 +02:00
|
|
|
return super.onCreateDialog(savedInstanceState);
|
|
|
|
}
|
2018-01-16 20:48:52 +01:00
|
|
|
|
2021-07-27 19:31:58 +02:00
|
|
|
final DialogEditTextBinding dialogBinding
|
|
|
|
= DialogEditTextBinding.inflate(getLayoutInflater());
|
2021-10-10 12:32:57 +02:00
|
|
|
dialogBinding.getRoot().getContext().setTheme(ThemeHelper.getDialogTheme(requireContext()));
|
2021-07-27 19:31:58 +02:00
|
|
|
dialogBinding.dialogEditText.setHint(R.string.name);
|
|
|
|
dialogBinding.dialogEditText.setInputType(InputType.TYPE_CLASS_TEXT);
|
2018-01-16 20:48:52 +01:00
|
|
|
|
2021-10-03 14:25:50 +02:00
|
|
|
final Builder dialogBuilder = new Builder(requireContext(),
|
|
|
|
ThemeHelper.getDialogTheme(requireContext()))
|
2018-01-16 20:48:52 +01:00
|
|
|
.setTitle(R.string.create_playlist)
|
2021-07-27 19:31:58 +02:00
|
|
|
.setView(dialogBinding.getRoot())
|
2018-01-16 20:48:52 +01:00
|
|
|
.setCancelable(true)
|
|
|
|
.setNegativeButton(R.string.cancel, null)
|
|
|
|
.setPositiveButton(R.string.create, (dialogInterface, i) -> {
|
2021-07-27 19:31:58 +02:00
|
|
|
final String name = dialogBinding.dialogEditText.getText().toString();
|
2018-01-16 20:48:52 +01:00
|
|
|
final LocalPlaylistManager playlistManager =
|
2021-04-01 21:46:29 +02:00
|
|
|
new LocalPlaylistManager(NewPipeDatabase.getInstance(requireContext()));
|
2018-01-18 20:02:06 +01:00
|
|
|
final Toast successToast = Toast.makeText(getActivity(),
|
2018-01-29 08:01:06 +01:00
|
|
|
R.string.playlist_creation_success,
|
2018-01-18 20:02:06 +01:00
|
|
|
Toast.LENGTH_SHORT);
|
2018-01-16 20:48:52 +01:00
|
|
|
|
2021-10-09 18:46:20 +02:00
|
|
|
playlistManager.createPlaylist(name, getStreamEntities())
|
2018-01-16 20:48:52 +01:00
|
|
|
.observeOn(AndroidSchedulers.mainThread())
|
2018-01-18 20:02:06 +01:00
|
|
|
.subscribe(longs -> successToast.show());
|
2018-01-16 20:48:52 +01:00
|
|
|
});
|
|
|
|
return dialogBuilder.create();
|
|
|
|
}
|
|
|
|
}
|