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 <http://www.gnu.org/licenses/>. */ -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(_,_). - * <p> - * If there is an error, the function will safely fall back to doing nothing - * and printing the error to the console. - * </p> - * - * @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<CipherSuite> 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<String> 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<SearchInfo, ListExtractor.I + lastSearchedString); } searchEditText.setText(searchString); - if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.LOLLIPOP) { - searchEditText.setHintTextColor(searchEditText.getTextColors().withAlpha(128)); - } if (TextUtils.isEmpty(searchString) || TextUtils.isEmpty(searchEditText.getText())) { searchToolbarContainer.setTranslationX(100); diff --git a/app/src/main/java/org/schabi/newpipe/ktx/View.kt b/app/src/main/java/org/schabi/newpipe/ktx/View.kt index ace1dbf7e..ea680dd60 100644 --- a/app/src/main/java/org/schabi/newpipe/ktx/View.kt +++ b/app/src/main/java/org/schabi/newpipe/ktx/View.kt @@ -12,7 +12,6 @@ import android.view.View import androidx.annotation.ColorInt import androidx.annotation.FloatRange import androidx.core.animation.addListener -import androidx.core.view.ViewCompat import androidx.core.view.isGone import androidx.core.view.isInvisible import androidx.core.view.isVisible @@ -21,10 +20,6 @@ import org.schabi.newpipe.MainActivity private const val TAG = "ViewUtils" -inline var View.backgroundTintListCompat: ColorStateList? - get() = ViewCompat.getBackgroundTintList(this) - set(value) = ViewCompat.setBackgroundTintList(this, value) - /** * Animate the view. * @@ -106,11 +101,11 @@ fun View.animateBackgroundColor(duration: Long, @ColorInt colorStart: Int, @Colo viewPropertyAnimator.interpolator = FastOutSlowInInterpolator() viewPropertyAnimator.duration = duration viewPropertyAnimator.addUpdateListener { animation: ValueAnimator -> - 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 <include> 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<Callback> 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<ViewHolder> 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" /> <ProgressBar @@ -199,8 +199,8 @@ android:gravity="center" android:minWidth="50dp" android:scaleType="fitCenter" + android:src="@drawable/ic_previous" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_previous" tools:ignore="ContentDescription" /> <ImageButton @@ -214,8 +214,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" /> <View @@ -235,8 +235,8 @@ android:clickable="true" android:focusable="true" android:scaleType="fitXY" + android:src="@drawable/ic_shuffle" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_shuffle" tools:ignore="ContentDescription" /> <androidx.appcompat.widget.AppCompatImageButton @@ -253,8 +253,8 @@ android:gravity="center" android:minWidth="50dp" android:scaleType="fitCenter" + android:src="@drawable/ic_next" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_next" tools:ignore="ContentDescription" /> </RelativeLayout> </RelativeLayout> 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" /> </FrameLayout> @@ -326,18 +326,6 @@ tools:text="Uploader" /> </LinearLayout> - <!--<Button - android:id="@+id/detail_uploader_subscribe" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical|right" - android:layout_marginRight="12dp" - android:text="@string/rss_button_title" - android:textSize="12sp" - android:theme="@style/RedButton" - app:drawableLeftCompat="@drawable/ic_rss_feed" - tools:ignore="RtlHardcoded" - android:visibility="gone"/>--> </LinearLayout> <!-- VIEW & THUMBS --> @@ -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" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_thumbs_up_count_view" @@ -393,7 +381,7 @@ android:layout_marginLeft="12dp" android:layout_toRightOf="@id/detail_thumbs_up_count_view" android:contentDescription="@string/detail_dislikes_img_view_description" - app:srcCompat="@drawable/ic_thumb_down" + android:src="@drawable/ic_thumb_down" tools:ignore="RtlHardcoded" /> <org.schabi.newpipe.views.NewPipeTextView @@ -447,12 +435,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/add_to_playlist" + android:drawableTop="@drawable/ic_playlist_add" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/controls_add_to_playlist_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_playlist_add" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_background" @@ -463,12 +451,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/play_audio" + android:drawableTop="@drawable/ic_headset" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/controls_background_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_headset" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_popup" @@ -479,12 +467,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/open_in_popup_mode" + android:drawableTop="@drawable/ic_picture_in_picture" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/controls_popup_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_picture_in_picture" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_download" @@ -495,12 +483,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/controls_download_desc" + android:drawableTop="@drawable/ic_file_download" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/download" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_file_download" /> + android:textSize="@dimen/detail_control_text_size" /> </LinearLayout> @@ -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" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_open_in_browser" @@ -542,12 +530,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/open_in_browser" + android:drawableTop="@drawable/ic_language" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/open_in_browser" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_language" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_play_with_kodi" @@ -558,14 +546,14 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/play_with_kodi_title" + android:drawableTop="@drawable/ic_cast" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/play_with_kodi_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_cast" /> + android:textSize="@dimen/detail_control_text_size" /> - <TextView + <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_crash_the_player" android:layout_width="@dimen/detail_control_width" android:layout_height="@dimen/detail_control_height" @@ -574,12 +562,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/crash_the_player" + android:drawableTop="@drawable/ic_bug_report" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/crash_the_player" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_bug_report" /> + android:textSize="@dimen/detail_control_text_size" /> </LinearLayout> @@ -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" /> <ImageButton @@ -729,7 +717,7 @@ android:background="?attr/selectableItemBackground" android:padding="10dp" android:scaleType="center" - app:srcCompat="@drawable/ic_close" + android:src="@drawable/ic_close" tools:ignore="ContentDescription,RtlHardcoded" /> </LinearLayout> 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" /> <androidx.appcompat.widget.AppCompatImageButton @@ -189,8 +189,8 @@ android:clickable="true" android:focusable="true" android:scaleType="fitCenter" + android:src="@drawable/ic_previous" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_previous" tools:ignore="ContentDescription" /> <ImageButton @@ -219,8 +219,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" /> <ProgressBar @@ -268,8 +268,8 @@ android:clickable="true" android:focusable="true" android:scaleType="fitCenter" + android:src="@drawable/ic_next" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_next" tools:ignore="ContentDescription" /> <ImageButton @@ -284,8 +284,8 @@ android:clickable="true" android:focusable="true" android:scaleType="fitXY" + android:src="@drawable/ic_shuffle" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_shuffle" tools:ignore="ContentDescription" /> </RelativeLayout> 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 @@ <?xml version="1.0" encoding="utf-8"?> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" @@ -154,7 +153,7 @@ android:layout_alignParentEnd="true" android:clickable="true" android:focusable="true" - app:srcCompat="@drawable/ic_expand_more" + android:src="@drawable/ic_expand_more" tools:ignore="ContentDescription" /> <LinearLayout diff --git a/app/src/main/res/layout/dialog_playlists.xml b/app/src/main/res/layout/dialog_playlists.xml index 99c46e552..18b08d93c 100644 --- a/app/src/main/res/layout/dialog_playlists.xml +++ b/app/src/main/res/layout/dialog_playlists.xml @@ -1,5 +1,4 @@ <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> @@ -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" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/drawer_header.xml b/app/src/main/res/layout/drawer_header.xml index 94e045863..fe076ff7c 100644 --- a/app/src/main/res/layout/drawer_header.xml +++ b/app/src/main/res/layout/drawer_header.xml @@ -39,7 +39,7 @@ android:layout_width="@dimen/drawer_header_newpipe_icon_size" android:layout_height="@dimen/drawer_header_newpipe_icon_size" android:layout_marginEnd="@dimen/drawer_header_newpipe_icon_title_space" - app:srcCompat="@drawable/splash_foreground" + android:src="@drawable/splash_foreground" tools:ignore="ContentDescription" /> <org.schabi.newpipe.views.NewPipeTextView @@ -86,7 +86,7 @@ android:scaleType="fitCenter" app:tint="@color/drawer_header_font_color" tools:ignore="ContentDescription" - tools:srcCompat="@drawable/ic_smart_display" /> + tools:src="@drawable/ic_smart_display" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/drawer_header_service_view" @@ -104,7 +104,7 @@ android:layout_width="24dp" android:layout_height="24dp" android:layout_marginStart="4dp" - app:srcCompat="@drawable/ic_arrow_drop_down" + android:src="@drawable/ic_arrow_drop_down" app:tint="@color/drawer_header_font_color" tools:ignore="ContentDescription" /> </LinearLayout> 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" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/feed_group_reorder_item.xml b/app/src/main/res/layout/feed_group_reorder_item.xml index 8d72a2638..0743542d9 100644 --- a/app/src/main/res/layout/feed_group_reorder_item.xml +++ b/app/src/main/res/layout/feed_group_reorder_item.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" /> </RelativeLayout> </androidx.cardview.widget.CardView> \ 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 @@ <androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" @@ -20,7 +19,7 @@ android:layout_gravity="center_horizontal" android:layout_marginBottom="8dp" android:contentDescription="@string/app_name" - app:srcCompat="@mipmap/ic_launcher" /> + android:src="@mipmap/ic_launcher" /> <org.schabi.newpipe.views.NewPipeTextView android:layout_width="wrap_content" diff --git a/app/src/main/res/layout/fragment_choose_tabs.xml b/app/src/main/res/layout/fragment_choose_tabs.xml index d27192327..485fd89c3 100644 --- a/app/src/main/res/layout/fragment_choose_tabs.xml +++ b/app/src/main/res/layout/fragment_choose_tabs.xml @@ -40,10 +40,10 @@ android:layout_marginBottom="16dp" android:clickable="true" android:focusable="true" + android:src="@drawable/ic_add" app:backgroundTint="?attr/colorPrimary" app:fabSize="auto" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="parent" - app:srcCompat="@drawable/ic_add" /> + app:layout_constraintEnd_toEndOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> 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" /> <androidx.constraintlayout.widget.Barrier android:id="@+id/barrier" diff --git a/app/src/main/res/layout/fragment_feed.xml b/app/src/main/res/layout/fragment_feed.xml index ebe76af0c..de2096605 100644 --- a/app/src/main/res/layout/fragment_feed.xml +++ b/app/src/main/res/layout/fragment_feed.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_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" /> <View diff --git a/app/src/main/res/layout/fragment_instance_list.xml b/app/src/main/res/layout/fragment_instance_list.xml index aaf56fcc1..2e976b286 100644 --- a/app/src/main/res/layout/fragment_instance_list.xml +++ b/app/src/main/res/layout/fragment_instance_list.xml @@ -44,8 +44,8 @@ android:layout_marginBottom="16dp" android:clickable="true" android:focusable="true" + android:src="@drawable/ic_add" app:backgroundTint="?attr/colorPrimary" - app:fabSize="auto" - app:srcCompat="@drawable/ic_add" /> + app:fabSize="auto" /> </RelativeLayout> 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" /> </FrameLayout> @@ -313,19 +313,6 @@ tools:text="Uploader" /> </LinearLayout> - - <!--<Button - android:id="@+id/detail_uploader_subscribe" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_gravity="center_vertical|right" - android:layout_marginRight="12dp" - android:text="@string/rss_button_title" - android:textSize="12sp" - android:theme="@style/RedButton" - app:drawableLeftCompat="@drawable/ic_rss_feed" - tools:ignore="RtlHardcoded" - android:visibility="gone"/>--> </LinearLayout> <!-- VIEW & THUMBS --> @@ -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" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_thumbs_up_count_view" @@ -381,7 +368,7 @@ android:layout_marginLeft="12dp" android:layout_toRightOf="@id/detail_thumbs_up_count_view" android:contentDescription="@string/detail_dislikes_img_view_description" - app:srcCompat="@drawable/ic_thumb_down" + android:src="@drawable/ic_thumb_down" tools:ignore="RtlHardcoded" /> <org.schabi.newpipe.views.NewPipeTextView @@ -433,12 +420,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/add_to_playlist" + android:drawableTop="@drawable/ic_playlist_add" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/controls_add_to_playlist_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_playlist_add" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_background" @@ -449,12 +436,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/play_audio" + android:drawableTop="@drawable/ic_headset" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/controls_background_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_headset" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_popup" @@ -465,12 +452,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/open_in_popup_mode" + android:drawableTop="@drawable/ic_picture_in_picture" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/controls_popup_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_picture_in_picture" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_download" @@ -481,12 +468,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/controls_download_desc" + android:drawableTop="@drawable/ic_file_download" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/download" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_file_download" /> + android:textSize="@dimen/detail_control_text_size" /> </LinearLayout> @@ -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" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_open_in_browser" @@ -526,12 +513,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/open_in_browser" + android:drawableTop="@drawable/ic_language" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/open_in_browser" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_language" /> + android:textSize="@dimen/detail_control_text_size" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_play_with_kodi" @@ -542,14 +529,14 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/play_with_kodi_title" + android:drawableTop="@drawable/ic_cast" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/play_with_kodi_title" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_cast" /> + android:textSize="@dimen/detail_control_text_size" /> - <TextView + <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_controls_crash_the_player" android:layout_width="@dimen/detail_control_width" android:layout_height="@dimen/detail_control_height" @@ -558,12 +545,12 @@ android:background="?attr/selectableItemBackgroundBorderless" android:clickable="true" android:contentDescription="@string/crash_the_player" + android:drawableTop="@drawable/ic_bug_report" android:focusable="true" android:gravity="center" android:paddingVertical="@dimen/detail_control_padding" android:text="@string/crash_the_player" - android:textSize="@dimen/detail_control_text_size" - app:drawableTopCompat="@drawable/ic_bug_report" /> + android:textSize="@dimen/detail_control_text_size" /> </LinearLayout> @@ -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" /> <ImageButton @@ -706,7 +693,7 @@ android:background="?attr/selectableItemBackground" android:padding="10dp" android:scaleType="center" - app:srcCompat="@drawable/ic_close" + android:src="@drawable/ic_close" tools:ignore="ContentDescription,RtlHardcoded" /> </LinearLayout> 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" /> </RelativeLayout> </androidx.cardview.widget.CardView> 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 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -64,7 +63,7 @@ android:layout_width="20dp" android:layout_height="20dp" android:layout_gravity="center" - app:srcCompat="@drawable/ic_search_add" + android:src="@drawable/ic_search_add" tools:ignore="ContentDescription,RtlHardcoded" /> </LinearLayout> 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" /> </RelativeLayout> </androidx.cardview.widget.CardView> 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" /> <org.schabi.newpipe.views.NewPipeTextView @@ -69,7 +69,7 @@ android:layout_below="@id/itemCommentContentView" android:layout_toRightOf="@+id/itemThumbnailView" android:contentDescription="@string/detail_likes_img_view_description" - app:srcCompat="@drawable/ic_thumb_up" /> + android:src="@drawable/ic_thumb_up" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_thumbs_up_count_view" @@ -92,37 +92,9 @@ android:layout_marginLeft="@dimen/video_item_detail_heart_margin" android:layout_toRightOf="@+id/detail_thumbs_up_count_view" android:contentDescription="@string/detail_heart_img_view_description" + android:src="@drawable/ic_heart" android:visibility="gone" - tools:visibility="visible" - app:srcCompat="@drawable/ic_heart" /> - - - <!--we can uncomment below code if we need dislike button and count in future--> - - <!--<ImageView - android:id="@+id/detail_thumbs_down_img_view" - android:layout_width="@dimen/video_item_detail_like_image_width" - android:layout_height="@dimen/video_item_detail_like_image_height" - android:layout_below="@id/itemCommentContentView" - android:layout_marginLeft="12dp" - android:layout_toRightOf="@id/detail_thumbs_up_count_view" - android:contentDescription="@string/detail_dislikes_img_view_description" - app:srcCompat="?attr/thumbs_down" - tools:ignore="RtlHardcoded" /> - - <org.schabi.newpipe.views.NewPipeTextView - android:id="@+id/detail_thumbs_down_count_view" - android:layout_width="wrap_content" - android:layout_height="@dimen/video_item_detail_like_image_height" - android:layout_below="@id/itemCommentContentView" - android:layout_marginLeft="@dimen/video_item_detail_like_margin" - android:layout_toRightOf="@id/detail_thumbs_down_img_view" - android:gravity="center_vertical" - android:lines="1" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="@dimen/video_item_detail_likes_text_size" - tools:ignore="RtlHardcoded" - tools:text="10K" />--> + tools:visibility="visible" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/itemPublishedTime" diff --git a/app/src/main/res/layout/list_comments_mini_item.xml b/app/src/main/res/layout/list_comments_mini_item.xml index 90653532b..6bd363311 100644 --- a/app/src/main/res/layout/list_comments_mini_item.xml +++ b/app/src/main/res/layout/list_comments_mini_item.xml @@ -39,7 +39,7 @@ android:layout_below="@id/itemCommentContentView" android:layout_toRightOf="@+id/itemThumbnailView" android:contentDescription="@string/detail_likes_img_view_description" - app:srcCompat="@drawable/ic_thumb_up" /> + android:src="@drawable/ic_thumb_up" /> <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/detail_thumbs_up_count_view" @@ -54,33 +54,6 @@ tools:ignore="RtlHardcoded" tools:text="12M" /> - <!--we can uncomment below code if we need dislike button and count in future--> - - <!--<ImageView - android:id="@+id/detail_thumbs_down_img_view" - android:layout_width="@dimen/video_item_detail_like_image_width" - android:layout_height="@dimen/video_item_detail_like_image_height" - android:layout_below="@id/itemCommentContentView" - android:layout_marginLeft="12dp" - android:layout_toRightOf="@id/detail_thumbs_up_count_view" - android:contentDescription="@string/detail_dislikes_img_view_description" - app:srcCompat="?attr/thumbs_down" - tools:ignore="RtlHardcoded" /> - - <org.schabi.newpipe.views.NewPipeTextView - android:id="@+id/detail_thumbs_down_count_view" - android:layout_width="wrap_content" - android:layout_height="@dimen/video_item_detail_like_image_height" - android:layout_below="@id/itemCommentContentView" - android:layout_marginLeft="@dimen/video_item_detail_like_margin" - android:layout_toRightOf="@id/detail_thumbs_down_img_view" - android:gravity="center_vertical" - android:lines="1" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="@dimen/video_item_detail_likes_text_size" - tools:ignore="RtlHardcoded" - tools:text="10K" />--> - <org.schabi.newpipe.views.NewPipeTextView android:id="@+id/itemPublishedTime" android:layout_width="wrap_content" diff --git a/app/src/main/res/layout/list_playlist_grid_item.xml b/app/src/main/res/layout/list_playlist_grid_item.xml index 2357458ff..e052e9ac0 100644 --- a/app/src/main/res/layout/list_playlist_grid_item.xml +++ b/app/src/main/res/layout/list_playlist_grid_item.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/itemRoot" android:layout_width="match_parent" @@ -29,6 +28,8 @@ android:layout_alignEnd="@id/itemThumbnailView" android:layout_alignBottom="@id/itemThumbnailView" android:background="@color/playlist_stream_count_background_color" + android:drawableTop="@drawable/ic_playlist_play" + android:drawableTint="@color/duration_text_color" android:gravity="center" android:paddingTop="16dp" android:paddingBottom="14dp" @@ -36,8 +37,6 @@ android:textColor="@color/duration_text_color" android:textSize="@dimen/video_item_search_duration_text_size" android:textStyle="bold" - app:drawableTint="@color/duration_text_color" - app:drawableTopCompat="@drawable/ic_playlist_play" tools:text="314159" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/list_playlist_item.xml b/app/src/main/res/layout/list_playlist_item.xml index 8207a7365..452596af9 100644 --- a/app/src/main/res/layout/list_playlist_item.xml +++ b/app/src/main/res/layout/list_playlist_item.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/itemRoot" android:layout_width="match_parent" @@ -30,6 +29,8 @@ android:layout_alignEnd="@id/itemThumbnailView" android:layout_alignBottom="@id/itemThumbnailView" android:background="@color/playlist_stream_count_background_color" + android:drawableTop="@drawable/ic_playlist_play" + android:drawableTint="@color/duration_text_color" android:gravity="center" android:paddingTop="16dp" android:paddingBottom="14dp" @@ -37,8 +38,6 @@ android:textColor="@color/duration_text_color" android:textSize="@dimen/video_item_search_duration_text_size" android:textStyle="bold" - app:drawableTint="@color/duration_text_color" - app:drawableTopCompat="@drawable/ic_playlist_play" tools:text="314159" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/list_playlist_mini_item.xml b/app/src/main/res/layout/list_playlist_mini_item.xml index bbad6efd0..b08c90d94 100644 --- a/app/src/main/res/layout/list_playlist_mini_item.xml +++ b/app/src/main/res/layout/list_playlist_mini_item.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/itemRoot" android:layout_width="match_parent" @@ -30,6 +29,8 @@ android:layout_alignEnd="@id/itemThumbnailView" android:layout_alignBottom="@id/itemThumbnailView" android:background="@color/playlist_stream_count_background_color" + android:drawableTop="@drawable/ic_playlist_play" + android:drawableTint="@color/duration_text_color" android:gravity="center" android:paddingTop="4dp" android:paddingBottom="6dp" @@ -37,8 +38,6 @@ android:textColor="@color/duration_text_color" android:textSize="@dimen/video_item_search_duration_text_size" android:textStyle="bold" - app:drawableTint="@color/duration_text_color" - app:drawableTopCompat="@drawable/ic_playlist_play" tools:text="3141" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/list_stream_playlist_grid_item.xml b/app/src/main/res/layout/list_stream_playlist_grid_item.xml index e21a7238c..3d61e57bf 100644 --- a/app/src/main/res/layout/list_stream_playlist_grid_item.xml +++ b/app/src/main/res/layout/list_stream_playlist_grid_item.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/itemRoot" android:layout_width="match_parent" @@ -49,7 +48,7 @@ android:contentDescription="@string/detail_drag_description" android:paddingLeft="@dimen/video_item_search_image_right_margin" android:scaleType="center" - app:srcCompat="@drawable/ic_drag_handle" + android:src="@drawable/ic_drag_handle" tools:ignore="RtlHardcoded,RtlSymmetry" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/list_stream_playlist_item.xml b/app/src/main/res/layout/list_stream_playlist_item.xml index 428c762aa..49d34a157 100644 --- a/app/src/main/res/layout/list_stream_playlist_item.xml +++ b/app/src/main/res/layout/list_stream_playlist_item.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/itemRoot" android:layout_width="match_parent" @@ -50,7 +49,7 @@ android:contentDescription="@string/detail_drag_description" android:paddingLeft="@dimen/video_item_search_image_right_margin" android:scaleType="center" - app:srcCompat="@drawable/ic_drag_handle" + android:src="@drawable/ic_drag_handle" tools:ignore="RtlHardcoded,RtlSymmetry" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/mission_item.xml b/app/src/main/res/layout/mission_item.xml index 445776bea..5338949aa 100644 --- a/app/src/main/res/layout/mission_item.xml +++ b/app/src/main/res/layout/mission_item.xml @@ -39,7 +39,7 @@ android:layout_marginRight="1dp" android:contentDescription="TODO" android:scaleType="center" - app:srcCompat="@drawable/ic_more_vert" + android:src="@drawable/ic_more_vert" app:tint="?attr/actionColor" /> </RelativeLayout> 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" /> </RelativeLayout> 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" /> </FrameLayout> </FrameLayout> 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" /> </androidx.constraintlayout.widget.ConstraintLayout> 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" /> </LinearLayout> @@ -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" /> <androidx.appcompat.widget.AppCompatImageButton @@ -592,8 +592,8 @@ android:focusable="true" android:padding="10dp" android:scaleType="fitXY" + android:src="@drawable/ic_shuffle" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_shuffle" tools:ignore="ContentDescription,RtlHardcoded" /> <androidx.appcompat.widget.AppCompatTextView @@ -618,8 +618,8 @@ android:focusable="true" android:padding="10dp" android:scaleType="fitXY" + android:src="@drawable/ic_playlist_add" android:tint="?attr/colorAccent" - app:srcCompat="@drawable/ic_playlist_add" tools:ignore="ContentDescription,RtlHardcoded" /> <androidx.appcompat.widget.AppCompatImageButton @@ -635,7 +635,7 @@ android:focusable="true" android:padding="10dp" android:scaleType="fitXY" - app:srcCompat="@drawable/ic_close" + android:src="@drawable/ic_close" app:tint="@color/white" /> </RelativeLayout> 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 @@ <?xml version="1.0" encoding="utf-8"?> <merge xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:ignore="ContentDescription" tools:layout_height="wrap_content" @@ -19,21 +18,21 @@ android:id="@+id/icon_1" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:srcCompat="@drawable/ic_play_seek_triangle" + android:src="@drawable/ic_play_seek_triangle" tools:alpha="0.18" /> <androidx.appcompat.widget.AppCompatImageView android:id="@+id/icon_2" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:srcCompat="@drawable/ic_play_seek_triangle" + android:src="@drawable/ic_play_seek_triangle" tools:alpha="0.5" /> <androidx.appcompat.widget.AppCompatImageView android:id="@+id/icon_3" android:layout_width="wrap_content" android:layout_height="wrap_content" - app:srcCompat="@drawable/ic_play_seek_triangle" + android:src="@drawable/ic_play_seek_triangle" tools:alpha="1" /> </LinearLayout> 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" /> </FrameLayout> 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 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -20,13 +19,12 @@ <org.schabi.newpipe.views.NewPipeTextView android:layout_width="wrap_content" android:layout_height="wrap_content" + android:drawableStart="@drawable/ic_headset" android:drawablePadding="4dp" android:gravity="center_vertical" android:text="@string/controls_background_title" android:textColor="?attr/colorAccent" - android:textSize="@dimen/channel_rss_title_size" - app:drawableLeftCompat="@drawable/ic_headset" - app:drawableStartCompat="@drawable/ic_headset" /> + android:textSize="@dimen/channel_rss_title_size" /> </LinearLayout> <View @@ -77,12 +75,11 @@ <org.schabi.newpipe.views.NewPipeTextView android:layout_width="wrap_content" android:layout_height="wrap_content" + android:drawableStart="@drawable/ic_picture_in_picture" android:drawablePadding="4dp" android:gravity="center_vertical" android:text="@string/controls_popup_title" android:textColor="?attr/colorAccent" - android:textSize="@dimen/channel_rss_title_size" - app:drawableLeftCompat="@drawable/ic_picture_in_picture" - app:drawableStartCompat="@drawable/ic_picture_in_picture" /> + android:textSize="@dimen/channel_rss_title_size" /> </LinearLayout> </LinearLayout> 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 @@ <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" @@ -22,7 +21,7 @@ android:layout_centerVertical="true" android:layout_marginLeft="12dp" android:layout_marginRight="12dp" - app:srcCompat="@drawable/ic_filter_list" + android:src="@drawable/ic_filter_list" tools:ignore="ContentDescription,RtlHardcoded" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/stream_quality_item.xml b/app/src/main/res/layout/stream_quality_item.xml index 073b0b221..0230b7fa8 100644 --- a/app/src/main/res/layout/stream_quality_item.xml +++ b/app/src/main/res/layout/stream_quality_item.xml @@ -1,6 +1,5 @@ <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" - xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="48dp"> @@ -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" /> <org.schabi.newpipe.views.NewPipeTextView diff --git a/app/src/main/res/layout/toolbar_search_layout.xml b/app/src/main/res/layout/toolbar_search_layout.xml index 4fa40f313..a07ec96a3 100644 --- a/app/src/main/res/layout/toolbar_search_layout.xml +++ b/app/src/main/res/layout/toolbar_search_layout.xml @@ -48,8 +48,8 @@ android:layout_gravity="center" android:contentDescription="@string/search" android:scaleType="fitCenter" + android:src="@drawable/ic_close" app:tint="?attr/toolbarSearchColor" - app:srcCompat="@drawable/ic_close" tools:ignore="RtlHardcoded" /> </FrameLayout> 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 @@ <string name="feed_load_error_account_info">تعذر تحميل تغذية لـ\'%s\'.</string> <string name="feed_load_error">خطأ في تحميل الخلاصة</string> <string name="downloads_storage_use_saf_summary_api_29">بدءًا من Android 10، يتم دعم \"Storage Access Framework\" فقط</string> - <string name="downloads_storage_use_saf_summary_api_19">\"Storage Access Framework\" غير مدعوم على Android KitKat والإصدارات الأقدم</string> <string name="downloads_storage_ask_summary_no_saf_notice">سيتم سؤالك عن مكان حفظ كل تنزيل</string> <string name="no_dir_yet">لم يتم تعيين مجلد التحميل، الرجاء اختيار مجلد التحميل الافتراضي الآن</string> <string name="off">إيقاف</string> 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 @@ <string name="error_http_no_content">Server məlumat göndərmir</string> <string name="error_download_resource_gone">Bu endirməni bərpa etmək mümkün deyil</string> <string name="downloads_storage_ask_summary_no_saf_notice">Sizdən hər endirmənin harada saxlanacağı soruşulacaq</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Yaddaş Giriş Çərçivəsi\' Android KitKat və ondan aşağı versiyalarda dəstəklənmir</string> <string name="downloads_storage_use_saf_summary_api_29">\"Yaddaş Giriş Çərçivəsi\"yalnız Android 10\'dan başlayaraq dəstəklənir</string> <string name="detail_sub_channel_thumbnail_view_description">Kanalın avatar miniatürü</string> <string name="select_night_theme_toast">Sevdiyiniz gecə mövzusunu aşağıda seçə bilərsiniz</string> 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 @@ <item quantity="one">S\'ha suprimit %1$s baixada</item> <item quantity="other">S\'han suprimit %1$s baixades</item> </plurals> - <string name="downloads_storage_use_saf_summary_api_19">El \"Sistema d\'Accés a l\'Emmagatzematge\" no està implementat a Android KitKat i a versions anteriors</string> <string name="downloads_storage_use_saf_summary_api_29">A partir de l\'Android 10 només s\'admet el \"Sistema d\'Accés a l\'Emmagatzematge\"</string> <string name="feed_new_items">Elements de feed nous</string> <string name="feed_load_error_fast_unknown">El mode d\'alimentació ràpida no proporciona més informació sobre això.</string> 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 @@ <string name="downloads_storage_ask_summary_no_saf_notice">بۆ دابهزاندنی ههر بابهتێك پرست پێ دهكرێت لهبارهی شوێنی دابهزاندنیان</string> <string name="disable_media_tunneling_title">ناكاراكردنی تونێلكردنی میدیا</string> <string name="show_age_restricted_content_summary">ئهو بابهتانهی نهگونجاون بۆ منداڵان پیشان بدرێن كه سنووری تهمهن دهیانگرێتهوه (وهك +18)</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' پشتگیری نهكراوه لهسهر وهشانهكانی ئهندرۆید كیتكات و نزمتر</string> <string name="crash_the_app">كڕاشی بهرنامهكه</string> <string name="show_memory_leaks">پیشاندانی دزهكردنی بیرگه</string> <string name="enqueued">لهنۆبهت دانرا</string> 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 @@ <string name="feed_load_error_account_info">Feed pro \'%s\' nemohl být načten.</string> <string name="feed_load_error">Chyba při načítání feedu</string> <string name="downloads_storage_use_saf_summary_api_29">Počínaje Android 10 je podporován pouze \"Storage Access Framework\"</string> - <string name="downloads_storage_use_saf_summary_api_19">\"Storage Access Framework\" není podporován na KitKat a níže</string> <string name="downloads_storage_ask_summary_no_saf_notice">Budete dotázáni, kde uložit každý stažený soubor</string> <string name="no_dir_yet">Adresář pro stažené soubory dosud nenastaven, zvolte, prosím, výchozí adresář nyní</string> <string name="off">Vypnuto</string> 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 @@ <string name="no_dir_yet">Noch kein Downloadordner festgelegt, wähle jetzt den Standard-Downloadordner</string> <string name="open_website_license">Webseite öffnen</string> <string name="downloads_storage_use_saf_summary_api_29">Ab Android 10 wird nur noch „Storage Access Framework“ unterstützt</string> - <string name="downloads_storage_use_saf_summary_api_19">Das „Storage Access Framework“ wird auf Android KitKat und niedriger nicht unterstützt</string> <string name="downloads_storage_ask_summary_no_saf_notice">Du wirst jedes Mal gefragt werden, wohin der Download gespeichert werden soll</string> <string name="feed_load_error">Fehler beim Laden des Feeds</string> <string name="feed_load_error_account_info">Konnte Feed für \'%s\' nicht laden.</string> 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 @@ <string name="feed_load_error_account_info">Αδυναμία φόρτωσης τροφοδοσίας για \'%s\'.</string> <string name="feed_load_error">Σφάλμα φόρτωσης τροφοδοσίας</string> <string name="downloads_storage_use_saf_summary_api_29">Από το Android 10 και μετά, μόνο το SAF υποστηρίζεται</string> - <string name="downloads_storage_use_saf_summary_api_19">Το «Πλαίσιο Πρόσβασης Αποθήκευσης» δεν υποστηρίζεται σε Android KitKat και παλαιότερο</string> <string name="downloads_storage_ask_summary_no_saf_notice">Θα ερωτηθείτε πού να αποθηκεύσετε κάθε λήψη</string> <string name="no_dir_yet">Δεν έχει ορισθεί φάκελος λήψεων ακόμα, eπιλέξτε τον προεπιλεγμένο φάκελο τώρα</string> <string name="metadata_host">Host</string> 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\?</string> <string name="feed_load_error">Error al cargar el muro</string> <string name="downloads_storage_use_saf_summary_api_29">Desde Android 10 solo el \'Sistema de Acceso al Almacenamiento\' es soportado</string> - <string name="downloads_storage_use_saf_summary_api_19">El \'Sistema de Acceso al Almacenamiento\' no es sorportado en Android KitKat o versiones anteriores</string> <string name="downloads_storage_ask_summary_no_saf_notice">Se le preguntará dónde guardar cada descarga</string> <string name="disable_media_tunneling_summary">Deshabilitar el túnel de medios si experimenta una pantalla negra o interrupciones en la reproduccción de videos</string> <string name="disable_media_tunneling_title">Deshabilitar el túnel de medios</string> 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 @@ <string name="settings_category_feed_title">Voog</string> <string name="choose_instance_prompt">Vali eksemplar</string> <string name="downloads_storage_use_saf_summary_api_29">Android 10st alates on toetatud ainult salvestusjuurdepääsu raamistik \'Storage Access Framework\'</string> - <string name="downloads_storage_use_saf_summary_api_19">Android KitKat ja vanemad versioonid ei toeta salvestusjuurdepääsu raamistikku \'Storage Access Framework\'</string> <string name="downloads_storage_ask_summary_no_saf_notice">Sinult küsitakse iga kord, kuhu alla laadimine salvestada</string> <string name="detail_heart_img_view_description">Südamlik autor</string> <string name="feed_use_dedicated_fetch_method_help_text">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 @@ <string name="feed_load_error_account_info">Ezin izan da \'%s\' jarioa kargatu.</string> <string name="feed_load_error">Errorea jarioa kargatzean</string> <string name="downloads_storage_use_saf_summary_api_29">Android 10etik aurrera \'Biltegiaren Sarrera Framework\'a soilik onartzen da</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Biltegiaren Sarrera Framework\'a ez da Android KitKat eta aurreko bertsioetan onartzen</string> <string name="downloads_storage_ask_summary_no_saf_notice">Non gorde galdetuko zaizu deskarga bakoitzean</string> <string name="no_dir_yet">Ez da deskargatzeko karpetarik ezarri oraindik, aukeratu lehenetsitako deskargatzeko karpeta orain</string> <string name="metadata_privacy">Pribatutasuna</string> 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 @@ <string name="description_select_note">اکنون میتوانید متن درون شرخ را برگزینید. به یاد داشته باشید که در حالت گزینش، ممکن است صفحه چشمک زده و پیوندها قابل کلیک نباشند.</string> <string name="no_dir_yet">هنوز شاخهٔ بارگیریای تنظیم نشده. اکنون شاخهٔ بارگیری پیشگزیده را برگزینید</string> <string name="downloads_storage_ask_summary_no_saf_notice">برای ذخیرهٔ هر بارگیری از شما پرسیده خواهد شد</string> - <string name="downloads_storage_use_saf_summary_api_19">«چارچوب دسترسی ذخیره» روی اندروید کیتکت و پایینتر پشتیبانی نمیشود</string> <string name="downloads_storage_use_saf_summary_api_29">از اندروید ۱۰، تنها «چارچوب دسترسی ذخیره» پشتیبانی میشود</string> <string name="feed_load_error_account_info">نتوانست خوراک را برای «%s» بار کند.</string> <string name="feed_load_error_terminated">حساب این نگارنده نابود شده است. 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\?</string> <string name="feed_load_error_account_info">Ei voitu ladata syötettä hakusanalle \'%s\'.</string> <string name="feed_load_error">Virhe syötteen lataamisessa</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' ei ole tuettu Android KitKatissa tai vanhemmissa versioissa</string> <string name="downloads_storage_ask_summary_no_saf_notice">Sinulta kysytään joka kerta, minne tiedosto ladataan</string> <string name="dont_show">Älä näytä</string> <string name="low_quality_smaller">Matala laatu (pienempi)</string> 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 \?</string> <string name="downloads_storage_use_saf_summary_api_29">À partir d’Android 10, seule « l’Infrastructure d’accès au stockage » est prise en charge</string> - <string name="downloads_storage_use_saf_summary_api_19">L’« Infrastructure d’accès au stockage » n’est pas prise en charge par Android KitKat et les versions antérieures</string> <string name="feed_load_error_fast_unknown">Le mode flux rapide ne fournit pas plus d’info à ce sujet.</string> <string name="comments_are_disabled">Les commentaires sont désactivés</string> <string name="dont_show">Ne pas afficher</string> 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 @@ <string name="processing_may_take_a_moment">Procesando... Pode devagar un momento</string> <string name="create_error_notification">Crear unha notificación de erro</string> <string name="show_image_indicators_summary">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</string> - <string name="downloads_storage_use_saf_summary_api_19">O \'Sistema de Acceso ao almacenamento\' non está soportado en Android KitKat e anteriores</string> <string name="feed_new_items">Novos elementos</string> <string name="progressive_load_interval_exoplayer_default">Predefinido do ExoPlayer</string> <string name="show_crash_the_player_title">Amosar \"Travar o reprodutor\"</string> 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 @@ <string name="feed_load_error_account_info">לא ניתן לטעון את ההזנה עבור ‚%s’.</string> <string name="feed_load_error">שגיאה בהורדת ההזנה</string> <string name="downloads_storage_use_saf_summary_api_29">התמיכה ב‚תשתית גישה לאחסון’ נתמכת מ־Android 10 בלבד</string> - <string name="downloads_storage_use_saf_summary_api_19">‚תשתית הגישה לאחסון’ אינה נתמכת על ידי Android KitKat ומטה</string> <string name="downloads_storage_ask_summary_no_saf_notice">תופיע שאלה לאן לשמור כל הורדה</string> <string name="no_dir_yet">טרם הוגדרה תיקיית הורדה, נא לבחור את תיקיית ההורדה כעת</string> <string name="off">כבוי</string> 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 @@ <string name="feed_load_error_account_info">Nije moguće učitati feed za \'%s\'.</string> <string name="feed_load_error">Pogreška pri učitavanju feeda</string> <string name="downloads_storage_use_saf_summary_api_29">Počevši od Androida 10, podržan je samo \'Storage Access Framework\'</string> - <string name="downloads_storage_use_saf_summary_api_19">„Storage Access Framework“ nije podržan na Androidu KitKat i starijim</string> <string name="downloads_storage_ask_summary_no_saf_notice">Od vas će se tražiti gdje spremiti svako preuzimanje</string> <string name="dont_show">Ne prikazuj</string> <string name="low_quality_smaller">Niska kvaliteta (manji)</string> 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 @@ <string name="disable_media_tunneling_summary">Tiltsa le a médiacsatornázást, ha fekete képernyőt vagy akadozást tapasztal videólejátszáskor</string> <string name="show_image_indicators_summary">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</string> <string name="downloads_storage_ask_summary_no_saf_notice">Minden letöltésnél meg fogja kérdezni, hogy hova mentse el</string> - <string name="downloads_storage_use_saf_summary_api_19">A „Storage Access Framework” nem támogatott Android KitKaten vagy régebbin</string> <string name="choose_instance_prompt">Válasszon egy példányt</string> <string name="feed_oldest_subscription_update">Lista legutóbbi frissítése: %s</string> <string name="feed_notification_loading">Lista betöltése…</string> 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 @@ <string name="feed_load_error_account_info">Tidak bisa memuat langganan untuk \'%s\'.</string> <string name="feed_load_error">Galat memuat langganan</string> <string name="downloads_storage_use_saf_summary_api_29">Mulai Android 10, hanya \'Storage Access Framework\' yang didukung</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' tidak didukung pada Android KitKat dan yang lebih rendah</string> <string name="downloads_storage_ask_summary_no_saf_notice">Anda akan ditanya lokasi penyimpanan berkas unduhan</string> <string name="no_dir_yet">Belum ada folder unduhan, pilih folder unduhan sekarang</string> <string name="off">Nonaktif</string> 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 @@ <string name="feed_load_error_account_info">Impossibile caricare feed per \"%s\".</string> <string name="feed_load_error">Errore caricamento feed</string> <string name="downloads_storage_use_saf_summary_api_29">A partire da Android 10 è supportato solo il Framework di accesso all\'archiviazione</string> - <string name="downloads_storage_use_saf_summary_api_19">Il Framework di accesso all\'archiviazione non è supportato su Android KitKat e versioni precedenti</string> <string name="downloads_storage_ask_summary_no_saf_notice">È necessario specificare la destinazione di ogni dowload</string> <string name="no_dir_yet">Non è impostata alcuna cartella per i file scaricati, scegliere quella predefinita</string> <string name="off">Disattivata</string> 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 @@ <string name="downloads_storage_ask_summary_no_saf_notice">ダウンロードのたびに保存する場所を尋ねます</string> <string name="no_dir_yet">ダウンロードフォルダがまだ設定されていません。今すぐデフォルトのフォルダを選択してください</string> <string name="downloads_storage_use_saf_summary_api_29">Android 10 以降は \'Storage Access Framework\' のみがサポートされます</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' は Android KitKat 以下ではサポートされていません</string> <string name="feed_load_error_fast_unknown">高速モードでこの情報の詳細は提供されません。</string> <string name="feed_load_error_account_info">\'%s\' のフィードを読み込めませんでした。</string> <string name="feed_load_error">フィードの読み込みエラー</string> 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\?</string> <string name="feed_load_error">Klaida įkeliant srautą</string> <string name="downloads_storage_use_saf_summary_api_29">Pradedant Android 10 palaikoma tik \'Storage Access Framework\'</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' nėra palaikomas Android KitKat ir žemesnėse versijose</string> <string name="downloads_storage_ask_summary_no_saf_notice">Jūsų bus paklausta, kur išsaugoti kiekvieną atsiuntimą</string> <string name="no_dir_yet">Atsiuntimo aplankas dar nenustatytas, pasirinkite numatytąjį atsiuntimų aplanką dabar</string> <string name="comments_are_disabled">Komentarai yra išjungti</string> 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 @@ <string name="disable_media_tunneling_title">Izslēgt multivides tuneļošanu</string> <string name="disable_media_tunneling_summary">Izslēdziet multivides tuneļošanu, ja jums video atskaņošanas laikā parādās melns ekrāns vai aizķeršanās</string> <string name="show_image_indicators_summary">Rādīt krāsainas lentes virs attēliem, norādot to avotu: sarkana - tīkls, zila - disks, zaļa - atmiņa</string> - <string name="downloads_storage_use_saf_summary_api_19">“Krātuves Piekļuves Sistēma” ir neatbalstīta uz Android KitKat un zemākām versijām</string> <string name="description_select_enable">Ieslēgt teksta atlasīšanu video aprakstā</string> <string name="no_dir_yet">Lejupielādes mape vēl nav iestatīta, izvēlieties noklusējuma lejupielādes mapi</string> <string name="main_page_content_swipe_remove">Pārvelciet objektus, lai tos noņemtu</string> 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 @@ <string name="feed_load_error">ഫീഡ് ലോഡ് ചെയ്യുന്നതിൽ പിശക് സംഭവിച്ചിരിക്കുന്നു</string> <string name="downloads_storage_use_saf_summary_api_29">ആൻഡ്രോയ്ഡ് 10 മുതൽ മാത്രമേ \"സ്റ്റോറേജ് അക്സസ് ഫ്രെയിംവർക്ക്\" പിന്തുണക്കു</string> <string name="downloads_storage_ask_summary_no_saf_notice">എവിടെ ആണ് ഡൌൺലോഡ് ചെയ്യ്യപെടുന്ന ഓരോ ഫയൽലും സംരക്ഷിക്കപ്പെടേണ്ടത് എന്ന് തങ്കളോട് ചോദിക്കും</string> - <string name="downloads_storage_use_saf_summary_api_19">ആൻഡ്രോയ്ഡ് കിറ്റ് ക്യാറ്റോ അതിനു താഴെക്കോ ഉള്ളതിൽ \"സ്റ്റോറേജ് ആസസ്സ് ഫ്രെയിംവർക്ക് പിന്തുണക്കുന്നില്ല</string> <string name="dont_show">കാണിക്കരുത്</string> <string name="low_quality_smaller">കുറഞ്ഞ നിലവാരം (ചെറുത് )</string> <string name="high_quality_larger">ഉയർന്ന നിലവാരം (വലിയത് )</string> 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 @@ <string name="feed_load_error_account_info">Kunne ikke laste inn informasjonskanal for «%s».</string> <string name="feed_load_error">Kunne ikke laste inn informasjonskanal</string> <string name="downloads_storage_use_saf_summary_api_29">Fra Android 10 er kun «lagringstilgangsrammeverk» støttet</string> - <string name="downloads_storage_use_saf_summary_api_19">«Lagringstilgangsrammeverket» støttes ikke på Android KitKat og tidligere.</string> <string name="downloads_storage_ask_summary_no_saf_notice">Du vil bli spurt om hvor du vil lagre hver nedlastning</string> <string name="seekbar_preview_thumbnail_title">Miniatyrbildeforhåndsvisning</string> <string name="no_dir_yet">Ingen nedlastingsmappe valgt. Velg forvalgt nedlastingsmappe nå.</string> 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 @@ <resources> <!-- Opening Theme --> - <style name="Base.V21.OpeningTheme" parent="Base.V19.OpeningTheme"> + <style name="Base.OpeningTheme" parent="Base.V21.OpeningTheme"> <item name="android:navigationBarColor">@color/dark_youtube_primary_color</item> </style> 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 @@ <string name="feed_load_error_account_info">Kan geen feed laden voor \'%s\'.</string> <string name="feed_load_error">Error bij het inladen van de feed</string> <string name="downloads_storage_use_saf_summary_api_29">Vanaf Android 10 is enkel \'Storage Access Framework\' ondersteund</string> - <string name="downloads_storage_use_saf_summary_api_19">Het \'Storage Access Framework\' is niet ondersteund op Android KitKat en lager</string> <string name="downloads_storage_ask_summary_no_saf_notice">U wordt gevraagd waar elk bestand wordt opgeslagen</string> <string name="no_dir_yet">Nog geen downloadfolder gekozen, kies de standaard downloadfolder</string> <string name="detail_heart_img_view_description">Geliefd door de maker</string> 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 @@ <string name="app_language_title">ਐਪ ਭਾਸ਼ਾ</string> <string name="choose_instance_prompt">ਕੋਈ ਸਥਿਤੀ ਚੁਣੋ</string> <string name="downloads_storage_use_saf_summary_api_29">\'ਸਟੋਰੇਜ ਐਕਸੈੱਸ ਫ਼ਰੇਮਵਰਕ\' ਐਂਡਰਾਇਡ 10 ਤੋਂ ਕੰਮ ਕਰਨਾ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ</string> - <string name="downloads_storage_use_saf_summary_api_19">\'ਸਟੋਰੇਜ ਐਕਸੈੱਸ ਫ਼ਰੇਮਵਰਕ\' ਐਂਡਰਾਇਡ ਕਿਟਕੈਟ ਅਤੇ ਇਸਤੋਂ ਹੇਠਾਂ ਦੇ ਵਰਜਨਾਂ \'ਤੇ ਕੰਮ ਨਹੀਂ ਕਰਦਾ</string> <string name="downloads_storage_ask_summary_no_saf_notice">ਤੁਹਾਨੂੰ ਹਰ ਵਾਰ ਪੁੱਛਿਆ ਜਾਵੇਗਾ ਕਿ ਡਾਊਨਲੋਡ ਨੂੰ ਕਿੱਥੇ ਸਾਂਭਣਾ ਹੈ</string> <string name="delete_downloaded_files">ਡਾਊਨਲੋਡ ਕੀਤੀਆਂ ਫ਼ਾਈਲਾਂ ਮਿਟਾਓ</string> <string name="clear_download_history">ਡਾਊਨਲੋਡ ਇਤਿਹਾਸ ਸਾਫ਼ ਕਰੋ</string> 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\?</string> <string name="feed_load_error_account_info">Nie udało się załadować kanału dla „%s”.</string> <string name="downloads_storage_use_saf_summary_api_29">Począwszy od Androida 10 obsługiwany jest tylko systemowy selektor folderów (SAF)</string> - <string name="downloads_storage_use_saf_summary_api_19">Systemowy selektor folderów (SAF) nie jest obsługiwany przez system Android KitKat i niższy</string> <string name="downloads_storage_ask_summary_no_saf_notice">Zostaniesz zapytany(-na), gdzie zapisać każdy pobierany plik</string> <string name="no_dir_yet">Nie ustawiono jeszcze folderu zapisywania, wybierz domyślny teraz</string> <string name="feed_load_error">Błąd podczas ładowania kanału</string> 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 @@ <string name="feed_load_error_account_info">Não foi possível carregar o feed para \'%s\'.</string> <string name="feed_load_error">Erro ao carregar o feed</string> <string name="downloads_storage_use_saf_summary_api_29">O \'Storage Access Framework\' é compatível apenas com versões a partir do Android 10</string> - <string name="downloads_storage_use_saf_summary_api_19">O \'Storage Access Framework\' não é compatível com Android KitKat e versões anteriores</string> <string name="downloads_storage_ask_summary_no_saf_notice">Você será questionado onde salvar cada download</string> <string name="no_dir_yet">Nenhuma pasta de download definida ainda, escolha a pasta de download padrão agora</string> <string name="off">Desligado</string> 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 @@ <string name="feed_load_error_account_info">Não foi possível carregar o feed para \'%s\'.</string> <string name="feed_load_error">Erro ao carregar o feed</string> <string name="downloads_storage_use_saf_summary_api_29">A partir do Android 10, apenas o \'Storage Access Framework\' é compatível</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' não é compatível com Android KitKat e versões anteriores</string> <string name="downloads_storage_ask_summary_no_saf_notice">Sempre que descarregar um ficheiro, terá que indicar o local para o guardar</string> <string name="dont_show">Não mostrar</string> <string name="low_quality_smaller">Baixa qualidade (menor)</string> 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 @@ <string name="feed_load_error_account_info">Não foi possível carregar o feed para \'%s\'.</string> <string name="feed_load_error">Erro ao carregar o feed</string> <string name="downloads_storage_use_saf_summary_api_29">A partir do Android 10, apenas o \'Storage Access Framework\' é compatível</string> - <string name="downloads_storage_use_saf_summary_api_19">A \'Framework de acesso ao armazenamento\' não está disponível no Android KitKat e anteriores</string> <string name="seekbar_preview_thumbnail_title">Pré-visualização da miniatura da barra de pesquisa</string> <string name="mark_as_watched">Marcar como visto</string> <string name="off">Desligado</string> 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 @@ <string name="feed_load_error_account_info">Nu s-a putut încărca fluxul pentru \"%s\".</string> <string name="feed_load_error">Eroare la încărcarea fluxului</string> <string name="downloads_storage_use_saf_summary_api_29">Începând cu Android 10, este acceptat doar \"Storage Access Framework\"</string> - <string name="downloads_storage_use_saf_summary_api_19">\"Storage Access Framework\" nu este acceptat pe Android KitKat și versiunile ulterioare</string> <string name="downloads_storage_ask_summary_no_saf_notice">Veți fi întrebat unde să salvați fiecare descărcare</string> <plurals name="deleted_downloads_toast"> <item quantity="one">S-a șters %1$s descărcare</item> 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 @@ <string name="service_provides_reason">%s указывает следующую причину:</string> <string name="account_terminated">Аккаунт отключён</string> <string name="downloads_storage_use_saf_summary_api_29">Начиная с Android 10 поддерживается только \"Storage Access Framework\"</string> - <string name="downloads_storage_use_saf_summary_api_19">\"Storage Access Framework\" не поддерживается на Android KitKat и ниже</string> <string name="downloads_storage_ask_summary_no_saf_notice">Спрашивать, куда сохранять каждую загрузку</string> <string name="no_dir_yet">Папка для загрузки ещё не выбрана, укажите папку для загрузки сейчас</string> <string name="off">Отключить</string> 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\?</string> <string name="feed_load_error_account_info">Carrigamentu de su flussu pro \'%s\' fallidu.</string> <string name="feed_load_error">Errore carrighende su flussu</string> - <string name="downloads_storage_use_saf_summary_api_19">Su \'Storage Access Framework\' no est suportadu in Android KitKat e versiones prus betzas</string> <string name="downloads_storage_ask_summary_no_saf_notice">T\'at a bènnere pedidu in ue sarvare cada documentu</string> <string name="no_dir_yet">Non b\'at galu peruna cartella de iscarrigamentu impostada. Issèbera como sa cartella de iscarrigamentu predefinida</string> <string name="off">Istudadu</string> 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 @@ <string name="feed_load_error_account_info">Nemožno načítať informačný kanál \'%s\'.</string> <string name="feed_load_error">Chyba pri načítaní kanála</string> <string name="downloads_storage_use_saf_summary_api_29">\'Storage Access Framework\' je podporovaný len od Androidu 10 a vyššie</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' nie je podporovaný v systéme Android KitKat a ani v starších verziách</string> <string name="downloads_storage_ask_summary_no_saf_notice">Pri každom sťahovaní sa zobrazí výzva kam uložiť súbor</string> <string name="no_dir_yet">Nie je nastavený adresár na sťahovanie, nastavte ho teraz</string> <string name="mark_as_watched">Označiť ako videné</string> 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 @@ <string name="feed_load_error_account_info">Lama soo kicin karo bandhigga: \'%s\'.</string> <string name="feed_load_error">Khalad ayaa ka dhacay sookicintii</string> <string name="downloads_storage_use_saf_summary_api_29">Laga bilaabo Android 10 kaliya waxaa la isticmaali \'SAF\'</string> - <string name="downloads_storage_use_saf_summary_api_19">\'SAF\' kuma shaqeeyo Android KitKat iyo wixii ka hooseeya</string> <string name="downloads_storage_ask_summary_no_saf_notice">Dajin walba meeshii lagu kaydin lahaa ayaa lagu waydiin</string> <string name="disable_media_tunneling_summary">Iska xidh kala-leexinta muuqaalada/dhagaysiga hadaad lakulanto shaashad madow ama muuqaalka oo isistaaga</string> <string name="disable_media_tunneling_title">Xidh kala-leexinta</string> 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 @@ <string name="feed_load_error_account_info">Nuk u arrit të ngarkohej feed-i për \'%s\'.</string> <string name="feed_load_error">Gabim gjatë ngarkimit të feed-it</string> <string name="downloads_storage_use_saf_summary_api_29">Duke nisur nga Android 10 vetëm \'Storage Access Framework\' është i mbështetur</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' nuk është e mbështetur në Android KitKat dhe më poshtë</string> <string name="downloads_storage_ask_summary_no_saf_notice">Ju do të pyeteni se ku doni të ruani çdo shkarkim</string> <string name="crash_the_app">Rrëzoje aplikacionin manualisht</string> <string name="disable_media_tunneling_summary">Ç\'aktivizo tunelin e medias nëse po hasni një ekran të zi apo ngecje gjatë luajtjes së një videoje</string> 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 @@ <string name="feed_load_error_account_info">Не могу да учитам довод за „%s“.</string> <string name="feed_load_error">Грешка учитавања довода</string> <string name="downloads_storage_use_saf_summary_api_29">Од Андроида 10 само „Storage Access Framework“ је подржан</string> - <string name="downloads_storage_use_saf_summary_api_19">„Storage Access Framework“ није подржан на Андроиду 4.4 и старијим</string> <string name="downloads_storage_ask_summary_no_saf_notice">Питаће вас где да сачувате свако преузимање</string> <string name="no_dir_yet">Фасцикла за преузимање није одређена. Изаберите подразумевану фасциклу</string> <string name="off">искљ</string> 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 @@ <string name="feed_toggle_show_played_items">Visa sedda objekt</string> <string name="feed_load_error_fast_unknown">Det snabba flödesläget ger inte mer information om detta.</string> <string name="feed_load_error">Fel vid inläsning av flödet</string> - <string name="downloads_storage_use_saf_summary_api_19">\"Storage Access Framework\" är inte tillgängligt på Android KitKat och tidigare versioner</string> <string name="mark_as_watched">Markera som sedd</string> <string name="metadata_privacy_unlisted">Ej listad</string> <string name="featured">Aktuellt</string> 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 @@ <string name="feed_load_error_account_info">\'%s\' için besleme yüklenemedi.</string> <string name="feed_load_error">Besleme yüklenirken hata</string> <string name="downloads_storage_use_saf_summary_api_29">\'Depolama Erişimi Çerçevesi\' yalnızca Android 10\'dan başlayarak desteklenmektedir</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Depolama Erişimi Çerçevesi\' Android KitKat ve altında desteklenmez</string> <string name="downloads_storage_ask_summary_no_saf_notice">Her indirmede nereye kaydedileceği sorulacak</string> <string name="no_dir_yet">İndirme klasörü belirlenmedi, şimdi öntanımlı indirme klasörünü seçin</string> <string name="off">Kapat</string> 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 @@ <string name="disable_media_tunneling_summary">Вимкнення тунелювання медіаданих за наявності чорного екрана або гальмування під час відтворення відео</string> <string name="disable_media_tunneling_title">Вимкнути тунелювання медіа</string> <string name="downloads_storage_use_saf_summary_api_29">«Фреймворк доступу до сховища» (SAF) підтримується лише починаючи з Android 10</string> - <string name="downloads_storage_use_saf_summary_api_19">«Фреймворк доступу до сховища» (SAF) не підтримується в KitKat і нижче</string> <string name="downloads_storage_ask_summary_no_saf_notice">Вас питатиме, куди зберігати кожне завантаження</string> <string name="no_dir_yet">Не вказано теки завантаження, оберіть типову теку завантаження зараз</string> <string name="open_website_license">Відкрити вебсайт</string> 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 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - - <!-- Opening Theme --> - <style name="Base.V21.OpeningTheme" parent="Base.V19.OpeningTheme"> - <item name="android:navigationBarColor">@color/light_youtube_primary_color</item> - </style> - <style name="Base.OpeningTheme" parent="Base.V21.OpeningTheme" /> - - <!-- Base Theme --> - <style name="Base.V21" parent="Base.V19"/> - <style name="Base" parent="Base.V21"/> - - <!-- Light Theme --> - <style name="Base.V21.LightTheme" parent="Base.V19.LightTheme" /> - - <style name="Base.LightTheme" parent="Base.V21.LightTheme" /> - - <!-- Dark Theme --> - <style name="Base.V21.DarkTheme" parent="Base.V19.DarkTheme" /> - - <style name="Base.DarkTheme" parent="Base.V21.DarkTheme" /> - - <!-- Black Theme --> - <style name="Base.V21.BlackTheme" parent="Base.V19.BlackTheme" /> - - <style name="Base.BlackTheme" parent="Base.V21.BlackTheme" /> - - <!-- Router Activity --> - <style name="Base.V21.RouterActivityThemeLight" parent="Base.RouterActivityThemeLight"> - <item name="android:statusBarColor">@android:color/transparent</item> - </style> - - <style name="RouterActivityThemeLight" parent="Base.V21.RouterActivityThemeLight" /> - - <style name="Base.V21.RouterActivityThemeDark" parent="Base.RouterActivityThemeDark"> - <item name="android:statusBarColor">@android:color/transparent</item> - </style> - - <style name="RouterActivityThemeDark" parent="Base.V21.RouterActivityThemeDark" /> - -</resources> diff --git a/app/src/main/res/values-v21/styles_services.xml b/app/src/main/res/values-v21/styles_services.xml deleted file mode 100644 index f12bdba6d..000000000 --- a/app/src/main/res/values-v21/styles_services.xml +++ /dev/null @@ -1,92 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources xmlns:tools="http://schemas.android.com/tools"> - <!-- YouTube --> - <style name="LightTheme.YouTube" parent="LightTheme" tools:keep="@style/LightTheme_YouTube"> - <item name="colorPrimaryDark">@color/light_youtube_statusbar_color</item> - </style> - - <style name="DarkTheme.YouTube" parent="DarkTheme" tools:keep="@style/DarkTheme_YouTube"> - <item name="colorPrimaryDark">@color/dark_youtube_statusbar_color</item> - </style> - - <style name="BlackTheme.YouTube" parent="BlackTheme" tools:keep="@style/BlackTheme_YouTube"> - <item name="colorPrimaryDark">@color/dark_youtube_statusbar_color</item> - </style> - - <!-- SoundCloud --> - <style name="LightTheme.SoundCloud" parent="LightTheme" tools:keep="@style/LightTheme_SoundCloud"> - <item name="colorPrimary">@color/light_soundcloud_primary_color</item> - <item name="colorPrimaryDark">@color/light_soundcloud_statusbar_color</item> - <item name="colorAccent">@color/light_soundcloud_accent_color</item> - </style> - - <style name="DarkTheme.SoundCloud" parent="DarkTheme" tools:keep="@style/DarkTheme_SoundCloud"> - <item name="colorPrimary">@color/dark_soundcloud_primary_color</item> - <item name="colorPrimaryDark">@color/dark_soundcloud_statusbar_color</item> - <item name="colorAccent">@color/dark_soundcloud_accent_color</item> - </style> - - <style name="BlackTheme.SoundCloud" parent="BlackTheme" tools:keep="@style/BlackTheme_SoundCloud"> - <item name="colorPrimary">@color/dark_soundcloud_primary_color</item> - <item name="colorPrimaryDark">@color/dark_soundcloud_statusbar_color</item> - <item name="colorAccent">@color/dark_soundcloud_accent_color</item> - </style> - - <!-- PeerTube --> - <style name="LightTheme.PeerTube" parent="LightTheme" tools:keep="@style/LightTheme_PeerTube"> - <item name="colorPrimary">@color/light_peertube_primary_color</item> - <item name="colorPrimaryDark">@color/light_peertube_statusbar_color</item> - <item name="colorAccent">@color/light_peertube_accent_color</item> - </style> - - <style name="DarkTheme.PeerTube" parent="DarkTheme" tools:keep="@style/DarkTheme_PeerTube"> - <item name="colorPrimary">@color/dark_peertube_primary_color</item> - <item name="colorPrimaryDark">@color/dark_peertube_statusbar_color</item> - <item name="colorAccent">@color/dark_peertube_accent_color</item> - </style> - - <style name="BlackTheme.PeerTube" parent="BlackTheme" tools:keep="@style/BlackTheme_PeerTube"> - <item name="colorPrimary">@color/dark_peertube_primary_color</item> - <item name="colorPrimaryDark">@color/dark_peertube_statusbar_color</item> - <item name="colorAccent">@color/dark_peertube_accent_color</item> - </style> - - <!-- media.ccc.de --> - <style name="LightTheme.media.ccc.de" parent="LightTheme" tools:keep="@style/LightTheme_media_ccc_de"> - <item name="colorPrimary">@color/light_media_ccc_primary_color</item> - <item name="colorPrimaryDark">@color/light_media_ccc_statusbar_color</item> - <item name="colorAccent">@color/light_media_ccc_accent_color</item> - </style> - - <style name="DarkTheme.media.ccc.de" parent="DarkTheme" tools:keep="@style/DarkTheme_media_ccc_de"> - <item name="colorPrimary">@color/dark_media_ccc_primary_color</item> - <item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item> - <item name="colorAccent">@color/dark_media_ccc_accent_color</item> - </style> - - <style name="BlackTheme.media.ccc.de" parent="BlackTheme" tools:keep="@style/BlackTheme_media_ccc_de"> - <item name="colorPrimary">@color/dark_media_ccc_primary_color</item> - <item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item> - <item name="colorAccent">@color/dark_media_ccc_accent_color</item> - </style> - - <!-- Bandcamp --> - <style name="LightTheme.Bandcamp" parent="LightTheme" tools:keep="@style/LightTheme_Bandcamp"> - <item name="colorPrimary">@color/light_bandcamp_primary_color</item> - <item name="colorPrimaryDark">@color/light_bandcamp_statusbar_color</item> - <item name="colorAccent">@color/light_bandcamp_accent_color</item> - </style> - - <style name="DarkTheme.Bandcamp" parent="DarkTheme" tools:keep="@style/DarkTheme_Bandcamp"> - <item name="colorPrimary">@color/dark_bandcamp_primary_color</item> - <item name="colorPrimaryDark">@color/dark_bandcamp_statusbar_color</item> - <item name="colorAccent">@color/dark_bandcamp_accent_color</item> - </style> - - <style name="BlackTheme.Bandcamp" parent="BlackTheme" tools:keep="@style/BlackTheme_Bandcamp"> - <item name="colorPrimary">@color/dark_bandcamp_primary_color</item> - <item name="colorPrimaryDark">@color/dark_bandcamp_statusbar_color</item> - <item name="colorAccent">@color/dark_bandcamp_accent_color</item> - </style> - -</resources> 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 @@ <string name="feed_load_error_account_info">Không thể tải nguồn dữ liệu cho \'%s\'.</string> <string name="feed_load_error">Lỗi khi tải nguồn dữ liệu</string> <string name="downloads_storage_use_saf_summary_api_29">\'Storage Access Framework\' chỉ được hỗ trợ từ Android 10 trở đi</string> - <string name="downloads_storage_use_saf_summary_api_19">\'Storage Access Framework\' không được hỗ trợ trên Android KitKat và cũ hơn</string> <string name="downloads_storage_ask_summary_no_saf_notice">Bạn sẽ được hỏi nơi bạn muốn lưu mỗi mục tải xuống</string> <string name="no_dir_yet">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</string> <string name="dont_show">Không hiện</string> 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 @@ <string name="feed_load_error_account_info">无法加载“%s”的 Feed。</string> <string name="feed_load_error">加载 Feed 时出错</string> <string name="downloads_storage_use_saf_summary_api_29">仅 Android 10 及以上版本支持“存储访问框架”</string> - <string name="downloads_storage_use_saf_summary_api_19">Android KitKat 及更低版本不支持“存储访问框架”</string> <string name="downloads_storage_ask_summary_no_saf_notice">你会被问到在哪里保存每个下载</string> <string name="no_dir_yet">尚未设置下载文件夹,现在选择默认下载文件夹</string> <string name="tablet_mode_title">平板模式</string> 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 @@ <string name="preferred_open_action_settings_summary">預設開啟內容嘅時候做咩好 — %s</string> <string name="unhook_checkbox">脫鈎 (聲音可能會失真)</string> <string name="playback_step">飛前一格</string> - <string name="downloads_storage_use_saf_summary_api_19">Android KitKat 以及樓下唔支援「儲存空間存取框架」</string> <string name="no_playlist_bookmarked_yet">未有收起嘅播放清單</string> <string name="play_all">照單全播</string> <string name="no_channel_subscribed_yet">未有頻道訂閱</string> 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 @@ <string name="feed_load_error_account_info">無法載入「%s」。</string> <string name="feed_load_error">載入 feed 時發生錯誤</string> <string name="downloads_storage_use_saf_summary_api_29">從 Android 10 開始僅支援「儲存空間存取框架」</string> - <string name="downloads_storage_use_saf_summary_api_19">Android KitKat 或更舊的版本不支援「儲存空間存取框架」</string> <string name="downloads_storage_ask_summary_no_saf_notice">每次下載都會詢問您要下載到哪裡</string> <string name="no_dir_yet">尚未設定下載資料夾,立刻選擇預設的下載資料夾</string> <string name="off">關閉</string> 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 @@ <resources> <!-- YouTube --> <color name="light_youtube_primary_color">#e53935</color> - <color name="light_youtube_dark_color">#992722</color> <color name="light_youtube_accent_color">#000000</color> - <color name="light_youtube_statusbar_color">#e53935</color> <color name="dark_youtube_primary_color">#992722</color> - <color name="dark_youtube_dark_color">#7a1717</color> <color name="dark_youtube_accent_color">#FFFFFF</color> - <color name="dark_youtube_statusbar_color">#992722</color> <!-- SoundCloud --> <color name="light_soundcloud_primary_color">#f57c00</color> - <color name="light_soundcloud_dark_color">#995700</color> <color name="light_soundcloud_accent_color">#000000</color> - <color name="light_soundcloud_statusbar_color">#f57c00</color> <color name="dark_soundcloud_primary_color">#a35300</color> - <color name="dark_soundcloud_dark_color">#7d4000</color> <color name="dark_soundcloud_accent_color">#FFFFFF</color> - <color name="dark_soundcloud_statusbar_color">#a35300</color> <!-- PeerTube --> <color name="light_peertube_primary_color">#ff6f00</color> - <color name="light_peertube_dark_color">#c43e00</color> <color name="light_peertube_accent_color">#000000</color> - <color name="light_peertube_statusbar_color">#ff6f00</color> <color name="dark_peertube_primary_color">#a34700</color> - <color name="dark_peertube_dark_color">#942f00</color> <color name="dark_peertube_accent_color">#FFFFFF</color> - <color name="dark_peertube_statusbar_color">#a34700</color> <!-- media.ccc.de --> <color name="light_media_ccc_primary_color">#9e9e9e</color> <color name="light_media_ccc_accent_color">#000000</color> - <color name="light_media_ccc_statusbar_color">#9e9e9e</color> <color name="dark_media_ccc_primary_color">#878787</color> <color name="dark_media_ccc_accent_color">#FFFFFF</color> - <color name="dark_media_ccc_statusbar_color">#878787</color> <!-- Bandcamp --> <color name="light_bandcamp_primary_color">#17a0c4</color> <color name="light_bandcamp_accent_color">#000000</color> - <color name="light_bandcamp_statusbar_color">#17a0c4</color> <color name="dark_bandcamp_primary_color">#1383a1</color> <color name="dark_bandcamp_accent_color">#FFFFFF</color> - <color name="dark_bandcamp_statusbar_color">#1383a1</color> </resources> \ 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 @@ <string name="downloads_storage_ask_summary_no_saf_notice">You will be asked where to save each download</string> <string name="downloads_storage_use_saf_title">Use system folder picker (SAF)</string> <string name="downloads_storage_use_saf_summary">The \'Storage Access Framework\' allows downloads to an external SD card</string> - <string name="downloads_storage_use_saf_summary_api_19">The \'Storage Access Framework\' is not supported on Android KitKat and below</string> <string name="downloads_storage_use_saf_summary_api_29">Starting from Android 10 only \'Storage Access Framework\' is supported</string> <string name="choose_instance_prompt">Choose an instance</string> <string name="app_language_title">App language</string> 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 @@ <resources> <!-- Opening Theme --> - <style name="Base.V19.OpeningTheme" parent="Theme.AppCompat.DayNight.NoActionBar"/> - <style name="Base.OpeningTheme" parent="Base.V19.OpeningTheme"/> - <style name="OpeningTheme" parent="Base.OpeningTheme"> + <style name="Base.V21.OpeningTheme" parent="Theme.AppCompat.DayNight.NoActionBar"> <item name="colorPrimary">@android:color/transparent</item> <item name="colorPrimaryDark">@android:color/transparent</item> <item name="colorAccent">@android:color/transparent</item> <item name="android:windowBackground">@drawable/splash_background</item> </style> + <style name="Base.OpeningTheme" parent="Base.V21.OpeningTheme"> + <item name="android:navigationBarColor">@color/light_youtube_primary_color</item> + </style> + <style name="OpeningTheme" parent="Base.OpeningTheme" /> <!-- Base Theme --> - <style name="Base.V19" parent="Theme.AppCompat.DayNight.NoActionBar"> + <style name="Base.V21" parent="Theme.AppCompat.DayNight.NoActionBar"> <item name="actionColor">@color/white</item> <item name="floatingActionButtonStyle">@style/FloatingActionButtonTheme</item> <item name="toolbarSearchColor">@color/white</item> <item name="colorControlActivated">?attr/colorPrimary</item> </style> - <style name="Base" parent="Base.V19"/> + <style name="Base" parent="Base.V21"/> <!-- Light Theme --> - <style name="Base.V19.LightTheme" parent="Base"> + <style name="Base.V21.LightTheme" parent="Base"> <item name="colorPrimary">@color/light_youtube_primary_color</item> <item name="colorPrimaryDark">@color/light_youtube_primary_color</item> <item name="colorAccent">@color/light_youtube_accent_color</item> @@ -41,11 +43,11 @@ <item name="border_color">@color/light_border_color</item> <item name="dashed_border">@drawable/dashed_border_light</item> </style> - <style name="Base.LightTheme" parent="Base.V19.LightTheme" /> + <style name="Base.LightTheme" parent="Base.V21.LightTheme" /> <style name="LightTheme" parent="Base.LightTheme"/> <!-- Dark Theme --> - <style name="Base.V19.DarkTheme" parent="Base"> + <style name="Base.V21.DarkTheme" parent="Base"> <item name="colorPrimary">@color/dark_youtube_primary_color</item> <item name="colorPrimaryDark">@color/dark_youtube_primary_color</item> <item name="colorAccent">@color/dark_youtube_accent_color</item> @@ -65,11 +67,11 @@ <item name="border_color">@color/dark_border_color</item> <item name="dashed_border">@drawable/dashed_border_dark</item> </style> - <style name="Base.DarkTheme" parent="Base.V19.DarkTheme" /> + <style name="Base.DarkTheme" parent="Base.V21.DarkTheme" /> <style name="DarkTheme" parent="Base.DarkTheme"/> <!-- Black Theme --> - <style name="Base.V19.BlackTheme" parent="DarkTheme"> + <style name="Base.V21.BlackTheme" parent="DarkTheme"> <item name="android:windowBackground">@color/black_background_color</item> <item name="windowBackground">@color/black_background_color</item> @@ -81,7 +83,7 @@ <item name="border_color">@color/black_border_color</item> <item name="dashed_border">@drawable/dashed_border_black</item> </style> - <style name="Base.BlackTheme" parent="Base.V19.BlackTheme" /> + <style name="Base.BlackTheme" parent="Base.V21.BlackTheme" /> <style name="BlackTheme" parent="Base.BlackTheme"/> <!-- Dialogs --> @@ -137,6 +139,7 @@ <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@null</item> + <item name="android:statusBarColor">@android:color/transparent</item> </style> <style name="RouterActivityThemeLight" parent="Base.RouterActivityThemeLight" /> @@ -147,6 +150,7 @@ <item name="android:colorBackgroundCacheHint">@null</item> <item name="android:windowIsTranslucent">true</item> <item name="android:windowAnimationStyle">@null</item> + <item name="android:statusBarColor">@android:color/transparent</item> </style> <style name="RouterActivityThemeDark" parent="Base.RouterActivityThemeDark" /> diff --git a/app/src/main/res/values/styles_misc.xml b/app/src/main/res/values/styles_misc.xml index ca285ae15..06ee2a300 100644 --- a/app/src/main/res/values/styles_misc.xml +++ b/app/src/main/res/values/styles_misc.xml @@ -12,7 +12,7 @@ <!--File picker styles--> <style name="FilePickerThemeLight" parent="NNF_BaseTheme.Light"> <item name="colorPrimary">@color/light_youtube_primary_color</item> - <item name="colorPrimaryDark">@color/light_youtube_dark_color</item> + <item name="colorPrimaryDark">@color/light_youtube_primary_color</item> <item name="colorAccent">@color/light_settings_accent_color</item> <item name="actionColor">@color/white</item> @@ -26,7 +26,7 @@ <style name="FilePickerThemeDark" parent="NNF_BaseTheme"> <item name="colorPrimary">@color/dark_youtube_primary_color</item> - <item name="colorPrimaryDark">@color/dark_youtube_dark_color</item> + <item name="colorPrimaryDark">@color/dark_youtube_primary_color</item> <item name="colorAccent">@color/dark_settings_accent_color</item> <item name="actionColor">@color/white</item> @@ -40,13 +40,13 @@ <style name="FilePickerAlertDialogThemeLight" parent="Theme.AppCompat.DayNight.Dialog.Alert"> <item name="colorPrimary">@color/light_youtube_primary_color</item> - <item name="colorPrimaryDark">@color/light_youtube_dark_color</item> + <item name="colorPrimaryDark">@color/light_youtube_primary_color</item> <item name="colorAccent">@color/light_settings_accent_color</item> </style> <style name="FilePickerAlertDialogThemeDark" parent="Theme.AppCompat.DayNight.Dialog.Alert"> <item name="colorPrimary">@color/dark_youtube_primary_color</item> - <item name="colorPrimaryDark">@color/dark_youtube_dark_color</item> + <item name="colorPrimaryDark">@color/dark_youtube_primary_color</item> <item name="colorAccent">@color/dark_settings_accent_color</item> </style> 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 @@ <?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"> <!-- YouTube --> - <style name="LightTheme.YouTube" parent="LightTheme" tools:keep="@style/LightTheme_YouTube" /> + <style name="LightTheme.YouTube" parent="LightTheme" tools:keep="@style/LightTheme_YouTube"> + <item name="colorPrimaryDark">@color/light_youtube_primary_color</item> + </style> - <style name="DarkTheme.YouTube" parent="DarkTheme" tools:keep="@style/DarkTheme_YouTube" /> + <style name="DarkTheme.YouTube" parent="DarkTheme" tools:keep="@style/DarkTheme_YouTube"> + <item name="colorPrimaryDark">@color/dark_youtube_primary_color</item> + </style> - <style name="BlackTheme.YouTube" parent="BlackTheme" tools:keep="@style/BlackTheme_YouTube" /> + <style name="BlackTheme.YouTube" parent="BlackTheme" tools:keep="@style/BlackTheme_YouTube"> + <item name="colorPrimaryDark">@color/dark_youtube_primary_color</item> + </style> <!-- SoundCloud --> <style name="LightTheme.SoundCloud" parent="LightTheme" tools:keep="@style/LightTheme_SoundCloud"> <item name="colorPrimary">@color/light_soundcloud_primary_color</item> - <item name="colorPrimaryDark">@color/light_soundcloud_dark_color</item> + <item name="colorPrimaryDark">@color/light_soundcloud_primary_color</item> <item name="colorAccent">@color/light_soundcloud_accent_color</item> <item name="progress_horizontal_drawable">@drawable/progress_soundcloud_horizontal_light </item> @@ -18,7 +24,7 @@ <style name="DarkTheme.SoundCloud" parent="DarkTheme" tools:keep="@style/DarkTheme_SoundCloud"> <item name="colorPrimary">@color/dark_soundcloud_primary_color</item> - <item name="colorPrimaryDark">@color/dark_soundcloud_dark_color</item> + <item name="colorPrimaryDark">@color/dark_soundcloud_primary_color</item> <item name="colorAccent">@color/dark_soundcloud_accent_color</item> <item name="progress_horizontal_drawable">@drawable/progress_soundcloud_horizontal_dark </item> @@ -26,7 +32,7 @@ <style name="BlackTheme.SoundCloud" parent="BlackTheme" tools:keep="@style/BlackTheme_SoundCloud"> <item name="colorPrimary">@color/dark_soundcloud_primary_color</item> - <item name="colorPrimaryDark">@color/dark_soundcloud_dark_color</item> + <item name="colorPrimaryDark">@color/dark_soundcloud_primary_color</item> <item name="colorAccent">@color/dark_soundcloud_accent_color</item> <item name="progress_horizontal_drawable">@drawable/progress_soundcloud_horizontal_dark </item> @@ -35,57 +41,57 @@ <!-- PeerTube --> <style name="LightTheme.PeerTube" parent="LightTheme" tools:keep="@style/LightTheme_PeerTube"> <item name="colorPrimary">@color/light_peertube_primary_color</item> - <item name="colorPrimaryDark">@color/light_peertube_dark_color</item> + <item name="colorPrimaryDark">@color/light_peertube_primary_color</item> <item name="colorAccent">@color/light_peertube_accent_color</item> </style> <style name="DarkTheme.PeerTube" parent="DarkTheme" tools:keep="@style/DarkTheme_PeerTube"> <item name="colorPrimary">@color/dark_peertube_primary_color</item> - <item name="colorPrimaryDark">@color/dark_peertube_dark_color</item> + <item name="colorPrimaryDark">@color/dark_peertube_primary_color</item> <item name="colorAccent">@color/dark_peertube_accent_color</item> </style> <style name="BlackTheme.PeerTube" parent="BlackTheme" tools:keep="@style/BlackTheme_PeerTube"> <item name="colorPrimary">@color/dark_peertube_primary_color</item> - <item name="colorPrimaryDark">@color/dark_peertube_dark_color</item> + <item name="colorPrimaryDark">@color/dark_peertube_primary_color</item> <item name="colorAccent">@color/dark_peertube_accent_color</item> </style> <!-- media.ccc.de --> <style name="LightTheme.media.ccc.de" parent="LightTheme" tools:keep="@style/LightTheme_media_ccc_de"> <item name="colorPrimary">@color/light_media_ccc_primary_color</item> - <item name="colorPrimaryDark">@color/light_media_ccc_statusbar_color</item> + <item name="colorPrimaryDark">@color/light_media_ccc_primary_color</item> <item name="colorAccent">@color/light_media_ccc_accent_color</item> </style> <style name="DarkTheme.media.ccc.de" parent="DarkTheme" tools:keep="@style/DarkTheme_media_ccc_de"> <item name="colorPrimary">@color/dark_media_ccc_primary_color</item> - <item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item> + <item name="colorPrimaryDark">@color/dark_media_ccc_primary_color</item> <item name="colorAccent">@color/dark_media_ccc_accent_color</item> </style> <style name="BlackTheme.media.ccc.de" parent="BlackTheme" tools:keep="@style/BlackTheme_media_ccc_de"> <item name="colorPrimary">@color/dark_media_ccc_primary_color</item> - <item name="colorPrimaryDark">@color/dark_media_ccc_statusbar_color</item> + <item name="colorPrimaryDark">@color/dark_media_ccc_primary_color</item> <item name="colorAccent">@color/dark_media_ccc_accent_color</item> </style> <!-- Bandcamp --> <style name="LightTheme.Bandcamp" parent="LightTheme" tools:keep="@style/LightTheme_Bandcamp"> <item name="colorPrimary">@color/light_bandcamp_primary_color</item> - <item name="colorPrimaryDark">@color/light_bandcamp_statusbar_color</item> + <item name="colorPrimaryDark">@color/light_bandcamp_primary_color</item> <item name="colorAccent">@color/light_bandcamp_accent_color</item> </style> <style name="DarkTheme.Bandcamp" parent="DarkTheme" tools:keep="@style/DarkTheme_Bandcamp"> <item name="colorPrimary">@color/dark_bandcamp_primary_color</item> - <item name="colorPrimaryDark">@color/dark_bandcamp_statusbar_color</item> + <item name="colorPrimaryDark">@color/dark_bandcamp_primary_color</item> <item name="colorAccent">@color/dark_bandcamp_accent_color</item> </style> <style name="BlackTheme.Bandcamp" parent="BlackTheme" tools:keep="@style/BlackTheme_Bandcamp"> <item name="colorPrimary">@color/dark_bandcamp_primary_color</item> - <item name="colorPrimaryDark">@color/dark_bandcamp_statusbar_color</item> + <item name="colorPrimaryDark">@color/dark_bandcamp_primary_color</item> <item name="colorAccent">@color/dark_bandcamp_accent_color</item> </style> 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" /> <SwitchPreferenceCompat + android:defaultValue="true" android:key="@string/storage_use_saf" android:summary="@string/downloads_storage_use_saf_summary" android:title="@string/downloads_storage_use_saf_title"