From de4d6037d35ef540ff9307e08a4c04c2c5b8dd81 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 430d4e1ccde9dcd7db2d71eaf23779da8bd8f4df 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 9ede7a3c429a614d59a8d2436c8b6e4c1abd7446 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 e33cdca1ef8143f7addb23857eff0e7e23ec49f8 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 08a6e999b9ca7ee71783f0111f981bda7144f899 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 5a193d50f66ef12600b7fcf020cf3befbb2f2865 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 63087a4311872cd0f8cddd0941214960f3af7192 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; }