From 99104fc11d1bc4696f67877a9bf04ac580fa9315 Mon Sep 17 00:00:00 2001
From: litetex <40789489+litetex@users.noreply.github.com>
Date: Wed, 6 Jul 2022 17:46:20 -0400
Subject: [PATCH] Clean up pre-Lollipop checks
---
.../org/schabi/newpipe/DownloaderImpl.java | 68 ------------
.../java/org/schabi/newpipe/ExitActivity.java | 7 +-
.../java/org/schabi/newpipe/MainActivity.java | 7 --
.../newpipe/PanicResponderActivity.java | 7 +-
.../newpipe/error/ReCaptchaActivity.java | 8 +-
.../fragments/detail/VideoDetailFragment.java | 17 +--
.../fragments/list/search/SearchFragment.java | 3 -
.../subscription/dialog/FeedGroupDialog.kt | 10 --
.../org/schabi/newpipe/player/Player.java | 7 +-
.../settings/AppearanceSettingsFragment.java | 2 +-
.../settings/DownloadSettingsFragment.java | 13 +--
.../newpipe/settings/NewPipeSettings.java | 2 +-
.../settings/NotificationSettingsFragment.kt | 10 --
.../newpipe/settings/SettingMigrations.java | 11 +-
.../PreferenceSearchResultHighlighter.java | 4 +-
.../streams/io/StoredDirectoryHelper.java | 9 +-
.../newpipe/streams/io/StoredFileHelper.java | 3 -
.../org/schabi/newpipe/util/DeviceUtils.java | 11 +-
.../schabi/newpipe/util/PermissionHelper.java | 1 -
.../newpipe/util/TLSSocketFactoryCompat.java | 104 ------------------
.../external_communication/ShareUtils.java | 15 +--
.../schabi/newpipe/views/CollapsibleView.java | 3 -
.../newpipe/views/ExpandableSurfaceView.java | 6 +-
.../newpipe/views/FocusAwareCoordinator.java | 3 -
.../us/shandian/giga/get/DownloadMission.java | 19 ++--
.../giga/service/DownloadManagerService.java | 84 +++-----------
.../giga/ui/adapter/MissionAdapter.java | 4 +-
app/src/main/res/values-ar/strings.xml | 1 -
app/src/main/res/values-az/strings.xml | 1 -
app/src/main/res/values-ca/strings.xml | 1 -
app/src/main/res/values-ckb/strings.xml | 1 -
app/src/main/res/values-cs/strings.xml | 1 -
app/src/main/res/values-de/strings.xml | 1 -
app/src/main/res/values-el/strings.xml | 1 -
app/src/main/res/values-es/strings.xml | 1 -
app/src/main/res/values-et/strings.xml | 1 -
app/src/main/res/values-eu/strings.xml | 1 -
app/src/main/res/values-fa/strings.xml | 1 -
app/src/main/res/values-fi/strings.xml | 1 -
app/src/main/res/values-fr/strings.xml | 1 -
app/src/main/res/values-gl/strings.xml | 1 -
app/src/main/res/values-he/strings.xml | 1 -
app/src/main/res/values-hr/strings.xml | 1 -
app/src/main/res/values-hu/strings.xml | 1 -
app/src/main/res/values-in/strings.xml | 1 -
app/src/main/res/values-it/strings.xml | 1 -
app/src/main/res/values-ja/strings.xml | 1 -
app/src/main/res/values-lt/strings.xml | 1 -
app/src/main/res/values-lv/strings.xml | 1 -
app/src/main/res/values-ml/strings.xml | 1 -
app/src/main/res/values-nb-rNO/strings.xml | 1 -
app/src/main/res/values-nl/strings.xml | 1 -
app/src/main/res/values-pa/strings.xml | 1 -
app/src/main/res/values-pl/strings.xml | 1 -
app/src/main/res/values-pt-rBR/strings.xml | 1 -
app/src/main/res/values-pt-rPT/strings.xml | 1 -
app/src/main/res/values-pt/strings.xml | 1 -
app/src/main/res/values-ro/strings.xml | 1 -
app/src/main/res/values-ru/strings.xml | 1 -
app/src/main/res/values-sc/strings.xml | 1 -
app/src/main/res/values-sk/strings.xml | 1 -
app/src/main/res/values-so/strings.xml | 1 -
app/src/main/res/values-sq/strings.xml | 1 -
app/src/main/res/values-sr/strings.xml | 1 -
app/src/main/res/values-sv/strings.xml | 1 -
app/src/main/res/values-tr/strings.xml | 1 -
app/src/main/res/values-uk/strings.xml | 1 -
app/src/main/res/values-vi/strings.xml | 1 -
app/src/main/res/values-zh-rCN/strings.xml | 1 -
app/src/main/res/values-zh-rHK/strings.xml | 1 -
app/src/main/res/values-zh-rTW/strings.xml | 1 -
app/src/main/res/values/strings.xml | 1 -
app/src/main/res/xml/download_settings.xml | 1 +
73 files changed, 59 insertions(+), 425 deletions(-)
delete mode 100644 app/src/main/java/org/schabi/newpipe/util/TLSSocketFactoryCompat.java
diff --git a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java
index 1a3a8adee..f2803dc2f 100644
--- a/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java
+++ b/app/src/main/java/org/schabi/newpipe/DownloaderImpl.java
@@ -1,7 +1,6 @@
package org.schabi.newpipe;
import android.content.Context;
-import android.os.Build;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -14,33 +13,18 @@ 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.TLSSocketFactoryCompat;
import java.io.IOException;
-import java.security.KeyManagementException;
-import java.security.KeyStore;
-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;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.TrustManagerFactory;
-import javax.net.ssl.X509TrustManager;
-
-import okhttp3.CipherSuite;
-import okhttp3.ConnectionSpec;
import okhttp3.OkHttpClient;
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
-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; rv:91.0) Gecko/20100101 Firefox/91.0";
@@ -54,9 +38,6 @@ public final class DownloaderImpl extends Downloader {
private final OkHttpClient client;
private DownloaderImpl(final OkHttpClient.Builder builder) {
- if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
- enableModernTLS(builder);
- }
this.client = builder
.readTimeout(30, TimeUnit.SECONDS)
// .cache(new Cache(new File(context.getExternalCacheDir(), "okhttp"),
@@ -81,55 +62,6 @@ public final class DownloaderImpl extends Downloader {
return instance;
}
- /**
- * Enable TLS 1.2 and 1.1 on Android Kitkat. This function is mostly taken
- * from the documentation of OkHttpClient.Builder.sslSocketFactory(_,_).
- *
- * If there is an error, the function will safely fall back to doing nothing
- * and printing the error to the console.
- *
- *
- * @param builder The HTTPClient Builder on which TLS is enabled on (will be modified in-place)
- */
- private static void enableModernTLS(final OkHttpClient.Builder builder) {
- try {
- // get the default TrustManager
- final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(
- TrustManagerFactory.getDefaultAlgorithm());
- trustManagerFactory.init((KeyStore) null);
- final TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
- if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
- throw new IllegalStateException("Unexpected default trust managers:"
- + Arrays.toString(trustManagers));
- }
- final X509TrustManager trustManager = (X509TrustManager) trustManagers[0];
-
- // insert our own TLSSocketFactory
- final SSLSocketFactory sslSocketFactory = TLSSocketFactoryCompat.getInstance();
-
- builder.sslSocketFactory(sslSocketFactory, trustManager);
-
- // This will try to enable all modern CipherSuites(+2 more)
- // that are supported on the device.
- // Necessary because some servers (e.g. Framatube.org)
- // don't support the old cipher suites.
- // https://github.com/square/okhttp/issues/4053#issuecomment-402579554
- final List cipherSuites =
- new ArrayList<>(ConnectionSpec.MODERN_TLS.cipherSuites());
- cipherSuites.add(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA);
- cipherSuites.add(CipherSuite.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA);
- final ConnectionSpec legacyTLS = new ConnectionSpec.Builder(ConnectionSpec.MODERN_TLS)
- .cipherSuites(cipherSuites.toArray(new CipherSuite[0]))
- .build();
-
- builder.connectionSpecs(Arrays.asList(legacyTLS, ConnectionSpec.CLEARTEXT));
- } catch (final KeyManagementException | NoSuchAlgorithmException | KeyStoreException e) {
- if (DEBUG) {
- e.printStackTrace();
- }
- }
- }
-
public String getCookies(final String url) {
final List resultCookies = new ArrayList<>();
if (url.contains(YOUTUBE_DOMAIN)) {
diff --git a/app/src/main/java/org/schabi/newpipe/ExitActivity.java b/app/src/main/java/org/schabi/newpipe/ExitActivity.java
index 8da22db2d..bd1351f0c 100644
--- a/app/src/main/java/org/schabi/newpipe/ExitActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/ExitActivity.java
@@ -3,7 +3,6 @@ package org.schabi.newpipe;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
-import android.os.Build;
import android.os.Bundle;
import org.schabi.newpipe.util.NavigationHelper;
@@ -44,11 +43,7 @@ public class ExitActivity extends Activity {
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- finishAndRemoveTask();
- } else {
- finish();
- }
+ finishAndRemoveTask();
NavigationHelper.restartApp(this);
}
diff --git a/app/src/main/java/org/schabi/newpipe/MainActivity.java b/app/src/main/java/org/schabi/newpipe/MainActivity.java
index fcb9d9725..dd59eeb25 100644
--- a/app/src/main/java/org/schabi/newpipe/MainActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/MainActivity.java
@@ -28,7 +28,6 @@ import android.content.Intent;
import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
-import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -86,7 +85,6 @@ import org.schabi.newpipe.util.PermissionHelper;
import org.schabi.newpipe.util.SerializedCache;
import org.schabi.newpipe.util.ServiceHelper;
import org.schabi.newpipe.util.StateSaver;
-import org.schabi.newpipe.util.TLSSocketFactoryCompat;
import org.schabi.newpipe.util.ThemeHelper;
import org.schabi.newpipe.views.FocusOverlayView;
@@ -131,11 +129,6 @@ public class MainActivity extends AppCompatActivity {
+ "savedInstanceState = [" + savedInstanceState + "]");
}
- // enable TLS1.1/1.2 for kitkat devices, to fix download and play for media.ccc.de sources
- if (Build.VERSION.SDK_INT == Build.VERSION_CODES.KITKAT) {
- TLSSocketFactoryCompat.setAsDefault();
- }
-
ThemeHelper.setDayNightMode(this);
ThemeHelper.setTheme(this, ServiceHelper.getSelectedServiceId(this));
diff --git a/app/src/main/java/org/schabi/newpipe/PanicResponderActivity.java b/app/src/main/java/org/schabi/newpipe/PanicResponderActivity.java
index b4fbdfb28..f0d1af81a 100644
--- a/app/src/main/java/org/schabi/newpipe/PanicResponderActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/PanicResponderActivity.java
@@ -3,7 +3,6 @@ package org.schabi.newpipe;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
-import android.os.Build;
import android.os.Bundle;
/*
@@ -40,10 +39,6 @@ public class PanicResponderActivity extends Activity {
ExitActivity.exitAndRemoveFromRecentApps(this);
}
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- finishAndRemoveTask();
- } else {
- finish();
- }
+ finishAndRemoveTask();
}
}
diff --git a/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java b/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java
index 555dd709b..c9f3a82d9 100644
--- a/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java
+++ b/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java
@@ -3,7 +3,6 @@ package org.schabi.newpipe.error;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.SharedPreferences;
-import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
@@ -107,12 +106,7 @@ public class ReCaptchaActivity extends AppCompatActivity {
// cleaning cache, history and cookies from webView
recaptchaBinding.reCaptchaWebView.clearCache(true);
recaptchaBinding.reCaptchaWebView.clearHistory();
- final CookieManager cookieManager = CookieManager.getInstance();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- cookieManager.removeAllCookies(value -> { });
- } else {
- cookieManager.removeAllCookie();
- }
+ CookieManager.getInstance().removeAllCookies(null);
recaptchaBinding.reCaptchaWebView.loadUrl(url);
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
index 5e19f558d..278d472d4 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/detail/VideoDetailFragment.java
@@ -1922,13 +1922,7 @@ public final class VideoDetailFragment
}
scrollToTop();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- addVideoPlayerView();
- } else {
- // KitKat needs a delay before addVideoPlayerView call or it reports wrong height in
- // activity.getWindow().getDecorView().getHeight()
- new Handler().post(this::addVideoPlayerView);
- }
+ addVideoPlayerView();
}
@Override
@@ -1991,10 +1985,8 @@ public final class VideoDetailFragment
}
activity.getWindow().getDecorView().setSystemUiVisibility(0);
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- activity.getWindow().setStatusBarColor(ThemeHelper.resolveColorFromAttr(
- requireContext(), android.R.attr.colorPrimary));
- }
+ activity.getWindow().setStatusBarColor(ThemeHelper.resolveColorFromAttr(
+ requireContext(), android.R.attr.colorPrimary));
}
private void hideSystemUi() {
@@ -2025,8 +2017,7 @@ public final class VideoDetailFragment
}
activity.getWindow().getDecorView().setSystemUiVisibility(visibility);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
- && (isInMultiWindow || (isPlayerAvailable() && player.isFullscreen()))) {
+ if (isInMultiWindow || (isPlayerAvailable() && player.isFullscreen())) {
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
activity.getWindow().setNavigationBarColor(Color.TRANSPARENT);
}
diff --git a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
index 055c27733..44f8328a5 100644
--- a/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/fragments/list/search/SearchFragment.java
@@ -497,9 +497,6 @@ public class SearchFragment extends BaseListFragment content
- val contrastColor = AppCompatResources.getColorStateList(requireContext(), R.color.contrastColor)
- searchLayoutBinding.toolbarSearchEditText.setTextColor(contrastColor)
- searchLayoutBinding.toolbarSearchEditText.setHintTextColor(contrastColor.withAlpha(128))
- ImageViewCompat.setImageTintList(searchLayoutBinding.toolbarSearchClearIcon, contrastColor)
- }
-
viewModel = ViewModelProvider(
this,
FeedGroupDialogViewModel.Factory(
diff --git a/app/src/main/java/org/schabi/newpipe/player/Player.java b/app/src/main/java/org/schabi/newpipe/player/Player.java
index bae88d07c..100563765 100644
--- a/app/src/main/java/org/schabi/newpipe/player/Player.java
+++ b/app/src/main/java/org/schabi/newpipe/player/Player.java
@@ -1963,10 +1963,9 @@ public final class Player implements
private void showSystemUIPartially() {
final AppCompatActivity activity = getParentActivity();
if (isFullscreen && activity != null) {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
- activity.getWindow().setNavigationBarColor(Color.TRANSPARENT);
- }
+ activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
+ activity.getWindow().setNavigationBarColor(Color.TRANSPARENT);
+
final int visibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION;
diff --git a/app/src/main/java/org/schabi/newpipe/settings/AppearanceSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/AppearanceSettingsFragment.java
index 70ac5cdcc..550d64d06 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/AppearanceSettingsFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/settings/AppearanceSettingsFragment.java
@@ -74,7 +74,7 @@ public class AppearanceSettingsFragment extends BasePreferenceFragment {
defaultPreferences.edit().putBoolean(Constants.KEY_THEME_CHANGE, true).apply();
defaultPreferences.edit().putString(themeKey, newValue.toString()).apply();
- ThemeHelper.setDayNightMode(getContext(), newValue.toString());
+ ThemeHelper.setDayNightMode(requireContext(), newValue.toString());
if (!newValue.equals(beginningThemeKey) && getActivity() != null) {
// if it's not the current theme
diff --git a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java
index ec98b865e..74dc9f63e 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java
+++ b/app/src/main/java/org/schabi/newpipe/settings/DownloadSettingsFragment.java
@@ -66,16 +66,10 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
prefStorageAsk = findPreference(downloadStorageAsk);
final SwitchPreferenceCompat prefUseSaf = findPreference(storageUseSafPreference);
- prefUseSaf.setDefaultValue(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP);
prefUseSaf.setChecked(NewPipeSettings.useStorageAccessFramework(ctx));
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q
- || Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
prefUseSaf.setEnabled(false);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
- prefUseSaf.setSummary(R.string.downloads_storage_use_saf_summary_api_29);
- } else {
- prefUseSaf.setSummary(R.string.downloads_storage_use_saf_summary_api_19);
- }
+ prefUseSaf.setSummary(R.string.downloads_storage_use_saf_summary_api_29);
prefStorageAsk.setSummary(R.string.downloads_storage_ask_summary_no_saf_notice);
}
@@ -253,8 +247,7 @@ public class DownloadSettingsFragment extends BasePreferenceFragment {
forgetSAFTree(context, defaultPreferences.getString(key, ""));
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
- && !FilePickerActivityHelper.isOwnFileUri(context, uri)) {
+ if (!FilePickerActivityHelper.isOwnFileUri(context, uri)) {
// steps to acquire the selected path:
// 1. acquire permissions on the new save path
// 2. save the new path, if step(2) was successful
diff --git a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java
index 1e1d08856..16df646f9 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java
+++ b/app/src/main/java/org/schabi/newpipe/settings/NewPipeSettings.java
@@ -116,7 +116,7 @@ public final class NewPipeSettings {
public static boolean useStorageAccessFramework(final Context context) {
// There's a FireOS bug which prevents SAF open/close dialogs from being confirmed with a
// remote (see #6455).
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP || DeviceUtils.isFireTv()) {
+ if (DeviceUtils.isFireTv()) {
return false;
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
return true;
diff --git a/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt
index 6bea8b69e..11eb4fa33 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt
+++ b/app/src/main/java/org/schabi/newpipe/settings/NotificationSettingsFragment.kt
@@ -1,19 +1,9 @@
package org.schabi.newpipe.settings
-import android.os.Build
import android.os.Bundle
-import androidx.preference.Preference
-import org.schabi.newpipe.R
class NotificationSettingsFragment : BasePreferenceFragment() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
addPreferencesFromResourceRegistry()
-
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
- val colorizePref: Preference? = findPreference(getString(R.string.notification_colorize_key))
- colorizePref?.let {
- preferenceScreen.removePreference(it)
- }
- }
}
}
diff --git a/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java b/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java
index 8924ecbe1..b1e2c04eb 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java
+++ b/app/src/main/java/org/schabi/newpipe/settings/SettingMigrations.java
@@ -2,7 +2,6 @@ package org.schabi.newpipe.settings;
import android.content.Context;
import android.content.SharedPreferences;
-import android.os.Build;
import android.util.Log;
import androidx.preference.PreferenceManager;
@@ -71,12 +70,12 @@ public final class SettingMigrations {
// and standard way to access folders and files to be used consistently everywhere.
// We reset the setting to its default value, i.e. "use SAF", since now there are no
// more issues with SAF and users should use that one instead of the old
- // NoNonsenseFilePicker. SAF does not work on KitKat and below, though, so the setting
- // is set to false in that case. Also, there's a bug on FireOS in which SAF open/close
+ // NoNonsenseFilePicker. Also, there's a bug on FireOS in which SAF open/close
// dialogs cannot be confirmed with a remote (see #6455).
- sp.edit().putBoolean(context.getString(R.string.storage_use_saf),
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
- && !DeviceUtils.isFireTv()).apply();
+ sp.edit().putBoolean(
+ context.getString(R.string.storage_use_saf),
+ !DeviceUtils.isFireTv()
+ ).apply();
}
};
diff --git a/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchResultHighlighter.java b/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchResultHighlighter.java
index 418a3ea46..7eae5c128 100644
--- a/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchResultHighlighter.java
+++ b/app/src/main/java/org/schabi/newpipe/settings/preferencesearch/PreferenceSearchResultHighlighter.java
@@ -6,7 +6,6 @@ import android.graphics.PorterDuff;
import android.graphics.PorterDuffColorFilter;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.RippleDrawable;
-import android.os.Build;
import android.os.Handler;
import android.os.Looper;
import android.util.Log;
@@ -65,8 +64,7 @@ public final class PreferenceSearchResultHighlighter {
recyclerView.findViewHolderForAdapterPosition(position);
if (holder != null) {
final Drawable background = holder.itemView.getBackground();
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
- && background instanceof RippleDrawable) {
+ if (background instanceof RippleDrawable) {
showRippleAnimation((RippleDrawable) background);
return;
}
diff --git a/app/src/main/java/org/schabi/newpipe/streams/io/StoredDirectoryHelper.java b/app/src/main/java/org/schabi/newpipe/streams/io/StoredDirectoryHelper.java
index feca89f02..48ae54284 100644
--- a/app/src/main/java/org/schabi/newpipe/streams/io/StoredDirectoryHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/streams/io/StoredDirectoryHelper.java
@@ -5,7 +5,6 @@ import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
-import android.os.Build;
import android.provider.DocumentsContract;
import androidx.annotation.NonNull;
@@ -53,10 +52,6 @@ public class StoredDirectoryHelper {
throw new IOException(e);
}
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
- throw new IOException("Storage Access Framework with Directory API is not available");
- }
-
this.docTree = DocumentFile.fromTreeUri(context, path);
if (this.docTree == null) {
@@ -73,7 +68,7 @@ public class StoredDirectoryHelper {
final String[] filename = splitFilename(name);
final String lcFilename = filename[0].toLowerCase();
- if (docTree == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ if (docTree == null) {
for (final File file : ioTree.listFiles()) {
addIfStartWith(matches, lcFilename, file.getName());
}
@@ -277,7 +272,7 @@ public class StoredDirectoryHelper {
*/
static DocumentFile findFileSAFHelper(@Nullable final Context context, final DocumentFile tree,
final String filename) {
- if (context == null || Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
+ if (context == null) {
return tree.findFile(filename); // warning: this is very slow
}
diff --git a/app/src/main/java/org/schabi/newpipe/streams/io/StoredFileHelper.java b/app/src/main/java/org/schabi/newpipe/streams/io/StoredFileHelper.java
index 9fe4a9340..1f0c91456 100644
--- a/app/src/main/java/org/schabi/newpipe/streams/io/StoredFileHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/streams/io/StoredFileHelper.java
@@ -1,6 +1,5 @@
package org.schabi.newpipe.streams.io;
-import android.annotation.TargetApi;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
@@ -74,7 +73,6 @@ public class StoredFileHelper implements Serializable {
this.tag = tag;
}
- @TargetApi(Build.VERSION_CODES.LOLLIPOP)
StoredFileHelper(@Nullable final Context context, final DocumentFile tree,
final String filename, final String mime, final boolean safe)
throws IOException {
@@ -124,7 +122,6 @@ public class StoredFileHelper implements Serializable {
this.srcType = mime;
}
- @TargetApi(Build.VERSION_CODES.KITKAT)
public StoredFileHelper(final Context context, @Nullable final Uri parent,
@NonNull final Uri path, final String tag) throws IOException {
this.tag = tag;
diff --git a/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java b/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java
index a4ff5ff19..7f4b33f44 100644
--- a/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java
+++ b/app/src/main/java/org/schabi/newpipe/util/DeviceUtils.java
@@ -65,7 +65,7 @@ public final class DeviceUtils {
boolean isTv = ContextCompat.getSystemService(context, UiModeManager.class)
.getCurrentModeType() == Configuration.UI_MODE_TYPE_TELEVISION
|| isFireTv()
- || pm.hasSystemFeature(PackageManager.FEATURE_TELEVISION);
+ || pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK);
// from https://stackoverflow.com/a/58932366
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
@@ -77,10 +77,6 @@ public final class DeviceUtils {
&& pm.hasSystemFeature(PackageManager.FEATURE_ETHERNET));
}
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- isTv = isTv || pm.hasSystemFeature(PackageManager.FEATURE_LEANBACK);
- }
-
DeviceUtils.isTV = isTv;
return DeviceUtils.isTV;
}
@@ -131,11 +127,10 @@ public final class DeviceUtils {
/**
* Some devices have broken tunneled video playback but claim to support it.
* See https://github.com/TeamNewPipe/NewPipe/issues/5911
- * @return false if Kitkat (does not support tunneling) or affected device
+ * @return false if affected device
*/
public static boolean shouldSupportMediaTunneling() {
- return Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
- && !HI3798MV200
+ return !HI3798MV200
&& !CVT_MT5886_EU_1G
&& !REALTEKATV
&& !QM16XE_U;
diff --git a/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java b/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java
index 160eb59cd..1e3061374 100644
--- a/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java
+++ b/app/src/main/java/org/schabi/newpipe/util/PermissionHelper.java
@@ -37,7 +37,6 @@ public final class PermissionHelper {
return checkWriteStoragePermissions(activity, requestCode);
}
- @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN)
public static boolean checkReadStoragePermissions(final Activity activity,
final int requestCode) {
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_EXTERNAL_STORAGE)
diff --git a/app/src/main/java/org/schabi/newpipe/util/TLSSocketFactoryCompat.java b/app/src/main/java/org/schabi/newpipe/util/TLSSocketFactoryCompat.java
deleted file mode 100644
index 05e69408a..000000000
--- a/app/src/main/java/org/schabi/newpipe/util/TLSSocketFactoryCompat.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package org.schabi.newpipe.util;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.Socket;
-import java.security.KeyManagementException;
-import java.security.NoSuchAlgorithmException;
-
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocket;
-import javax.net.ssl.SSLSocketFactory;
-
-import android.util.Log;
-
-
-/**
- * This is an extension of the SSLSocketFactory which enables TLS 1.2 and 1.1.
- * Created for usage on Android 4.1-4.4 devices, which haven't enabled those by default.
- */
-public class TLSSocketFactoryCompat extends SSLSocketFactory {
-
- private static final String TAG = "TLSSocketFactoryCom";
-
- private static TLSSocketFactoryCompat instance = null;
-
- private final SSLSocketFactory internalSSLSocketFactory;
-
- public TLSSocketFactoryCompat() throws KeyManagementException, NoSuchAlgorithmException {
- final SSLContext context = SSLContext.getInstance("TLS");
- context.init(null, null, null);
- internalSSLSocketFactory = context.getSocketFactory();
- }
-
- public static TLSSocketFactoryCompat getInstance()
- throws NoSuchAlgorithmException, KeyManagementException {
- if (instance != null) {
- return instance;
- }
- instance = new TLSSocketFactoryCompat();
- return instance;
- }
-
- public static void setAsDefault() {
- try {
- HttpsURLConnection.setDefaultSSLSocketFactory(getInstance());
- } catch (NoSuchAlgorithmException | KeyManagementException e) {
- Log.e(TAG, "Unable to setAsDefault", e);
- }
- }
-
- @Override
- public String[] getDefaultCipherSuites() {
- return internalSSLSocketFactory.getDefaultCipherSuites();
- }
-
- @Override
- public String[] getSupportedCipherSuites() {
- return internalSSLSocketFactory.getSupportedCipherSuites();
- }
-
- @Override
- public Socket createSocket() throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket());
- }
-
- @Override
- public Socket createSocket(final Socket s, final String host, final int port,
- final boolean autoClose) throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(s, host, port, autoClose));
- }
-
- @Override
- public Socket createSocket(final String host, final int port) throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port));
- }
-
- @Override
- public Socket createSocket(final String host, final int port, final InetAddress localHost,
- final int localPort) throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(
- host, port, localHost, localPort));
- }
-
- @Override
- public Socket createSocket(final InetAddress host, final int port) throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(host, port));
- }
-
- @Override
- public Socket createSocket(final InetAddress address, final int port,
- final InetAddress localAddress, final int localPort)
- throws IOException {
- return enableTLSOnSocket(internalSSLSocketFactory.createSocket(
- address, port, localAddress, localPort));
- }
-
- private Socket enableTLSOnSocket(final Socket socket) {
- if (socket instanceof SSLSocket) {
- ((SSLSocket) socket).setEnabledProtocols(new String[]{"TLSv1.1", "TLSv1.2"});
- }
- return socket;
- }
-}
diff --git a/app/src/main/java/org/schabi/newpipe/util/external_communication/ShareUtils.java b/app/src/main/java/org/schabi/newpipe/util/external_communication/ShareUtils.java
index 8324146fe..debeb902c 100644
--- a/app/src/main/java/org/schabi/newpipe/util/external_communication/ShareUtils.java
+++ b/app/src/main/java/org/schabi/newpipe/util/external_communication/ShareUtils.java
@@ -185,17 +185,10 @@ public final class ShareUtils {
}
// Migrate any clip data and flags from the original intent.
- final int permFlags;
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- permFlags = intent.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION
- | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
- | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
- | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
- } else {
- permFlags = intent.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION
- | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
- | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION);
- }
+ final int permFlags = intent.getFlags() & (Intent.FLAG_GRANT_READ_URI_PERMISSION
+ | Intent.FLAG_GRANT_WRITE_URI_PERMISSION
+ | Intent.FLAG_GRANT_PERSISTABLE_URI_PERMISSION
+ | Intent.FLAG_GRANT_PREFIX_URI_PERMISSION);
if (permFlags != 0) {
ClipData targetClipData = intent.getClipData();
if (targetClipData == null && intent.getData() != null) {
diff --git a/app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java b/app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java
index e1ada4f9b..f79e1e3a3 100644
--- a/app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java
+++ b/app/src/main/java/org/schabi/newpipe/views/CollapsibleView.java
@@ -21,7 +21,6 @@ package org.schabi.newpipe.views;
import android.animation.ValueAnimator;
import android.content.Context;
-import android.os.Build;
import android.os.Parcelable;
import android.util.AttributeSet;
import android.util.Log;
@@ -29,7 +28,6 @@ import android.widget.LinearLayout;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
-import androidx.annotation.RequiresApi;
import org.schabi.newpipe.ktx.ViewUtils;
@@ -76,7 +74,6 @@ public class CollapsibleView extends LinearLayout {
super(context, attrs, defStyleAttr);
}
- @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public CollapsibleView(final Context context, final AttributeSet attrs, final int defStyleAttr,
final int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
diff --git a/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java b/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java
index cfa17e20c..175c81e46 100644
--- a/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java
+++ b/app/src/main/java/org/schabi/newpipe/views/ExpandableSurfaceView.java
@@ -1,7 +1,6 @@
package org.schabi.newpipe.views;
import android.content.Context;
-import android.os.Build;
import android.util.AttributeSet;
import android.view.SurfaceView;
@@ -45,10 +44,7 @@ public class ExpandableSurfaceView extends SurfaceView {
scaleX = 1.0f;
scaleY = 1.0f;
- if (resizeMode == RESIZE_MODE_FIT
- // KitKat doesn't work well when a view has a scale like needed for ZOOM
- || (resizeMode == RESIZE_MODE_ZOOM
- && Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)) {
+ if (resizeMode == RESIZE_MODE_FIT) {
if (aspectDeformation > 0) {
height = (int) (width / videoAspectRatio);
} else {
diff --git a/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java b/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java
index 798d08c72..747aed025 100644
--- a/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java
+++ b/app/src/main/java/org/schabi/newpipe/views/FocusAwareCoordinator.java
@@ -17,10 +17,8 @@
*/
package org.schabi.newpipe.views;
-import android.annotation.TargetApi;
import android.content.Context;
import android.graphics.Rect;
-import android.os.Build;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
@@ -74,7 +72,6 @@ public final class FocusAwareCoordinator extends CoordinatorLayout {
* Makes possible for multiple fragments to co-exist. Without this code
* the first ViewGroup who consumes will be the last who receive the insets
*/
- @TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WindowInsets dispatchApplyWindowInsets(final WindowInsets insets) {
boolean consumed = false;
diff --git a/app/src/main/java/us/shandian/giga/get/DownloadMission.java b/app/src/main/java/us/shandian/giga/get/DownloadMission.java
index 9d8eaf9a5..04930b002 100644
--- a/app/src/main/java/us/shandian/giga/get/DownloadMission.java
+++ b/app/src/main/java/us/shandian/giga/get/DownloadMission.java
@@ -1,6 +1,5 @@
package us.shandian.giga.get;
-import android.os.Build;
import android.os.Handler;
import android.system.ErrnoException;
import android.system.OsConstants;
@@ -316,16 +315,14 @@ public class DownloadMission extends Mission {
public synchronized void notifyError(int code, Exception err) {
Log.e(TAG, "notifyError() code = " + code, err);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- if (err != null && err.getCause() instanceof ErrnoException) {
- int errno = ((ErrnoException) err.getCause()).errno;
- if (errno == OsConstants.ENOSPC) {
- code = ERROR_INSUFFICIENT_STORAGE;
- err = null;
- } else if (errno == OsConstants.EACCES) {
- code = ERROR_PERMISSION_DENIED;
- err = null;
- }
+ if (err != null && err.getCause() instanceof ErrnoException) {
+ int errno = ((ErrnoException) err.getCause()).errno;
+ if (errno == OsConstants.ENOSPC) {
+ code = ERROR_INSUFFICIENT_STORAGE;
+ err = null;
+ } else if (errno == OsConstants.EACCES) {
+ code = ERROR_PERMISSION_DENIED;
+ err = null;
}
}
diff --git a/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java b/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java
index d96b4fc5b..8b8a6ff09 100755
--- a/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java
+++ b/app/src/main/java/us/shandian/giga/service/DownloadManagerService.java
@@ -4,10 +4,8 @@ import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
-import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
-import android.content.IntentFilter;
import android.content.SharedPreferences;
import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
import android.graphics.Bitmap;
@@ -18,7 +16,6 @@ import android.net.NetworkInfo;
import android.net.NetworkRequest;
import android.net.Uri;
import android.os.Binder;
-import android.os.Build;
import android.os.Handler;
import android.os.Handler.Callback;
import android.os.IBinder;
@@ -100,7 +97,6 @@ public class DownloadManagerService extends Service {
private final ArrayList mEchoObservers = new ArrayList<>(1);
private ConnectivityManager mConnectivityManager;
- private BroadcastReceiver mNetworkStateListener = null;
private ConnectivityManager.NetworkCallback mNetworkStateListenerL = null;
private SharedPreferences mPrefs = null;
@@ -166,28 +162,18 @@ public class DownloadManagerService extends Service {
mConnectivityManager = ContextCompat.getSystemService(this,
ConnectivityManager.class);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- mNetworkStateListenerL = new ConnectivityManager.NetworkCallback() {
- @Override
- public void onAvailable(Network network) {
- handleConnectivityState(false);
- }
+ mNetworkStateListenerL = new ConnectivityManager.NetworkCallback() {
+ @Override
+ public void onAvailable(Network network) {
+ handleConnectivityState(false);
+ }
- @Override
- public void onLost(Network network) {
- handleConnectivityState(false);
- }
- };
- mConnectivityManager.registerNetworkCallback(new NetworkRequest.Builder().build(), mNetworkStateListenerL);
- } else {
- mNetworkStateListener = new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- handleConnectivityState(false);
- }
- };
- registerReceiver(mNetworkStateListener, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
- }
+ @Override
+ public void onLost(Network network) {
+ handleConnectivityState(false);
+ }
+ };
+ mConnectivityManager.registerNetworkCallback(new NetworkRequest.Builder().build(), mNetworkStateListenerL);
mPrefs.registerOnSharedPreferenceChangeListener(mPrefChangeListener);
@@ -246,10 +232,7 @@ public class DownloadManagerService extends Service {
manageLock(false);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
- mConnectivityManager.unregisterNetworkCallback(mNetworkStateListenerL);
- else
- unregisterReceiver(mNetworkStateListener);
+ mConnectivityManager.unregisterNetworkCallback(mNetworkStateListenerL);
mPrefs.unregisterOnSharedPreferenceChangeListener(mPrefChangeListener);
@@ -263,21 +246,6 @@ public class DownloadManagerService extends Service {
@Override
public IBinder onBind(Intent intent) {
- /*
- int permissionCheck;
- if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) {
- permissionCheck = PermissionChecker.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE);
- if (permissionCheck == PermissionChecker.PERMISSION_DENIED) {
- Toast.makeText(this, "Permission denied (read)", Toast.LENGTH_SHORT).show();
- }
- }
-
- permissionCheck = PermissionChecker.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE);
- if (permissionCheck == PermissionChecker.PERMISSION_DENIED) {
- Toast.makeText(this, "Permission denied (write)", Toast.LENGTH_SHORT).show();
- }
- */
-
return mBinder;
}
@@ -473,12 +441,7 @@ public class DownloadManagerService extends Service {
if (downloadDoneCount == 1) {
downloadDoneList.append(name);
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
- downloadDoneNotification.setContentTitle(getString(R.string.app_name));
- } else {
- downloadDoneNotification.setContentTitle(null);
- }
-
+ downloadDoneNotification.setContentTitle(null);
downloadDoneNotification.setContentText(Localization.downloadCount(this, downloadDoneCount));
downloadDoneNotification.setStyle(new NotificationCompat.BigTextStyle()
.setBigContentTitle(Localization.downloadCount(this, downloadDoneCount))
@@ -511,16 +474,10 @@ public class DownloadManagerService extends Service {
.setContentIntent(mOpenDownloadList);
}
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
- downloadFailedNotification.setContentTitle(getString(R.string.app_name));
- downloadFailedNotification.setStyle(new NotificationCompat.BigTextStyle()
- .bigText(getString(R.string.download_failed).concat(": ").concat(mission.storage.getName())));
- } else {
- downloadFailedNotification.setContentTitle(getString(R.string.download_failed));
- downloadFailedNotification.setContentText(mission.storage.getName());
- downloadFailedNotification.setStyle(new NotificationCompat.BigTextStyle()
- .bigText(mission.storage.getName()));
- }
+ downloadFailedNotification.setContentTitle(getString(R.string.download_failed));
+ downloadFailedNotification.setContentText(mission.storage.getName());
+ downloadFailedNotification.setStyle(new NotificationCompat.BigTextStyle()
+ .bigText(mission.storage.getName()));
mNotificationManager.notify(id, downloadFailedNotification.build());
}
@@ -556,12 +513,7 @@ public class DownloadManagerService extends Service {
if (path.charAt(0) == File.separatorChar) {
Log.i(TAG, "Old save path style present: " + path);
-
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP)
- path = Uri.fromFile(new File(path)).toString();
- else
- path = "";
-
+ path = "";
mPrefs.edit().putString(getString(prefKey), "").apply();
}
diff --git a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java
index 961c45bc5..343b13ef8 100644
--- a/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java
+++ b/app/src/main/java/us/shandian/giga/ui/adapter/MissionAdapter.java
@@ -350,10 +350,8 @@ public class MissionAdapter extends Adapter implements Handler.Callb
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(resolveShareableUri(mission), mimeType);
intent.addFlags(FLAG_GRANT_READ_URI_PERMISSION);
+ intent.addFlags(FLAG_GRANT_PREFIX_URI_PERMISSION);
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
- intent.addFlags(FLAG_GRANT_PREFIX_URI_PERMISSION);
- }
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
}
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 4e9606f48..71d849a2f 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -673,7 +673,6 @@
تعذر تحميل تغذية لـ\'%s\'.
خطأ في تحميل الخلاصة
بدءًا من Android 10، يتم دعم \"Storage Access Framework\" فقط
- \"Storage Access Framework\" غير مدعوم على Android KitKat والإصدارات الأقدم
سيتم سؤالك عن مكان حفظ كل تنزيل
لم يتم تعيين مجلد التحميل، الرجاء اختيار مجلد التحميل الافتراضي الآن
إيقاف
diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml
index 95b7b76f4..2d9257e3c 100644
--- a/app/src/main/res/values-az/strings.xml
+++ b/app/src/main/res/values-az/strings.xml
@@ -463,7 +463,6 @@
Server məlumat göndərmir
Bu endirməni bərpa etmək mümkün deyil
Sizdən hər endirmənin harada saxlanacağı soruşulacaq
- \'Yaddaş Giriş Çərçivəsi\' Android KitKat və ondan aşağı versiyalarda dəstəklənmir
\"Yaddaş Giriş Çərçivəsi\"yalnız Android 10\'dan başlayaraq dəstəklənir
Kanalın avatar miniatürü
Sevdiyiniz gecə mövzusunu aşağıda seçə bilərsiniz
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index a42e68940..099203790 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -675,7 +675,6 @@
- S\'ha suprimit %1$s baixada
- S\'han suprimit %1$s baixades
- El \"Sistema d\'Accés a l\'Emmagatzematge\" no està implementat a Android KitKat i a versions anteriors
A partir de l\'Android 10 només s\'admet el \"Sistema d\'Accés a l\'Emmagatzematge\"
Elements de feed nous
El mode d\'alimentació ràpida no proporciona més informació sobre això.
diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml
index 9796404b4..8b6c08434 100644
--- a/app/src/main/res/values-ckb/strings.xml
+++ b/app/src/main/res/values-ckb/strings.xml
@@ -625,7 +625,6 @@
بۆ دابهزاندنی ههر بابهتێك پرست پێ دهكرێت لهبارهی شوێنی دابهزاندنیان
ناكاراكردنی تونێلكردنی میدیا
ئهو بابهتانهی نهگونجاون بۆ منداڵان پیشان بدرێن كه سنووری تهمهن دهیانگرێتهوه (وهك +18)
- \'Storage Access Framework\' پشتگیری نهكراوه لهسهر وهشانهكانی ئهندرۆید كیتكات و نزمتر
كڕاشی بهرنامهكه
پیشاندانی دزهكردنی بیرگه
لهنۆبهت دانرا
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index ea6d292d8..2e840629d 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -643,7 +643,6 @@
Feed pro \'%s\' nemohl být načten.
Chyba při načítání feedu
Počínaje Android 10 je podporován pouze \"Storage Access Framework\"
- \"Storage Access Framework\" není podporován na KitKat a níže
Budete dotázáni, kde uložit každý stažený soubor
Adresář pro stažené soubory dosud nenastaven, zvolte, prosím, výchozí adresář nyní
Vypnuto
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index b91fec84a..4c8e9cfe1 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -638,7 +638,6 @@
Noch kein Downloadordner festgelegt, wähle jetzt den Standard-Downloadordner
Webseite öffnen
Ab Android 10 wird nur noch „Storage Access Framework“ unterstützt
- Das „Storage Access Framework“ wird auf Android KitKat und niedriger nicht unterstützt
Du wirst jedes Mal gefragt werden, wohin der Download gespeichert werden soll
Fehler beim Laden des Feeds
Konnte Feed für \'%s\' nicht laden.
diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml
index 401b2b06b..d9239547b 100644
--- a/app/src/main/res/values-el/strings.xml
+++ b/app/src/main/res/values-el/strings.xml
@@ -632,7 +632,6 @@
Αδυναμία φόρτωσης τροφοδοσίας για \'%s\'.
Σφάλμα φόρτωσης τροφοδοσίας
Από το Android 10 και μετά, μόνο το SAF υποστηρίζεται
- Το «Πλαίσιο Πρόσβασης Αποθήκευσης» δεν υποστηρίζεται σε Android KitKat και παλαιότερο
Θα ερωτηθείτε πού να αποθηκεύσετε κάθε λήψη
Δεν έχει ορισθεί φάκελος λήψεων ακόμα, eπιλέξτε τον προεπιλεγμένο φάκελο τώρα
Host
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 51d61c92d..56d529b04 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -633,7 +633,6 @@
\n¿Desea desuscribirse de este canal\?
Error al cargar el muro
Desde Android 10 solo el \'Sistema de Acceso al Almacenamiento\' es soportado
- El \'Sistema de Acceso al Almacenamiento\' no es sorportado en Android KitKat o versiones anteriores
Se le preguntará dónde guardar cada descarga
Deshabilitar el túnel de medios si experimenta una pantalla negra o interrupciones en la reproduccción de videos
Deshabilitar el túnel de medios
diff --git a/app/src/main/res/values-et/strings.xml b/app/src/main/res/values-et/strings.xml
index 7cb96405a..11b5266b0 100644
--- a/app/src/main/res/values-et/strings.xml
+++ b/app/src/main/res/values-et/strings.xml
@@ -632,7 +632,6 @@
Voog
Vali eksemplar
Android 10st alates on toetatud ainult salvestusjuurdepääsu raamistik \'Storage Access Framework\'
- Android KitKat ja vanemad versioonid ei toeta salvestusjuurdepääsu raamistikku \'Storage Access Framework\'
Sinult küsitakse iga kord, kuhu alla laadimine salvestada
Südamlik autor
Kas sinu meelest on voo laadimine aeglane\? Sel juhul proovi lubada kiire laadimine (seda saad muuta seadetes või vajutades allolevat nuppu).
diff --git a/app/src/main/res/values-eu/strings.xml b/app/src/main/res/values-eu/strings.xml
index 80e2d5a04..8098db146 100644
--- a/app/src/main/res/values-eu/strings.xml
+++ b/app/src/main/res/values-eu/strings.xml
@@ -626,7 +626,6 @@
Ezin izan da \'%s\' jarioa kargatu.
Errorea jarioa kargatzean
Android 10etik aurrera \'Biltegiaren Sarrera Framework\'a soilik onartzen da
- \'Biltegiaren Sarrera Framework\'a ez da Android KitKat eta aurreko bertsioetan onartzen
Non gorde galdetuko zaizu deskarga bakoitzean
Ez da deskargatzeko karpetarik ezarri oraindik, aukeratu lehenetsitako deskargatzeko karpeta orain
Pribatutasuna
diff --git a/app/src/main/res/values-fa/strings.xml b/app/src/main/res/values-fa/strings.xml
index a00c64ad0..97fd534f1 100644
--- a/app/src/main/res/values-fa/strings.xml
+++ b/app/src/main/res/values-fa/strings.xml
@@ -636,7 +636,6 @@
اکنون میتوانید متن درون شرخ را برگزینید. به یاد داشته باشید که در حالت گزینش، ممکن است صفحه چشمک زده و پیوندها قابل کلیک نباشند.
هنوز شاخهٔ بارگیریای تنظیم نشده. اکنون شاخهٔ بارگیری پیشگزیده را برگزینید
برای ذخیرهٔ هر بارگیری از شما پرسیده خواهد شد
- «چارچوب دسترسی ذخیره» روی اندروید کیتکت و پایینتر پشتیبانی نمیشود
از اندروید ۱۰، تنها «چارچوب دسترسی ذخیره» پشتیبانی میشود
نتوانست خوراک را برای «%s» بار کند.
حساب این نگارنده نابود شده است.
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index 8eef663b0..af19e4f12 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -638,7 +638,6 @@
\nHaluatko poistaa kanavan tilauksesta\?
Ei voitu ladata syötettä hakusanalle \'%s\'.
Virhe syötteen lataamisessa
- \'Storage Access Framework\' ei ole tuettu Android KitKatissa tai vanhemmissa versioissa
Sinulta kysytään joka kerta, minne tiedosto ladataan
Älä näytä
Matala laatu (pienempi)
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 327877651..e09f292b0 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -640,7 +640,6 @@
\nNewPipe ne sera plus en mesure de charger ce flux à l’avenir.
\nSouhaitez-vous vous désabonner de cette chaîne \?
À partir d’Android 10, seule « l’Infrastructure d’accès au stockage » est prise en charge
- L’« Infrastructure d’accès au stockage » n’est pas prise en charge par Android KitKat et les versions antérieures
Le mode flux rapide ne fournit pas plus d’info à ce sujet.
Les commentaires sont désactivés
Ne pas afficher
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index 06b35acd3..5cf8abcf0 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -678,7 +678,6 @@
Procesando... Pode devagar un momento
Crear unha notificación de erro
Amosar fitas coloridas de Picasso na cima das imaxes que indican a súa fonte: vermello para a rede, azul para o disco e verde para a memoria
- O \'Sistema de Acceso ao almacenamento\' non está soportado en Android KitKat e anteriores
Novos elementos
Predefinido do ExoPlayer
Amosar \"Travar o reprodutor\"
diff --git a/app/src/main/res/values-he/strings.xml b/app/src/main/res/values-he/strings.xml
index b0ece06f1..de5128493 100644
--- a/app/src/main/res/values-he/strings.xml
+++ b/app/src/main/res/values-he/strings.xml
@@ -653,7 +653,6 @@
לא ניתן לטעון את ההזנה עבור ‚%s’.
שגיאה בהורדת ההזנה
התמיכה ב‚תשתית גישה לאחסון’ נתמכת מ־Android 10 בלבד
- ‚תשתית הגישה לאחסון’ אינה נתמכת על ידי Android KitKat ומטה
תופיע שאלה לאן לשמור כל הורדה
טרם הוגדרה תיקיית הורדה, נא לבחור את תיקיית ההורדה כעת
כבוי
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index 0ca0c75dc..cb7db9f44 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -643,7 +643,6 @@
Nije moguće učitati feed za \'%s\'.
Pogreška pri učitavanju feeda
Počevši od Androida 10, podržan je samo \'Storage Access Framework\'
- „Storage Access Framework“ nije podržan na Androidu KitKat i starijim
Od vas će se tražiti gdje spremiti svako preuzimanje
Ne prikazuj
Niska kvaliteta (manji)
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index e5457d3e1..e25183985 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -582,7 +582,6 @@
Tiltsa le a médiacsatornázást, ha fekete képernyőt vagy akadozást tapasztal videólejátszáskor
Picasso színes szalagok megjelenítése a képek fölött, megjelölve a forrásukat: piros a hálózathoz, kék a lemezhez, zöld a memóriához
Minden letöltésnél meg fogja kérdezni, hogy hova mentse el
- A „Storage Access Framework” nem támogatott Android KitKaten vagy régebbin
Válasszon egy példányt
Lista legutóbbi frissítése: %s
Lista betöltése…
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index c1f296849..e84fb393a 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -623,7 +623,6 @@
Tidak bisa memuat langganan untuk \'%s\'.
Galat memuat langganan
Mulai Android 10, hanya \'Storage Access Framework\' yang didukung
- \'Storage Access Framework\' tidak didukung pada Android KitKat dan yang lebih rendah
Anda akan ditanya lokasi penyimpanan berkas unduhan
Belum ada folder unduhan, pilih folder unduhan sekarang
Nonaktif
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index f347eba67..96d541d80 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -633,7 +633,6 @@
Impossibile caricare feed per \"%s\".
Errore caricamento feed
A partire da Android 10 è supportato solo il Framework di accesso all\'archiviazione
- Il Framework di accesso all\'archiviazione non è supportato su Android KitKat e versioni precedenti
È necessario specificare la destinazione di ogni dowload
Non è impostata alcuna cartella per i file scaricati, scegliere quella predefinita
Disattivata
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 955912126..e65897de3 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -614,7 +614,6 @@
ダウンロードのたびに保存する場所を尋ねます
ダウンロードフォルダがまだ設定されていません。今すぐデフォルトのフォルダを選択してください
Android 10 以降は \'Storage Access Framework\' のみがサポートされます
- \'Storage Access Framework\' は Android KitKat 以下ではサポートされていません
高速モードでこの情報の詳細は提供されません。
\'%s\' のフィードを読み込めませんでした。
フィードの読み込みエラー
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index e3ffbb03a..01b2e114b 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -647,7 +647,6 @@
\nAr norite atsisakyti šio kanalo prenumeratos\?
Klaida įkeliant srautą
Pradedant Android 10 palaikoma tik \'Storage Access Framework\'
- \'Storage Access Framework\' nėra palaikomas Android KitKat ir žemesnėse versijose
Jūsų bus paklausta, kur išsaugoti kiekvieną atsiuntimą
Atsiuntimo aplankas dar nenustatytas, pasirinkite numatytąjį atsiuntimų aplanką dabar
Komentarai yra išjungti
diff --git a/app/src/main/res/values-lv/strings.xml b/app/src/main/res/values-lv/strings.xml
index 4db63cf13..ba8d49e57 100644
--- a/app/src/main/res/values-lv/strings.xml
+++ b/app/src/main/res/values-lv/strings.xml
@@ -636,7 +636,6 @@
Izslēgt multivides tuneļošanu
Izslēdziet multivides tuneļošanu, ja jums video atskaņošanas laikā parādās melns ekrāns vai aizķeršanās
Rādīt krāsainas lentes virs attēliem, norādot to avotu: sarkana - tīkls, zila - disks, zaļa - atmiņa
- “Krātuves Piekļuves Sistēma” ir neatbalstīta uz Android KitKat un zemākām versijām
Ieslēgt teksta atlasīšanu video aprakstā
Lejupielādes mape vēl nav iestatīta, izvēlieties noklusējuma lejupielādes mapi
Pārvelciet objektus, lai tos noņemtu
diff --git a/app/src/main/res/values-ml/strings.xml b/app/src/main/res/values-ml/strings.xml
index edbc7785e..0e2cf6962 100644
--- a/app/src/main/res/values-ml/strings.xml
+++ b/app/src/main/res/values-ml/strings.xml
@@ -639,7 +639,6 @@
ഫീഡ് ലോഡ് ചെയ്യുന്നതിൽ പിശക് സംഭവിച്ചിരിക്കുന്നു
ആൻഡ്രോയ്ഡ് 10 മുതൽ മാത്രമേ \"സ്റ്റോറേജ് അക്സസ് ഫ്രെയിംവർക്ക്\" പിന്തുണക്കു
എവിടെ ആണ് ഡൌൺലോഡ് ചെയ്യ്യപെടുന്ന ഓരോ ഫയൽലും സംരക്ഷിക്കപ്പെടേണ്ടത് എന്ന് തങ്കളോട് ചോദിക്കും
- ആൻഡ്രോയ്ഡ് കിറ്റ് ക്യാറ്റോ അതിനു താഴെക്കോ ഉള്ളതിൽ \"സ്റ്റോറേജ് ആസസ്സ് ഫ്രെയിംവർക്ക് പിന്തുണക്കുന്നില്ല
കാണിക്കരുത്
കുറഞ്ഞ നിലവാരം (ചെറുത് )
ഉയർന്ന നിലവാരം (വലിയത് )
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index 58b4cb08c..4bd996ede 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -618,7 +618,6 @@
Kunne ikke laste inn informasjonskanal for «%s».
Kunne ikke laste inn informasjonskanal
Fra Android 10 er kun «lagringstilgangsrammeverk» støttet
- «Lagringstilgangsrammeverket» støttes ikke på Android KitKat og tidligere.
Du vil bli spurt om hvor du vil lagre hver nedlastning
Miniatyrbildeforhåndsvisning
Ingen nedlastingsmappe valgt. Velg forvalgt nedlastingsmappe nå.
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 7bdc902a5..fd80a7d54 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -637,7 +637,6 @@
Kan geen feed laden voor \'%s\'.
Error bij het inladen van de feed
Vanaf Android 10 is enkel \'Storage Access Framework\' ondersteund
- Het \'Storage Access Framework\' is niet ondersteund op Android KitKat en lager
U wordt gevraagd waar elk bestand wordt opgeslagen
Nog geen downloadfolder gekozen, kies de standaard downloadfolder
Geliefd door de maker
diff --git a/app/src/main/res/values-pa/strings.xml b/app/src/main/res/values-pa/strings.xml
index 2b08ebb32..46b33206f 100644
--- a/app/src/main/res/values-pa/strings.xml
+++ b/app/src/main/res/values-pa/strings.xml
@@ -529,7 +529,6 @@
ਐਪ ਭਾਸ਼ਾ
ਕੋਈ ਸਥਿਤੀ ਚੁਣੋ
\'ਸਟੋਰੇਜ ਐਕਸੈੱਸ ਫ਼ਰੇਮਵਰਕ\' ਐਂਡਰਾਇਡ 10 ਤੋਂ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ
- \'ਸਟੋਰੇਜ ਐਕਸੈੱਸ ਫ਼ਰੇਮਵਰਕ\' ਐਂਡਰਾਇਡ ਕਿਟਕੈਟ ਅਤੇ ਇਸਤੋਂ ਹੇਠਾਂ ਦੇ ਵਰਜਨਾਂ \'ਤੇ ਕੰਮ ਨਹੀਂ ਕਰਦਾ
ਤੁਹਾਨੂੰ ਹਰ ਵਾਰ ਪੁੱਛਿਆ ਜਾਵੇਗਾ ਕਿ ਡਾਊਨਲੋਡ ਨੂੰ ਕਿੱਥੇ ਸਾਂਭਣਾ ਹੈ
ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਮਿਟਾਓ
ਡਾਊਨਲੋਡ ਇਤਿਹਾਸ ਸਾਫ਼ ਕਰੋ
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index a09549fcf..283c1f223 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -646,7 +646,6 @@
\nCzy chcesz anulować subskrypcję tego kanału\?
Nie udało się załadować kanału dla „%s”.
Począwszy od Androida 10 obsługiwany jest tylko systemowy selektor folderów (SAF)
- Systemowy selektor folderów (SAF) nie jest obsługiwany przez system Android KitKat i niższy
Zostaniesz zapytany(-na), gdzie zapisać każdy pobierany plik
Nie ustawiono jeszcze folderu zapisywania, wybierz domyślny teraz
Błąd podczas ładowania kanału
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 4b0af0718..0a4b2c2ad 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -633,7 +633,6 @@
Não foi possível carregar o feed para \'%s\'.
Erro ao carregar o feed
O \'Storage Access Framework\' é compatível apenas com versões a partir do Android 10
- O \'Storage Access Framework\' não é compatível com Android KitKat e versões anteriores
Você será questionado onde salvar cada download
Nenhuma pasta de download definida ainda, escolha a pasta de download padrão agora
Desligado
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 9a9adad52..4f3559eeb 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -638,7 +638,6 @@
Não foi possível carregar o feed para \'%s\'.
Erro ao carregar o feed
A partir do Android 10, apenas o \'Storage Access Framework\' é compatível
- \'Storage Access Framework\' não é compatível com Android KitKat e versões anteriores
Sempre que descarregar um ficheiro, terá que indicar o local para o guardar
Não mostrar
Baixa qualidade (menor)
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 5453b1fa4..b1f579298 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -619,7 +619,6 @@
Não foi possível carregar o feed para \'%s\'.
Erro ao carregar o feed
A partir do Android 10, apenas o \'Storage Access Framework\' é compatível
- A \'Framework de acesso ao armazenamento\' não está disponível no Android KitKat e anteriores
Pré-visualização da miniatura da barra de pesquisa
Marcar como visto
Desligado
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index fe2292ef7..58a38ea6e 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -649,7 +649,6 @@
Nu s-a putut încărca fluxul pentru \"%s\".
Eroare la încărcarea fluxului
Începând cu Android 10, este acceptat doar \"Storage Access Framework\"
- \"Storage Access Framework\" nu este acceptat pe Android KitKat și versiunile ulterioare
Veți fi întrebat unde să salvați fiecare descărcare
- S-a șters %1$s descărcare
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 64351c7d3..c91368c2a 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -651,7 +651,6 @@
%s указывает следующую причину:
Аккаунт отключён
Начиная с Android 10 поддерживается только \"Storage Access Framework\"
- \"Storage Access Framework\" не поддерживается на Android KitKat и ниже
Спрашивать, куда сохранять каждую загрузку
Папка для загрузки ещё не выбрана, укажите папку для загрузки сейчас
Отключить
diff --git a/app/src/main/res/values-sc/strings.xml b/app/src/main/res/values-sc/strings.xml
index 2fc18cb6f..81a71402e 100644
--- a/app/src/main/res/values-sc/strings.xml
+++ b/app/src/main/res/values-sc/strings.xml
@@ -633,7 +633,6 @@
\nCheres bogare s\'iscritzione a custu canale\?
Carrigamentu de su flussu pro \'%s\' fallidu.
Errore carrighende su flussu
- Su \'Storage Access Framework\' no est suportadu in Android KitKat e versiones prus betzas
T\'at a bènnere pedidu in ue sarvare cada documentu
Non b\'at galu peruna cartella de iscarrigamentu impostada. Issèbera como sa cartella de iscarrigamentu predefinida
Istudadu
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index bfba46a5c..4645fcfff 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -643,7 +643,6 @@
Nemožno načítať informačný kanál \'%s\'.
Chyba pri načítaní kanála
\'Storage Access Framework\' je podporovaný len od Androidu 10 a vyššie
- \'Storage Access Framework\' nie je podporovaný v systéme Android KitKat a ani v starších verziách
Pri každom sťahovaní sa zobrazí výzva kam uložiť súbor
Nie je nastavený adresár na sťahovanie, nastavte ho teraz
Označiť ako videné
diff --git a/app/src/main/res/values-so/strings.xml b/app/src/main/res/values-so/strings.xml
index f8be2c8a5..d12b1e4d4 100644
--- a/app/src/main/res/values-so/strings.xml
+++ b/app/src/main/res/values-so/strings.xml
@@ -633,7 +633,6 @@
Lama soo kicin karo bandhigga: \'%s\'.
Khalad ayaa ka dhacay sookicintii
Laga bilaabo Android 10 kaliya waxaa la isticmaali \'SAF\'
- \'SAF\' kuma shaqeeyo Android KitKat iyo wixii ka hooseeya
Dajin walba meeshii lagu kaydin lahaa ayaa lagu waydiin
Iska xidh kala-leexinta muuqaalada/dhagaysiga hadaad lakulanto shaashad madow ama muuqaalka oo isistaaga
Xidh kala-leexinta
diff --git a/app/src/main/res/values-sq/strings.xml b/app/src/main/res/values-sq/strings.xml
index c5b016dd4..74d89908b 100644
--- a/app/src/main/res/values-sq/strings.xml
+++ b/app/src/main/res/values-sq/strings.xml
@@ -626,7 +626,6 @@
Nuk u arrit të ngarkohej feed-i për \'%s\'.
Gabim gjatë ngarkimit të feed-it
Duke nisur nga Android 10 vetëm \'Storage Access Framework\' është i mbështetur
- \'Storage Access Framework\' nuk është e mbështetur në Android KitKat dhe më poshtë
Ju do të pyeteni se ku doni të ruani çdo shkarkim
Rrëzoje aplikacionin manualisht
Ç\'aktivizo tunelin e medias nëse po hasni një ekran të zi apo ngecje gjatë luajtjes së një videoje
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 68981868c..26c3e896f 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -642,7 +642,6 @@
Не могу да учитам довод за „%s“.
Грешка учитавања довода
Од Андроида 10 само „Storage Access Framework“ је подржан
- „Storage Access Framework“ није подржан на Андроиду 4.4 и старијим
Питаће вас где да сачувате свако преузимање
Фасцикла за преузимање није одређена. Изаберите подразумевану фасциклу
искљ
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 53cd6909b..edcc13b08 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -633,7 +633,6 @@
Visa sedda objekt
Det snabba flödesläget ger inte mer information om detta.
Fel vid inläsning av flödet
- \"Storage Access Framework\" är inte tillgängligt på Android KitKat och tidigare versioner
Markera som sedd
Ej listad
Aktuellt
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index 512790f7c..0986fd74b 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -633,7 +633,6 @@
\'%s\' için besleme yüklenemedi.
Besleme yüklenirken hata
\'Depolama Erişimi Çerçevesi\' yalnızca Android 10\'dan başlayarak desteklenmektedir
- \'Depolama Erişimi Çerçevesi\' Android KitKat ve altında desteklenmez
Her indirmede nereye kaydedileceği sorulacak
İndirme klasörü belirlenmedi, şimdi öntanımlı indirme klasörünü seçin
Kapat
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index 50e1b00b7..736a49c8e 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -620,7 +620,6 @@
Вимкнення тунелювання медіаданих за наявності чорного екрана або гальмування під час відтворення відео
Вимкнути тунелювання медіа
«Фреймворк доступу до сховища» (SAF) підтримується лише починаючи з Android 10
- «Фреймворк доступу до сховища» (SAF) не підтримується в KitKat і нижче
Вас питатиме, куди зберігати кожне завантаження
Не вказано теки завантаження, оберіть типову теку завантаження зараз
Відкрити вебсайт
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
index 658c96b55..2346a4cf9 100644
--- a/app/src/main/res/values-vi/strings.xml
+++ b/app/src/main/res/values-vi/strings.xml
@@ -627,7 +627,6 @@
Không thể tải nguồn dữ liệu cho \'%s\'.
Lỗi khi tải nguồn dữ liệu
\'Storage Access Framework\' chỉ được hỗ trợ từ Android 10 trở đi
- \'Storage Access Framework\' không được hỗ trợ trên Android KitKat và cũ hơn
Bạn sẽ được hỏi nơi bạn muốn lưu mỗi mục tải xuống
Chưa có thư mục tải xuống nào được đặt, hãy chọn thư mục tải xuống mặc định ngay
Không hiện
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index b3642829c..3c307f195 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -623,7 +623,6 @@
无法加载“%s”的 Feed。
加载 Feed 时出错
仅 Android 10 及以上版本支持“存储访问框架”
- Android KitKat 及更低版本不支持“存储访问框架”
你会被问到在哪里保存每个下载
尚未设置下载文件夹,现在选择默认下载文件夹
平板模式
diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml
index 399282f7c..9b142a747 100644
--- a/app/src/main/res/values-zh-rHK/strings.xml
+++ b/app/src/main/res/values-zh-rHK/strings.xml
@@ -563,7 +563,6 @@
預設開啟內容嘅時候做咩好 — %s
脫鈎 (聲音可能會失真)
飛前一格
- Android KitKat 以及樓下唔支援「儲存空間存取框架」
未有收起嘅播放清單
照單全播
未有頻道訂閱
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index db6caf56d..47117ee90 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -623,7 +623,6 @@
無法載入「%s」。
載入 feed 時發生錯誤
從 Android 10 開始僅支援「儲存空間存取框架」
- Android KitKat 或更舊的版本不支援「儲存空間存取框架」
每次下載都會詢問您要下載到哪裡
尚未設定下載資料夾,立刻選擇預設的下載資料夾
關閉
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index cedb01b20..b742f2517 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -615,7 +615,6 @@
You will be asked where to save each download
Use system folder picker (SAF)
The \'Storage Access Framework\' allows downloads to an external SD card
- The \'Storage Access Framework\' is not supported on Android KitKat and below
Starting from Android 10 only \'Storage Access Framework\' is supported
Choose an instance
App language
diff --git a/app/src/main/res/xml/download_settings.xml b/app/src/main/res/xml/download_settings.xml
index fa15af406..48e7bbd2e 100644
--- a/app/src/main/res/xml/download_settings.xml
+++ b/app/src/main/res/xml/download_settings.xml
@@ -12,6 +12,7 @@
app:iconSpaceReserved="false" />