From b1c310ce22eef3a16ae00c44612edbeb54780311 Mon Sep 17 00:00:00 2001 From: Vincent Nagel Date: Sun, 15 Mar 2020 16:53:29 -0500 Subject: [PATCH 1/9] ageRestrictedContent first draft Cookie updated whenever ageRestrictedContent setting is changed or service is changed. Right now there is only a cookie for youtube, but cookies for other services could be added in the future. Problems with this approach: Even when the service is set to youtube, the downloader doesn't only request youtube urls e.g. it also sends reqeusts to i.ytimg.com, suggestqueries.google.com, and yt3.ggpht.com. The ageRestrictedContent cookie is not normally sent when sending requests to these other urls, so doing so might have unknown effects. --- .../java/org/schabi/newpipe/DebugApp.java | 1 + app/src/main/java/org/schabi/newpipe/App.java | 3 +- .../org/schabi/newpipe/DownloaderImpl.java | 52 +++++++++++++++---- .../java/org/schabi/newpipe/MainActivity.java | 1 + .../org/schabi/newpipe/ReCaptchaActivity.java | 3 +- .../settings/ContentSettingsFragment.java | 11 ++++ .../org/schabi/newpipe/util/CookieUtils.java | 32 ++++++++++++ 7 files changed, 92 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/org/schabi/newpipe/util/CookieUtils.java diff --git a/app/src/debug/java/org/schabi/newpipe/DebugApp.java b/app/src/debug/java/org/schabi/newpipe/DebugApp.java index 6bcf71035..a378911c6 100644 --- a/app/src/debug/java/org/schabi/newpipe/DebugApp.java +++ b/app/src/debug/java/org/schabi/newpipe/DebugApp.java @@ -43,6 +43,7 @@ public class DebugApp extends App { DownloaderImpl downloader = DownloaderImpl.init(new OkHttpClient.Builder() .addNetworkInterceptor(new StethoInterceptor())); setCookiesToDownloader(downloader); + downloader.updateAgeRestrictedContentCookies(getApplicationContext()); return downloader; } diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index 4d05c69cc..167f459f0 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -136,7 +136,8 @@ public class App extends Application { final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences( getApplicationContext()); final String key = getApplicationContext().getString(R.string.recaptcha_cookies_key); - downloader.setCookies(prefs.getString(key, "")); + downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, "")); + downloader.updateAgeRestrictedContentCookies(getApplicationContext()); } private void configureRxJavaErrorHandler() { diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index ed517f160..ac6e9ef59 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -1,15 +1,20 @@ package org.schabi.newpipe; +import android.content.Context; import android.os.Build; -import android.text.TextUtils; +import android.preference.PreferenceManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import org.schabi.newpipe.extractor.ServiceList; import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Request; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; +import org.schabi.newpipe.util.CookieUtils; +import org.schabi.newpipe.util.InfoCache; +import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.TLSSocketFactoryCompat; import java.io.IOException; @@ -20,6 +25,7 @@ import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; @@ -41,8 +47,11 @@ public final class DownloaderImpl extends Downloader { public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0"; + public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY = "youtube_age_restricted_content_cookie_key"; + public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE = "PREF=f2=8000000"; + private static DownloaderImpl instance; - private String mCookies; + private Map mCookies; private OkHttpClient client; private DownloaderImpl(final OkHttpClient.Builder builder) { @@ -54,6 +63,7 @@ public final class DownloaderImpl extends Downloader { // .cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"), // 16 * 1024 * 1024)) .build(); + this.mCookies = new HashMap<>(); } /** @@ -122,11 +132,35 @@ public final class DownloaderImpl extends Downloader { } public String getCookies() { - return mCookies; + return CookieUtils.concatCookies(mCookies.values()); } - public void setCookies(final String cookies) { - mCookies = cookies; + public String getCookie(final String key){ + return mCookies.get(key); + } + + public void setCookie(final String key, final String value){ + mCookies.put(key, value); + } + + public void removeCookie(final String key){ + mCookies.remove(key); + } + + public void updateAgeRestrictedContentCookies(Context context){ + String showAgeRestrictedContentKey = context.getString(R.string.show_age_restricted_content); + int currentServiceId = ServiceHelper.getSelectedServiceId(context); + boolean showAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(context).getBoolean(showAgeRestrictedContentKey, false); + updateAgeRestrictedContentCookies(currentServiceId, showAgeRestrictedContent); + } + + public void updateAgeRestrictedContentCookies(int currentServiceId, boolean showAgeRestrictedContent) { + if (currentServiceId == ServiceList.YouTube.getServiceId() && !showAgeRestrictedContent) { + setCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY, YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE); + } else { + removeCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY); + } + InfoCache.getInstance().clearCache(); } /** @@ -152,8 +186,8 @@ public final class DownloaderImpl extends Downloader { .method("GET", null).url(siteUrl) .addHeader("User-Agent", USER_AGENT); - if (!TextUtils.isEmpty(mCookies)) { - requestBuilder.addHeader("Cookie", mCookies); + if (!mCookies.isEmpty()) { + requestBuilder.addHeader("Cookie", getCookies()); } final okhttp3.Request request = requestBuilder.build(); @@ -192,8 +226,8 @@ public final class DownloaderImpl extends Downloader { .method(httpMethod, requestBody).url(url) .addHeader("User-Agent", USER_AGENT); - if (!TextUtils.isEmpty(mCookies)) { - requestBuilder.addHeader("Cookie", mCookies); + if (!mCookies.isEmpty()) { + requestBuilder.addHeader("Cookie", getCookies()); } for (Map.Entry> pair : headers.entrySet()) { diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index e6269dd5f..b36cdadb4 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -244,6 +244,7 @@ public class MainActivity extends AppCompatActivity { ServiceHelper.setSelectedServiceId(this, item.getItemId()); drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)) .setChecked(true); + DownloaderImpl.getInstance().updateAgeRestrictedContentCookies(getApplicationContext()); } private void tabSelected(final MenuItem item) throws ExtractionException { diff --git a/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java b/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java index 49fb6b179..40ea4fd58 100644 --- a/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java +++ b/app/src/main/java/org/schabi/newpipe/ReCaptchaActivity.java @@ -51,6 +51,7 @@ public class ReCaptchaActivity extends AppCompatActivity { public static final String RECAPTCHA_URL_EXTRA = "recaptcha_url_extra"; public static final String TAG = ReCaptchaActivity.class.toString(); public static final String YT_URL = "https://www.youtube.com"; + public static final String RECAPTCHA_COOKIES_KEY = "recaptcha_cookies"; private WebView webView; private String foundCookies = ""; @@ -168,7 +169,7 @@ public class ReCaptchaActivity extends AppCompatActivity { prefs.edit().putString(key, foundCookies).apply(); // give cookies to Downloader class - DownloaderImpl.getInstance().setCookies(foundCookies); + DownloaderImpl.getInstance().setCookie(RECAPTCHA_COOKIES_KEY, foundCookies); setResult(RESULT_OK); } diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index bc2765387..1b0f7090c 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -2,6 +2,7 @@ package org.schabi.newpipe.settings; import android.app.Activity; import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.content.SharedPreferences; @@ -17,6 +18,7 @@ import androidx.preference.Preference; import com.nononsenseapps.filepicker.Utils; import com.nostra13.universalimageloader.core.ImageLoader; +import org.schabi.newpipe.DownloaderImpl; import org.schabi.newpipe.NewPipeDatabase; import org.schabi.newpipe.R; import org.schabi.newpipe.extractor.NewPipe; @@ -56,6 +58,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { private File newpipeSettings; private String thumbnailLoadToggleKey; + private String showAgeRestrictedContentKey; private Localization initialSelectedLocalization; private ContentCountry initialSelectedContentCountry; @@ -65,6 +68,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); thumbnailLoadToggleKey = getString(R.string.download_thumbnail_key); + showAgeRestrictedContentKey = getString(R.string.show_age_restricted_content); initialSelectedLocalization = org.schabi.newpipe.util.Localization .getPreferredLocalization(requireContext()); @@ -86,6 +90,13 @@ public class ContentSettingsFragment extends BasePreferenceFragment { Toast.LENGTH_SHORT).show(); } + if (preference.getKey().equals(showAgeRestrictedContentKey)) { + Context context = getContext(); + if(context != null){ + DownloaderImpl.getInstance().updateAgeRestrictedContentCookies(context); + } + } + return super.onPreferenceTreeClick(preference); } diff --git a/app/src/main/java/org/schabi/newpipe/util/CookieUtils.java b/app/src/main/java/org/schabi/newpipe/util/CookieUtils.java new file mode 100644 index 000000000..e10b83df6 --- /dev/null +++ b/app/src/main/java/org/schabi/newpipe/util/CookieUtils.java @@ -0,0 +1,32 @@ +package org.schabi.newpipe.util; + +import android.content.Context; +import android.preference.PreferenceManager; + +import org.jsoup.helper.StringUtil; +import org.schabi.newpipe.DownloaderImpl; +import org.schabi.newpipe.R; + +import java.util.Arrays; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; + +public class CookieUtils { + private CookieUtils() { + } + + public static String concatCookies(Collection cookieStrings) { + Set cookieSet = new HashSet<>(); + for (String cookies : cookieStrings) { + cookieSet.addAll(splitCookies(cookies)); + } + return StringUtil.join(cookieSet, "; ").trim(); + } + + public static Set splitCookies(String cookies) { + return new HashSet<>(Arrays.asList(cookies.split("; *"))); + } +} From bd1c43cd3725815a236eefb51d013458076cb4af Mon Sep 17 00:00:00 2001 From: Vincent Nagel Date: Sun, 15 Mar 2020 20:04:34 -0500 Subject: [PATCH 2/9] ageRestrictedContent cookie only sent for youtube Now the age restricted content cookie is only sent when sending a request to youtube. There's no need to remove the cookie when the service changes because whether to add the cookie is determined by looking at the url the request is being sent to. --- .../org/schabi/newpipe/DownloaderImpl.java | 42 ++++++++++++------- .../java/org/schabi/newpipe/MainActivity.java | 2 +- .../settings/ContentSettingsFragment.java | 2 +- 3 files changed, 29 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index ac6e9ef59..9f1722fb3 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -7,14 +7,12 @@ import android.preference.PreferenceManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import org.schabi.newpipe.extractor.ServiceList; import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Request; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; import org.schabi.newpipe.util.CookieUtils; import org.schabi.newpipe.util.InfoCache; -import org.schabi.newpipe.util.ServiceHelper; import org.schabi.newpipe.util.TLSSocketFactoryCompat; import java.io.IOException; @@ -49,6 +47,7 @@ public final class DownloaderImpl extends Downloader { public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY = "youtube_age_restricted_content_cookie_key"; public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE = "PREF=f2=8000000"; + public static final String YOUTUBE_DOMAIN = "youtube.com"; private static DownloaderImpl instance; private Map mCookies; @@ -131,31 +130,42 @@ public final class DownloaderImpl extends Downloader { } } - public String getCookies() { - return CookieUtils.concatCookies(mCookies.values()); + public String getCookies(final String url) { + List resultCookies = new ArrayList<>(); + if (url.contains(YOUTUBE_DOMAIN)) { + String youtubeCookie = getCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY); + if (youtubeCookie != null) { + resultCookies.add(youtubeCookie); + } + } + // Recaptcha cookie is always added TODO: not sure if this is necessary + String recaptchaCookie = getCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY); + if (recaptchaCookie != null) { + resultCookies.add(recaptchaCookie); + } + return CookieUtils.concatCookies(resultCookies); } public String getCookie(final String key){ return mCookies.get(key); } - public void setCookie(final String key, final String value){ - mCookies.put(key, value); + public void setCookie(final String key, final String cookie){ + mCookies.put(key, cookie); } public void removeCookie(final String key){ mCookies.remove(key); } - public void updateAgeRestrictedContentCookies(Context context){ + public void updateAgeRestrictedContentCookies(final Context context){ String showAgeRestrictedContentKey = context.getString(R.string.show_age_restricted_content); - int currentServiceId = ServiceHelper.getSelectedServiceId(context); boolean showAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(context).getBoolean(showAgeRestrictedContentKey, false); - updateAgeRestrictedContentCookies(currentServiceId, showAgeRestrictedContent); + updateAgeRestrictedContentCookies(showAgeRestrictedContent); } - public void updateAgeRestrictedContentCookies(int currentServiceId, boolean showAgeRestrictedContent) { - if (currentServiceId == ServiceList.YouTube.getServiceId() && !showAgeRestrictedContent) { + public void updateAgeRestrictedContentCookies(boolean showAgeRestrictedContent) { + if (!showAgeRestrictedContent) { setCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY, YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE); } else { removeCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY); @@ -186,8 +196,9 @@ public final class DownloaderImpl extends Downloader { .method("GET", null).url(siteUrl) .addHeader("User-Agent", USER_AGENT); - if (!mCookies.isEmpty()) { - requestBuilder.addHeader("Cookie", getCookies()); + String cookies = getCookies(siteUrl); + if (!cookies.isEmpty()) { + requestBuilder.addHeader("Cookie", cookies); } final okhttp3.Request request = requestBuilder.build(); @@ -226,8 +237,9 @@ public final class DownloaderImpl extends Downloader { .method(httpMethod, requestBody).url(url) .addHeader("User-Agent", USER_AGENT); - if (!mCookies.isEmpty()) { - requestBuilder.addHeader("Cookie", getCookies()); + String cookies = getCookies(url); + if (!cookies.isEmpty()) { + requestBuilder.addHeader("Cookie", cookies); } for (Map.Entry> pair : headers.entrySet()) { diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index b36cdadb4..4b3dab0c9 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -242,9 +242,9 @@ public class MainActivity extends AppCompatActivity { drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)) .setChecked(false); ServiceHelper.setSelectedServiceId(this, item.getItemId()); + drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)).setChecked(true); drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)) .setChecked(true); - DownloaderImpl.getInstance().updateAgeRestrictedContentCookies(getApplicationContext()); } private void tabSelected(final MenuItem item) throws ExtractionException { diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index 1b0f7090c..79a1fe72a 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -92,7 +92,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { if (preference.getKey().equals(showAgeRestrictedContentKey)) { Context context = getContext(); - if(context != null){ + if (context != null) { DownloaderImpl.getInstance().updateAgeRestrictedContentCookies(context); } } From 5ba58e1ff5a8a4654534a55525c3ff7939d7a4da Mon Sep 17 00:00:00 2001 From: Vincent Nagel Date: Sun, 15 Mar 2020 22:27:44 -0500 Subject: [PATCH 3/9] setupTabs() if ageRestrictedContent pref changed --- .../org/schabi/newpipe/fragments/MainFragment.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java index 52c1afb93..929d573b0 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java @@ -2,6 +2,7 @@ package org.schabi.newpipe.fragments; import android.content.Context; import android.os.Bundle; +import android.preference.PreferenceManager; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; @@ -45,6 +46,9 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte private boolean hasTabsChanged = false; + private boolean previousShowAgeRestrictedContent; + private String showAgeRestrictedContentKey; + /*////////////////////////////////////////////////////////////////////////// // Fragment's LifeCycle //////////////////////////////////////////////////////////////////////////*/ @@ -53,7 +57,6 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); - tabsManager = TabsManager.getManager(activity); tabsManager.setSavedTabsListener(() -> { if (DEBUG) { @@ -66,6 +69,9 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte hasTabsChanged = true; } }); + + showAgeRestrictedContentKey = getString(R.string.show_age_restricted_content); + previousShowAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(getContext()).getBoolean(showAgeRestrictedContentKey, false); } @Override @@ -92,7 +98,11 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte public void onResume() { super.onResume(); - if (hasTabsChanged) { + boolean showAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(getContext()).getBoolean(showAgeRestrictedContentKey, false); + if (previousShowAgeRestrictedContent != showAgeRestrictedContent) { + previousShowAgeRestrictedContent = showAgeRestrictedContent; + setupTabs(); + } else if (hasTabsChanged) { setupTabs(); } } From 51eb5946955fccfac1166f3124d7cb1c87e52db4 Mon Sep 17 00:00:00 2001 From: Vincent Nagel Date: Sun, 15 Mar 2020 23:17:13 -0500 Subject: [PATCH 4/9] added logging when context null in onPrefTreeClick --- .../org/schabi/newpipe/settings/ContentSettingsFragment.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index 79a1fe72a..c47c47ed1 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -94,6 +94,8 @@ public class ContentSettingsFragment extends BasePreferenceFragment { Context context = getContext(); if (context != null) { DownloaderImpl.getInstance().updateAgeRestrictedContentCookies(context); + } else { + Log.w(TAG, "onPreferenceTreeClick: null context"); } } From b50a01878b62159b24873f485141cc437b442892 Mon Sep 17 00:00:00 2001 From: Vincent Nagel Date: Sat, 11 Apr 2020 16:21:52 -0500 Subject: [PATCH 5/9] fix checkstyle errors --- .../org/schabi/newpipe/DownloaderImpl.java | 22 +++++++++++-------- .../newpipe/fragments/MainFragment.java | 8 +++++-- .../org/schabi/newpipe/util/CookieUtils.java | 13 +++-------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 9f1722fb3..1abdeb504 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -45,7 +45,8 @@ public final class DownloaderImpl extends Downloader { public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0"; - public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY = "youtube_age_restricted_content_cookie_key"; + public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY = + "youtube_age_restricted_content_cookie_key"; public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE = "PREF=f2=8000000"; public static final String YOUTUBE_DOMAIN = "youtube.com"; @@ -146,27 +147,30 @@ public final class DownloaderImpl extends Downloader { return CookieUtils.concatCookies(resultCookies); } - public String getCookie(final String key){ + public String getCookie(final String key) { return mCookies.get(key); } - public void setCookie(final String key, final String cookie){ + public void setCookie(final String key, final String cookie) { mCookies.put(key, cookie); } - public void removeCookie(final String key){ + public void removeCookie(final String key) { mCookies.remove(key); } - public void updateAgeRestrictedContentCookies(final Context context){ - String showAgeRestrictedContentKey = context.getString(R.string.show_age_restricted_content); - boolean showAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(context).getBoolean(showAgeRestrictedContentKey, false); + public void updateAgeRestrictedContentCookies(final Context context) { + String showAgeRestrictedContentKey = + context.getString(R.string.show_age_restricted_content); + boolean showAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(showAgeRestrictedContentKey, false); updateAgeRestrictedContentCookies(showAgeRestrictedContent); } - public void updateAgeRestrictedContentCookies(boolean showAgeRestrictedContent) { + public void updateAgeRestrictedContentCookies(final boolean showAgeRestrictedContent) { if (!showAgeRestrictedContent) { - setCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY, YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE); + setCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY, + YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE); } else { removeCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY); } diff --git a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java index 929d573b0..9cb21f4e7 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java @@ -71,7 +71,9 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte }); showAgeRestrictedContentKey = getString(R.string.show_age_restricted_content); - previousShowAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(getContext()).getBoolean(showAgeRestrictedContentKey, false); + previousShowAgeRestrictedContent = + PreferenceManager.getDefaultSharedPreferences(getContext()) + .getBoolean(showAgeRestrictedContentKey, false); } @Override @@ -98,7 +100,9 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte public void onResume() { super.onResume(); - boolean showAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(getContext()).getBoolean(showAgeRestrictedContentKey, false); + boolean showAgeRestrictedContent = + PreferenceManager.getDefaultSharedPreferences(getContext()) + .getBoolean(showAgeRestrictedContentKey, false); if (previousShowAgeRestrictedContent != showAgeRestrictedContent) { previousShowAgeRestrictedContent = showAgeRestrictedContent; setupTabs(); diff --git a/app/src/main/java/org/schabi/newpipe/util/CookieUtils.java b/app/src/main/java/org/schabi/newpipe/util/CookieUtils.java index e10b83df6..4575e7017 100644 --- a/app/src/main/java/org/schabi/newpipe/util/CookieUtils.java +++ b/app/src/main/java/org/schabi/newpipe/util/CookieUtils.java @@ -1,24 +1,17 @@ package org.schabi.newpipe.util; -import android.content.Context; -import android.preference.PreferenceManager; - import org.jsoup.helper.StringUtil; -import org.schabi.newpipe.DownloaderImpl; -import org.schabi.newpipe.R; import java.util.Arrays; import java.util.Collection; -import java.util.HashMap; import java.util.HashSet; -import java.util.Map; import java.util.Set; -public class CookieUtils { +public final class CookieUtils { private CookieUtils() { } - public static String concatCookies(Collection cookieStrings) { + public static String concatCookies(final Collection cookieStrings) { Set cookieSet = new HashSet<>(); for (String cookies : cookieStrings) { cookieSet.addAll(splitCookies(cookies)); @@ -26,7 +19,7 @@ public class CookieUtils { return StringUtil.join(cookieSet, "; ").trim(); } - public static Set splitCookies(String cookies) { + public static Set splitCookies(final String cookies) { return new HashSet<>(Arrays.asList(cookies.split("; *"))); } } From 1adcaf6ac0e69447c2c46eba8a71903a8ab7bf9b Mon Sep 17 00:00:00 2001 From: Vincent Nagel Date: Sat, 11 Apr 2020 16:29:59 -0500 Subject: [PATCH 6/9] remove duplicate line --- app/src/main/java/org/schabi/newpipe/MainActivity.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java index 4b3dab0c9..e6269dd5f 100644 --- a/app/src/main/java/org/schabi/newpipe/MainActivity.java +++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java @@ -242,7 +242,6 @@ public class MainActivity extends AppCompatActivity { drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)) .setChecked(false); ServiceHelper.setSelectedServiceId(this, item.getItemId()); - drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)).setChecked(true); drawerItems.getMenu().getItem(ServiceHelper.getSelectedServiceId(this)) .setChecked(true); } From eed9fe26841aecec5c0b137943ad65ea045956ee Mon Sep 17 00:00:00 2001 From: Vincent Nagel Date: Sat, 11 Apr 2020 17:26:16 -0500 Subject: [PATCH 7/9] renamed to "restricted mode" --- .../java/org/schabi/newpipe/DebugApp.java | 2 +- app/src/main/java/org/schabi/newpipe/App.java | 2 +- .../org/schabi/newpipe/DownloaderImpl.java | 31 +++++++++---------- .../newpipe/fragments/MainFragment.java | 18 +++++------ .../settings/ContentSettingsFragment.java | 8 ++--- app/src/main/res/values/settings_keys.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/content_settings.xml | 6 ++++ 8 files changed, 38 insertions(+), 31 deletions(-) diff --git a/app/src/debug/java/org/schabi/newpipe/DebugApp.java b/app/src/debug/java/org/schabi/newpipe/DebugApp.java index a378911c6..1dc6cd03b 100644 --- a/app/src/debug/java/org/schabi/newpipe/DebugApp.java +++ b/app/src/debug/java/org/schabi/newpipe/DebugApp.java @@ -43,7 +43,7 @@ public class DebugApp extends App { DownloaderImpl downloader = DownloaderImpl.init(new OkHttpClient.Builder() .addNetworkInterceptor(new StethoInterceptor())); setCookiesToDownloader(downloader); - downloader.updateAgeRestrictedContentCookies(getApplicationContext()); + downloader.updateRestrictedModeCookies(getApplicationContext()); return downloader; } diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index 167f459f0..77cfcf0f5 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -137,7 +137,7 @@ public class App extends Application { getApplicationContext()); final String key = getApplicationContext().getString(R.string.recaptcha_cookies_key); downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, "")); - downloader.updateAgeRestrictedContentCookies(getApplicationContext()); + downloader.updateRestrictedModeCookies(getApplicationContext()); } private void configureRxJavaErrorHandler() { diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 1abdeb504..66292e38c 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -44,10 +44,9 @@ import static org.schabi.newpipe.MainActivity.DEBUG; public final class DownloaderImpl extends Downloader { public static final String USER_AGENT = "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Firefox/68.0"; - - public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY = - "youtube_age_restricted_content_cookie_key"; - public static final String YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE = "PREF=f2=8000000"; + public static final String YOUTUBE_RESTRICTED_MODE_COOKIE_KEY + = "youtube_restricted_mode_key"; + public static final String YOUTUBE_RESTRICTED_MODE_COOKIE = "PREF=f2=8000000"; public static final String YOUTUBE_DOMAIN = "youtube.com"; private static DownloaderImpl instance; @@ -134,7 +133,7 @@ public final class DownloaderImpl extends Downloader { public String getCookies(final String url) { List resultCookies = new ArrayList<>(); if (url.contains(YOUTUBE_DOMAIN)) { - String youtubeCookie = getCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY); + String youtubeCookie = getCookie(YOUTUBE_RESTRICTED_MODE_COOKIE_KEY); if (youtubeCookie != null) { resultCookies.add(youtubeCookie); } @@ -159,20 +158,20 @@ public final class DownloaderImpl extends Downloader { mCookies.remove(key); } - public void updateAgeRestrictedContentCookies(final Context context) { - String showAgeRestrictedContentKey = - context.getString(R.string.show_age_restricted_content); - boolean showAgeRestrictedContent = PreferenceManager.getDefaultSharedPreferences(context) - .getBoolean(showAgeRestrictedContentKey, false); - updateAgeRestrictedContentCookies(showAgeRestrictedContent); + public void updateRestrictedModeCookies(final Context context) { + String restrictedModeEnabledKey = + context.getString(R.string.restricted_mode_enabled); + boolean restrictedModeEnabled = PreferenceManager.getDefaultSharedPreferences(context) + .getBoolean(restrictedModeEnabledKey, false); + updateRestrictedModeCookies(restrictedModeEnabled); } - public void updateAgeRestrictedContentCookies(final boolean showAgeRestrictedContent) { - if (!showAgeRestrictedContent) { - setCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY, - YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE); + public void updateRestrictedModeCookies(final boolean restrictedModeEnabled) { + if (restrictedModeEnabled) { + setCookie(YOUTUBE_RESTRICTED_MODE_COOKIE_KEY, + YOUTUBE_RESTRICTED_MODE_COOKIE); } else { - removeCookie(YOUTUBE_AGE_RESTRICTED_CONTENT_COOKIE_KEY); + removeCookie(YOUTUBE_RESTRICTED_MODE_COOKIE_KEY); } InfoCache.getInstance().clearCache(); } diff --git a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java index 9cb21f4e7..50ed6b024 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java @@ -46,8 +46,8 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte private boolean hasTabsChanged = false; - private boolean previousShowAgeRestrictedContent; - private String showAgeRestrictedContentKey; + private boolean previousRestrictedModeEnabled; + private String restrictedModeEnabledKey; /*////////////////////////////////////////////////////////////////////////// // Fragment's LifeCycle @@ -70,10 +70,10 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte } }); - showAgeRestrictedContentKey = getString(R.string.show_age_restricted_content); - previousShowAgeRestrictedContent = + restrictedModeEnabledKey = getString(R.string.restricted_mode_enabled); + previousRestrictedModeEnabled = PreferenceManager.getDefaultSharedPreferences(getContext()) - .getBoolean(showAgeRestrictedContentKey, false); + .getBoolean(restrictedModeEnabledKey, false); } @Override @@ -100,11 +100,11 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte public void onResume() { super.onResume(); - boolean showAgeRestrictedContent = + boolean restrictedModeEnabled = PreferenceManager.getDefaultSharedPreferences(getContext()) - .getBoolean(showAgeRestrictedContentKey, false); - if (previousShowAgeRestrictedContent != showAgeRestrictedContent) { - previousShowAgeRestrictedContent = showAgeRestrictedContent; + .getBoolean(restrictedModeEnabledKey, false); + if (previousRestrictedModeEnabled != restrictedModeEnabled) { + previousRestrictedModeEnabled = restrictedModeEnabled; setupTabs(); } else if (hasTabsChanged) { setupTabs(); diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index c47c47ed1..e577d2ac8 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -58,7 +58,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { private File newpipeSettings; private String thumbnailLoadToggleKey; - private String showAgeRestrictedContentKey; + private String restrictedModeEnabledKey; private Localization initialSelectedLocalization; private ContentCountry initialSelectedContentCountry; @@ -68,7 +68,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); thumbnailLoadToggleKey = getString(R.string.download_thumbnail_key); - showAgeRestrictedContentKey = getString(R.string.show_age_restricted_content); + restrictedModeEnabledKey = getString(R.string.restricted_mode_enabled); initialSelectedLocalization = org.schabi.newpipe.util.Localization .getPreferredLocalization(requireContext()); @@ -90,10 +90,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment { Toast.LENGTH_SHORT).show(); } - if (preference.getKey().equals(showAgeRestrictedContentKey)) { + if (preference.getKey().equals(restrictedModeEnabledKey)) { Context context = getContext(); if (context != null) { - DownloaderImpl.getInstance().updateAgeRestrictedContentCookies(context); + DownloaderImpl.getInstance().updateRestrictedModeCookies(context); } else { Log.w(TAG, "onPreferenceTreeClick: null context"); } diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index ca8528fef..0a0d2c70a 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -170,6 +170,7 @@ peertube_instance_list content_country show_age_restricted_content + restricted_mode_enabled use_tor enable_search_history enable_watch_history diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f5c993dda..125d411c2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -137,6 +137,7 @@ Content Age restricted content Show age restricted video. Future changes are possible from the settings. + Restricted mode This video is age restricted.\n\nIf you want to view it, enable \"Age restricted content\" in the settings. Live Downloads diff --git a/app/src/main/res/xml/content_settings.xml b/app/src/main/res/xml/content_settings.xml index e2fbc081d..e90520229 100644 --- a/app/src/main/res/xml/content_settings.xml +++ b/app/src/main/res/xml/content_settings.xml @@ -51,6 +51,12 @@ android:key="@string/show_age_restricted_content" android:title="@string/show_age_restricted_content_title"/> + + Date: Sun, 12 Apr 2020 15:13:04 -0500 Subject: [PATCH 8/9] rename setting to "YouTube restricted mode" --- .../java/org/schabi/newpipe/DebugApp.java | 2 +- app/src/main/java/org/schabi/newpipe/App.java | 2 +- .../org/schabi/newpipe/DownloaderImpl.java | 10 +++++----- .../schabi/newpipe/fragments/MainFragment.java | 18 +++++++++--------- .../settings/ContentSettingsFragment.java | 8 ++++---- app/src/main/res/values/settings_keys.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/xml/content_settings.xml | 4 ++-- 8 files changed, 24 insertions(+), 24 deletions(-) diff --git a/app/src/debug/java/org/schabi/newpipe/DebugApp.java b/app/src/debug/java/org/schabi/newpipe/DebugApp.java index 1dc6cd03b..8eb1a1f7d 100644 --- a/app/src/debug/java/org/schabi/newpipe/DebugApp.java +++ b/app/src/debug/java/org/schabi/newpipe/DebugApp.java @@ -43,7 +43,7 @@ public class DebugApp extends App { DownloaderImpl downloader = DownloaderImpl.init(new OkHttpClient.Builder() .addNetworkInterceptor(new StethoInterceptor())); setCookiesToDownloader(downloader); - downloader.updateRestrictedModeCookies(getApplicationContext()); + downloader.updateYoutubeRestrictedModeCookies(getApplicationContext()); return downloader; } diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index 77cfcf0f5..8a4ed0607 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -137,7 +137,7 @@ public class App extends Application { getApplicationContext()); final String key = getApplicationContext().getString(R.string.recaptcha_cookies_key); downloader.setCookie(ReCaptchaActivity.RECAPTCHA_COOKIES_KEY, prefs.getString(key, "")); - downloader.updateRestrictedModeCookies(getApplicationContext()); + downloader.updateYoutubeRestrictedModeCookies(getApplicationContext()); } private void configureRxJavaErrorHandler() { diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java index 66292e38c..95d3c2b7c 100644 --- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java +++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java @@ -158,16 +158,16 @@ public final class DownloaderImpl extends Downloader { mCookies.remove(key); } - public void updateRestrictedModeCookies(final Context context) { + public void updateYoutubeRestrictedModeCookies(final Context context) { String restrictedModeEnabledKey = - context.getString(R.string.restricted_mode_enabled); + context.getString(R.string.youtube_restricted_mode_enabled); boolean restrictedModeEnabled = PreferenceManager.getDefaultSharedPreferences(context) .getBoolean(restrictedModeEnabledKey, false); - updateRestrictedModeCookies(restrictedModeEnabled); + updateYoutubeRestrictedModeCookies(restrictedModeEnabled); } - public void updateRestrictedModeCookies(final boolean restrictedModeEnabled) { - if (restrictedModeEnabled) { + public void updateYoutubeRestrictedModeCookies(final boolean youtubeRestrictedModeEnabled) { + if (youtubeRestrictedModeEnabled) { setCookie(YOUTUBE_RESTRICTED_MODE_COOKIE_KEY, YOUTUBE_RESTRICTED_MODE_COOKIE); } else { diff --git a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java index 50ed6b024..000318ae2 100644 --- a/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java +++ b/app/src/main/java/org/schabi/newpipe/fragments/MainFragment.java @@ -46,8 +46,8 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte private boolean hasTabsChanged = false; - private boolean previousRestrictedModeEnabled; - private String restrictedModeEnabledKey; + private boolean previousYoutubeRestrictedModeEnabled; + private String youtubeRestrictedModeEnabledKey; /*////////////////////////////////////////////////////////////////////////// // Fragment's LifeCycle @@ -70,10 +70,10 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte } }); - restrictedModeEnabledKey = getString(R.string.restricted_mode_enabled); - previousRestrictedModeEnabled = + youtubeRestrictedModeEnabledKey = getString(R.string.youtube_restricted_mode_enabled); + previousYoutubeRestrictedModeEnabled = PreferenceManager.getDefaultSharedPreferences(getContext()) - .getBoolean(restrictedModeEnabledKey, false); + .getBoolean(youtubeRestrictedModeEnabledKey, false); } @Override @@ -100,11 +100,11 @@ public class MainFragment extends BaseFragment implements TabLayout.OnTabSelecte public void onResume() { super.onResume(); - boolean restrictedModeEnabled = + boolean youtubeRestrictedModeEnabled = PreferenceManager.getDefaultSharedPreferences(getContext()) - .getBoolean(restrictedModeEnabledKey, false); - if (previousRestrictedModeEnabled != restrictedModeEnabled) { - previousRestrictedModeEnabled = restrictedModeEnabled; + .getBoolean(youtubeRestrictedModeEnabledKey, false); + if (previousYoutubeRestrictedModeEnabled != youtubeRestrictedModeEnabled) { + previousYoutubeRestrictedModeEnabled = youtubeRestrictedModeEnabled; setupTabs(); } else if (hasTabsChanged) { setupTabs(); diff --git a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java index e577d2ac8..b0bb30aa7 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java +++ b/app/src/main/java/org/schabi/newpipe/settings/ContentSettingsFragment.java @@ -58,7 +58,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { private File newpipeSettings; private String thumbnailLoadToggleKey; - private String restrictedModeEnabledKey; + private String youtubeRestrictedModeEnabledKey; private Localization initialSelectedLocalization; private ContentCountry initialSelectedContentCountry; @@ -68,7 +68,7 @@ public class ContentSettingsFragment extends BasePreferenceFragment { public void onCreate(@Nullable final Bundle savedInstanceState) { super.onCreate(savedInstanceState); thumbnailLoadToggleKey = getString(R.string.download_thumbnail_key); - restrictedModeEnabledKey = getString(R.string.restricted_mode_enabled); + youtubeRestrictedModeEnabledKey = getString(R.string.youtube_restricted_mode_enabled); initialSelectedLocalization = org.schabi.newpipe.util.Localization .getPreferredLocalization(requireContext()); @@ -90,10 +90,10 @@ public class ContentSettingsFragment extends BasePreferenceFragment { Toast.LENGTH_SHORT).show(); } - if (preference.getKey().equals(restrictedModeEnabledKey)) { + if (preference.getKey().equals(youtubeRestrictedModeEnabledKey)) { Context context = getContext(); if (context != null) { - DownloaderImpl.getInstance().updateRestrictedModeCookies(context); + DownloaderImpl.getInstance().updateYoutubeRestrictedModeCookies(context); } else { Log.w(TAG, "onPreferenceTreeClick: null context"); } diff --git a/app/src/main/res/values/settings_keys.xml b/app/src/main/res/values/settings_keys.xml index 0a0d2c70a..5d0073540 100644 --- a/app/src/main/res/values/settings_keys.xml +++ b/app/src/main/res/values/settings_keys.xml @@ -170,7 +170,7 @@ peertube_instance_list content_country show_age_restricted_content - restricted_mode_enabled + youtube_restricted_mode_enabled use_tor enable_search_history enable_watch_history diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 125d411c2..974acf4f2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -137,7 +137,7 @@ Content Age restricted content Show age restricted video. Future changes are possible from the settings. - Restricted mode + YouTube restricted mode This video is age restricted.\n\nIf you want to view it, enable \"Age restricted content\" in the settings. Live Downloads diff --git a/app/src/main/res/xml/content_settings.xml b/app/src/main/res/xml/content_settings.xml index e90520229..bf9c3d115 100644 --- a/app/src/main/res/xml/content_settings.xml +++ b/app/src/main/res/xml/content_settings.xml @@ -54,8 +54,8 @@ + android:key="@string/youtube_restricted_mode_enabled" + android:title="@string/youtube_restricted_mode_enabled_title"/> Date: Sat, 25 Apr 2020 21:39:53 -0500 Subject: [PATCH 9/9] removed unnecessary method call --- app/src/debug/java/org/schabi/newpipe/DebugApp.java | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/debug/java/org/schabi/newpipe/DebugApp.java b/app/src/debug/java/org/schabi/newpipe/DebugApp.java index 8eb1a1f7d..6bcf71035 100644 --- a/app/src/debug/java/org/schabi/newpipe/DebugApp.java +++ b/app/src/debug/java/org/schabi/newpipe/DebugApp.java @@ -43,7 +43,6 @@ public class DebugApp extends App { DownloaderImpl downloader = DownloaderImpl.init(new OkHttpClient.Builder() .addNetworkInterceptor(new StethoInterceptor())); setCookiesToDownloader(downloader); - downloader.updateYoutubeRestrictedModeCookies(getApplicationContext()); return downloader; }