Skip to content
This repository has been archived by the owner on Mar 28, 2024. It is now read-only.

Commit

Permalink
Merge branch 'dev' of https://github.com/newhinton/NewPipe into newhi…
Browse files Browse the repository at this point in the history
…nton-dev
  • Loading branch information
OJ7 committed Dec 12, 2022
2 parents 0da8d00 + e84cac1 commit 4e361c7
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,9 @@ public final class VideoDetailFragment
private boolean showComments;
private boolean showRelatedItems;
private boolean showDescription;

private boolean ignoreQueue;

private String selectedTabTag;
@AttrRes @NonNull final List<Integer> tabIcons = new ArrayList<>();
@StringRes @NonNull final List<Integer> tabContentDescriptions = new ArrayList<>();
Expand Down Expand Up @@ -295,6 +298,10 @@ public void onCreate(final Bundle savedInstanceState) {
showComments = prefs.getBoolean(getString(R.string.show_comments_key), true);
showRelatedItems = prefs.getBoolean(getString(R.string.show_next_video_key), true);
showDescription = prefs.getBoolean(getString(R.string.show_description_key), true);
ignoreQueue = prefs.getBoolean(
getString(R.string.enable_ignore_backstack_key),
DeviceUtils.isTv(activity)
);
selectedTabTag = prefs.getString(
getString(R.string.stream_info_selected_tab_key), COMMENTS_TAB_TAG);
prefs.registerOnSharedPreferenceChangeListener(this);
Expand Down Expand Up @@ -794,6 +801,11 @@ public boolean onBackPressed() {
return true;
}

// when queue should be ignored, directly skip checks and let MainActivity handle everything
if (ignoreQueue) {
return false;
}

// If we have something in history of played items we replay it here
if (isPlayerAvailable()
&& player.getPlayQueue() != null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,16 @@
package org.schabi.newpipe.settings;

import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.Toast;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.preference.Preference;
import androidx.preference.PreferenceManager;
import androidx.preference.SwitchPreferenceCompat;

import org.schabi.newpipe.DownloaderImpl;
import org.schabi.newpipe.R;
Expand All @@ -15,6 +19,7 @@
import org.schabi.newpipe.error.ReCaptchaActivity;
import org.schabi.newpipe.error.UserAction;
import org.schabi.newpipe.local.history.HistoryRecordManager;
import org.schabi.newpipe.util.DeviceUtils;
import org.schabi.newpipe.util.InfoCache;

import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers;
Expand Down Expand Up @@ -54,6 +59,38 @@ public void onCreatePreferences(final Bundle savedInstanceState, final String ro
if (defaultPreferences.getString(getString(R.string.recaptcha_cookies_key), "").isEmpty()) {
clearCookiePref.setEnabled(false);
}

final String backstackPreferenceKey = getString(R.string.enable_ignore_backstack_key);
final SwitchPreferenceCompat backstackPref = findPreference(backstackPreferenceKey);
final Activity activity = this.getActivity();

if (activity != null) {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(activity);

final boolean retrievedValue = prefs.getBoolean(
getString(R.string.enable_ignore_backstack_key),
DeviceUtils.isTv(activity)
);

// Get the value stored. (Default does not matter)
// If the retrieved value matches the default value, use the default.
// If not, use the retrieved
// This works because now when we call setChecked, and save it,
// we either store the proper changed value, or the default value.
// However, if the default value is equal to the set-value, we don't actually
// change anything even if we "override" the value
// Drawback: As soon as the settings are opened, the value is set&saved.
// No "default" anymore.
// The default is applied exactly once, and then stored
boolean valueToSet = DeviceUtils.isTv(activity);
if (retrievedValue != valueToSet) {
valueToSet = retrievedValue;
}

if (backstackPref != null) {
backstackPref.setChecked(valueToSet);
}
}
}

@Override
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -781,6 +781,8 @@
<string name="feed_toggle_show_future_items">Show future items</string>
<string name="feed_toggle_hide_future_items">Hide future items</string>
<string name="sort">Sort</string>
<string name="enable_ignore_backstack_key">Ignore Playlist Backstack</string>
<string name="enable_ignore_backstack_title">Playlist Backstack</string>
<!-- SponsorBlock -->
<string name="sponsor_block">SponsorBlock</string>
<string name="sponsor_block_home_page_title">View Website</string>
Expand Down
8 changes: 8 additions & 0 deletions app/src/main/res/xml/history_settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@
app:singleLineTitle="false"
app:iconSpaceReserved="false" />

<SwitchPreferenceCompat
android:key="@string/enable_ignore_backstack_key"
android:summary="@string/enable_ignore_backstack_key"
android:title="@string/enable_ignore_backstack_title"
app:singleLineTitle="false"
app:iconSpaceReserved="false" />


<PreferenceCategory
android:layout="@layout/settings_category_header_layout"
android:title="@string/settings_category_clear_data_title"
Expand Down

0 comments on commit 4e361c7

Please sign in to comment.