|
54 | 54 | import androidx.appcompat.widget.Toolbar; |
55 | 55 | import androidx.coordinatorlayout.widget.CoordinatorLayout; |
56 | 56 | import androidx.core.content.ContextCompat; |
| 57 | +import androidx.fragment.app.Fragment; |
57 | 58 | import androidx.preference.PreferenceManager; |
58 | 59 |
|
59 | 60 | import com.google.android.exoplayer2.PlaybackException; |
|
89 | 90 | import org.schabi.newpipe.ktx.AnimationType; |
90 | 91 | import org.schabi.newpipe.local.dialog.PlaylistDialog; |
91 | 92 | import org.schabi.newpipe.local.history.HistoryRecordManager; |
| 93 | +import org.schabi.newpipe.local.playlist.LocalPlaylistFragment; |
92 | 94 | import org.schabi.newpipe.player.Player; |
93 | 95 | import org.schabi.newpipe.player.PlayerService; |
94 | 96 | import org.schabi.newpipe.player.PlayerType; |
@@ -472,10 +474,21 @@ private void setOnClickListeners() { |
472 | 474 |
|
473 | 475 | binding.detailControlsBackground.setOnClickListener(v -> openBackgroundPlayer(false)); |
474 | 476 | binding.detailControlsPopup.setOnClickListener(v -> openPopupPlayer(false)); |
475 | | - binding.detailControlsPlaylistAppend.setOnClickListener(makeOnClickListener(info -> |
| 477 | + binding.detailControlsPlaylistAppend.setOnClickListener(makeOnClickListener(info -> { |
| 478 | + if (getFM() != null && currentInfo != null) { |
| 479 | + final Fragment fragment = getParentFragmentManager(). |
| 480 | + findFragmentById(R.id.fragment_holder); |
| 481 | + |
| 482 | + // commit previous pending changes to database |
| 483 | + if (fragment instanceof LocalPlaylistFragment) { |
| 484 | + ((LocalPlaylistFragment) fragment).commitChanges(); |
| 485 | + } |
| 486 | + |
476 | 487 | disposables.add(PlaylistDialog.createCorrespondingDialog(requireContext(), |
477 | 488 | List.of(new StreamEntity(info)), |
478 | | - dialog -> dialog.show(getParentFragmentManager(), TAG))))); |
| 489 | + dialog -> dialog.show(getParentFragmentManager(), TAG))); |
| 490 | + } |
| 491 | + })); |
479 | 492 | binding.detailControlsDownload.setOnClickListener(v -> { |
480 | 493 | if (PermissionHelper.checkStoragePermissions(activity, |
481 | 494 | PermissionHelper.DOWNLOAD_DIALOG_REQUEST_CODE)) { |
|
0 commit comments