diff --git a/app/build.gradle b/app/build.gradle index 4050e116c..9867037e6 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -14,15 +14,12 @@ android { defaultConfig { applicationId "org.schabi.newpipe" resValue "string", "app_name", "NewPipe" - minSdk 19 + minSdk 21 targetSdk 29 versionCode 987 versionName "0.23.1" - multiDexEnabled true - testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" - vectorDrawables.useSupportLibrary = true javaCompileOptions { annotationProcessorOptions { @@ -210,7 +207,6 @@ dependencies { implementation "androidx.lifecycle:lifecycle-viewmodel:${androidxLifecycleVersion}" implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' implementation 'androidx.media:media:1.5.0' - implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.preference:preference:1.2.0' implementation 'androidx.recyclerview:recyclerview:1.2.1' implementation "androidx.room:room-runtime:${androidxRoomVersion}" @@ -220,7 +216,6 @@ dependencies { // Newer version specified to prevent accessibility regressions with RecyclerView, see: // https://developer.android.com/jetpack/androidx/releases/viewpager2#1.1.0-alpha01 implementation 'androidx.viewpager2:viewpager2:1.1.0-beta01' - implementation 'androidx.webkit:webkit:1.4.0' implementation "androidx.work:work-runtime-ktx:${androidxWorkVersion}" implementation "androidx.work:work-rxjava3:${androidxWorkVersion}" implementation 'com.google.android.material:material:1.5.0' diff --git a/app/src/main/java/org/schabi/newpipe/App.java b/app/src/main/java/org/schabi/newpipe/App.java index 70c947478..c63f07891 100644 --- a/app/src/main/java/org/schabi/newpipe/App.java +++ b/app/src/main/java/org/schabi/newpipe/App.java @@ -1,5 +1,6 @@ package org.schabi.newpipe; +import android.app.Application; import android.content.Context; import android.content.SharedPreferences; import android.util.Log; @@ -7,7 +8,6 @@ import android.util.Log; import androidx.annotation.NonNull; import androidx.core.app.NotificationChannelCompat; import androidx.core.app.NotificationManagerCompat; -import androidx.multidex.MultiDexApplication; import androidx.preference.PreferenceManager; import com.jakewharton.processphoenix.ProcessPhoenix; @@ -56,7 +56,7 @@ import io.reactivex.rxjava3.plugins.RxJavaPlugins; * along with NewPipe. If not, see . */ -public class App extends MultiDexApplication { +public class App extends Application { public static final String PACKAGE_NAME = BuildConfig.APPLICATION_ID; private static final String TAG = App.class.toString(); private static App app; 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/ErrorUtil.kt b/app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt index e4dd2e16d..86e2e1028 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt +++ b/app/src/main/java/org/schabi/newpipe/error/ErrorUtil.kt @@ -114,13 +114,7 @@ class ErrorUtil { context, context.getString(R.string.error_report_channel_id) ) - .setSmallIcon( - // the vector drawable icon causes crashes on KitKat devices - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) - R.drawable.ic_bug_report - else - android.R.drawable.stat_notify_error - ) + .setSmallIcon(R.drawable.ic_bug_report) .setContentTitle(context.getString(R.string.error_report_notification_title)) .setContentText(context.getString(errorInfo.messageStringId)) .setAutoCancel(true) 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..e2780d215 100644 --- a/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java +++ b/app/src/main/java/org/schabi/newpipe/error/ReCaptchaActivity.java @@ -3,14 +3,15 @@ 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; import android.view.MenuItem; import android.webkit.CookieManager; +import android.webkit.WebResourceRequest; import android.webkit.WebSettings; import android.webkit.WebView; +import android.webkit.WebViewClient; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -18,7 +19,6 @@ import androidx.appcompat.app.ActionBar; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.NavUtils; import androidx.preference.PreferenceManager; -import androidx.webkit.WebViewClientCompat; import org.schabi.newpipe.databinding.ActivityRecaptchaBinding; import org.schabi.newpipe.DownloaderImpl; @@ -86,14 +86,15 @@ public class ReCaptchaActivity extends AppCompatActivity { webSettings.setJavaScriptEnabled(true); webSettings.setUserAgentString(DownloaderImpl.USER_AGENT); - recaptchaBinding.reCaptchaWebView.setWebViewClient(new WebViewClientCompat() { + recaptchaBinding.reCaptchaWebView.setWebViewClient(new WebViewClient() { @Override - public boolean shouldOverrideUrlLoading(final WebView view, final String url) { + public boolean shouldOverrideUrlLoading(final WebView view, + final WebResourceRequest request) { if (MainActivity.DEBUG) { - Log.d(TAG, "shouldOverrideUrlLoading: url=" + url); + Log.d(TAG, "shouldOverrideUrlLoading: url=" + request.getUrl().toString()); } - handleCookiesFromUrl(url); + handleCookiesFromUrl(request.getUrl().toString()); return false; } @@ -107,12 +108,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 - backgroundTintListCompat = ColorStateList(empty, intArrayOf(animation.animatedValue as Int)) + backgroundTintList = ColorStateList(empty, intArrayOf(animation.animatedValue as Int)) } viewPropertyAnimator.addListener( - onCancel = { backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd)) }, - onEnd = { backgroundTintListCompat = ColorStateList(empty, intArrayOf(colorEnd)) } + onCancel = { backgroundTintList = ColorStateList(empty, intArrayOf(colorEnd)) }, + onEnd = { backgroundTintList = ColorStateList(empty, intArrayOf(colorEnd)) } ) viewPropertyAnimator.start() } diff --git a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt index e96328961..379b4c0d7 100644 --- a/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt +++ b/app/src/main/java/org/schabi/newpipe/local/subscription/dialog/FeedGroupDialog.kt @@ -8,12 +8,10 @@ import android.view.View import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.Toast -import androidx.appcompat.content.res.AppCompatResources import androidx.core.content.getSystemService import androidx.core.os.bundleOf import androidx.core.view.isGone import androidx.core.view.isVisible -import androidx.core.widget.ImageViewCompat import androidx.core.widget.doOnTextChanged import androidx.fragment.app.DialogFragment import androidx.lifecycle.Observer @@ -124,14 +122,6 @@ class FeedGroupDialog : DialogFragment(), BackPressable { _feedGroupCreateBinding = DialogFeedGroupCreateBinding.bind(view) _searchLayoutBinding = feedGroupCreateBinding.subscriptionsHeaderSearchContainer - if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) { - // KitKat doesn't apply container's theme to 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/PlayerNotificationSettingsFragment.kt b/app/src/main/java/org/schabi/newpipe/settings/PlayerNotificationSettingsFragment.kt index 3549bff42..7d95433a4 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/PlayerNotificationSettingsFragment.kt +++ b/app/src/main/java/org/schabi/newpipe/settings/PlayerNotificationSettingsFragment.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 PlayerNotificationSettingsFragment : 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/custom/NotificationActionsPreference.java b/app/src/main/java/org/schabi/newpipe/settings/custom/NotificationActionsPreference.java index 798d299c0..849574171 100644 --- a/app/src/main/java/org/schabi/newpipe/settings/custom/NotificationActionsPreference.java +++ b/app/src/main/java/org/schabi/newpipe/settings/custom/NotificationActionsPreference.java @@ -218,7 +218,7 @@ public class NotificationActionsPreference extends Preference { final int color = ThemeHelper.resolveColorFromAttr(getContext(), android.R.attr.textColorPrimary); drawable = DrawableCompat.wrap(drawable).mutate(); - DrawableCompat.setTint(drawable, color); + drawable.setTint(color); radioButton.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, drawable, null); } 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/layout-land/activity_player_queue_control.xml b/app/src/main/res/layout-land/activity_player_queue_control.xml index c2359552e..7d3b43ecc 100644 --- a/app/src/main/res/layout-land/activity_player_queue_control.xml +++ b/app/src/main/res/layout-land/activity_player_queue_control.xml @@ -138,8 +138,8 @@ android:clickable="true" android:focusable="true" android:scaleType="fitCenter" + android:src="@drawable/ic_pause" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_pause" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout-large-land/fragment_video_detail.xml b/app/src/main/res/layout-large-land/fragment_video_detail.xml index 851085b5b..d8e52b354 100644 --- a/app/src/main/res/layout-large-land/fragment_video_detail.xml +++ b/app/src/main/res/layout-large-land/fragment_video_detail.xml @@ -65,8 +65,8 @@ android:layout_height="64dp" android:layout_gravity="center" android:background="@android:color/transparent" + android:src="@drawable/ic_play_arrow_shadow" android:visibility="invisible" - app:srcCompat="@drawable/ic_play_arrow_shadow" tools:ignore="ContentDescription" tools:visibility="visible" /> @@ -199,7 +199,7 @@ android:layout_gravity="top|end" android:layout_marginTop="11dp" android:layout_marginEnd="10dp" - app:srcCompat="@drawable/ic_expand_more" + android:src="@drawable/ic_expand_more" tools:ignore="ContentDescription" /> @@ -326,18 +326,6 @@ tools:text="Uploader" /> - @@ -369,7 +357,7 @@ android:layout_height="@dimen/video_item_detail_like_image_height" android:layout_below="@id/detail_view_count_view" android:contentDescription="@string/detail_likes_img_view_description" - app:srcCompat="@drawable/ic_thumb_up" /> + android:src="@drawable/ic_thumb_up" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> @@ -526,12 +514,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/share" + android:drawableTop="@drawable/ic_share" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/share" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_share" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> - + android:textSize="@dimen/detail_control_text_size" /> @@ -719,7 +707,7 @@ android:scaleType="center" android:focusable="true" android:focusedByDefault="true" - app:srcCompat="@drawable/ic_play_arrow" + android:src="@drawable/ic_play_arrow" tools:ignore="ContentDescription,RtlHardcoded" /> diff --git a/app/src/main/res/layout/activity_player_queue_control.xml b/app/src/main/res/layout/activity_player_queue_control.xml index 24e062932..29efa36f9 100644 --- a/app/src/main/res/layout/activity_player_queue_control.xml +++ b/app/src/main/res/layout/activity_player_queue_control.xml @@ -174,8 +174,8 @@ android:clickable="true" android:focusable="true" android:scaleType="fitXY" + android:src="@drawable/ic_repeat" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_repeat" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout/dialog_feed_group_create.xml b/app/src/main/res/layout/dialog_feed_group_create.xml index a08041e97..464940238 100644 --- a/app/src/main/res/layout/dialog_feed_group_create.xml +++ b/app/src/main/res/layout/dialog_feed_group_create.xml @@ -193,8 +193,8 @@ android:layout_centerVertical="true" android:minWidth="0dp" android:scaleType="centerInside" + android:src="@drawable/ic_delete" android:visibility="gone" - app:srcCompat="@drawable/ic_delete" tools:ignore="ContentDescription" tools:visibility="visible" /> diff --git a/app/src/main/res/layout/dialog_playback_parameter.xml b/app/src/main/res/layout/dialog_playback_parameter.xml index e402f4fb1..cc506cc79 100644 --- a/app/src/main/res/layout/dialog_playback_parameter.xml +++ b/app/src/main/res/layout/dialog_playback_parameter.xml @@ -1,6 +1,5 @@ @@ -20,7 +19,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" - app:srcCompat="@drawable/ic_playlist_add" + android:src="@drawable/ic_playlist_add" tools:ignore="ContentDescription,RtlHardcoded" /> + tools:src="@drawable/ic_smart_display" /> diff --git a/app/src/main/res/layout/feed_group_add_new_item.xml b/app/src/main/res/layout/feed_group_add_new_item.xml index df3fc9b3a..0dfe819a6 100644 --- a/app/src/main/res/layout/feed_group_add_new_item.xml +++ b/app/src/main/res/layout/feed_group_add_new_item.xml @@ -24,7 +24,7 @@ android:layout_height="14dp" android:layout_gravity="center" android:scaleType="centerInside" - app:srcCompat="@drawable/ic_add" + android:src="@drawable/ic_add" tools:ignore="ContentDescription" /> \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_about.xml b/app/src/main/res/layout/fragment_about.xml index db93f1d8d..1807acb10 100644 --- a/app/src/main/res/layout/fragment_about.xml +++ b/app/src/main/res/layout/fragment_about.xml @@ -1,5 +1,4 @@ + android:src="@mipmap/ic_launcher" /> + app:layout_constraintEnd_toEndOf="parent" /> diff --git a/app/src/main/res/layout/fragment_description.xml b/app/src/main/res/layout/fragment_description.xml index b020d5db3..157b8f394 100644 --- a/app/src/main/res/layout/fragment_description.xml +++ b/app/src/main/res/layout/fragment_description.xml @@ -38,11 +38,11 @@ android:contentDescription="@string/description_select_enable" android:focusable="true" android:padding="5dp" + android:src="@drawable/ic_select_all" app:layout_constraintBottom_toTopOf="@+id/barrier" app:layout_constraintDimensionRatio="1" app:layout_constraintEnd_toEndOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_select_all" /> + app:layout_constraintTop_toTopOf="parent" /> @@ -57,7 +56,7 @@ android:layout_alignParentEnd="true" android:layout_marginStart="6dp" android:layout_marginEnd="12dp" - app:srcCompat="@drawable/ic_refresh" + android:src="@drawable/ic_refresh" tools:ignore="ContentDescription" /> + app:fabSize="auto" /> diff --git a/app/src/main/res/layout/fragment_video_detail.xml b/app/src/main/res/layout/fragment_video_detail.xml index 08a9bcf0a..18655283e 100644 --- a/app/src/main/res/layout/fragment_video_detail.xml +++ b/app/src/main/res/layout/fragment_video_detail.xml @@ -55,8 +55,8 @@ android:layout_height="64dp" android:layout_gravity="center" android:background="@android:color/transparent" + android:src="@drawable/ic_play_arrow_shadow" android:visibility="invisible" - app:srcCompat="@drawable/ic_play_arrow_shadow" tools:ignore="ContentDescription" tools:visibility="visible" /> @@ -187,7 +187,7 @@ android:layout_gravity="top|end" android:layout_marginTop="11dp" android:layout_marginEnd="10dp" - app:srcCompat="@drawable/ic_expand_more" + android:src="@drawable/ic_expand_more" tools:ignore="ContentDescription" /> @@ -313,19 +313,6 @@ tools:text="Uploader" /> - - @@ -357,7 +344,7 @@ android:layout_height="@dimen/video_item_detail_like_image_height" android:layout_below="@id/detail_view_count_view" android:contentDescription="@string/detail_likes_img_view_description" - app:srcCompat="@drawable/ic_thumb_up" /> + android:src="@drawable/ic_thumb_up" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> @@ -510,12 +497,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/share" + android:drawableTop="@drawable/ic_share" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/share" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_share" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> + android:textSize="@dimen/detail_control_text_size" /> - + android:textSize="@dimen/detail_control_text_size" /> @@ -696,7 +683,7 @@ android:scaleType="center" android:focusable="true" android:focusedByDefault="true" - app:srcCompat="@drawable/ic_play_arrow" + android:src="@drawable/ic_play_arrow" tools:ignore="ContentDescription,RtlHardcoded" /> diff --git a/app/src/main/res/layout/item_instance.xml b/app/src/main/res/layout/item_instance.xml index dd5b4156f..12ecb2ea7 100644 --- a/app/src/main/res/layout/item_instance.xml +++ b/app/src/main/res/layout/item_instance.xml @@ -75,7 +75,7 @@ android:paddingTop="12dp" android:paddingRight="10dp" android:paddingBottom="12dp" - app:srcCompat="@drawable/ic_drag_handle" + android:src="@drawable/ic_drag_handle" tools:ignore="ContentDescription,RtlHardcoded" /> diff --git a/app/src/main/res/layout/item_search_suggestion.xml b/app/src/main/res/layout/item_search_suggestion.xml index 4b1025fea..f7a07bbcc 100644 --- a/app/src/main/res/layout/item_search_suggestion.xml +++ b/app/src/main/res/layout/item_search_suggestion.xml @@ -1,6 +1,5 @@ diff --git a/app/src/main/res/layout/list_choose_tabs.xml b/app/src/main/res/layout/list_choose_tabs.xml index e6cebda11..ed7ad94c4 100644 --- a/app/src/main/res/layout/list_choose_tabs.xml +++ b/app/src/main/res/layout/list_choose_tabs.xml @@ -55,7 +55,7 @@ android:paddingTop="12dp" android:paddingRight="16dp" android:paddingBottom="12dp" - app:srcCompat="@drawable/ic_drag_handle" + android:src="@drawable/ic_drag_handle" tools:ignore="ContentDescription,RtlHardcoded" /> diff --git a/app/src/main/res/layout/list_comments_item.xml b/app/src/main/res/layout/list_comments_item.xml index 3b148de03..4358c438f 100644 --- a/app/src/main/res/layout/list_comments_item.xml +++ b/app/src/main/res/layout/list_comments_item.xml @@ -32,8 +32,8 @@ android:layout_marginRight="@dimen/video_item_detail_pinned_right_margin" android:layout_toEndOf="@+id/itemThumbnailView" android:contentDescription="@string/detail_pinned_comment_view_description" + android:src="@drawable/ic_pin" android:visibility="gone" - app:srcCompat="@drawable/ic_pin" tools:visibility="visible" /> + android:src="@drawable/ic_thumb_up" /> - - - - - + tools:visibility="visible" /> + android:src="@drawable/ic_thumb_up" /> - - - - diff --git a/app/src/main/res/layout/mission_item_linear.xml b/app/src/main/res/layout/mission_item_linear.xml index d7235fcaf..ce2d1af4b 100644 --- a/app/src/main/res/layout/mission_item_linear.xml +++ b/app/src/main/res/layout/mission_item_linear.xml @@ -72,7 +72,7 @@ android:layout_marginRight="4dp" android:contentDescription="TODO" android:scaleType="centerInside" - app:srcCompat="@drawable/ic_more_vert" + android:src="@drawable/ic_more_vert" app:tint="?attr/actionColor" /> diff --git a/app/src/main/res/layout/picker_subscription_item.xml b/app/src/main/res/layout/picker_subscription_item.xml index 1aaa1e7d8..c858ccc4e 100644 --- a/app/src/main/res/layout/picker_subscription_item.xml +++ b/app/src/main/res/layout/picker_subscription_item.xml @@ -52,8 +52,8 @@ android:layout_gravity="top|center_horizontal" android:layout_marginTop="4dp" android:scaleType="centerInside" + android:src="@drawable/ic_done" app:tint="@color/white" - app:srcCompat="@drawable/ic_done" tools:ignore="ContentDescription" /> diff --git a/app/src/main/res/layout/play_queue_item.xml b/app/src/main/res/layout/play_queue_item.xml index 5fb9419f6..7d672dc8b 100644 --- a/app/src/main/res/layout/play_queue_item.xml +++ b/app/src/main/res/layout/play_queue_item.xml @@ -89,10 +89,10 @@ android:layout_gravity="center_vertical" android:paddingHorizontal="@dimen/video_item_search_image_right_margin" android:scaleType="center" + android:src="@drawable/ic_drag_handle" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent" - app:srcCompat="@drawable/ic_drag_handle" tools:ignore="ContentDescription,RtlHardcoded" /> diff --git a/app/src/main/res/layout/player.xml b/app/src/main/res/layout/player.xml index d748942e0..b8b60b3f8 100644 --- a/app/src/main/res/layout/player.xml +++ b/app/src/main/res/layout/player.xml @@ -112,8 +112,8 @@ android:focusable="true" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitXY" + android:src="@drawable/ic_close" android:visibility="gone" - app:srcCompat="@drawable/ic_close" app:tint="@color/white" tools:ignore="ContentDescription,RtlHardcoded" /> @@ -198,8 +198,8 @@ android:paddingEnd="3dp" android:paddingBottom="3dp" android:scaleType="fitCenter" + android:src="@drawable/ic_list" android:visibility="gone" - app:srcCompat="@drawable/ic_list" app:tint="@color/white" tools:ignore="ContentDescription,RtlHardcoded" /> @@ -216,8 +216,8 @@ android:paddingEnd="6dp" android:paddingBottom="3dp" android:scaleType="fitCenter" + android:src="@drawable/ic_format_list_numbered" android:visibility="gone" - app:srcCompat="@drawable/ic_format_list_numbered" app:tint="@color/white" tools:ignore="ContentDescription,RtlHardcoded" /> @@ -230,7 +230,7 @@ android:focusable="true" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitXY" - app:srcCompat="@drawable/ic_expand_more" + android:src="@drawable/ic_expand_more" app:tint="@color/white" tools:ignore="ContentDescription,RtlHardcoded" /> @@ -294,7 +294,7 @@ android:focusable="true" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitXY" - app:srcCompat="@drawable/ic_cast" + android:src="@drawable/ic_cast" app:tint="@color/white" tools:ignore="RtlHardcoded" /> @@ -309,7 +309,7 @@ android:focusable="true" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitXY" - app:srcCompat="@drawable/ic_language" + android:src="@drawable/ic_language" app:tint="@color/white" tools:ignore="RtlHardcoded" /> @@ -324,7 +324,7 @@ android:focusable="true" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitXY" - app:srcCompat="@drawable/ic_share" + android:src="@drawable/ic_share" app:tint="@color/white" tools:ignore="RtlHardcoded" /> @@ -338,7 +338,7 @@ android:focusable="true" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitXY" - app:srcCompat="@drawable/ic_volume_off" + android:src="@drawable/ic_volume_off" app:tint="@color/white" tools:ignore="RtlHardcoded" /> @@ -351,8 +351,8 @@ android:focusable="true" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitCenter" + android:src="@drawable/ic_fullscreen" android:visibility="gone" - app:srcCompat="@drawable/ic_fullscreen" app:tint="@color/white" tools:ignore="ContentDescription,RtlHardcoded" tools:visibility="visible" /> @@ -397,8 +397,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingTop="2dp" + android:src="@drawable/dummy_thumbnail" android:visibility="gone" - app:srcCompat="@drawable/dummy_thumbnail" tools:visibility="visible" /> @@ -475,8 +475,8 @@ android:nextFocusUp="@id/playbackSeekBar" android:padding="@dimen/player_main_buttons_padding" android:scaleType="fitCenter" + android:src="@drawable/ic_fullscreen" android:visibility="gone" - app:srcCompat="@drawable/ic_fullscreen" app:tint="@color/white" tools:ignore="ContentDescription,RtlHardcoded" tools:visibility="visible" /> @@ -500,7 +500,7 @@ android:clickable="true" android:focusable="true" android:scaleType="fitCenter" - app:srcCompat="@drawable/ic_previous" + android:src="@drawable/ic_previous" app:tint="@color/white" tools:ignore="ContentDescription" /> @@ -512,7 +512,7 @@ android:layout_weight="1" android:background="?attr/selectableItemBackgroundBorderless" android:scaleType="fitCenter" - app:srcCompat="@drawable/ic_pause" + android:src="@drawable/ic_pause" app:tint="@color/white" tools:ignore="ContentDescription" /> @@ -526,7 +526,7 @@ android:clickable="true" android:focusable="true" android:scaleType="fitCenter" - app:srcCompat="@drawable/ic_next" + android:src="@drawable/ic_next" app:tint="@color/white" tools:ignore="ContentDescription" /> @@ -577,8 +577,8 @@ android:focusable="true" android:padding="10dp" android:scaleType="fitXY" + android:src="@drawable/exo_controls_repeat_off" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/exo_controls_repeat_off" tools:ignore="ContentDescription,RtlHardcoded" /> diff --git a/app/src/main/res/layout/player_fast_seek_seconds_view.xml b/app/src/main/res/layout/player_fast_seek_seconds_view.xml index 57f5aa787..2946f8449 100644 --- a/app/src/main/res/layout/player_fast_seek_seconds_view.xml +++ b/app/src/main/res/layout/player_fast_seek_seconds_view.xml @@ -1,6 +1,5 @@ diff --git a/app/src/main/res/layout/player_popup_close_overlay.xml b/app/src/main/res/layout/player_popup_close_overlay.xml index b2403583d..10d81d77e 100644 --- a/app/src/main/res/layout/player_popup_close_overlay.xml +++ b/app/src/main/res/layout/player_popup_close_overlay.xml @@ -10,8 +10,8 @@ android:layout_height="wrap_content" android:layout_gravity="bottom|center_horizontal" android:layout_marginBottom="24dp" + android:src="@drawable/ic_close" app:backgroundTint="@color/light_youtube_primary_color" app:borderWidth="0dp" - app:fabSize="normal" - app:srcCompat="@drawable/ic_close" /> + app:fabSize="normal" /> diff --git a/app/src/main/res/layout/playlist_control.xml b/app/src/main/res/layout/playlist_control.xml index a5f258f50..5a8856128 100644 --- a/app/src/main/res/layout/playlist_control.xml +++ b/app/src/main/res/layout/playlist_control.xml @@ -1,6 +1,5 @@ + android:textSize="@dimen/channel_rss_title_size" /> + android:textSize="@dimen/channel_rss_title_size" /> diff --git a/app/src/main/res/layout/statistic_playlist_control.xml b/app/src/main/res/layout/statistic_playlist_control.xml index 577e94e4b..36540d32e 100644 --- a/app/src/main/res/layout/statistic_playlist_control.xml +++ b/app/src/main/res/layout/statistic_playlist_control.xml @@ -1,6 +1,5 @@ @@ -13,7 +12,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="6dp" android:scaleType="fitCenter" - app:srcCompat="@drawable/ic_volume_off" + android:src="@drawable/ic_volume_off" tools:ignore="ContentDescription,RtlHardcoded" /> 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-night-v21/styles.xml b/app/src/main/res/values-night/styles.xml similarity index 73% rename from app/src/main/res/values-night-v21/styles.xml rename to app/src/main/res/values-night/styles.xml index eb39dee38..7327ac145 100644 --- a/app/src/main/res/values-night-v21/styles.xml +++ b/app/src/main/res/values-night/styles.xml @@ -2,7 +2,7 @@ - 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-v21/styles.xml b/app/src/main/res/values-v21/styles.xml deleted file mode 100644 index 8fa00d0d8..000000000 --- a/app/src/main/res/values-v21/styles.xml +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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/colors_services.xml b/app/src/main/res/values/colors_services.xml index d6cd73d52..f3487810a 100644 --- a/app/src/main/res/values/colors_services.xml +++ b/app/src/main/res/values/colors_services.xml @@ -2,53 +2,37 @@ #e53935 - #992722 #000000 - #e53935 #992722 - #7a1717 #FFFFFF - #992722 #f57c00 - #995700 #000000 - #f57c00 #a35300 - #7d4000 #FFFFFF - #a35300 #ff6f00 - #c43e00 #000000 - #ff6f00 #a34700 - #942f00 #FFFFFF - #a34700 #9e9e9e #000000 - #9e9e9e #878787 #FFFFFF - #878787 #17a0c4 #000000 - #17a0c4 #1383a1 #FFFFFF - #1383a1 \ No newline at end of file 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/values/styles.xml b/app/src/main/res/values/styles.xml index e711b35ab..164f10672 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,27 +1,29 @@ - + + - - - - diff --git a/app/src/main/res/values/styles_services.xml b/app/src/main/res/values/styles_services.xml index ce67f468b..db1fba397 100644 --- a/app/src/main/res/values/styles_services.xml +++ b/app/src/main/res/values/styles_services.xml @@ -1,16 +1,22 @@ - - - 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" />