Use checkbox to remove partially watched videos
This commit is contained in:
parent
ec87d3e0bc
commit
c8e8f13e9f
1 changed files with 22 additions and 7 deletions
|
|
@ -22,6 +22,7 @@ import android.view.MenuInflater;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
|
import android.widget.LinearLayout;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
|
|
@ -54,6 +55,7 @@ import org.schabi.newpipe.local.BaseLocalListFragment;
|
||||||
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
import org.schabi.newpipe.local.history.HistoryRecordManager;
|
||||||
import org.schabi.newpipe.player.playqueue.PlayQueue;
|
import org.schabi.newpipe.player.playqueue.PlayQueue;
|
||||||
import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
|
import org.schabi.newpipe.player.playqueue.SinglePlayQueue;
|
||||||
|
import org.schabi.newpipe.util.DeviceUtils;
|
||||||
import org.schabi.newpipe.util.Localization;
|
import org.schabi.newpipe.util.Localization;
|
||||||
import org.schabi.newpipe.util.NavigationHelper;
|
import org.schabi.newpipe.util.NavigationHelper;
|
||||||
import org.schabi.newpipe.util.OnClickGesture;
|
import org.schabi.newpipe.util.OnClickGesture;
|
||||||
|
|
@ -365,16 +367,29 @@ public class LocalPlaylistFragment extends BaseLocalListFragment<List<PlaylistSt
|
||||||
createRenameDialog();
|
createRenameDialog();
|
||||||
} else if (item.getItemId() == R.id.menu_item_remove_watched) {
|
} else if (item.getItemId() == R.id.menu_item_remove_watched) {
|
||||||
if (!isRewritingPlaylist) {
|
if (!isRewritingPlaylist) {
|
||||||
|
final android.widget.CheckBox removePartiallyWatchedCheckbox =
|
||||||
|
new android.widget.CheckBox(requireContext());
|
||||||
|
removePartiallyWatchedCheckbox.setText(
|
||||||
|
R.string.remove_watched_popup_yes_and_partially_watched_videos);
|
||||||
|
|
||||||
|
// Wrap the checkbox in a container with dialog-like horizontal padding
|
||||||
|
// so it aligns with the dialog title/message on the start side.
|
||||||
|
final LinearLayout checkboxContainer = new LinearLayout(requireContext());
|
||||||
|
checkboxContainer.setOrientation(LinearLayout.VERTICAL);
|
||||||
|
final int padding = DeviceUtils.dpToPx(20, requireContext());
|
||||||
|
checkboxContainer.setPadding(padding, padding, padding, 0);
|
||||||
|
checkboxContainer.addView(removePartiallyWatchedCheckbox,
|
||||||
|
new android.widget.LinearLayout.LayoutParams(
|
||||||
|
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||||
|
ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||||
|
|
||||||
new AlertDialog.Builder(requireContext())
|
new AlertDialog.Builder(requireContext())
|
||||||
.setMessage(R.string.remove_watched_popup_warning)
|
.setMessage(R.string.remove_watched_popup_warning)
|
||||||
.setTitle(R.string.remove_watched_popup_title)
|
.setTitle(R.string.remove_watched_popup_title)
|
||||||
.setPositiveButton(R.string.ok, (d, id) ->
|
.setView(checkboxContainer)
|
||||||
removeWatchedStreams(false))
|
.setPositiveButton(R.string.yes, (d, id) ->
|
||||||
.setNeutralButton(
|
removeWatchedStreams(removePartiallyWatchedCheckbox.isChecked()))
|
||||||
R.string.remove_watched_popup_yes_and_partially_watched_videos,
|
.setNegativeButton(R.string.cancel, (d, id) -> d.cancel())
|
||||||
(d, id) -> removeWatchedStreams(true))
|
|
||||||
.setNegativeButton(R.string.cancel,
|
|
||||||
(d, id) -> d.cancel())
|
|
||||||
.show();
|
.show();
|
||||||
}
|
}
|
||||||
} else if (item.getItemId() == R.id.menu_item_remove_duplicates) {
|
} else if (item.getItemId() == R.id.menu_item_remove_duplicates) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue