mirror of
https://github.com/revanced/revanced-patches.git
synced 2025-12-26 02:44:08 +01:00
Compare commits
6 Commits
v5.46.0-de
...
v5.46.0-de
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
475197af45 | ||
|
|
d390b54dab | ||
|
|
4d1eaa6b14 | ||
|
|
c6364f5b49 | ||
|
|
f177eae385 | ||
|
|
2e9d6959c9 |
14
CHANGELOG.md
14
CHANGELOG.md
@@ -1,3 +1,17 @@
|
||||
# [5.46.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v5.46.0-dev.6...v5.46.0-dev.7) (2025-11-08)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **YouTube - Settings:** Add additional languages to ReVanced language preference ([d390b54](https://github.com/ReVanced/revanced-patches/commit/d390b54dab92d75b4e0d3e38344eae489dd69d98))
|
||||
|
||||
# [5.46.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v5.46.0-dev.5...v5.46.0-dev.6) (2025-11-08)
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* **YouTube - Debugging:** Add setting to block experimental client flags ([#6196](https://github.com/ReVanced/revanced-patches/issues/6196)) ([2e9d695](https://github.com/ReVanced/revanced-patches/commit/2e9d6959c94df7588b9e34b18770e9f437e91926))
|
||||
|
||||
# [5.46.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v5.46.0-dev.4...v5.46.0-dev.5) (2025-11-07)
|
||||
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ import java.util.Arrays;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
import com.amazon.video.sdk.player.Player;
|
||||
|
||||
@@ -64,9 +65,8 @@ public class PlaybackSpeedPatch {
|
||||
SpeedIconDrawable speedIcon = new SpeedIconDrawable();
|
||||
speedButton.setImageDrawable(speedIcon);
|
||||
|
||||
int buttonSize = Utils.dipToPixels(48);
|
||||
speedButton.setMinimumWidth(buttonSize);
|
||||
speedButton.setMinimumHeight(buttonSize);
|
||||
speedButton.setMinimumWidth(Dim.dp48);
|
||||
speedButton.setMinimumHeight(Dim.dp48);
|
||||
|
||||
return speedButton;
|
||||
}
|
||||
@@ -197,11 +197,11 @@ class SpeedIconDrawable extends Drawable {
|
||||
|
||||
@Override
|
||||
public int getIntrinsicWidth() {
|
||||
return Utils.dipToPixels(32);
|
||||
return Dim.dp32;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIntrinsicHeight() {
|
||||
return Utils.dipToPixels(32);
|
||||
return Dim.dp32;
|
||||
}
|
||||
}
|
||||
@@ -23,9 +23,7 @@ import android.os.Looper;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Pair;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -63,6 +61,7 @@ import app.revanced.extension.shared.settings.AppLanguage;
|
||||
import app.revanced.extension.shared.settings.BaseSettings;
|
||||
import app.revanced.extension.shared.settings.BooleanSetting;
|
||||
import app.revanced.extension.shared.settings.preference.ReVancedAboutPreference;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
@SuppressWarnings("NewApi")
|
||||
public class Utils {
|
||||
@@ -801,13 +800,10 @@ public class Utils {
|
||||
public static void setDialogWindowParameters(Window window, int gravity, int yOffsetDip, int widthPercentage, boolean dimAmount) {
|
||||
WindowManager.LayoutParams params = window.getAttributes();
|
||||
|
||||
DisplayMetrics displayMetrics = Resources.getSystem().getDisplayMetrics();
|
||||
int portraitWidth = Math.min(displayMetrics.widthPixels, displayMetrics.heightPixels);
|
||||
|
||||
params.width = (int) (portraitWidth * (widthPercentage / 100.0f)); // Set width based on parameters.
|
||||
params.width = Dim.pctPortraitWidth(widthPercentage);
|
||||
params.height = WindowManager.LayoutParams.WRAP_CONTENT;
|
||||
params.gravity = gravity;
|
||||
params.y = yOffsetDip > 0 ? dipToPixels(yOffsetDip) : 0;
|
||||
params.y = yOffsetDip > 0 ? Dim.dp(yOffsetDip) : 0;
|
||||
if (dimAmount) {
|
||||
params.dimAmount = 0f;
|
||||
}
|
||||
@@ -816,18 +812,6 @@ public class Utils {
|
||||
window.setBackgroundDrawable(null); // Remove default dialog background
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an array of corner radii for a rounded rectangle shape.
|
||||
*
|
||||
* @param dp Radius in density-independent pixels (dip) to apply to all corners.
|
||||
* @return An array of eight float values representing the corner radii
|
||||
* (top-left, top-right, bottom-right, bottom-left).
|
||||
*/
|
||||
public static float[] createCornerRadii(float dp) {
|
||||
final float radius = dipToPixels(dp);
|
||||
return new float[]{radius, radius, radius, radius, radius, radius, radius, radius};
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the theme light color used by the app.
|
||||
*/
|
||||
@@ -1132,42 +1116,6 @@ public class Utils {
|
||||
return getResourceColor(colorString);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts dip value to actual device pixels.
|
||||
*
|
||||
* @param dip The density-independent pixels value.
|
||||
* @return The device pixel value.
|
||||
*/
|
||||
public static int dipToPixels(float dip) {
|
||||
return (int) TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP,
|
||||
dip,
|
||||
Resources.getSystem().getDisplayMetrics()
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a percentage of the screen height to actual device pixels.
|
||||
*
|
||||
* @param percentage The percentage of the screen height (e.g., 30 for 30%).
|
||||
* @return The device pixel value corresponding to the percentage of screen height.
|
||||
*/
|
||||
public static int percentageHeightToPixels(int percentage) {
|
||||
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
||||
return (int) (metrics.heightPixels * (percentage / 100.0f));
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a percentage of the screen width to actual device pixels.
|
||||
*
|
||||
* @param percentage The percentage of the screen width (e.g., 30 for 30%).
|
||||
* @return The device pixel value corresponding to the percentage of screen width.
|
||||
*/
|
||||
public static int percentageWidthToPixels(int percentage) {
|
||||
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
||||
return (int) (metrics.widthPixels * (percentage / 100.0f));
|
||||
}
|
||||
|
||||
/**
|
||||
* Uses {@link #adjustColorBrightness(int, float)} depending if light or dark mode is active.
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
package app.revanced.extension.shared.patches;
|
||||
|
||||
import static java.lang.Boolean.TRUE;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ConcurrentMap;
|
||||
|
||||
@@ -21,12 +25,28 @@ public final class EnableDebuggingPatch {
|
||||
? new ConcurrentHashMap<>(800, 0.5f, 1)
|
||||
: null;
|
||||
|
||||
private static final Set<Long> DISABLED_FEATURE_FLAGS = parseFlags(BaseSettings.DISABLED_FEATURE_FLAGS.get());
|
||||
|
||||
// Log all disabled flags on app startup.
|
||||
static {
|
||||
if (LOG_FEATURE_FLAGS && !DISABLED_FEATURE_FLAGS.isEmpty()) {
|
||||
StringBuilder sb = new StringBuilder("Disabled feature flags:\n");
|
||||
for (Long flag : DISABLED_FEATURE_FLAGS) {
|
||||
sb.append(" ").append(flag).append('\n');
|
||||
}
|
||||
Logger.printDebug(sb::toString);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static boolean isBooleanFeatureFlagEnabled(boolean value, Long flag) {
|
||||
if (LOG_FEATURE_FLAGS && value) {
|
||||
if (featureFlags.putIfAbsent(flag, true) == null) {
|
||||
if (DISABLED_FEATURE_FLAGS.contains(flag)) {
|
||||
return false;
|
||||
}
|
||||
if (featureFlags.putIfAbsent(flag, TRUE) == null) {
|
||||
Logger.printDebug(() -> "boolean feature is enabled: " + flag);
|
||||
}
|
||||
}
|
||||
@@ -70,10 +90,44 @@ public final class EnableDebuggingPatch {
|
||||
if (LOG_FEATURE_FLAGS && !defaultValue.equals(value)) {
|
||||
if (featureFlags.putIfAbsent(flag, true) == null) {
|
||||
Logger.printDebug(() -> " string feature is enabled: " + flag
|
||||
+ " value: " + value + (defaultValue.isEmpty() ? "" : " default: " + defaultValue));
|
||||
+ " value: " + value + (defaultValue.isEmpty() ? "" : " default: " + defaultValue));
|
||||
}
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all logged feature flags.
|
||||
* @return Set of all known flags
|
||||
*/
|
||||
public static Set<Long> getAllLoggedFlags() {
|
||||
if (featureFlags != null) {
|
||||
return new HashSet<>(featureFlags.keySet());
|
||||
}
|
||||
|
||||
return new HashSet<>();
|
||||
}
|
||||
|
||||
/**
|
||||
* Public method for parsing flags.
|
||||
* @param flags String containing newline-separated flag IDs
|
||||
* @return Set of parsed flag IDs
|
||||
*/
|
||||
public static Set<Long> parseFlags(String flags) {
|
||||
Set<Long> parsedFlags = new HashSet<>();
|
||||
if (!flags.isBlank()) {
|
||||
for (String flag : flags.split("\n")) {
|
||||
String trimmedFlag = flag.trim();
|
||||
if (trimmedFlag.isEmpty()) continue; // Skip empty lines.
|
||||
try {
|
||||
parsedFlags.add(Long.parseLong(trimmedFlag));
|
||||
} catch (NumberFormatException e) {
|
||||
Logger.printException(() -> "Invalid flag ID: " + flag);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return parsedFlags;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,7 +7,6 @@ import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.preference.PreferenceFragment;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
@@ -16,6 +15,7 @@ import android.widget.Toolbar;
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.settings.preference.ToolbarPreferenceFragment;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
/**
|
||||
* Base class for hooking activities to inject a custom PreferenceFragment with a toolbar.
|
||||
@@ -109,13 +109,12 @@ public abstract class BaseActivityHook extends Activity {
|
||||
toolbar.setNavigationOnClickListener(getNavigationClickListener(activity));
|
||||
toolbar.setTitle(STRING_REVANCED_SETTINGS_TITLE);
|
||||
|
||||
final int margin = Utils.dipToPixels(16);
|
||||
toolbar.setTitleMarginStart(margin);
|
||||
toolbar.setTitleMarginEnd(margin);
|
||||
toolbar.setTitleMarginStart(Dim.dp16);
|
||||
toolbar.setTitleMarginEnd(Dim.dp16);
|
||||
TextView toolbarTextView = Utils.getChildView(toolbar, false, view -> view instanceof TextView);
|
||||
if (toolbarTextView != null) {
|
||||
toolbarTextView.setTextColor(Utils.getAppForegroundColor());
|
||||
toolbarTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
|
||||
toolbarTextView.setTextSize(20);
|
||||
}
|
||||
setToolbarLayoutParams(toolbar);
|
||||
|
||||
|
||||
@@ -42,4 +42,6 @@ public class BaseSettings {
|
||||
|
||||
public static final EnumSetting<BrandingTheme> CUSTOM_BRANDING_ICON = new EnumSetting<>("revanced_custom_branding_icon", BrandingTheme.ORIGINAL, true);
|
||||
public static final IntegerSetting CUSTOM_BRANDING_NAME = new IntegerSetting("revanced_custom_branding_name", 1, true);
|
||||
|
||||
public static final StringSetting DISABLED_FEATURE_FLAGS = new StringSetting("revanced_disabled_feature_flags", "", true, parent(DEBUG));
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.shared.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.shared.Utils.getResourceIdentifierOrThrow;
|
||||
|
||||
import android.app.Dialog;
|
||||
@@ -37,6 +36,7 @@ import app.revanced.extension.shared.settings.Setting;
|
||||
import app.revanced.extension.shared.settings.StringSetting;
|
||||
import app.revanced.extension.shared.ui.ColorDot;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
/**
|
||||
* A custom preference for selecting a color via a hexadecimal code or a color picker dialog.
|
||||
@@ -310,11 +310,8 @@ public class ColorPickerPreference extends EditTextPreference {
|
||||
inputLayout.setGravity(Gravity.CENTER_VERTICAL);
|
||||
|
||||
dialogColorDot = new View(context);
|
||||
LinearLayout.LayoutParams previewParams = new LinearLayout.LayoutParams(
|
||||
dipToPixels(20),
|
||||
dipToPixels(20)
|
||||
);
|
||||
previewParams.setMargins(dipToPixels(16), 0, dipToPixels(10), 0);
|
||||
LinearLayout.LayoutParams previewParams = new LinearLayout.LayoutParams(Dim.dp20,Dim.dp20);
|
||||
previewParams.setMargins(Dim.dp16, 0, Dim.dp10, 0);
|
||||
dialogColorDot.setLayoutParams(previewParams);
|
||||
inputLayout.addView(dialogColorDot);
|
||||
updateDialogColorDot();
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
package app.revanced.extension.shared.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.shared.settings.preference.ColorPickerPreference.getColorString;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
@@ -21,6 +20,7 @@ import androidx.annotation.ColorInt;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
/**
|
||||
* A custom color picker view that allows the user to select a color using a hue slider, a saturation-value selector
|
||||
@@ -54,28 +54,28 @@ public class ColorPickerView extends View {
|
||||
}
|
||||
|
||||
/** Expanded touch area for the hue and opacity bars to increase the touch-sensitive area. */
|
||||
public static final float TOUCH_EXPANSION = dipToPixels(20f);
|
||||
public static final float TOUCH_EXPANSION = Dim.dp20;
|
||||
|
||||
/** Margin between different areas of the view (saturation-value selector, hue bar, and opacity slider). */
|
||||
private static final float MARGIN_BETWEEN_AREAS = dipToPixels(24);
|
||||
private static final float MARGIN_BETWEEN_AREAS = Dim.dp24;
|
||||
|
||||
/** Padding around the view. */
|
||||
private static final float VIEW_PADDING = dipToPixels(16);
|
||||
private static final float VIEW_PADDING = Dim.dp16;
|
||||
|
||||
/** Height of the hue bar. */
|
||||
private static final float HUE_BAR_HEIGHT = dipToPixels(12);
|
||||
private static final float HUE_BAR_HEIGHT = Dim.dp12;
|
||||
|
||||
/** Height of the opacity slider. */
|
||||
private static final float OPACITY_BAR_HEIGHT = dipToPixels(12);
|
||||
private static final float OPACITY_BAR_HEIGHT = Dim.dp12;
|
||||
|
||||
/** Corner radius for the hue bar. */
|
||||
private static final float HUE_CORNER_RADIUS = dipToPixels(6);
|
||||
private static final float HUE_CORNER_RADIUS = Dim.dp6;
|
||||
|
||||
/** Corner radius for the opacity slider. */
|
||||
private static final float OPACITY_CORNER_RADIUS = dipToPixels(6);
|
||||
private static final float OPACITY_CORNER_RADIUS = Dim.dp6;
|
||||
|
||||
/** Radius of the selector handles. */
|
||||
private static final float SELECTOR_RADIUS = dipToPixels(12);
|
||||
private static final float SELECTOR_RADIUS = Dim.dp12;
|
||||
|
||||
/** Stroke width for the selector handle outlines. */
|
||||
private static final float SELECTOR_STROKE_WIDTH = 8;
|
||||
@@ -202,7 +202,7 @@ public class ColorPickerView extends View {
|
||||
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
|
||||
final float DESIRED_ASPECT_RATIO = 0.8f; // height = width * 0.8
|
||||
|
||||
final int minWidth = dipToPixels(250);
|
||||
final int minWidth = Dim.dp(250);
|
||||
final int minHeight = (int) (minWidth * DESIRED_ASPECT_RATIO) + (int) (HUE_BAR_HEIGHT + MARGIN_BETWEEN_AREAS)
|
||||
+ (opacitySliderEnabled ? (int) (OPACITY_BAR_HEIGHT + MARGIN_BETWEEN_AREAS) : 0);
|
||||
|
||||
|
||||
@@ -0,0 +1,623 @@
|
||||
package app.revanced.extension.shared.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.getResourceIdentifierOrThrow;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.res.TypedArray;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.graphics.drawable.ShapeDrawable;
|
||||
import android.graphics.drawable.shapes.RoundRectShape;
|
||||
import android.preference.Preference;
|
||||
import android.text.Editable;
|
||||
import android.text.InputType;
|
||||
import android.text.TextUtils;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
import android.util.SparseBooleanArray;
|
||||
import android.view.Gravity;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.widget.ArrayAdapter;
|
||||
import android.widget.EditText;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListView;
|
||||
import android.widget.Space;
|
||||
import android.widget.TextView;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.patches.EnableDebuggingPatch;
|
||||
import app.revanced.extension.shared.settings.BaseSettings;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
/**
|
||||
* A custom preference that opens a dialog for managing feature flags.
|
||||
* Allows moving boolean flags between active and blocked states with advanced selection.
|
||||
*/
|
||||
@SuppressWarnings({"deprecation", "unused"})
|
||||
public class FeatureFlagsManagerPreference extends Preference {
|
||||
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_SELECT_ALL =
|
||||
getResourceIdentifierOrThrow("revanced_settings_select_all", "drawable");
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_DESELECT_ALL =
|
||||
getResourceIdentifierOrThrow("revanced_settings_deselect_all", "drawable");
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_COPY_ALL =
|
||||
getResourceIdentifierOrThrow("revanced_settings_copy_all", "drawable");
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_ARROW_RIGHT_ONE =
|
||||
getResourceIdentifierOrThrow("revanced_settings_arrow_right_one", "drawable");
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_ARROW_RIGHT_DOUBLE =
|
||||
getResourceIdentifierOrThrow("revanced_settings_arrow_right_double", "drawable");
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_ARROW_LEFT_ONE =
|
||||
getResourceIdentifierOrThrow("revanced_settings_arrow_left_one", "drawable");
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_ARROW_LEFT_DOUBLE =
|
||||
getResourceIdentifierOrThrow("revanced_settings_arrow_left_double", "drawable");
|
||||
|
||||
/**
|
||||
* Flags to hide from the UI.
|
||||
*/
|
||||
private static final Set<Long> FLAGS_TO_IGNORE = Set.of(
|
||||
45386834L // 'You' tab settings icon.
|
||||
);
|
||||
|
||||
/**
|
||||
* Tracks state for range selection in ListView.
|
||||
*/
|
||||
private static class ListViewSelectionState {
|
||||
int lastClickedPosition = -1; // Position of the last clicked item.
|
||||
boolean isRangeSelecting = false; // True while a range is being selected.
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper class to pass ListView and Adapter together.
|
||||
*/
|
||||
private record ColumnViews(ListView listView, FlagAdapter adapter) {}
|
||||
|
||||
{
|
||||
setOnPreferenceClickListener(pref -> {
|
||||
showFlagsManagerDialog();
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
public FeatureFlagsManagerPreference(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
|
||||
super(context, attrs, defStyleAttr, defStyleRes);
|
||||
}
|
||||
|
||||
public FeatureFlagsManagerPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
}
|
||||
|
||||
public FeatureFlagsManagerPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public FeatureFlagsManagerPreference(Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* Shows the main dialog for managing feature flags.
|
||||
*/
|
||||
private void showFlagsManagerDialog() {
|
||||
if (!BaseSettings.DEBUG.get()) {
|
||||
Utils.showToastShort(str("revanced_debug_logs_disabled"));
|
||||
return;
|
||||
}
|
||||
|
||||
Context context = getContext();
|
||||
|
||||
// Load all known and disabled flags.
|
||||
TreeSet<Long> allKnownFlags = new TreeSet<>(EnableDebuggingPatch.getAllLoggedFlags());
|
||||
allKnownFlags.removeAll(FLAGS_TO_IGNORE);
|
||||
|
||||
TreeSet<Long> disabledFlags = new TreeSet<>(EnableDebuggingPatch.parseFlags(
|
||||
BaseSettings.DISABLED_FEATURE_FLAGS.get()));
|
||||
disabledFlags.removeAll(FLAGS_TO_IGNORE);
|
||||
|
||||
if (allKnownFlags.isEmpty() && disabledFlags.isEmpty()) {
|
||||
// String does not need to be localized because it's basically impossible
|
||||
// to reach the settings menu without encountering at least 1 flag.
|
||||
Utils.showToastShort("No feature flags logged yet");
|
||||
return;
|
||||
}
|
||||
|
||||
TreeSet<Long> availableFlags = new TreeSet<>(allKnownFlags);
|
||||
availableFlags.removeAll(disabledFlags);
|
||||
TreeSet<Long> blockedFlags = new TreeSet<>(disabledFlags);
|
||||
|
||||
Pair<Dialog, LinearLayout> dialogPair = CustomDialog.create(
|
||||
context,
|
||||
getTitle() != null ? getTitle().toString() : "",
|
||||
null,
|
||||
null,
|
||||
str("revanced_settings_save"),
|
||||
() -> saveFlags(blockedFlags),
|
||||
() -> {},
|
||||
str("revanced_settings_reset"),
|
||||
this::resetFlags,
|
||||
true
|
||||
);
|
||||
|
||||
LinearLayout mainLayout = dialogPair.second;
|
||||
LinearLayout.LayoutParams contentParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, 0, 1.0f);
|
||||
|
||||
// Insert content before the dialog button row.
|
||||
View contentView = createContentView(context, availableFlags, blockedFlags);
|
||||
mainLayout.addView(contentView, mainLayout.getChildCount() - 1, contentParams);
|
||||
|
||||
Dialog dialog = dialogPair.first;
|
||||
dialog.show();
|
||||
|
||||
Window window = dialog.getWindow();
|
||||
if (window != null) {
|
||||
Utils.setDialogWindowParameters(window, Gravity.CENTER, 0, 100, false);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the main content view with two columns.
|
||||
*/
|
||||
private View createContentView(Context context, TreeSet<Long> availableFlags, TreeSet<Long> blockedFlags) {
|
||||
LinearLayout contentLayout = new LinearLayout(context);
|
||||
contentLayout.setOrientation(LinearLayout.VERTICAL);
|
||||
|
||||
// Headers.
|
||||
TextView availableHeader = createHeader(context, "revanced_debug_feature_flags_manager_active_header");
|
||||
TextView blockedHeader = createHeader(context, "revanced_debug_feature_flags_manager_blocked_header");
|
||||
|
||||
LinearLayout headersLayout = new LinearLayout(context);
|
||||
headersLayout.setOrientation(LinearLayout.HORIZONTAL);
|
||||
headersLayout.addView(availableHeader, new LinearLayout.LayoutParams(
|
||||
0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
|
||||
headersLayout.addView(blockedHeader, new LinearLayout.LayoutParams(
|
||||
0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
|
||||
|
||||
// Columns.
|
||||
View leftColumn = createColumn(context, availableFlags, availableHeader);
|
||||
View rightColumn = createColumn(context, blockedFlags, blockedHeader);
|
||||
|
||||
ColumnViews leftViews = (ColumnViews) leftColumn.getTag();
|
||||
ColumnViews rightViews = (ColumnViews) rightColumn.getTag();
|
||||
|
||||
updateHeaderCount(availableHeader, leftViews.adapter);
|
||||
updateHeaderCount(blockedHeader, rightViews.adapter);
|
||||
|
||||
// Main columns layout.
|
||||
LinearLayout columnsLayout = new LinearLayout(context);
|
||||
columnsLayout.setOrientation(LinearLayout.HORIZONTAL);
|
||||
columnsLayout.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT, 0, 1f));
|
||||
columnsLayout.addView(leftColumn, new LinearLayout.LayoutParams(
|
||||
0, ViewGroup.LayoutParams.MATCH_PARENT, 1f));
|
||||
|
||||
Space spaceBetweenColumns = new Space(context);
|
||||
spaceBetweenColumns.setLayoutParams(new LinearLayout.LayoutParams(Dim.dp8, ViewGroup.LayoutParams.MATCH_PARENT));
|
||||
columnsLayout.addView(spaceBetweenColumns);
|
||||
|
||||
columnsLayout.addView(rightColumn, new LinearLayout.LayoutParams(
|
||||
0, ViewGroup.LayoutParams.MATCH_PARENT, 1f));
|
||||
|
||||
// Move buttons below columns.
|
||||
Pair<LinearLayout, LinearLayout> moveButtons = createMoveButtons(context,
|
||||
leftViews.listView, rightViews.listView,
|
||||
availableFlags, blockedFlags, availableHeader, blockedHeader);
|
||||
|
||||
// Layout for buttons row.
|
||||
LinearLayout buttonsRow = new LinearLayout(context);
|
||||
buttonsRow.setOrientation(LinearLayout.HORIZONTAL);
|
||||
buttonsRow.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
|
||||
buttonsRow.addView(moveButtons.first, new LinearLayout.LayoutParams(
|
||||
0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
|
||||
|
||||
Space spaceBetweenButtons = new Space(context);
|
||||
spaceBetweenButtons.setLayoutParams(new LinearLayout.LayoutParams(Dim.dp8, ViewGroup.LayoutParams.WRAP_CONTENT));
|
||||
buttonsRow.addView(spaceBetweenButtons);
|
||||
|
||||
buttonsRow.addView(moveButtons.second, new LinearLayout.LayoutParams(
|
||||
0, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
|
||||
|
||||
contentLayout.addView(headersLayout);
|
||||
contentLayout.addView(columnsLayout);
|
||||
contentLayout.addView(buttonsRow);
|
||||
|
||||
return contentLayout;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a header TextView.
|
||||
*/
|
||||
private TextView createHeader(Context context, String tag) {
|
||||
TextView textview = new TextView(context);
|
||||
textview.setTag(tag);
|
||||
textview.setTextSize(16);
|
||||
textview.setTextColor(Utils.getAppForegroundColor());
|
||||
textview.setGravity(Gravity.CENTER);
|
||||
|
||||
return textview;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a single column (search + buttons + list).
|
||||
*/
|
||||
private View createColumn(Context context, TreeSet<Long> flags, TextView countText) {
|
||||
LinearLayout wrapper = new LinearLayout(context);
|
||||
wrapper.setOrientation(LinearLayout.VERTICAL);
|
||||
|
||||
Pair<ListView, FlagAdapter> pair = createListView(context, flags, countText);
|
||||
ListView listView = pair.first;
|
||||
FlagAdapter adapter = pair.second;
|
||||
|
||||
EditText search = createSearchBox(context, adapter, listView, countText);
|
||||
LinearLayout buttons = createActionButtons(context, listView, adapter);
|
||||
|
||||
listView.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT, 0, 1f));
|
||||
ShapeDrawable background = new ShapeDrawable(new RoundRectShape(
|
||||
Dim.roundedCorners(10), null, null));
|
||||
background.getPaint().setColor(Utils.getEditTextBackground());
|
||||
listView.setPadding(0, Dim.dp4, 0, Dim.dp4);
|
||||
listView.setBackground(background);
|
||||
listView.setOverScrollMode(View.OVER_SCROLL_NEVER);
|
||||
|
||||
wrapper.addView(search);
|
||||
wrapper.addView(buttons);
|
||||
wrapper.addView(listView);
|
||||
|
||||
// Save references for move buttons.
|
||||
wrapper.setTag(new ColumnViews(listView, adapter));
|
||||
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the header text with the current count.
|
||||
*/
|
||||
private void updateHeaderCount(TextView header, FlagAdapter adapter) {
|
||||
header.setText(str((String) header.getTag(), adapter.getCount()));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a search box that filters the list.
|
||||
*/
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
private EditText createSearchBox(Context context, FlagAdapter adapter, ListView listView, TextView countText) {
|
||||
EditText search = new EditText(context);
|
||||
search.setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||
search.setTextSize(16);
|
||||
search.setHint(str("revanced_debug_feature_flags_manager_search_hint"));
|
||||
search.setHapticFeedbackEnabled(false);
|
||||
search.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
|
||||
|
||||
search.addTextChangedListener(new TextWatcher() {
|
||||
@Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
|
||||
@Override public void onTextChanged(CharSequence s, int start, int before, int count) {
|
||||
adapter.setSearchQuery(s.toString());
|
||||
listView.clearChoices();
|
||||
updateHeaderCount(countText, adapter);
|
||||
Drawable clearIcon = context.getResources().getDrawable(android.R.drawable.ic_menu_close_clear_cancel);
|
||||
clearIcon.setBounds(0, 0, Dim.dp20, Dim.dp20);
|
||||
search.setCompoundDrawables(null, null, TextUtils.isEmpty(s) ? null : clearIcon, null);
|
||||
}
|
||||
@Override public void afterTextChanged(Editable s) {}
|
||||
});
|
||||
|
||||
search.setOnTouchListener((v, event) -> {
|
||||
if (event.getAction() == MotionEvent.ACTION_UP) {
|
||||
Drawable[] compoundDrawables = search.getCompoundDrawables();
|
||||
if (compoundDrawables[2] != null &&
|
||||
event.getRawX() >= (search.getRight() - compoundDrawables[2].getBounds().width())) {
|
||||
search.setText("");
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
return search;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates action buttons.
|
||||
*/
|
||||
private LinearLayout createActionButtons(Context context, ListView listView, FlagAdapter adapter) {
|
||||
LinearLayout row = new LinearLayout(context);
|
||||
row.setOrientation(LinearLayout.HORIZONTAL);
|
||||
row.setGravity(Gravity.CENTER);
|
||||
row.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT));
|
||||
|
||||
ImageButton selectAll = createButton(context, DRAWABLE_REVANCED_SETTINGS_SELECT_ALL,
|
||||
() -> {
|
||||
for (int i = 0, count = adapter.getCount(); i < count; i++) {
|
||||
listView.setItemChecked(i, true);
|
||||
}
|
||||
});
|
||||
|
||||
ImageButton clearAll = createButton(context, DRAWABLE_REVANCED_SETTINGS_DESELECT_ALL,
|
||||
() -> {
|
||||
listView.clearChoices();
|
||||
adapter.notifyDataSetChanged();
|
||||
});
|
||||
|
||||
ImageButton copy = createButton(context, DRAWABLE_REVANCED_SETTINGS_COPY_ALL,
|
||||
() -> {
|
||||
List<String> items = new ArrayList<>();
|
||||
SparseBooleanArray checked = listView.getCheckedItemPositions();
|
||||
|
||||
if (checked.size() > 0) {
|
||||
for (int i = 0, count = adapter.getCount(); i < count; i++) {
|
||||
if (checked.get(i)) {
|
||||
items.add(adapter.getItem(i));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (Long flag : adapter.getFullFlags()) {
|
||||
items.add(String.valueOf(flag));
|
||||
}
|
||||
}
|
||||
|
||||
Utils.setClipboard(TextUtils.join("\n", items));
|
||||
|
||||
Utils.showToastShort(str("revanced_debug_feature_flags_manager_toast_copied"));
|
||||
});
|
||||
|
||||
row.addView(selectAll);
|
||||
row.addView(clearAll);
|
||||
row.addView(copy);
|
||||
|
||||
return row;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the move buttons (left and right groups).
|
||||
*/
|
||||
private Pair<LinearLayout, LinearLayout> createMoveButtons(Context context,
|
||||
ListView availableListView, ListView blockedListView,
|
||||
TreeSet<Long> availableFlags, TreeSet<Long> blockedFlags,
|
||||
TextView availableCountText, TextView blockedCountText) {
|
||||
// Left group: >> >
|
||||
LinearLayout leftButtons = new LinearLayout(context);
|
||||
leftButtons.setOrientation(LinearLayout.HORIZONTAL);
|
||||
leftButtons.setGravity(Gravity.CENTER);
|
||||
|
||||
ImageButton moveAllRight = createButton(context, DRAWABLE_REVANCED_SETTINGS_ARROW_RIGHT_DOUBLE,
|
||||
() -> moveFlags(availableListView, blockedListView, availableFlags, blockedFlags,
|
||||
availableCountText, blockedCountText, true));
|
||||
|
||||
ImageButton moveOneRight = createButton(context, DRAWABLE_REVANCED_SETTINGS_ARROW_RIGHT_ONE,
|
||||
() -> moveFlags(availableListView, blockedListView, availableFlags, blockedFlags,
|
||||
availableCountText, blockedCountText, false));
|
||||
|
||||
leftButtons.addView(moveAllRight);
|
||||
leftButtons.addView(moveOneRight);
|
||||
|
||||
// Right group: < <<
|
||||
LinearLayout rightButtons = new LinearLayout(context);
|
||||
rightButtons.setOrientation(LinearLayout.HORIZONTAL);
|
||||
rightButtons.setGravity(Gravity.CENTER);
|
||||
|
||||
ImageButton moveOneLeft = createButton(context, DRAWABLE_REVANCED_SETTINGS_ARROW_LEFT_ONE,
|
||||
() -> moveFlags(blockedListView, availableListView, blockedFlags, availableFlags,
|
||||
blockedCountText, availableCountText, false));
|
||||
|
||||
ImageButton moveAllLeft = createButton(context, DRAWABLE_REVANCED_SETTINGS_ARROW_LEFT_DOUBLE,
|
||||
() -> moveFlags(blockedListView, availableListView, blockedFlags, availableFlags,
|
||||
blockedCountText, availableCountText, true));
|
||||
|
||||
rightButtons.addView(moveOneLeft);
|
||||
rightButtons.addView(moveAllLeft);
|
||||
|
||||
return new Pair<>(leftButtons, rightButtons);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a styled ImageButton.
|
||||
*/
|
||||
@SuppressLint("ResourceType")
|
||||
private ImageButton createButton(Context context, int drawableResId, Runnable action) {
|
||||
ImageButton button = new ImageButton(context);
|
||||
|
||||
button.setImageResource(drawableResId);
|
||||
button.setScaleType(ImageView.ScaleType.CENTER);
|
||||
int[] attrs = {android.R.attr.selectableItemBackgroundBorderless};
|
||||
//noinspection Recycle
|
||||
TypedArray ripple = context.obtainStyledAttributes(attrs);
|
||||
button.setBackgroundDrawable(ripple.getDrawable(0));
|
||||
ripple.close();
|
||||
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(Dim.dp32, Dim.dp32);
|
||||
params.setMargins(Dim.dp8, Dim.dp8, Dim.dp8, Dim.dp8);
|
||||
button.setLayoutParams(params);
|
||||
|
||||
button.setOnClickListener(v -> action.run());
|
||||
|
||||
return button;
|
||||
}
|
||||
|
||||
/**
|
||||
* Custom adapter with search filtering.
|
||||
*/
|
||||
private static class FlagAdapter extends ArrayAdapter<String> {
|
||||
private final TreeSet<Long> fullFlags;
|
||||
private String searchQuery = "";
|
||||
|
||||
public FlagAdapter(Context context, TreeSet<Long> fullFlags) {
|
||||
super(context, android.R.layout.simple_list_item_multiple_choice, new ArrayList<>());
|
||||
this.fullFlags = fullFlags;
|
||||
updateFiltered();
|
||||
}
|
||||
|
||||
public void setSearchQuery(String query) {
|
||||
searchQuery = query == null ? "" : query.trim();
|
||||
updateFiltered();
|
||||
}
|
||||
|
||||
private void updateFiltered() {
|
||||
clear();
|
||||
for (Long flag : fullFlags) {
|
||||
String flagString = String.valueOf(flag);
|
||||
if (searchQuery.isEmpty() || flagString.contains(searchQuery)) {
|
||||
add(flagString);
|
||||
}
|
||||
}
|
||||
notifyDataSetChanged();
|
||||
}
|
||||
|
||||
public void refresh() {
|
||||
updateFiltered();
|
||||
}
|
||||
|
||||
public List<Long> getFullFlags() {
|
||||
return new ArrayList<>(fullFlags);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a ListView with filtering, multi-select, and range selection.
|
||||
*/
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
private Pair<ListView, FlagAdapter> createListView(Context context,
|
||||
TreeSet<Long> flags, TextView countText) {
|
||||
ListView listView = new ListView(context);
|
||||
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
|
||||
listView.setDividerHeight(0);
|
||||
|
||||
FlagAdapter adapter = new FlagAdapter(context, flags);
|
||||
listView.setAdapter(adapter);
|
||||
|
||||
final ListViewSelectionState state = new ListViewSelectionState();
|
||||
|
||||
listView.setOnItemClickListener((parent, view, position, id) -> {
|
||||
if (!state.isRangeSelecting) {
|
||||
state.lastClickedPosition = position;
|
||||
} else {
|
||||
state.isRangeSelecting = false;
|
||||
}
|
||||
});
|
||||
|
||||
listView.setOnItemLongClickListener((parent, view, position, id) -> {
|
||||
if (state.lastClickedPosition == -1) {
|
||||
listView.setItemChecked(position, true);
|
||||
state.lastClickedPosition = position;
|
||||
} else {
|
||||
int start = Math.min(state.lastClickedPosition, position);
|
||||
int end = Math.max(state.lastClickedPosition, position);
|
||||
for (int i = start; i <= end; i++) {
|
||||
listView.setItemChecked(i, true);
|
||||
}
|
||||
state.isRangeSelecting = true;
|
||||
}
|
||||
return true;
|
||||
});
|
||||
|
||||
listView.setOnTouchListener((view, event) -> {
|
||||
if (event.getAction() == MotionEvent.ACTION_UP && state.isRangeSelecting) {
|
||||
state.isRangeSelecting = false;
|
||||
}
|
||||
return false;
|
||||
});
|
||||
|
||||
return new Pair<>(listView, adapter);
|
||||
}
|
||||
|
||||
/**
|
||||
* Moves selected or all flags from one list to another.
|
||||
*
|
||||
* @param fromListView Source ListView.
|
||||
* @param toListView Destination ListView.
|
||||
* @param fromFlags Source flag set.
|
||||
* @param toFlags Destination flag set.
|
||||
* @param fromCountText Header showing count of source items.
|
||||
* @param toCountText Header showing count of destination items.
|
||||
* @param moveAll If true, move all items; if false, move only selected.
|
||||
*/
|
||||
private void moveFlags(ListView fromListView, ListView toListView,
|
||||
TreeSet<Long> fromFlags, TreeSet<Long> toFlags,
|
||||
TextView fromCountText, TextView toCountText,
|
||||
boolean moveAll) {
|
||||
if (fromListView == null || toListView == null) return;
|
||||
|
||||
List<Long> flagsToMove = new ArrayList<>();
|
||||
FlagAdapter fromAdapter = (FlagAdapter) fromListView.getAdapter();
|
||||
|
||||
if (moveAll) {
|
||||
flagsToMove.addAll(fromFlags);
|
||||
} else {
|
||||
SparseBooleanArray checked = fromListView.getCheckedItemPositions();
|
||||
for (int i = 0, count = fromAdapter.getCount(); i < count; i++) {
|
||||
if (checked.get(i)) {
|
||||
String item = fromAdapter.getItem(i);
|
||||
if (item != null) {
|
||||
flagsToMove.add(Long.parseLong(item));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (flagsToMove.isEmpty()) return;
|
||||
|
||||
for (Long flag : flagsToMove) {
|
||||
fromFlags.remove(flag);
|
||||
toFlags.add(flag);
|
||||
}
|
||||
|
||||
// Clear selections before refreshing.
|
||||
fromListView.clearChoices();
|
||||
toListView.clearChoices();
|
||||
|
||||
// Refresh both adapters.
|
||||
fromAdapter.refresh();
|
||||
((FlagAdapter) toListView.getAdapter()).refresh();
|
||||
|
||||
// Update headers.
|
||||
updateHeaderCount(fromCountText, fromAdapter);
|
||||
updateHeaderCount(toCountText, (FlagAdapter) toListView.getAdapter());
|
||||
}
|
||||
|
||||
/**
|
||||
* Saves blocked flags to settings.
|
||||
*/
|
||||
private void saveFlags(TreeSet<Long> blockedFlags) {
|
||||
StringBuilder flagsString = new StringBuilder();
|
||||
for (Long flag : blockedFlags) {
|
||||
if (flagsString.length() > 0) {
|
||||
flagsString.append("\n");
|
||||
}
|
||||
flagsString.append(flag);
|
||||
}
|
||||
|
||||
BaseSettings.DISABLED_FEATURE_FLAGS.save(flagsString.toString());
|
||||
Utils.showToastShort(str("revanced_debug_feature_flags_manager_toast_saved"));
|
||||
Logger.printDebug(() -> "Feature flags saved. Blocked: " + blockedFlags.size());
|
||||
|
||||
AbstractPreferenceFragment.showRestartDialog(getContext());
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets all blocked flags.
|
||||
*/
|
||||
private void resetFlags() {
|
||||
BaseSettings.DISABLED_FEATURE_FLAGS.save("");
|
||||
Utils.showToastShort(str("revanced_debug_feature_flags_manager_toast_reset"));
|
||||
|
||||
AbstractPreferenceFragment.showRestartDialog(getContext());
|
||||
}
|
||||
}
|
||||
@@ -11,7 +11,6 @@ import android.preference.Preference;
|
||||
import android.text.InputType;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
import android.util.TypedValue;
|
||||
import android.view.inputmethod.InputMethodManager;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
@@ -20,6 +19,7 @@ import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.settings.Setting;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
@SuppressWarnings({"unused", "deprecation"})
|
||||
public class ImportExportPreference extends EditTextPreference implements Preference.OnPreferenceClickListener {
|
||||
@@ -35,7 +35,7 @@ public class ImportExportPreference extends EditTextPreference implements Prefer
|
||||
editText.setAutofillHints((String) null);
|
||||
}
|
||||
editText.setInputType(editText.getInputType() | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
||||
editText.setTextSize(TypedValue.COMPLEX_UNIT_PT, 7); // Use a smaller font to reduce text wrap.
|
||||
editText.setTextSize(14);
|
||||
|
||||
setOnPreferenceClickListener(this);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.shared.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.shared.requests.Route.Method.GET;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
@@ -41,6 +40,7 @@ import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.requests.Requester;
|
||||
import app.revanced.extension.shared.requests.Route;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
/**
|
||||
* Opens a dialog showing official links.
|
||||
@@ -222,11 +222,10 @@ class WebViewDialog extends Dialog {
|
||||
LinearLayout mainLayout = new LinearLayout(getContext());
|
||||
mainLayout.setOrientation(LinearLayout.VERTICAL);
|
||||
|
||||
final int padding = dipToPixels(10);
|
||||
mainLayout.setPadding(padding, padding, padding, padding);
|
||||
mainLayout.setPadding(Dim.dp10, Dim.dp10, Dim.dp10, Dim.dp10);
|
||||
// Set rounded rectangle background.
|
||||
ShapeDrawable mainBackground = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(28), null, null));
|
||||
Dim.roundedCorners(28), null, null));
|
||||
mainBackground.getPaint().setColor(Utils.getDialogBackgroundColor());
|
||||
mainLayout.setBackground(mainBackground);
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ import android.os.Build;
|
||||
import android.preference.Preference;
|
||||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.util.TypedValue;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.Window;
|
||||
import android.view.WindowInsets;
|
||||
@@ -20,6 +19,7 @@ import androidx.annotation.Nullable;
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.settings.BaseActivityHook;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
@SuppressWarnings({"deprecation", "NewApi"})
|
||||
public class ToolbarPreferenceFragment extends AbstractPreferenceFragment {
|
||||
@@ -88,14 +88,13 @@ public class ToolbarPreferenceFragment extends AbstractPreferenceFragment {
|
||||
toolbar.setNavigationIcon(getBackButtonDrawable());
|
||||
toolbar.setNavigationOnClickListener(view -> preferenceScreenDialog.dismiss());
|
||||
|
||||
final int margin = Utils.dipToPixels(16);
|
||||
toolbar.setTitleMargin(margin, 0, margin, 0);
|
||||
toolbar.setTitleMargin(Dim.dp16, 0, Dim.dp16, 0);
|
||||
|
||||
TextView toolbarTextView = Utils.getChildView(toolbar,
|
||||
true, TextView.class::isInstance);
|
||||
if (toolbarTextView != null) {
|
||||
toolbarTextView.setTextColor(Utils.getAppForegroundColor());
|
||||
toolbarTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 20);
|
||||
toolbarTextView.setTextSize(20);
|
||||
}
|
||||
|
||||
// Allow package-specific toolbar customization.
|
||||
|
||||
@@ -484,7 +484,7 @@ public abstract class BaseSearchResultsAdapter extends ArrayAdapter<BaseSearchRe
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (int i = 0; i < adapter.getCount(); i++) {
|
||||
for (int i = 0, count = adapter.getCount(); i < count; i++) {
|
||||
Object item = adapter.getItem(i);
|
||||
if (item == targetPreference) {
|
||||
return i;
|
||||
@@ -522,8 +522,8 @@ public abstract class BaseSearchResultsAdapter extends ArrayAdapter<BaseSearchRe
|
||||
if (currentAnimator != null && currentAnimator.isRunning()) {
|
||||
currentAnimator.cancel();
|
||||
}
|
||||
int startColor = Utils.getAppBackgroundColor();
|
||||
int highlightColor = Utils.adjustColorBrightness(
|
||||
final int startColor = Utils.getAppBackgroundColor();
|
||||
final int highlightColor = Utils.adjustColorBrightness(
|
||||
startColor,
|
||||
Utils.isDarkModeEnabled() ? 1.25f : 0.8f
|
||||
);
|
||||
@@ -566,7 +566,7 @@ public abstract class BaseSearchResultsAdapter extends ArrayAdapter<BaseSearchRe
|
||||
}
|
||||
|
||||
// First search on current level.
|
||||
for (int i = 0; i < group.getPreferenceCount(); i++) {
|
||||
for (int i = 0, count = group.getPreferenceCount(); i < count; i++) {
|
||||
Preference pref = group.getPreference(i);
|
||||
if (key.equals(pref.getKey())) {
|
||||
return pref;
|
||||
|
||||
@@ -13,7 +13,6 @@ import android.preference.PreferenceCategory;
|
||||
import android.preference.PreferenceGroup;
|
||||
import android.preference.PreferenceScreen;
|
||||
import android.text.TextUtils;
|
||||
import android.util.TypedValue;
|
||||
import android.view.Gravity;
|
||||
import android.view.View;
|
||||
import android.view.WindowManager;
|
||||
@@ -45,6 +44,7 @@ import app.revanced.extension.shared.settings.Setting;
|
||||
import app.revanced.extension.shared.settings.preference.ColorPickerPreference;
|
||||
import app.revanced.extension.shared.settings.preference.CustomDialogListPreference;
|
||||
import app.revanced.extension.shared.settings.preference.NoTitlePreferenceCategory;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
/**
|
||||
* Abstract controller for managing the overlay search view in ReVanced settings.
|
||||
@@ -123,7 +123,7 @@ public abstract class BaseSearchViewController {
|
||||
searchView.setQueryHint(str("revanced_settings_search_hint"));
|
||||
|
||||
// Set text size.
|
||||
searchEditText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
||||
searchEditText.setTextSize(16);
|
||||
|
||||
// Set cursor color.
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
|
||||
@@ -149,7 +149,7 @@ public abstract class BaseSearchViewController {
|
||||
// Create cursor drawable.
|
||||
GradientDrawable cursorDrawable = new GradientDrawable();
|
||||
cursorDrawable.setShape(GradientDrawable.RECTANGLE);
|
||||
cursorDrawable.setSize(Utils.dipToPixels(2), -1); // Width: 2dp, Height: match text height.
|
||||
cursorDrawable.setSize(Dim.dp2, -1); // Width: 2dp, Height: match text height.
|
||||
cursorDrawable.setColor(cursorColor);
|
||||
|
||||
// Set cursor drawable.
|
||||
@@ -164,7 +164,7 @@ public abstract class BaseSearchViewController {
|
||||
overlayContainer = new FrameLayout(activity);
|
||||
overlayContainer.setVisibility(View.GONE);
|
||||
overlayContainer.setBackgroundColor(Utils.getAppBackgroundColor());
|
||||
overlayContainer.setElevation(Utils.dipToPixels(8));
|
||||
overlayContainer.setElevation(Dim.dp8);
|
||||
|
||||
// Container for search results.
|
||||
FrameLayout searchResultsContainer = new FrameLayout(activity);
|
||||
@@ -669,7 +669,7 @@ public abstract class BaseSearchViewController {
|
||||
protected static GradientDrawable createBackgroundDrawable() {
|
||||
GradientDrawable background = new GradientDrawable();
|
||||
background.setShape(GradientDrawable.RECTANGLE);
|
||||
background.setCornerRadius(Utils.dipToPixels(28));
|
||||
background.setCornerRadius(Dim.dp28);
|
||||
background.setColor(getSearchViewBackground());
|
||||
return background;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.shared.ui;
|
||||
|
||||
import static app.revanced.extension.shared.Utils.adjustColorBrightness;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.shared.Utils.getAppBackgroundColor;
|
||||
import static app.revanced.extension.shared.Utils.isDarkModeEnabled;
|
||||
import static app.revanced.extension.shared.settings.preference.ColorPickerPreference.DISABLED_ALPHA;
|
||||
@@ -13,7 +12,7 @@ import android.view.View;
|
||||
import androidx.annotation.ColorInt;
|
||||
|
||||
public class ColorDot {
|
||||
private static final int STROKE_WIDTH = dipToPixels(1.5f); // Stroke width in dp.
|
||||
private static final int STROKE_WIDTH = Dim.dp(1.5f);
|
||||
|
||||
/**
|
||||
* Creates a circular drawable with a main fill and a stroke.
|
||||
@@ -55,7 +54,7 @@ public class ColorDot {
|
||||
targetView.setAlpha(enabled ? 1.0f : DISABLED_ALPHA);
|
||||
if (!isDarkModeEnabled()) {
|
||||
targetView.setClipToOutline(true);
|
||||
targetView.setElevation(dipToPixels(2));
|
||||
targetView.setElevation(Dim.dp2);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
package app.revanced.extension.shared.ui;
|
||||
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.graphics.Color;
|
||||
@@ -37,7 +35,6 @@ public class CustomDialog {
|
||||
private final Context context;
|
||||
private final Dialog dialog;
|
||||
private final LinearLayout mainLayout;
|
||||
private final int dip4, dip8, dip16, dip24, dip36;
|
||||
|
||||
/**
|
||||
* Creates a custom dialog with a styled layout, including a title, message, buttons, and an optional EditText.
|
||||
@@ -93,13 +90,6 @@ public class CustomDialog {
|
||||
this.dialog = new Dialog(context);
|
||||
this.dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); // Remove default title bar.
|
||||
|
||||
// Preset size constants.
|
||||
dip4 = dipToPixels(4);
|
||||
dip8 = dipToPixels(8);
|
||||
dip16 = dipToPixels(16);
|
||||
dip24 = dipToPixels(24);
|
||||
dip36 = dipToPixels(36);
|
||||
|
||||
// Create main layout.
|
||||
mainLayout = createMainLayout();
|
||||
addTitle(title);
|
||||
@@ -122,11 +112,11 @@ public class CustomDialog {
|
||||
private LinearLayout createMainLayout() {
|
||||
LinearLayout layout = new LinearLayout(context);
|
||||
layout.setOrientation(LinearLayout.VERTICAL);
|
||||
layout.setPadding(dip24, dip16, dip24, dip24);
|
||||
layout.setPadding(Dim.dp24, Dim.dp16, Dim.dp24, Dim.dp24);
|
||||
|
||||
// Set rounded rectangle background.
|
||||
ShapeDrawable background = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(28), null, null));
|
||||
Dim.roundedCorners(28), null, null));
|
||||
// Dialog background.
|
||||
background.getPaint().setColor(Utils.getDialogBackgroundColor());
|
||||
layout.setBackground(background);
|
||||
@@ -152,7 +142,7 @@ public class CustomDialog {
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
ViewGroup.LayoutParams.MATCH_PARENT,
|
||||
ViewGroup.LayoutParams.WRAP_CONTENT);
|
||||
params.setMargins(0, 0, 0, dip16);
|
||||
params.setMargins(0, 0, 0, Dim.dp16);
|
||||
titleView.setLayoutParams(params);
|
||||
|
||||
mainLayout.addView(titleView);
|
||||
@@ -180,9 +170,9 @@ public class CustomDialog {
|
||||
// EditText (if provided).
|
||||
if (editText != null) {
|
||||
ShapeDrawable background = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(10), null, null));
|
||||
Dim.roundedCorners(10), null, null));
|
||||
background.getPaint().setColor(Utils.getEditTextBackground());
|
||||
scrollView.setPadding(dip8, dip8, dip8, dip8);
|
||||
scrollView.setPadding(Dim.dp8, Dim.dp8, Dim.dp8, Dim.dp8);
|
||||
scrollView.setBackground(background);
|
||||
scrollView.setClipToOutline(true);
|
||||
|
||||
@@ -241,7 +231,7 @@ public class CustomDialog {
|
||||
LinearLayout.LayoutParams buttonContainerParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
buttonContainerParams.setMargins(0, dip16, 0, 0);
|
||||
buttonContainerParams.setMargins(0, Dim.dp16, 0, 0);
|
||||
buttonContainer.setLayoutParams(buttonContainerParams);
|
||||
|
||||
List<Button> buttons = new ArrayList<>();
|
||||
@@ -289,12 +279,12 @@ public class CustomDialog {
|
||||
button.setEllipsize(TextUtils.TruncateAt.END);
|
||||
button.setGravity(Gravity.CENTER);
|
||||
// Set internal padding.
|
||||
button.setPadding(dip16, 0, dip16, 0);
|
||||
button.setPadding(Dim.dp16, 0, Dim.dp16, 0);
|
||||
|
||||
// Background color for OK button (inversion).
|
||||
// Background color for Cancel or Neutral buttons.
|
||||
ShapeDrawable background = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(20), null, null));
|
||||
Dim.roundedCorners(20), null, null));
|
||||
background.getPaint().setColor(isOkButton
|
||||
? Utils.getOkButtonBackgroundColor()
|
||||
: Utils.getCancelOrNeutralButtonBackgroundColor());
|
||||
@@ -331,20 +321,19 @@ public class CustomDialog {
|
||||
if (buttons.isEmpty()) return;
|
||||
|
||||
// Check if buttons fit in one row.
|
||||
int screenWidth = context.getResources().getDisplayMetrics().widthPixels;
|
||||
int totalWidth = 0;
|
||||
for (Integer width : buttonWidths) {
|
||||
totalWidth += width;
|
||||
}
|
||||
if (buttonWidths.size() > 1) {
|
||||
// Add margins for gaps.
|
||||
totalWidth += (buttonWidths.size() - 1) * dip8;
|
||||
totalWidth += (buttonWidths.size() - 1) * Dim.dp8;
|
||||
}
|
||||
|
||||
// Single button: stretch to full width.
|
||||
if (buttons.size() == 1) {
|
||||
layoutSingleButton(buttonContainer, buttons.get(0));
|
||||
} else if (totalWidth <= screenWidth * 0.8) {
|
||||
} else if (totalWidth <= Dim.pctWidth(80)) {
|
||||
// Single row: Neutral, Cancel, OK.
|
||||
layoutButtonsInRow(buttonContainer, buttons, buttonWidths);
|
||||
} else {
|
||||
@@ -369,7 +358,7 @@ public class CustomDialog {
|
||||
|
||||
button.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
dip36));
|
||||
Dim.dp36));
|
||||
singleContainer.addView(button);
|
||||
buttonContainer.addView(singleContainer);
|
||||
}
|
||||
@@ -405,17 +394,17 @@ public class CustomDialog {
|
||||
if (parent != null) parent.removeView(button);
|
||||
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
|
||||
0, dip36, buttonWidths.get(i));
|
||||
0, Dim.dp36, buttonWidths.get(i));
|
||||
|
||||
// Set margins based on button type and combination.
|
||||
if (buttons.size() == 2) {
|
||||
// Neutral + OK or Cancel + OK.
|
||||
params.setMargins(i == 0 ? 0 : dip4, 0, i == 0 ? dip4 : 0, 0);
|
||||
params.setMargins(i == 0 ? 0 : Dim.dp4, 0, i == 0 ? Dim.dp4 : 0, 0);
|
||||
} else if (buttons.size() == 3) {
|
||||
// Neutral.
|
||||
// Cancel.
|
||||
// OK.
|
||||
params.setMargins(i == 0 ? 0 : dip4, 0, i == 2 ? 0 : dip4, 0);
|
||||
params.setMargins(i == 0 ? 0 : Dim.dp4, 0, i == 2 ? 0 : Dim.dp4, 0);
|
||||
}
|
||||
|
||||
button.setLayoutParams(params);
|
||||
@@ -447,14 +436,14 @@ public class CustomDialog {
|
||||
singleContainer.setGravity(Gravity.CENTER);
|
||||
singleContainer.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
dip36));
|
||||
Dim.dp36));
|
||||
|
||||
ViewGroup parent = (ViewGroup) button.getParent();
|
||||
if (parent != null) parent.removeView(button);
|
||||
|
||||
button.setLayoutParams(new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
dip36));
|
||||
Dim.dp36));
|
||||
singleContainer.addView(button);
|
||||
buttonContainer.addView(singleContainer);
|
||||
|
||||
@@ -463,7 +452,7 @@ public class CustomDialog {
|
||||
View spacer = new View(context);
|
||||
LinearLayout.LayoutParams spacerParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
dip8);
|
||||
Dim.dp8);
|
||||
spacer.setLayoutParams(spacerParams);
|
||||
buttonContainer.addView(spacer);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
package app.revanced.extension.shared.ui;
|
||||
|
||||
import android.content.res.Resources;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.TypedValue;
|
||||
|
||||
/**
|
||||
* Utility class for converting design units (dp) and screen percentages to pixels.
|
||||
*/
|
||||
public final class Dim {
|
||||
private Dim() {} // Prevent instantiation.
|
||||
|
||||
private static final DisplayMetrics METRICS = Resources.getSystem().getDisplayMetrics();
|
||||
public static final int SCREEN_WIDTH = METRICS.widthPixels;
|
||||
public static final int SCREEN_HEIGHT = METRICS.heightPixels;
|
||||
|
||||
// DP constants (density-independent pixels).
|
||||
public static final int dp1 = dp(1);
|
||||
public static final int dp2 = dp(2);
|
||||
public static final int dp4 = dp(4);
|
||||
public static final int dp6 = dp(6);
|
||||
public static final int dp7 = dp(7);
|
||||
public static final int dp8 = dp(8);
|
||||
public static final int dp10 = dp(10);
|
||||
public static final int dp12 = dp(12);
|
||||
public static final int dp16 = dp(16);
|
||||
public static final int dp20 = dp(20);
|
||||
public static final int dp24 = dp(24);
|
||||
public static final int dp28 = dp(28);
|
||||
public static final int dp32 = dp(32);
|
||||
public static final int dp36 = dp(36);
|
||||
public static final int dp40 = dp(40);
|
||||
public static final int dp48 = dp(48);
|
||||
|
||||
/**
|
||||
* Converts dp (density-independent pixels) to actual device pixels.
|
||||
* Uses Android's official TypedValue.applyDimension() for accurate rounding.
|
||||
*
|
||||
* @param dp The dp value to convert (supports float, e.g. 1.2f).
|
||||
* @return The equivalent pixel value as int.
|
||||
*/
|
||||
public static int dp(float dp) {
|
||||
return (int) TypedValue.applyDimension(
|
||||
TypedValue.COMPLEX_UNIT_DIP, dp, METRICS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a percentage of the screen height to pixels.
|
||||
*
|
||||
* @param percent The percentage (0–100).
|
||||
* @return The pixel value corresponding to the percentage of screen height.
|
||||
*/
|
||||
public static int pctHeight(int percent) {
|
||||
return (SCREEN_HEIGHT * percent) / 100;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a percentage of the screen width to pixels.
|
||||
*
|
||||
* @param percent The percentage (0–100).
|
||||
* @return The pixel value corresponding to the percentage of screen width.
|
||||
*/
|
||||
public static int pctWidth(int percent) {
|
||||
return (SCREEN_WIDTH * percent) / 100;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a percentage of the screen's portrait width (min side) to pixels.
|
||||
*
|
||||
* @param percent The percentage (0–100).
|
||||
* @return The pixel value.
|
||||
*/
|
||||
public static int pctPortraitWidth(int percent) {
|
||||
final int portraitWidth = Math.min(SCREEN_WIDTH, SCREEN_HEIGHT);
|
||||
return (int) (portraitWidth * (percent / 100.0f));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an array of corner radii for a rounded rectangle.
|
||||
* All corners use the same radius.
|
||||
*
|
||||
* @param dp radius in density-independent pixels
|
||||
* @return array of 8 floats: [top-left-x, top-left-y, top-right-x, top-right-y, ...]
|
||||
*/
|
||||
public static float[] roundedCorners(float dp) {
|
||||
final float r = dp(dp);
|
||||
return new float[]{r, r, r, r, r, r, r, r};
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,5 @@
|
||||
package app.revanced.extension.shared.ui;
|
||||
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
|
||||
import android.animation.Animator;
|
||||
import android.animation.AnimatorListenerAdapter;
|
||||
import android.animation.ValueAnimator;
|
||||
@@ -63,9 +61,8 @@ public class SheetBottomDialog {
|
||||
|
||||
// Add top spacer.
|
||||
View spacer = new View(context);
|
||||
final int dip40 = dipToPixels(40);
|
||||
LinearLayout.LayoutParams spacerParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, dip40);
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, Dim.dp40);
|
||||
spacer.setLayoutParams(spacerParams);
|
||||
spacer.setClickable(true);
|
||||
dragContainer.addView(spacer);
|
||||
@@ -105,20 +102,15 @@ public class SheetBottomDialog {
|
||||
* @return A configured {@link DraggableLinearLayout} with a handle bar and styled background.
|
||||
*/
|
||||
public static DraggableLinearLayout createMainLayout(@NonNull Context context, @Nullable Integer backgroundColor) {
|
||||
// Preset size constants.
|
||||
final int dip4 = dipToPixels(4); // Handle bar height.
|
||||
final int dip8 = dipToPixels(8); // Dialog padding.
|
||||
final int dip40 = dipToPixels(40); // Handle bar width.
|
||||
|
||||
DraggableLinearLayout mainLayout = new DraggableLinearLayout(context);
|
||||
mainLayout.setOrientation(LinearLayout.VERTICAL);
|
||||
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
layoutParams.setMargins(dip8, 0, dip8, dip8);
|
||||
layoutParams.setMargins(Dim.dp8, 0, Dim.dp8, Dim.dp8);
|
||||
mainLayout.setLayoutParams(layoutParams);
|
||||
|
||||
ShapeDrawable background = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(12), null, null));
|
||||
Dim.roundedCorners(12), null, null));
|
||||
int color = (backgroundColor != null) ? backgroundColor : Utils.getDialogBackgroundColor();
|
||||
background.getPaint().setColor(color);
|
||||
mainLayout.setBackground(background);
|
||||
@@ -127,14 +119,14 @@ public class SheetBottomDialog {
|
||||
LinearLayout handleContainer = new LinearLayout(context);
|
||||
LinearLayout.LayoutParams containerParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
containerParams.setMargins(0, dip8, 0, 0);
|
||||
containerParams.setMargins(0, Dim.dp8, 0, 0);
|
||||
handleContainer.setLayoutParams(containerParams);
|
||||
handleContainer.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
|
||||
View handleBar = new View(context);
|
||||
ShapeDrawable handleBackground = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(4), null, null));
|
||||
Dim.roundedCorners(4), null, null));
|
||||
handleBackground.getPaint().setColor(Utils.adjustColorBrightness(color, 0.9f, 1.25f));
|
||||
LinearLayout.LayoutParams handleParams = new LinearLayout.LayoutParams(dip40, dip4);
|
||||
LinearLayout.LayoutParams handleParams = new LinearLayout.LayoutParams(Dim.dp40, Dim.dp4);
|
||||
handleBar.setLayoutParams(handleParams);
|
||||
handleBar.setBackground(handleBackground);
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.view.View;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
|
||||
@SuppressWarnings("unused")
|
||||
@@ -31,7 +32,7 @@ public final class WideSearchbarPatch {
|
||||
final int paddingRight = searchBarView.getPaddingRight();
|
||||
final int paddingTop = searchBarView.getPaddingTop();
|
||||
final int paddingBottom = searchBarView.getPaddingBottom();
|
||||
final int paddingStart = Utils.dipToPixels(8);
|
||||
final int paddingStart = Dim.dp8;
|
||||
|
||||
if (Utils.isRightToLeftLocale()) {
|
||||
searchBarView.setPadding(paddingLeft, paddingTop, paddingStart, paddingBottom);
|
||||
|
||||
@@ -2,7 +2,6 @@ package app.revanced.extension.youtube.patches.announcements;
|
||||
|
||||
import static android.text.Html.FROM_HTML_MODE_COMPACT;
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.youtube.patches.announcements.requests.AnnouncementsRoutes.GET_LATEST_ANNOUNCEMENTS;
|
||||
import static app.revanced.extension.youtube.patches.announcements.requests.AnnouncementsRoutes.GET_LATEST_ANNOUNCEMENT_IDS;
|
||||
|
||||
@@ -24,6 +23,7 @@ import java.time.LocalDateTime;
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.requests.Requester;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.youtube.patches.announcements.requests.AnnouncementsRoutes;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
|
||||
@@ -148,7 +148,7 @@ public final class AnnouncementsPatch {
|
||||
if (child instanceof TextView childTextView && finalTitle.equals(childTextView.getText().toString())) {
|
||||
childTextView.setCompoundDrawablesWithIntrinsicBounds(
|
||||
finalLevel.icon, 0, 0, 0);
|
||||
childTextView.setCompoundDrawablePadding(dipToPixels(8));
|
||||
childTextView.setCompoundDrawablePadding(Dim.dp8);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.youtube.patches.playback.speed;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.youtube.videoplayer.PlayerControlButton.fadeInDuration;
|
||||
import static app.revanced.extension.youtube.videoplayer.PlayerControlButton.getDialogBackgroundColor;
|
||||
|
||||
@@ -30,6 +29,7 @@ import java.util.function.Function;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.shared.ui.SheetBottomDialog;
|
||||
import app.revanced.extension.youtube.patches.VideoInformation;
|
||||
import app.revanced.extension.youtube.patches.components.PlaybackSpeedMenuFilter;
|
||||
@@ -264,14 +264,6 @@ public class CustomPlaybackSpeedPatch {
|
||||
SheetBottomDialog.DraggableLinearLayout mainLayout =
|
||||
SheetBottomDialog.createMainLayout(context, getDialogBackgroundColor());
|
||||
|
||||
// Preset size constants.
|
||||
final int dip4 = dipToPixels(4);
|
||||
final int dip8 = dipToPixels(8);
|
||||
final int dip12 = dipToPixels(12);
|
||||
final int dip20 = dipToPixels(20);
|
||||
final int dip32 = dipToPixels(32);
|
||||
final int dip60 = dipToPixels(60);
|
||||
|
||||
// Display current playback speed.
|
||||
TextView currentSpeedText = new TextView(context);
|
||||
float currentSpeed = VideoInformation.getPlaybackSpeed();
|
||||
@@ -283,7 +275,7 @@ public class CustomPlaybackSpeedPatch {
|
||||
currentSpeedText.setGravity(Gravity.CENTER);
|
||||
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
textParams.setMargins(0, dip20, 0, 0);
|
||||
textParams.setMargins(0, Dim.dp20, 0, 0);
|
||||
currentSpeedText.setLayoutParams(textParams);
|
||||
// Add current speed text view to main layout.
|
||||
mainLayout.addView(currentSpeedText);
|
||||
@@ -294,8 +286,8 @@ public class CustomPlaybackSpeedPatch {
|
||||
sliderLayout.setGravity(Gravity.CENTER_VERTICAL);
|
||||
|
||||
// Create +/- buttons.
|
||||
Button minusButton = createStyledButton(context, false, dip8, dip8);
|
||||
Button plusButton = createStyledButton(context, true, dip8, dip8);
|
||||
Button minusButton = createStyledButton(context, false);
|
||||
Button plusButton = createStyledButton(context, true);
|
||||
|
||||
// Create slider for speed adjustment.
|
||||
SeekBar speedSlider = new SeekBar(context);
|
||||
@@ -363,7 +355,7 @@ public class CustomPlaybackSpeedPatch {
|
||||
gridLayout.setRowCount((int) Math.ceil(customPlaybackSpeeds.length / 5.0));
|
||||
LinearLayout.LayoutParams gridParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
gridParams.setMargins(dip4, dip12, dip4, dip12); // Speed buttons container.
|
||||
gridParams.setMargins(Dim.dp4, Dim.dp12, Dim.dp4, Dim.dp12); // Speed buttons container.
|
||||
gridLayout.setLayoutParams(gridParams);
|
||||
|
||||
// For button use 1 digit minimum.
|
||||
@@ -378,8 +370,8 @@ public class CustomPlaybackSpeedPatch {
|
||||
GridLayout.LayoutParams containerParams = new GridLayout.LayoutParams();
|
||||
containerParams.width = 0; // Equal width for columns.
|
||||
containerParams.columnSpec = GridLayout.spec(GridLayout.UNDEFINED, 1, 1f);
|
||||
containerParams.setMargins(dip4, 0, dip4, 0); // Button margins.
|
||||
containerParams.height = dip60; // Fixed height for button and label.
|
||||
containerParams.setMargins(Dim.dp4, 0, Dim.dp4, 0); // Button margins.
|
||||
containerParams.height = Dim.dp(60); // Fixed height for button and label.
|
||||
buttonContainer.setLayoutParams(containerParams);
|
||||
|
||||
// Create speed button.
|
||||
@@ -391,14 +383,14 @@ public class CustomPlaybackSpeedPatch {
|
||||
speedButton.setGravity(Gravity.CENTER);
|
||||
|
||||
ShapeDrawable buttonBackground = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(20), null, null));
|
||||
Dim.roundedCorners(20), null, null));
|
||||
buttonBackground.getPaint().setColor(getAdjustedBackgroundColor(false));
|
||||
speedButton.setBackground(buttonBackground);
|
||||
speedButton.setPadding(dip4, dip4, dip4, dip4);
|
||||
speedButton.setPadding(Dim.dp4, Dim.dp4, Dim.dp4, Dim.dp4);
|
||||
|
||||
// Center button vertically and stretch horizontally in container.
|
||||
FrameLayout.LayoutParams buttonParams = new FrameLayout.LayoutParams(
|
||||
FrameLayout.LayoutParams.MATCH_PARENT, dip32, Gravity.CENTER);
|
||||
FrameLayout.LayoutParams.MATCH_PARENT, Dim.dp32, Gravity.CENTER);
|
||||
speedButton.setLayoutParams(buttonParams);
|
||||
|
||||
// Add speed buttons view to buttons container layout.
|
||||
@@ -475,21 +467,18 @@ public class CustomPlaybackSpeedPatch {
|
||||
*
|
||||
* @param context The Android context used to create the button.
|
||||
* @param isPlus True to display a plus symbol, false to display a minus symbol.
|
||||
* @param marginStart The start margin in pixels (left for LTR, right for RTL).
|
||||
* @param marginEnd The end margin in pixels (right for LTR, left for RTL).
|
||||
* @return A configured {@link Button} with the specified styling and layout parameters.
|
||||
*/
|
||||
private static Button createStyledButton(Context context, boolean isPlus, int marginStart, int marginEnd) {
|
||||
private static Button createStyledButton(Context context, boolean isPlus) {
|
||||
Button button = new Button(context, null, 0); // Disable default theme style.
|
||||
button.setText(""); // No text on button.
|
||||
ShapeDrawable background = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(20), null, null));
|
||||
Dim.roundedCorners(20), null, null));
|
||||
background.getPaint().setColor(getAdjustedBackgroundColor(false));
|
||||
button.setBackground(background);
|
||||
button.setForeground(new OutlineSymbolDrawable(isPlus)); // Plus or minus symbol.
|
||||
final int dip36 = dipToPixels(36);
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(dip36, dip36);
|
||||
params.setMargins(marginStart, 0, marginEnd, 0); // Set margins.
|
||||
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(Dim.dp36, Dim.dp36);
|
||||
params.setMargins(Dim.dp8, 0, Dim.dp8, 0); // Set margins.
|
||||
button.setLayoutParams(params);
|
||||
return button;
|
||||
}
|
||||
@@ -554,7 +543,7 @@ class OutlineSymbolDrawable extends Drawable {
|
||||
paint = new Paint(Paint.ANTI_ALIAS_FLAG); // Enable anti-aliasing for smooth rendering.
|
||||
paint.setColor(Utils.getAppForegroundColor());
|
||||
paint.setStyle(Paint.Style.STROKE); // Use stroke style for outline.
|
||||
paint.setStrokeWidth(dipToPixels(1)); // 1dp stroke width.
|
||||
paint.setStrokeWidth(Dim.dp1); // 1dp stroke width.
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,6 +40,7 @@ import java.util.concurrent.TimeoutException;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.youtube.returnyoutubedislike.requests.RYDVoteData;
|
||||
import app.revanced.extension.youtube.returnyoutubedislike.requests.ReturnYouTubeDislikeApi;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
@@ -124,12 +125,12 @@ public class ReturnYouTubeDislike {
|
||||
|
||||
static {
|
||||
leftSeparatorBounds = new Rect(0, 0,
|
||||
Utils.dipToPixels(1.2f),
|
||||
Utils.dipToPixels(14f));
|
||||
final int middleSeparatorSize = Utils.dipToPixels(3.7f);
|
||||
Dim.dp(1.2f),
|
||||
Dim.dp(14f));
|
||||
final int middleSeparatorSize = Dim.dp(3.7f);
|
||||
middleSeparatorBounds = new Rect(0, 0, middleSeparatorSize, middleSeparatorSize);
|
||||
|
||||
leftSeparatorShapePaddingPixels = Utils.dipToPixels(8.4f);
|
||||
leftSeparatorShapePaddingPixels = Dim.dp(8.4f);
|
||||
|
||||
leftSeparatorShape = new ShapeDrawable(new RectShape());
|
||||
leftSeparatorShape.setBounds(leftSeparatorBounds);
|
||||
|
||||
@@ -2,7 +2,6 @@ package app.revanced.extension.youtube.settings.preference;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.sf;
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
@@ -15,13 +14,9 @@ import android.os.Bundle;
|
||||
import android.text.Editable;
|
||||
import android.text.TextWatcher;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Pair;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.ListAdapter;
|
||||
import android.widget.ListView;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
@@ -37,6 +32,7 @@ import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.settings.preference.CustomDialogListPreference;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
|
||||
/**
|
||||
@@ -264,42 +260,12 @@ public class ExternalDownloaderPreference extends CustomDialogListPreference {
|
||||
|
||||
// Add ListView to content layout with initial height.
|
||||
LinearLayout.LayoutParams listViewParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT,
|
||||
0 // Initial height, will be updated.
|
||||
);
|
||||
listViewParams.bottomMargin = dipToPixels(16);
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, 0, 1.0f);
|
||||
listViewParams.bottomMargin = Dim.dp16;
|
||||
contentLayout.addView(listView, listViewParams);
|
||||
|
||||
// Add EditText for custom package name.
|
||||
editText = new EditText(context);
|
||||
editText.setText(packageName);
|
||||
editText.setSelection(packageName.length());
|
||||
editText.setHint(str("revanced_external_downloader_other_item_hint"));
|
||||
editText.setSingleLine(true); // Restrict EditText to a single line.
|
||||
editText.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
|
||||
// Set initial EditText state based on selected downloader.
|
||||
editText.setEnabled(usingCustomDownloader);
|
||||
editText.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable edit) {
|
||||
String updatedPackageName = edit.toString().trim();
|
||||
updateListViewSelection.apply(updatedPackageName);
|
||||
}
|
||||
});
|
||||
|
||||
ShapeDrawable editTextBackground = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(10), null, null));
|
||||
editTextBackground.getPaint().setColor(Utils.getEditTextBackground());
|
||||
final int dip8 = dipToPixels(8);
|
||||
editText.setPadding(dip8, dip8, dip8, dip8);
|
||||
editText.setBackground(editTextBackground);
|
||||
editText.setClipToOutline(true);
|
||||
editText = createEditText(context, packageName, usingCustomDownloader, updateListViewSelection);
|
||||
contentLayout.addView(editText);
|
||||
|
||||
// Create the custom dialog.
|
||||
@@ -350,50 +316,59 @@ public class ExternalDownloaderPreference extends CustomDialogListPreference {
|
||||
);
|
||||
|
||||
// Add the content layout directly to the dialog's main layout.
|
||||
LinearLayout dialogMainLayout = dialogPair.second;
|
||||
dialogMainLayout.addView(contentLayout, dialogMainLayout.getChildCount() - 1);
|
||||
LinearLayout mainLayout = dialogPair.second;
|
||||
LinearLayout.LayoutParams contentParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.MATCH_PARENT, 0, 1.0f);
|
||||
|
||||
// Update ListView height dynamically based on orientation.
|
||||
//noinspection ExtractMethodRecommender
|
||||
Runnable updateListViewHeight = () -> {
|
||||
int totalHeight = 0;
|
||||
ListAdapter listAdapter = listView.getAdapter();
|
||||
if (listAdapter != null) {
|
||||
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
|
||||
final int listAdapterCount = listAdapter.getCount();
|
||||
for (int i = 0; i < listAdapterCount; i++) {
|
||||
View item = listAdapter.getView(i, null, listView);
|
||||
item.measure(
|
||||
View.MeasureSpec.makeMeasureSpec(metrics.widthPixels, View.MeasureSpec.AT_MOST),
|
||||
View.MeasureSpec.UNSPECIFIED
|
||||
);
|
||||
totalHeight += item.getMeasuredHeight();
|
||||
}
|
||||
totalHeight += listView.getDividerHeight() * (listAdapterCount - 1);
|
||||
// Insert content before the dialog button row.
|
||||
mainLayout.addView(contentLayout, mainLayout.getChildCount() - 1, contentParams);
|
||||
|
||||
Dialog dialog = dialogPair.first;
|
||||
dialog.show();
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates and configures the EditText for the custom package name.
|
||||
*
|
||||
* @param context Context for creating views.
|
||||
* @param initialPackageName The package name to pre-fill.
|
||||
* @param isCustom Whether the "Other" option is selected.
|
||||
* @param textChangeCallback Callback to run when text changes.
|
||||
* @return A configured EditText.
|
||||
*/
|
||||
private EditText createEditText(Context context,
|
||||
String initialPackageName, boolean isCustom,
|
||||
Function<String, Void> textChangeCallback) {
|
||||
EditText editText = new EditText(context);
|
||||
editText.setText(initialPackageName);
|
||||
editText.setSelection(initialPackageName.length());
|
||||
editText.setHint(str("revanced_external_downloader_other_item_hint"));
|
||||
editText.setSingleLine(true);
|
||||
editText.setTextSize(16);
|
||||
editText.setEnabled(isCustom);
|
||||
|
||||
editText.addTextChangedListener(new TextWatcher() {
|
||||
@Override
|
||||
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
|
||||
|
||||
@Override
|
||||
public void onTextChanged(CharSequence s, int start, int before, int count) {}
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable edit) {
|
||||
String updatedPackageName = edit.toString().trim();
|
||||
textChangeCallback.apply(updatedPackageName);
|
||||
}
|
||||
});
|
||||
|
||||
final int orientation = context.getResources().getConfiguration().orientation;
|
||||
if (orientation == android.content.res.Configuration.ORIENTATION_PORTRAIT) {
|
||||
// In portrait orientation, use WRAP_CONTENT for ListView height.
|
||||
listViewParams.height = LinearLayout.LayoutParams.WRAP_CONTENT;
|
||||
} else {
|
||||
// In landscape orientation, limit ListView height to 30% of screen height.
|
||||
final int maxHeight = Utils.percentageHeightToPixels(30);
|
||||
listViewParams.height = Math.min(totalHeight, maxHeight);
|
||||
}
|
||||
listView.setLayoutParams(listViewParams);
|
||||
};
|
||||
ShapeDrawable editTextBackground = new ShapeDrawable(new RoundRectShape(
|
||||
Dim.roundedCorners(10), null, null));
|
||||
editTextBackground.getPaint().setColor(Utils.getEditTextBackground());
|
||||
editText.setPadding(Dim.dp8, Dim.dp8, Dim.dp8, Dim.dp8);
|
||||
editText.setBackground(editTextBackground);
|
||||
editText.setClipToOutline(true);
|
||||
|
||||
// Initial height calculation.
|
||||
updateListViewHeight.run();
|
||||
|
||||
// Listen for configuration changes (e.g., orientation).
|
||||
View dialogView = dialogPair.second;
|
||||
// Recalculate height when layout changes (e.g., orientation change).
|
||||
dialogView.getViewTreeObserver().addOnGlobalLayoutListener(updateListViewHeight::run);
|
||||
|
||||
// Show the dialog.
|
||||
dialogPair.first.show();
|
||||
return editText;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.youtube.sponsorblock;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.youtube.sponsorblock.objects.CategoryBehaviour.SKIP_AUTOMATICALLY;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
@@ -34,6 +33,7 @@ import java.util.Objects;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.youtube.patches.VideoInformation;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
import app.revanced.extension.youtube.shared.PlayerType;
|
||||
@@ -82,7 +82,7 @@ public class SegmentPlaybackController {
|
||||
* Highlight segments have zero length as they are a point in time.
|
||||
* Draw them on screen using a fixed width bar.
|
||||
*/
|
||||
private static final int HIGHLIGHT_SEGMENT_DRAW_BAR_WIDTH = dipToPixels(7);
|
||||
private static final int HIGHLIGHT_SEGMENT_DRAW_BAR_WIDTH = Dim.dp7;
|
||||
|
||||
@Nullable
|
||||
private static String currentVideoId;
|
||||
@@ -808,14 +808,12 @@ public class SegmentPlaybackController {
|
||||
|
||||
LinearLayout mainLayout = new LinearLayout(currentContext);
|
||||
mainLayout.setOrientation(LinearLayout.VERTICAL);
|
||||
final int dip8 = dipToPixels(8);
|
||||
final int dip16 = dipToPixels(16);
|
||||
mainLayout.setPadding(dip16, dip8, dip16, dip8);
|
||||
mainLayout.setPadding(Dim.dp16, Dim.dp8, Dim.dp16, Dim.dp8);
|
||||
mainLayout.setGravity(Gravity.CENTER);
|
||||
mainLayout.setMinimumHeight(dipToPixels(48));
|
||||
mainLayout.setMinimumHeight(Dim.dp48);
|
||||
|
||||
ShapeDrawable background = new ShapeDrawable(new RoundRectShape(
|
||||
Utils.createCornerRadii(20), null, null));
|
||||
Dim.roundedCorners(20), null, null));
|
||||
background.getPaint().setColor(Utils.getDialogBackgroundColor());
|
||||
mainLayout.setBackground(background);
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.youtube.sponsorblock.objects;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings.migrateOldColorString;
|
||||
|
||||
import android.content.Context;
|
||||
@@ -17,6 +16,7 @@ import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.settings.preference.ColorPickerPreference;
|
||||
import app.revanced.extension.shared.ui.ColorDot;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class SegmentCategoryPreference extends ColorPickerPreference {
|
||||
@@ -110,7 +110,7 @@ public class SegmentCategoryPreference extends ColorPickerPreference {
|
||||
}
|
||||
|
||||
radioGroup.setOnCheckedChangeListener((group, checkedId) -> selectedDialogEntryIndex = checkedId);
|
||||
radioGroup.setPadding(dipToPixels(10), 0, dipToPixels(10), dipToPixels(10));
|
||||
radioGroup.setPadding(Dim.dp10, 0, Dim.dp10, Dim.dp10);
|
||||
return radioGroup;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.youtube.patches.VideoInformation;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
import app.revanced.extension.youtube.sponsorblock.SponsorBlockUtils;
|
||||
@@ -132,9 +133,7 @@ public final class NewSegmentLayout extends FrameLayout {
|
||||
|
||||
GradientDrawable backgroundDrawable = new GradientDrawable();
|
||||
backgroundDrawable.setColor(getResourceColor("skip_ad_button_background_color"));
|
||||
final float cornerRadius = squareLayout
|
||||
? 0
|
||||
: 16 * getResources().getDisplayMetrics().density;
|
||||
final float cornerRadius = squareLayout ? 0f : Dim.dp16;
|
||||
backgroundDrawable.setCornerRadius(cornerRadius);
|
||||
setBackground(backgroundDrawable);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,6 @@ import android.preference.SwitchPreference;
|
||||
import android.text.InputType;
|
||||
import android.util.AttributeSet;
|
||||
import android.util.Pair;
|
||||
import android.util.TypedValue;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.EditText;
|
||||
@@ -34,6 +33,7 @@ import app.revanced.extension.shared.settings.Setting;
|
||||
import app.revanced.extension.shared.settings.preference.CustomDialogListPreference;
|
||||
import app.revanced.extension.shared.settings.preference.ResettableEditTextPreference;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.youtube.settings.Settings;
|
||||
import app.revanced.extension.youtube.sponsorblock.SegmentPlaybackController;
|
||||
import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings;
|
||||
@@ -507,7 +507,7 @@ public class SponsorBlockPreferenceGroup extends PreferenceGroup {
|
||||
EditText editText = getEditText();
|
||||
|
||||
editText.setInputType(editText.getInputType() | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
||||
editText.setTextSize(TypedValue.COMPLEX_UNIT_PT, 7); // Use a smaller font to reduce text wrap.
|
||||
editText.setTextSize(14);
|
||||
|
||||
// Create a custom dialog.
|
||||
Pair<Dialog, LinearLayout> dialogPair = CustomDialog.create(
|
||||
@@ -550,7 +550,7 @@ public class SponsorBlockPreferenceGroup extends PreferenceGroup {
|
||||
| InputType.TYPE_TEXT_FLAG_MULTI_LINE
|
||||
| InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
|
||||
editText.setAutofillHints((String) null);
|
||||
editText.setTextSize(TypedValue.COMPLEX_UNIT_PT, 8);
|
||||
editText.setTextSize(14);
|
||||
|
||||
// Set preference listeners.
|
||||
importExport.setOnPreferenceClickListener(preference1 -> {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.youtube.videoplayer;
|
||||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
import static app.revanced.extension.shared.Utils.dipToPixels;
|
||||
import static app.revanced.extension.shared.settings.preference.CustomDialogListPreference.*;
|
||||
import static app.revanced.extension.youtube.patches.VideoInformation.AUTOMATIC_VIDEO_QUALITY_VALUE;
|
||||
import static app.revanced.extension.youtube.patches.VideoInformation.VIDEO_QUALITY_PREMIUM_NAME;
|
||||
@@ -21,6 +20,7 @@ import android.widget.*;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import app.revanced.extension.shared.ui.Dim;
|
||||
import app.revanced.extension.shared.ui.SheetBottomDialog;
|
||||
import app.revanced.extension.youtube.shared.PlayerType;
|
||||
import com.google.android.libraries.youtube.innertube.model.media.VideoQuality;
|
||||
@@ -214,11 +214,6 @@ public class VideoQualityDialogButton {
|
||||
}
|
||||
}
|
||||
|
||||
// Preset size constants.
|
||||
final int dip8 = dipToPixels(8);
|
||||
final int dip12 = dipToPixels(12);
|
||||
final int dip16 = dipToPixels(16);
|
||||
|
||||
// Create main layout.
|
||||
SheetBottomDialog.DraggableLinearLayout mainLayout =
|
||||
SheetBottomDialog.createMainLayout(context, getDialogBackgroundColor());
|
||||
@@ -269,7 +264,7 @@ public class VideoQualityDialogButton {
|
||||
LinearLayout.LayoutParams titleParams = new LinearLayout.LayoutParams(
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT,
|
||||
LinearLayout.LayoutParams.WRAP_CONTENT);
|
||||
titleParams.setMargins(dip12, dip16, 0, dip16);
|
||||
titleParams.setMargins(Dim.dp12, Dim.dp16, 0, Dim.dp16);
|
||||
titleView.setLayoutParams(titleParams);
|
||||
mainLayout.addView(titleView);
|
||||
|
||||
|
||||
@@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M
|
||||
org.gradle.parallel = true
|
||||
android.useAndroidX = true
|
||||
kotlin.code.style = official
|
||||
version = 5.46.0-dev.5
|
||||
version = 5.46.0-dev.7
|
||||
|
||||
@@ -5,6 +5,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
|
||||
import app.revanced.patcher.patch.BytecodePatchBuilder
|
||||
import app.revanced.patcher.patch.BytecodePatchContext
|
||||
import app.revanced.patcher.patch.bytecodePatch
|
||||
import app.revanced.patcher.patch.resourcePatch
|
||||
import app.revanced.patches.all.misc.resources.addResources
|
||||
import app.revanced.patches.all.misc.resources.addResourcesPatch
|
||||
import app.revanced.patches.shared.misc.settings.preference.BasePreference
|
||||
@@ -13,6 +14,8 @@ import app.revanced.patches.shared.misc.settings.preference.NonInteractivePrefer
|
||||
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference
|
||||
import app.revanced.patches.shared.misc.settings.preference.PreferenceScreenPreference.Sorting
|
||||
import app.revanced.patches.shared.misc.settings.preference.SwitchPreference
|
||||
import app.revanced.util.ResourceGroup
|
||||
import app.revanced.util.copyResources
|
||||
import app.revanced.util.findInstructionIndicesReversedOrThrow
|
||||
import app.revanced.util.indexOfFirstInstructionOrThrow
|
||||
import app.revanced.util.indexOfFirstInstructionReversedOrThrow
|
||||
@@ -36,7 +39,27 @@ internal fun enableDebuggingPatch(
|
||||
description = "Adds options for debugging and exporting ReVanced logs to the clipboard.",
|
||||
) {
|
||||
|
||||
dependsOn(addResourcesPatch)
|
||||
dependsOn(
|
||||
addResourcesPatch,
|
||||
resourcePatch {
|
||||
execute {
|
||||
copyResources(
|
||||
"settings",
|
||||
ResourceGroup("drawable",
|
||||
// Action buttons.
|
||||
"revanced_settings_copy_all.xml",
|
||||
"revanced_settings_deselect_all.xml",
|
||||
"revanced_settings_select_all.xml",
|
||||
// Move buttons.
|
||||
"revanced_settings_arrow_left_double.xml",
|
||||
"revanced_settings_arrow_left_one.xml",
|
||||
"revanced_settings_arrow_right_double.xml",
|
||||
"revanced_settings_arrow_right_one.xml"
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
block()
|
||||
|
||||
@@ -64,6 +87,11 @@ internal fun enableDebuggingPatch(
|
||||
"revanced_debug_logs_clear_buffer",
|
||||
tag = "app.revanced.extension.shared.settings.preference.ClearLogBufferPreference",
|
||||
selectable = true
|
||||
),
|
||||
NonInteractivePreference(
|
||||
"revanced_debug_feature_flags_manager",
|
||||
tag = "app.revanced.extension.shared.settings.preference.FeatureFlagsManagerPreference",
|
||||
selectable = true
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">تاريخ بناء APK تالف</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">تحذير</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">إشعار ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">لم يتم حفظ سجل المشاهدة الخاص بك.<br><br>من المرجح أن يكون السبب في ذلك هو مانع إعلانات DNS أو وكيل الشبكة.<br><br>لإصلاح هذه المشكلة، قم بإضافة <b>s.youtube.com</b> إلى القائمة البيضاء أو قم بإيقاف تشغيل جميع أدوات حظر DNS ووكلاء البروكسي.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">لا تعرض مرة أخرى</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">الإعدادات</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">هل أنت متأكد أنك تريد المتابعة؟</string>
|
||||
<string name="revanced_settings_save">حفظ</string>
|
||||
<string name="revanced_settings_reset">إعادة التعيين</string>
|
||||
<string name="revanced_settings_reset_color">إعادة تعيين اللون</string>
|
||||
<string name="revanced_settings_color_invalid">لون غير صالح</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">مسح سجلات تصحيح الأخطاء</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">يمسح جميع سجلات تصحيح أخطاء ReVanced المخزنة</string>
|
||||
<string name="revanced_debug_logs_clear_toast">تم مسح السجلات</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">مدير علامات الميزات</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">إدارة علامات الميزات المنطقية</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">علامات نشطة (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">علامات محظورة (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">البحث عن علامات...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">تم حفظ العلامات</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">تم إعادة تعيين العلامات</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">تم نسخ العلامات إلى الحافظة</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">تطهير روابط المشاركة</string>
|
||||
|
||||
@@ -29,7 +29,6 @@ Second \"item\" text"</string>
|
||||
<patch id="misc.checks.checkEnvironmentPatch">
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">সকীয়নি</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<!-- Settings about dialog. -->
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK qurulma vaxtı pozulub</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Xәbәrdarlıq</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Bildiriş</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Baxış tarixçəniz saxlanmır.<br><br>Bu çox güman ki, DNS reklam bloklayıcı və ya şəbəkə proksisinə görədir.<br><br>.Bunu düzəltmək üçün s.youtube.com-u</b> <b>ağ siyahıya salın və ya bütün DNS bloklayıcıları və proksiləri bağlayın.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Təkrar göstərmə</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Tənzimləmələr</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Davam etmək istədiyinizə əminsiniz?</string>
|
||||
<string name="revanced_settings_save">Yadda saxla</string>
|
||||
<string name="revanced_settings_reset">Sıfırla</string>
|
||||
<string name="revanced_settings_reset_color">Rəngi sıfırla</string>
|
||||
<string name="revanced_settings_color_invalid">Yanlış rəng</string>
|
||||
@@ -164,6 +165,14 @@ Gözlənilməz hallardan xəbərdar olmayacaqsınız."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Sazlama qeydlərini təmizlə</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Saxlanılan bütün ReVanced sazlama qeydlərini təmizləyir</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Qeydlər silindi</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Xüsusiyyət bayraqları Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Bulun xüsusiyyət bayraqlarını idarə edin</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktiv bayraqlar (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Bloklanmış bayraqlar (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Bayraqları axtarın...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Bayraqlar yadda saxlandı</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Bayraqlar sıfırlandı</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Bayraqlar panoya kopyalandı</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Paylaşım linklərin təmizlə</string>
|
||||
@@ -328,9 +337,9 @@ Hər halda, bunu aktivləşdirmə IP ünvanınız kimi bəzi istifadəçi məlum
|
||||
<string name="revanced_hide_how_this_was_made_section_title">\'Bu kontent necə hazırlanıb\'ı Gizlət</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_on">Bu məzmunun necə hazırlandığı bölməsi gizlidir</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_off">Bu məzmunun necə hazırlandığı bölməsi görünür</string>
|
||||
<string name="revanced_hide_hype_points_title">Hype nöqtələrini gizlət</string>
|
||||
<string name="revanced_hide_hype_points_summary_on">Hype nöqtələri gizlədilib</string>
|
||||
<string name="revanced_hide_hype_points_summary_off">Hype nöqtələri göstərilir</string>
|
||||
<string name="revanced_hide_hype_points_title">Coşqu xalların gizlət</string>
|
||||
<string name="revanced_hide_hype_points_summary_on">Coşqu xalları gizlədilib</string>
|
||||
<string name="revanced_hide_hype_points_summary_off">Coşqu xalları göstərilir</string>
|
||||
<string name="revanced_hide_podcast_section_title">\'Podkastı araşdırın\"-ı Gizlət</string>
|
||||
<string name="revanced_hide_podcast_section_summary_on">Podkast bölməsin araşdırın gizlidir</string>
|
||||
<string name="revanced_hide_podcast_section_summary_off">Podkast bölməsin araşdırın görünür</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Дата стварэння APK пашкоджана</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Увага</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Заўвага ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Ваша гісторыя прагляду не захоўваецца.<br><br>Гэта, хутчэй за ўсё, выклікана DNS-блакіроўшчыкам рэкламы або сеткавым праксі.<br><br>Каб выправіць гэта, дадайце <b>s.youtube.com</b> у белы спіс або адключыце ўсе DNS-блакіроўшчыкі і праксі.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Больш не паказваць</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Налады</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Вы ўпэўнены, што хочаце працягнуць?</string>
|
||||
<string name="revanced_settings_save">Захаваць</string>
|
||||
<string name="revanced_settings_reset">Скінуць</string>
|
||||
<string name="revanced_settings_reset_color">Скінуць колер</string>
|
||||
<string name="revanced_settings_color_invalid">Несапраўдны колер</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Ачысціць адладачныя лагі</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Ачышчае ўсе захаваныя адладачныя лагі ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Лагі ачышчаны</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Менеджэр функцыйных сцягоў</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Кіраванне лагічнымі функцыйнымі сцягамі</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Актыўныя сцягі (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Заблакаваныя сцягі (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Пошук сцягоў...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Сцягі захаваны</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Сцягі скінуты</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Сцягі скапіяваны ў буфер абмену</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Ачысціць спасылкі для абагульвання</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Датата на компилация на APK е повредена</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Предупреждение</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Известие от ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Историята ви на гледане не се запазва.<br><br>Това най-вероятно е причинено от DNS блокиращ реклами или мрежов прокси.<br><br>За да коригирате това, поставете <b>s.youtube в белия списък.com</b> или изключете всички DNS блокери и проксита.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Не показвай отново</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Настройки</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Сигурни ли сте, че искате да продължите?</string>
|
||||
<string name="revanced_settings_save">Запазване</string>
|
||||
<string name="revanced_settings_reset">Възстанови</string>
|
||||
<string name="revanced_settings_reset_color">Нулиране на цвета</string>
|
||||
<string name="revanced_settings_color_invalid">Невалиден цвят</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Изчистване на логовете за отстраняване на грешки</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Изчиства всички съхранени логове за отстраняване на грешки на ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Логовете са изчистени</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Мениджър на флагове за функции</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Управление на булеви флагове за функции</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Активни флагове (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Блокирани флагове (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Търсене на флагове...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Флаговете са запазени</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Флаговете са нулирани</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Флаговете са копирани в клипборда</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Почистване на връзки за споделяне</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK তৈরির তারিখ ত্রুটিপূর্ণ</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">সতর্কীকরণ</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced নোটিশ</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">আপনার দেখার ইতিহাস সংরক্ষিত হচ্ছে না।<br><br>এটি সম্ভবত DNS অ্যাড ব্লকার অথবা নেটওয়ার্ক প্রক্সির কারণে।<br><br>এটি ঠিক করার জন্য, <b>s.youtube.com</b> সাদা তালিকাভুক্ত করুন অথবা সকল DNS ব্লকার এবং প্রক্সি বন্ধ করুন।</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">আবার দেখাবেন না</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">সেটিংস</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">আপনি কি এগিয়ে যেতে চান?</string>
|
||||
<string name="revanced_settings_save">সংরক্ষণ করুন</string>
|
||||
<string name="revanced_settings_reset">আবার সেট করুন</string>
|
||||
<string name="revanced_settings_reset_color">রঙ রিসেট করুন</string>
|
||||
<string name="revanced_settings_color_invalid">অবৈধ রঙ</string>
|
||||
@@ -164,6 +165,14 @@ MicroG-এর জন্য ব্যাটারি অপ্টিমাইজ
|
||||
<string name="revanced_debug_logs_clear_buffer_title">ডিবাগ লগগুলি সাফ করুন</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">সমস্ত সঞ্চিত ReVanced ডিবাগ লগ সাফ করে</string>
|
||||
<string name="revanced_debug_logs_clear_toast">লগ সাফ করা হয়েছে</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">ফিচার ফ্ল্যাগ Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">বুলিয়ান ফিচার ফ্ল্যাগ পরিচালনা করুন</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">সক্রিয় ফ্ল্যাগ (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">ব্লক করা ফ্ল্যাগ (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">ফ্ল্যাগ খুঁজুন...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">ফ্ল্যাগ সংরক্ষণ করা হয়েছে</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">ফ্ল্যাগ রিসেট করা হয়েছে</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">ফ্ল্যাগ ক্লিপবোর্ডে কপি করা হয়েছে</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">শেয়ারিং লিঙ্ক স্যানিটাইজ করুন</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Datum sestavení souboru APK je poškozeno</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Varování</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Upozornění ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Vaše historie sledování není ukládána.<br><br>Příčinou je s největší pravděpodobností DNS blokátor reklam nebo síťový proxy server.<br><br>Chcete-li to opravit, přidejte<b>s.youtube.com</b> na whitelist nebo vypněte všechny DNS blokátory a proxy servery.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Už nezobrazovat</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Nastavení</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Opravdu chcete pokračovat?</string>
|
||||
<string name="revanced_settings_save">Uložit</string>
|
||||
<string name="revanced_settings_reset">Výchozí</string>
|
||||
<string name="revanced_settings_reset_color">Obnovit barvu</string>
|
||||
<string name="revanced_settings_color_invalid">Neplatná barva</string>
|
||||
@@ -164,6 +165,14 @@ Nebudete informováni o žádné neočekávané události."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Vymazat ladicí protokoly</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Vymaže všechny uložené ladicí protokoly ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Protokoly vymazány</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Příznaky funkcí Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Spravovat boolean příznaky funkcí</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktivní přepínače (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Zablokované přepínače (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Hledat přepínače...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Přepínače uloženy</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Přepínače resetovány</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Přepínače zkopírovány do schránky</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Vyčistit sdílené odkazy</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK byggedato er ødelagt</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Advarsel</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Meddelelse</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Din urhistorik gemmes ikke.<br><br>Dette skyldes sandsynligvis en DNS-annonceblokker eller netværksproxy.<br><br>For at løse dette, whitelist <b>s.youtube.com</b> eller slå alle DNS-blokkere og fuldmagter fra.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Vis ikke igen</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Indstillinger</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Er du sikker på, at du vil fortsætte?</string>
|
||||
<string name="revanced_settings_save">Gem</string>
|
||||
<string name="revanced_settings_reset">Nulstil</string>
|
||||
<string name="revanced_settings_reset_color">Nulstil farve</string>
|
||||
<string name="revanced_settings_color_invalid">Ugyldig farve</string>
|
||||
@@ -164,6 +165,14 @@ Du modtager ikke notifikationer om uventede hændelser."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Ryd fejlsøgningslogfiler</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Rydder alle gemte ReVanced-fejlsøgningslogfiler</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Logfiler ryddet</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Funktionsflag Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Administrer booleske funktionsflag</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktive flag (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blokerede flag (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Søg flag...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flag gemt</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flag nulstillet</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flag kopieret til udklipsholder</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Rens delingslinks</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK Erstellungsdatum ist beschädigt</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Warnung</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Hinweis</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Ihr Verlauf wird nicht gespeichert.<br><br>Dies wird höchstwahrscheinlich durch einen DNS-Werbeblocker oder einen Netzwerkproxy verursacht.<br><br>Um dies zu beheben, setze <b>s.youtube.com</b> auf die Whitelist oder schalten Sie alle DNS-Blocker und Proxies aus.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Nicht wieder anzeigen</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Einstellungen</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Bist du sicher, dass du fortfahren möchtest?</string>
|
||||
<string name="revanced_settings_save">Speichern</string>
|
||||
<string name="revanced_settings_reset">Zurücksetzen</string>
|
||||
<string name="revanced_settings_reset_color">Farbe zurücksetzen</string>
|
||||
<string name="revanced_settings_color_invalid">Ungültige Farbe</string>
|
||||
@@ -164,6 +165,14 @@ Sie werden nicht über unerwartete Ereignisse informiert."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Debug-Protokolle löschen</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Löscht alle gespeicherten ReVanced-Debug-Protokolle</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Protokolle gelöscht</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Feature-Flags Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Boolesche Feature-Flags verwalten</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktive Flags (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blockierte Flags (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Flags suchen...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flags gespeichert</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flags zurückgesetzt</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flags in die Zwischenablage kopiert</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Freigabelinks säubern</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Η ημερομηνία κατασκευής του APK είναι κατεστραμμένη</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Προειδοποίηση</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Ειδοποίηση ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Το ιστορικό παρακολούθησης δεν αποθηκεύεται.<br><br>Πιθανό να συμβαίνει λόγω αποκλεισμού διαφημίσεων μέσω DNS ή μέσω διακομιστή μεσολάβησης δικτύου.<br><br>Μια λύση γι\'αυτό θα ήταν να προσθέσετε σε whitelist το <b>s.youtube.com</b> ή να απενεργοποιήστε τους DNS/proxy blockers.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Να μην εμφανιστεί ξανά</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Ρυθμίσεις</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Είστε βέβαιοι ότι θέλετε να συνεχίσετε;</string>
|
||||
<string name="revanced_settings_save">Αποθήκευση</string>
|
||||
<string name="revanced_settings_reset">Επαναφορά</string>
|
||||
<string name="revanced_settings_reset_color">Επαναφορά χρώματος</string>
|
||||
<string name="revanced_settings_color_invalid">Μη έγκυρο χρώμα</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Εκκαθάριση αρχείων καταγραφής εντοπισμού σφαλμάτων</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Εκκαθάριση όλων των αποθηκευμένων αρχειών καταγραφής εντοπισμού σφαλμάτων ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Τα αρχεία καταγραφής εκκαθαρίστηκαν</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Διαχειριστής σημαιών λειτουργιών</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Διαχείριση των boolean σημαιών λειτουργιών</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Ενεργές σημαίες (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Αποκλεισμένες σημαίες (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Αναζήτηση σημαιών...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Οι σημαίες αποθηκεύτηκαν</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Οι σημαίες επαναφέρθηκαν</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Οι σημαίες αντιγράφηκαν στο πρόχειρο</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Καθαρισμός συνδέσμων κοινοποίησης</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">La fecha de compilación del APK está corrupta</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Advertencia</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Aviso de ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Tu historial no está siendo guardado.<br><br>Esto puede ser por un bloqueador de anuncios DNS o Proxy.<br><br>Para arreglarlo, permita el dominio <b>s.youtube.com</b> o desactive el bloqueador DNS o Proxy.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">No mostrar de nuevo</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Ajustes</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">¿Estás seguro de que quieres continuar?</string>
|
||||
<string name="revanced_settings_save">Guardar</string>
|
||||
<string name="revanced_settings_reset">Restablecer</string>
|
||||
<string name="revanced_settings_reset_color">Restablecer color</string>
|
||||
<string name="revanced_settings_color_invalid">Color no válido</string>
|
||||
@@ -164,6 +165,14 @@ No se le notificará de ningún evento inesperado."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Borrar registros de depuración</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Borra todos los registros de depuración de ReVanced almacenados</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Registros borrados</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager de indicadores de funciones</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Gestionar indicadores de funciones booleanos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Banderas activas (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Banderas bloqueadas (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Buscar banderas...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Banderas guardadas</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Banderas restablecidas</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Banderas copiadas al portapapeles</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Sanear enlaces compartidos</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK ehituskuupäev on rikutud</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Hoiatus</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVancedi Teade</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Teie vaatamise ajalugu ei salvestata.<br><br>See on tõenäoliselt tingitud DNS-i reklaamiblokeerijast või võrguproksilt.<br><br>Selle parandamiseks lisage valgesse nimekirja <b>s.youtube.com</b> või lülitage kõik DNS-i reklaamiblokeerijad ja proksid välja.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Ära kuva uuesti</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Seaded</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Kas sa oled kindel, et soovid jätkata?</string>
|
||||
<string name="revanced_settings_save">Salvesta</string>
|
||||
<string name="revanced_settings_reset">Lähtesta</string>
|
||||
<string name="revanced_settings_reset_color">Lähtesta värv</string>
|
||||
<string name="revanced_settings_color_invalid">Vigane värv</string>
|
||||
@@ -164,6 +165,14 @@ Teid ei teavitata ühestki ootamatust sündmusest."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Puhasta silumislogid</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Puhastab kõik salvestatud ReVanced silumislogid</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Logid puhastatud</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Funktsioonilipikute Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Halda booleani funktsioonilipikuid</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktiivsed lipud (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blokeeritud lipud (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Otsi lippe...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Lipud salvestatud</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Lipud lähtestatud</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Lipud kopeeritud lõikelauale</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Puhasta jagamislingid</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK käännöspäivä on vioittunut</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Varoitus</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Ilmoitus</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Kellon historiaa ei tallenneta.<br><br>Tämä todennäköisesti johtuu DNS mainosten estäjä tai verkkovälityspalvelin.<br><br>Korjataksesi tämän, valkoiselle listalle <b>s.youtube.com</b> tai poistaaksesi kaikki DNS-estäjät ja -profiilit.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Älä näytä uudelleen</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Asetukset</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Haluatko varmasti jatkaa?</string>
|
||||
<string name="revanced_settings_save">Tallenna</string>
|
||||
<string name="revanced_settings_reset">Nollaa</string>
|
||||
<string name="revanced_settings_reset_color">Nollaa väri</string>
|
||||
<string name="revanced_settings_color_invalid">Virheellinen väri</string>
|
||||
@@ -164,6 +165,14 @@ Et saa ilmoituksia odottamattomista tapahtumista."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Tyhjennä virheenkorjauslokit</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Tyhjentää kaikki tallennetut ReVanced-virheenkorjauslokit</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Lokit tyhjennetty</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Ominaisuuslippujen Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Hallitse totuusarvo-ominaisuuslippuja</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktiiviset liput (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Estetyt liput (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Hae lippuja...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Liput tallennettu</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Liput nollattu</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Liput kopioitu leikepöydälle</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Puhdista jakamislinkit</string>
|
||||
@@ -779,9 +788,9 @@ Jos tämän asetuksen muuttaminen ei tule voimaan, kokeile vaihtaa Incognito-til
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_on">Näytön lukitus -valinta piilotetaan</string>
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_off">Näytön lukitus -valinta näytetään</string>
|
||||
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">Piilota Kuuntele YouTube Musicilla</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_on">Kuuntele YouTube Musicilla -valikko on piilotettu</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_off">Kuuntele YouTube Musicilla -valikko on näkyvissä</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">Piilota Kuuntele YouTube Musicissa</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_on">Kuuntele YouTube Musicissa -valinta piilotetaan</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_off">Kuuntele YouTube Musicissa -valinta näytetään</string>
|
||||
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_audio_track_title">Piilota Ääniraita</string>
|
||||
<string name="revanced_hide_player_flyout_audio_track_summary_on">Ääniraitavalikko piilotetaan</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Ang petsa ng pagbuo ng APK ay sira</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Babala</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Paunawa ng ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Hindi nai-save ang iyong kasaysayan ng panonood.<br><br>Karaniwang sanhi nito ay ang DNS ad blocker o network proxy.<br><br>Para maayos ito, i-whitelist ang <b>s.youtube.com</b> o i-off ang lahat ng DNS blocker at proxy.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Huwag ipakitang muli</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Mga Setting</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Sigurado ka bang gusto mong magpatuloy?</string>
|
||||
<string name="revanced_settings_save">I-save</string>
|
||||
<string name="revanced_settings_reset">I-reset</string>
|
||||
<string name="revanced_settings_reset_color">I-reset ang kulay</string>
|
||||
<string name="revanced_settings_color_invalid">Hindi wasto ang kulay</string>
|
||||
@@ -164,6 +165,14 @@ Hindi ka aabisuhan ng anumang hindi inaasahang mga kaganapan."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">I-clear ang mga debug log</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Iki-clear ang lahat ng nakaimbak na ReVanced debug log</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Na-clear ang mga log</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager ng Mga Flag ng Tampok</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Pamahalaan ang mga boolean na flag ng tampok</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Mga aktibong flag (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Mga harang na flag (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Maghanap ng mga flag...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Na-save ang mga flag</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Na-reset ang mga flag</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Nakopya ang mga flag sa clipboard</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Linisin ang mga link sa pagbabahagi</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">La date de construction de l\'APK est corrompue</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Avertissement</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Avis ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Les vidéos que vous regardez ne sont pas enregistrées dans votre historique.<br><br>La cause la plus probable est l\'utilisation d\'un serveur DNS bloqueur de publicités ou d\'un proxy.<br><br>Pour résoudre ce problème, autorisez l\'accès à <b>s.youtube.com</b> ou désactivez tous vos bloqueurs DNS et proxys.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Ne plus afficher</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Paramètres</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Voulez-vous vraiment continuer ?</string>
|
||||
<string name="revanced_settings_save">Enregistrer</string>
|
||||
<string name="revanced_settings_reset">Réinitialiser</string>
|
||||
<string name="revanced_settings_reset_color">Réinitialiser la couleur</string>
|
||||
<string name="revanced_settings_color_invalid">Couleur invalide</string>
|
||||
@@ -164,6 +165,14 @@ Vous ne serez pas informé des événements inattendus."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Effacer les journaux de débogage</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Efface tous les journaux de débogage ReVanced stockés</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Journaux effacés</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Gestionnaire des indicateurs de fonctionnalités</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Gérer les indicateurs de fonctionnalités booléens</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Drapeaux actifs (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Drapeaux bloqués (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Rechercher des drapeaux...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Drapeaux enregistrés</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Drapeaux réinitialisés</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Drapeaux copiés dans le presse-papiers</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Nettoyer les liens de partage</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Tá dáta tógála APK truaillithe</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Rabhadh</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Fógra ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Níl do stair faire á sábháil.<br><br>Is é is dóichí gur seachfhreastalaí fógraí DNS nó seachfhreastalaí líonra is cúis leis seo.<br><br> Chun é seo a réiteach, déan liosta bán <b>s.youtube.com</b> nó gach seachfhreastalaí DNS a mhúchadh.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Ná taispeáin arís</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Socruithe</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">An bhfuil tú cinnte gur mhaith leat dul ar aghaidh?</string>
|
||||
<string name="revanced_settings_save">Sábháil</string>
|
||||
<string name="revanced_settings_reset">Athshocrú</string>
|
||||
<string name="revanced_settings_reset_color">Dath a athshocrú</string>
|
||||
<string name="revanced_settings_color_invalid">Dath neamhbhailí</string>
|
||||
@@ -164,6 +165,14 @@ Ní chuirfear ar an eolas thú faoi aon imeachtaí gan choinne."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Glan logaí dífhabhtaithe</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Glanann sé gach loga dífhabhtaithe ReVanced stóráilte</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Lógaí glanta</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Bainisteoir bratacha gnéithe</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Bainistigh bratacha gné booléacha</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Bratacha gníomhacha (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Bratacha blocáilte (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Cuardaigh bratacha...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Bratacha sábháilte</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Bratacha athshocraithe</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Bratacha cóipeáilte chuig an ngearrthaisce</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Glan na naisc roinnte</string>
|
||||
|
||||
@@ -32,6 +32,7 @@ Second \"item\" text"</string>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_save">Sačuvaj</string>
|
||||
<!-- Settings about dialog. -->
|
||||
<!-- NOTE: the about strings above are duplicated in the TikTok about screen code,
|
||||
and changes made here must also be made there. -->
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Az APK build dátuma sérült</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Figyelmeztetés</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Értesítés</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">A megtekintési előzmények mentése nem történik meg.<br><br>Ezt valószínűleg egy DNS-hirdetésblokkoló vagy hálózati proxy okozza.<br><br>A probléma megoldásához vegye fel az engedélyezőlistára az <b>s.youtube.com</b> domaint vagy kapcsolja ki az összes DNS-blokkolót és proxyt.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Ne jelenjen meg többet</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Beállítások</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Biztosan folytatni szeretné?</string>
|
||||
<string name="revanced_settings_save">Mentés</string>
|
||||
<string name="revanced_settings_reset">Visszaállítás</string>
|
||||
<string name="revanced_settings_reset_color">Szín alaphelyzetbe állítása</string>
|
||||
<string name="revanced_settings_color_invalid">Érvénytelen szín</string>
|
||||
@@ -164,6 +165,14 @@ Nem fog értesülni semmilyen váratlan eseményről."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Hibakeresési naplók törlése</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Törli az összes tárolt ReVanced hibakeresési naplót</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Naplók törölve</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Funkciójelzők Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Logikai funkciójelzők kezelése</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktív jelzők (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blokkolt jelzők (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Jelzők keresése...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Jelzők mentve</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Jelzők visszaállítva</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Jelzők vágólapra másolva</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Megosztási linkek tisztítása</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK-ի կառուցման ամսաթիվը վնասված է</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Զգուշացում</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Ծանուցում</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Ձեր դիտման պատմությունը չի պահպանվում.<br><br>Այս հավանական պատճառը DNS գովազդների բլոկավորիչ կամ ցանցային պրոքսի է.<br><br>Խնդրում ենք գործարկել <b>s.youtube.com</b> կամ անջատել DNS բլոկավորիչներ և պրոքսիներ:</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Ավելի չցուցադրել</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Կարգավորումներ</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Վստա՞հ եք, որ ցանկանում եք շարունակել:</string>
|
||||
<string name="revanced_settings_save">Պահպանել</string>
|
||||
<string name="revanced_settings_reset">Վերականգնել</string>
|
||||
<string name="revanced_settings_reset_color">Գույնը վերականգնել</string>
|
||||
<string name="revanced_settings_color_invalid">Անվավեր գույն</string>
|
||||
@@ -164,6 +165,14 @@ MicroG-ի համար մարտկոցի օպտիմալացումը անջատել
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Մաքրել վրեժխնդրության մատյանները</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Մաքրում է բոլոր պահված ReVanced կարգաբերման մատյանները</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Մատյանները մաքրվել են</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Գործառույթի դրոշակների Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Կառավարել բուլյան գործառույթի դրոշակները</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Ակտիվ դրոշակներ (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Արգելափակված դրոշակներ (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Որոնել դրոշակներ...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Դրոշակները պահպանվեցին</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Դրոշակները զրոյացվեցին</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Դրոշակները պատճենվեցին սեղմատախտակին</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Մաքրել համօգտագործման հղումները</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Tanggal pembuatan APK rusak</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Peringatan </string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Pemberitahuan ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Riwayat tontonan Anda tidak sedang disimpan.<br><br>Hal ini kemungkinan besar disebabkan oleh pemblokir iklan DNS atau proksi jaringan.<br><br>Untuk memperbaikinya, masukkan daftar putih <b>s.youtube.com</b> atau matikan semua pemblokir DNS dan proksi.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Jangan tampilkan lagi</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Pengaturan</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Apakah Anda yakin ingin melanjutkan?</string>
|
||||
<string name="revanced_settings_save">Simpan</string>
|
||||
<string name="revanced_settings_reset">Setel ulang</string>
|
||||
<string name="revanced_settings_reset_color">Setel ulang warna</string>
|
||||
<string name="revanced_settings_color_invalid">Warna tidak sah</string>
|
||||
@@ -61,7 +62,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_import">Impor</string>
|
||||
<string name="revanced_settings_import_copy">Salin</string>
|
||||
<string name="revanced_settings_import_reset">Pengaturan ReVanced diatur ke bawaan</string>
|
||||
<string name="revanced_settings_import_success">Setelan %d terimpor</string>
|
||||
<string name="revanced_settings_import_success">%d Setelan terimpor</string>
|
||||
<string name="revanced_settings_import_failure_parse">Impor gagal: %s</string>
|
||||
<string name="revanced_settings_search_hint">Pengaturan pencarian</string>
|
||||
<string name="revanced_settings_search_no_results_title">Tidak ada hasil yang ditemukan untuk \'%s\'</string>
|
||||
@@ -164,6 +165,14 @@ Anda tidak akan diberi tahu tentang kejadian yang tidak terduga."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Bersihkan catatan debug</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Menghapus semua catatan debug ReVanced yang tersimpan</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Catatan dibersihkan</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Fitur pengelolaan tanda</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Kelola tanda fitur boolean</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Tanda aktif (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Tanda diblokir (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Cari tanda...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Tanda disimpan</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Tanda diatur ulang</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Tanda disalin ke papan klip</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Bersihkan tautan berbagi</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">La data di compilazione dell\'APK è corrotta</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Attenzione</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Avviso ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">La tua cronologia di visualizzazione non sta venendo salvata.<br><br>Questo è molto probabilmente causato da un blocco annunci DNS o da un proxy di rete.<br><br>Per risolvere, inserisci nella whitelist <b>s.youtube.com</b> o disattiva tutti i blocchi DNS e proxy.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Non mostrare più</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Impostazioni</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Sei sicuro di voler procedere?</string>
|
||||
<string name="revanced_settings_save">Salva</string>
|
||||
<string name="revanced_settings_reset">Reimposta</string>
|
||||
<string name="revanced_settings_reset_color">Reimposta colore</string>
|
||||
<string name="revanced_settings_color_invalid">Colore non valido</string>
|
||||
@@ -164,6 +165,14 @@ Non sarai notificato di eventi imprevisti."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Cancella i log di debug</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Cancella tutti i log di debug di ReVanced memorizzati</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Log cancellati</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager dei flag di funzionalità</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Gestisci flag di funzionalità booleani</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Flag attivi (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Flag bloccati (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Cerca flag...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flag salvati</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flag ripristinati</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flag copiati negli appunti</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Sanifica collegamenti di condivisione</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">תאריך בניית ה-APK פגום</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">אזהרה</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">הודעת ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">היסטוריית הצפייה שלך לא נשמרת.<br><br>סביר להניח שזה נגרם על ידי חוסם מודעות ברמת DNS או פרוקסי רשת.<br><br>כדי לתקן זאת, רשום את <b>s.youtube.com</b> ברשימת ההיתרים או כבה את כל חוסמי ה-DNS והפרוקסים.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">אל תציג שוב</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">הגדרות</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">האם אתה בטוח שברצונך להמשיך?</string>
|
||||
<string name="revanced_settings_save">שמור</string>
|
||||
<string name="revanced_settings_reset">איפוס</string>
|
||||
<string name="revanced_settings_reset_color">אפס צבע</string>
|
||||
<string name="revanced_settings_color_invalid">צבע לא חוקי</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">נקה יומני איתור באגים</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">מנקה את כל היומנים לאיתור באגים של Revanced המאוחסנים</string>
|
||||
<string name="revanced_debug_logs_clear_toast">היומנים נוקו</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager דגלי תכונות</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">נהל דגלי תכונות בוליאניים</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">דגלים פעילים (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">דגלים חסומים (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">חפש דגלים...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">הדגלים נשמרו</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">הדגלים אופסו</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">הדגלים הועתקו ללוח</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">טיהור קישורי שיתוף</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK の作成日時データが破損している</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">警告</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced からのお知らせ</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">再生履歴が保存されていません。<br><br>これはおそらく、DNS 広告ブロッカーまたはネットワーク プロキシが原因です。<br><br>この問題を解決するには、<b>s.youtube.com</b> をホワイトリストに追加するか、すべての DNS ブロッカーとプロキシをオフにしてください。</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">今後表示しない</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">設定</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">続行してもよろしいですか?</string>
|
||||
<string name="revanced_settings_save">保存</string>
|
||||
<string name="revanced_settings_reset">リセット</string>
|
||||
<string name="revanced_settings_reset_color">色をリセット</string>
|
||||
<string name="revanced_settings_color_invalid">色の値が無効です</string>
|
||||
@@ -164,6 +165,14 @@ YouTube Premium ユーザーの場合、この設定は必要ない可能性が
|
||||
<string name="revanced_debug_logs_clear_buffer_title">デバッグログを消去</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">保存されている ReVanced のすべてのデバッグログを消去します</string>
|
||||
<string name="revanced_debug_logs_clear_toast">ログを消去しました</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">機能フラグ Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">ブール機能フラグを管理</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">有効なフラグ (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">ブロックされたフラグ (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">フラグを検索...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">フラグを保存しました</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">フラグをリセットしました</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">フラグをクリップボードにコピーしました</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">共有リンクを無害化</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK 빌드 날짜가 손상되었습니다</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">경고</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced 알림</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">시청 기록이 저장되지 않습니다.<br><br> DNS 광고 차단기 또는 네트워크 프록시로 인하여 발생한 문제일 가능성이 높습니다.<br><br> 이 문제를 해결하려면 <b>s.youtube.com</b>을 허용 목록에서 제외하거나 모든 DNS 차단기 및 프록시를 해제하세요.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">다시 보지 않기</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">설정</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">계속하시겠습니까?</string>
|
||||
<string name="revanced_settings_save">저장</string>
|
||||
<string name="revanced_settings_reset">초기화</string>
|
||||
<string name="revanced_settings_reset_color">색상 초기화</string>
|
||||
<string name="revanced_settings_color_invalid">잘못된 색상입니다</string>
|
||||
@@ -164,6 +165,14 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
<string name="revanced_debug_logs_clear_buffer_title">디버그 로그 지우기</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">저장된 모든 ReVanced 디버그 로그를 지울 수 있습니다</string>
|
||||
<string name="revanced_debug_logs_clear_toast">디버그 로그가 지워졌습니다</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">기능 플래그 관리자</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">부울 기능 플래그를 관리할 수 있습니다</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">허용된 플래그 (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">차단된 플래그 (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">플래그 검색 ...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">플래그를 저장하였습니다</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">플래그를 초기화하였습니다</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">플래그를 클립보드에 복사하였습니다</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">추적 쿼리를 제거한 링크 공유하기</string>
|
||||
@@ -316,34 +325,34 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
<string name="revanced_hide_timed_reactions_title">실시간 이모티콘 리액션 숨기기</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_on">실시간 이모티콘 리액션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_timed_reactions_summary_off">실시간 이모티콘 리액션이 표시됩니다</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_title">AI 생성 동영상 요약 섹션 숨기기</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_title">AI 생성 동영상 요약 숨기기</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_on">AI 생성 동영상 요약 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_ai_generated_video_summary_section_summary_off">AI 생성 동영상 요약 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_ask_section_title">\'질문하기\' 섹션 숨기기</string>
|
||||
<string name="revanced_hide_ask_section_title">\'질문하기\' 숨기기</string>
|
||||
<string name="revanced_hide_ask_section_summary_on">\'질문하기\' 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_ask_section_summary_off">\'질문하기\' 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_attributes_section_title">속성 섹션 숨기기</string>
|
||||
<string name="revanced_hide_attributes_section_title">속성 숨기기</string>
|
||||
<string name="revanced_hide_attributes_section_summary_on">게임, 음악, 동영상 속 장소 그리고 언급된 인물 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_attributes_section_summary_off">게임, 음악, 동영상 속 장소 그리고 언급된 인물 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_chapters_section_title">챕터 숨기기</string>
|
||||
<string name="revanced_hide_chapters_section_summary_on">챕터 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_chapters_section_summary_off">챕터 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_title">이 콘텐츠가 제작된 방식 섹션 숨기기</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_title">이 콘텐츠가 제작된 방식 숨기기</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_on">이 콘텐츠가 제작된 방식 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_off">이 콘텐츠가 제작된 방식 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_hype_points_title">Hype 점수 숨기기</string>
|
||||
<string name="revanced_hide_hype_points_summary_on">Hype 점수가 숨겨집니다</string>
|
||||
<string name="revanced_hide_hype_points_summary_off">Hype 점수가 표시됩니다</string>
|
||||
<string name="revanced_hide_podcast_section_title">팟캐스트 살펴보기 섹션 숨기기</string>
|
||||
<string name="revanced_hide_podcast_section_title">\'팟캐스트 살펴보기\' 숨기기</string>
|
||||
<string name="revanced_hide_podcast_section_summary_on">팟캐스트 살펴보기 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_podcast_section_summary_off">팟캐스트 살펴보기 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_info_cards_section_title">크리에이터 정보 카드 섹션 숨기기</string>
|
||||
<string name="revanced_hide_info_cards_section_title">크리에이터 정보 카드 숨기기</string>
|
||||
<string name="revanced_hide_info_cards_section_summary_on">크리에이터 정보 카드 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_info_cards_section_summary_off">크리에이터 정보 카드 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_key_concepts_section_title">주요 개념 섹션 숨기기</string>
|
||||
<string name="revanced_hide_key_concepts_section_title">주요 개념 숨기기</string>
|
||||
<string name="revanced_hide_key_concepts_section_summary_on">주요 개념 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_key_concepts_section_summary_off">주요 개념 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_transcript_section_title">스크립트 섹션 숨기기</string>
|
||||
<string name="revanced_hide_transcript_section_title">스크립트 숨기기</string>
|
||||
<string name="revanced_hide_transcript_section_summary_on">스크립트 섹션이 숨겨집니다</string>
|
||||
<string name="revanced_hide_transcript_section_summary_off">스크립트 섹션이 표시됩니다</string>
|
||||
<string name="revanced_hide_description_components_screen_title">동영상 설명</string>
|
||||
@@ -631,65 +640,65 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
<patch id="layout.buttons.action.hideButtonsPatch">
|
||||
<string name="revanced_hide_buttons_screen_title">동작 버튼</string>
|
||||
<string name="revanced_hide_buttons_screen_summary">플레이어 하단에서 동작 버튼을 숨기거나 표시할 수 있습니다</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_title">빛나는 \'좋아요\' / \'구독\' 버튼 비활성화하기</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_title">빛나는 \'좋아요\' / \'구독\' 비활성화하기</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_summary_on">동영상에서 \'Like (좋아요)\' 또는 \'Subscribe (구독)\' 버튼이 언급되었을 경우에 해당 버튼에 빛나는 애니메이션을 적용하지 않습니다</string>
|
||||
<string name="revanced_disable_like_subscribe_glow_summary_off">동영상에서 \'Like (좋아요)\' 또는 \'Subscribe (구독)\' 버튼이 언급되었을 경우에 해당 버튼에 빛나는 애니메이션을 적용합니다</string>
|
||||
<string name="revanced_hide_like_dislike_button_title">좋아요 & 싫어요 버튼 숨기기</string>
|
||||
<string name="revanced_hide_like_dislike_button_title">좋아요 & 싫어요 숨기기</string>
|
||||
<string name="revanced_hide_like_dislike_button_summary_on">좋아요 & 싫어요 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_like_dislike_button_summary_off">좋아요 & 싫어요 버튼이 표시됩니다</string>
|
||||
<!-- 'Share' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_share_button_title">공유 버튼 숨기기</string>
|
||||
<string name="revanced_hide_share_button_title">공유 숨기기</string>
|
||||
<string name="revanced_hide_share_button_summary_on">공유 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_share_button_summary_off">공유 버튼이 표시됩니다</string>
|
||||
<!-- 'Stop ads' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_stop_ads_button_title">광고 중지 버튼 숨기기</string>
|
||||
<string name="revanced_hide_stop_ads_button_title">광고 중지 숨기기</string>
|
||||
<string name="revanced_hide_stop_ads_button_summary_on">광고 중지 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_stop_ads_button_summary_off">광고 중지 버튼이 표시됩니다</string>
|
||||
<!-- Button does not have any text and is only shown as an icon, and only when the video information area is collapsed to a compact state. -->
|
||||
<string name="revanced_hide_comments_button_title">댓글 버튼 숨기기</string>
|
||||
<string name="revanced_hide_comments_button_title">댓글 숨기기</string>
|
||||
<string name="revanced_hide_comments_button_summary_on">댓글 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_comments_button_summary_off">댓글 버튼이 표시됩니다</string>
|
||||
<!-- 'Report' should be translated with the same localized wording that YouTube displays.
|
||||
This button usually only shows on live streams. -->
|
||||
<string name="revanced_hide_report_button_title">신고 버튼 숨기기</string>
|
||||
<string name="revanced_hide_report_button_title">신고 숨기기</string>
|
||||
<string name="revanced_hide_report_button_summary_on">신고 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_report_button_summary_off">신고 버튼이 표시됩니다</string>
|
||||
<!-- 'Remix' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_remix_button_title">리믹스 버튼 숨기기</string>
|
||||
<string name="revanced_hide_remix_button_title">리믹스 숨기기</string>
|
||||
<string name="revanced_hide_remix_button_summary_on">리믹스 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_remix_button_summary_off">리믹스 버튼이 표시됩니다</string>
|
||||
<!-- 'Download' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_download_button_title">오프라인 저장 버튼 숨기기</string>
|
||||
<string name="revanced_hide_download_button_title">오프라인 저장 숨기기</string>
|
||||
<string name="revanced_hide_download_button_summary_on">오프라인 저장 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_download_button_summary_off">오프라인 저장 버튼이 표시됩니다</string>
|
||||
<!-- 'Hype' should be translated with the same localized wording that YouTube displays.
|
||||
This button only shows on videos uploaded by the logged in user. -->
|
||||
<string name="revanced_hide_hype_button_title">Hype 버튼 숨기기</string>
|
||||
<string name="revanced_hide_hype_button_title">Hype 숨기기</string>
|
||||
<string name="revanced_hide_hype_button_summary_on">Hype 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_hype_button_summary_off">Hype 버튼이 표시됩니다</string>
|
||||
<!-- 'Promote' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_promote_button_title">프로모션 버튼 숨기기</string>
|
||||
<string name="revanced_hide_promote_button_title">프로모션 숨기기</string>
|
||||
<string name="revanced_hide_promote_button_summary_on">프로모션 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_promote_button_summary_off">프로모션 버튼이 표시됩니다</string>
|
||||
<!-- 'Thanks' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_thanks_button_title">Thanks 버튼 숨기기</string>
|
||||
<string name="revanced_hide_thanks_button_title">Thanks 숨기기</string>
|
||||
<string name="revanced_hide_thanks_button_summary_on">Thanks 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_thanks_button_summary_off">Thanks 버튼이 표시됩니다</string>
|
||||
<!-- 'Ask' should be translated with the same localized wording that YouTube displays.
|
||||
This button only shows if the user ip is from specific region such as the USA or EU. -->
|
||||
<string name="revanced_hide_ask_button_title">\'질문하기\' 버튼 숨기기</string>
|
||||
<string name="revanced_hide_ask_button_title">\'질문하기\' 숨기기</string>
|
||||
<string name="revanced_hide_ask_button_summary_on">\'질문하기\' 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_ask_button_summary_off">\'질문하기\' 버튼이 표시됩니다</string>
|
||||
<!-- 'Clip' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_clip_button_title">클립 버튼 숨기기</string>
|
||||
<string name="revanced_hide_clip_button_title">클립 숨기기</string>
|
||||
<string name="revanced_hide_clip_button_summary_on">클립 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_clip_button_summary_off">클립 버튼이 표시됩니다</string>
|
||||
<!-- 'Shop' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_shop_button_title">쇼핑 버튼 숨기기</string>
|
||||
<string name="revanced_hide_shop_button_title">쇼핑 숨기기</string>
|
||||
<string name="revanced_hide_shop_button_summary_on">쇼핑 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_shop_button_summary_off">쇼핑 버튼이 표시됩니다</string>
|
||||
<!-- 'Save' should be translated with the same localized wording that YouTube displays. -->
|
||||
<string name="revanced_hide_save_button_title">저장 버튼 숨기기</string>
|
||||
<string name="revanced_hide_save_button_title">저장 숨기기</string>
|
||||
<string name="revanced_hide_save_button_summary_on">저장 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_save_button_summary_off">저장 버튼이 표시됩니다</string>
|
||||
</patch>
|
||||
@@ -697,26 +706,26 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
<string name="revanced_navigation_buttons_screen_title">하단바 버튼</string>
|
||||
<string name="revanced_navigation_buttons_screen_summary">하단바에서 버튼을 숨기거나 변경할 수 있습니다</string>
|
||||
<!-- 'Home' should be translated using the same localized wording YouTube displays for the tab. -->
|
||||
<string name="revanced_hide_home_button_title">홈 버튼 숨기기</string>
|
||||
<string name="revanced_hide_home_button_title">홈 숨기기</string>
|
||||
<string name="revanced_hide_home_button_summary_on">홈 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_home_button_summary_off">홈 버튼이 표시됩니다</string>
|
||||
<!-- 'Shorts' should be translated using the same localized wording YouTube displays the tab. -->
|
||||
<string name="revanced_hide_shorts_button_title">Shorts 버튼 숨기기</string>
|
||||
<string name="revanced_hide_shorts_button_title">Shorts 숨기기</string>
|
||||
<string name="revanced_hide_shorts_button_summary_on">Shorts 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_shorts_button_summary_off">Shorts 버튼이 표시됩니다</string>
|
||||
<!-- 'Create' has no display name. Translate normally. -->
|
||||
<string name="revanced_hide_create_button_title">만들기 버튼 숨기기</string>
|
||||
<string name="revanced_hide_create_button_title">만들기 숨기기</string>
|
||||
<string name="revanced_hide_create_button_summary_on">만들기 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_create_button_summary_off">만들기 버튼이 표시됩니다</string>
|
||||
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays the tab. -->
|
||||
<string name="revanced_hide_subscriptions_button_title">구독 버튼 숨기기</string>
|
||||
<string name="revanced_hide_subscriptions_button_title">구독 숨기기</string>
|
||||
<string name="revanced_hide_subscriptions_button_summary_on">구독 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_subscriptions_button_summary_off">구독 버튼이 표시됩니다</string>
|
||||
<string name="revanced_hide_notifications_button_title">알림 버튼 숨기기</string>
|
||||
<string name="revanced_hide_notifications_button_title">알림 숨기기</string>
|
||||
<string name="revanced_hide_notifications_button_summary_on">알림 버튼이 숨겨집니다</string>
|
||||
<string name="revanced_hide_notifications_button_summary_off">알림 버튼이 표시됩니다</string>
|
||||
<!-- 'Notifications' should be translated using the same localized wording YouTube displays the tab. -->
|
||||
<string name="revanced_switch_create_with_notifications_button_title">만들기 버튼과 알림 버튼 위치 교환하기</string>
|
||||
<string name="revanced_switch_create_with_notifications_button_title">만들기와 알림 위치 교환하기</string>
|
||||
<string name="revanced_switch_create_with_notifications_button_summary_on">"만들기 버튼과 알림 버튼의 위치를 교환합니다
|
||||
|
||||
알려진 문제점:
|
||||
@@ -743,46 +752,46 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
<string name="revanced_hide_player_flyout_title">메뉴 구성요소</string>
|
||||
<string name="revanced_hide_player_flyout_summary">플레이어에서 메뉴 구성요소를 숨기거나 표시할 수 있습니다</string>
|
||||
<!-- 'Captions' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_captions_title">자막 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_captions_title">자막 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_captions_summary_on">자막 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_captions_summary_off">자막 메뉴가 표시됩니다</string>
|
||||
<!-- 'Additional settings' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_additional_settings_title">추가 설정 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_additional_settings_title">추가 설정 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_additional_settings_summary_on">추가 설정 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_additional_settings_summary_off">추가 설정 메뉴가 표시됩니다</string>
|
||||
<!-- 'Sleep timer' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_sleep_timer_title">취침 타이머 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_sleep_timer_title">취침 타이머 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_sleep_timer_summary_on">취침 타이머 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_sleep_timer_summary_off">취침 타이머 메뉴가 표시됩니다</string>
|
||||
<!-- 'Loop video' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_loop_video_title">동영상 연속 재생 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_loop_video_title">동영상 연속 재생 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_loop_video_summary_on">동영상 연속 재생 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_loop_video_summary_off">동영상 연속 재생 메뉴가 표시됩니다</string>
|
||||
<!-- 'Ambient mode' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_ambient_mode_title">앰비언트 모드 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_ambient_mode_title">앰비언트 모드 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_ambient_mode_summary_on">앰비언트 모드 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_ambient_mode_summary_off">앰비언트 모드 메뉴가 표시됩니다</string>
|
||||
<string name="revanced_hide_player_flyout_stable_volume_title">안정적인 볼륨 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_stable_volume_title">안정적인 볼륨 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_stable_volume_summary_off">안정적인 볼륨 메뉴가 표시됩니다</string>
|
||||
<string name="revanced_hide_player_flyout_stable_volume_summary_on">안정적인 볼륨 메뉴가 숨겨집니다</string>
|
||||
<!-- 'Help & feedback' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_help_title">고객센터 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_help_title">고객센터 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_help_summary_on">고객센터 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_help_summary_off">고객센터 메뉴가 표시됩니다</string>
|
||||
<!-- 'Playback speed' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_speed_title">재생 속도 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_speed_title">재생 속도 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_speed_summary_on">재생 속도 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_speed_summary_off">재생 속도 메뉴가 표시됩니다</string>
|
||||
<!-- 'Lock screen' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_lock_screen_title">잠금 화면 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_lock_screen_title">잠금 화면 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_on">잠금 화면 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_off">잠금 화면 메뉴가 표시됩니다</string>
|
||||
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">YouTube Music으로 음악 감상 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">YouTube Music으로 음악 감상 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_on">YouTube Music으로 음악 감상 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_off">YouTube Music으로 음악 감상 메뉴가 표시됩니다</string>
|
||||
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_audio_track_title">오디오 트랙 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_audio_track_title">오디오 트랙 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_audio_track_summary_on">오디오 트랙 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_audio_track_summary_off">오디오 트랙 메뉴가 표시됩니다</string>
|
||||
<!-- 'Spoof video streams' should be the same translation used for 'revanced_spoof_video_streams_screen_title'. -->
|
||||
@@ -790,13 +799,13 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
|
||||
오디오 트랙 메뉴를 표시하려면, '동영상 스트림 변경하기'에서 기본 클라이언트를 iPadOS로 변경하세요"</string>
|
||||
<!-- 'Watch in VR' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_watch_in_vr_title">VR로 보기 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_watch_in_vr_title">VR로 보기 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_watch_in_vr_summary_on">VR로 보기 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_watch_in_vr_summary_off">VR로 보기 메뉴가 표시됩니다</string>
|
||||
<string name="revanced_hide_player_flyout_video_quality_title">동영상 화질 메뉴 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_video_quality_summary_on">동영상 화질 메뉴가 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_video_quality_summary_off">동영상 화질 메뉴가 표시됩니다</string>
|
||||
<string name="revanced_hide_player_flyout_video_quality_footer_title">화질 설정 메뉴에서 하단 설명 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_video_quality_footer_title">동영상 화질 메뉴에서 하단 설명 숨기기</string>
|
||||
<string name="revanced_hide_player_flyout_video_quality_footer_summary_on">화질 설정 메뉴에서 하단 설명이 숨겨집니다</string>
|
||||
<string name="revanced_hide_player_flyout_video_quality_footer_summary_off">화질 설정 메뉴에서 하단 설명이 표시됩니다</string>
|
||||
</patch>
|
||||
@@ -851,14 +860,14 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
<string name="revanced_shorts_player_screen_title">Shorts 플레이어</string>
|
||||
<string name="revanced_shorts_player_screen_summary">Shorts 플레이어에서 구성요소를 숨기거나 표시할 수 있습니다</string>
|
||||
<!-- 'Home' should be translated using the same localized wording YouTube displays for the Home tab. -->
|
||||
<string name="revanced_hide_shorts_home_title">홈 피드에서 Shorts 선반 숨기기</string>
|
||||
<string name="revanced_hide_shorts_home_title">홈 피드에서 Shorts 숨기기</string>
|
||||
<string name="revanced_hide_shorts_home_summary_on">홈 피드 및 관련 동영상에서 숨겨집니다</string>
|
||||
<string name="revanced_hide_shorts_home_summary_off">홈 피드 및 관련 동영상에서 표시됩니다</string>
|
||||
<string name="revanced_hide_shorts_search_title">검색 결과에서 Shorts 선반 숨기기</string>
|
||||
<string name="revanced_hide_shorts_search_title">검색 결과에서 Shorts 숨기기</string>
|
||||
<string name="revanced_hide_shorts_search_summary_on">검색 결과에서 숨겨집니다</string>
|
||||
<string name="revanced_hide_shorts_search_summary_off">검색 결과에서 표시됩니다</string>
|
||||
<!-- 'Subscriptions' should be translated using the same localized wording YouTube displays for the Subscriptions tab. -->
|
||||
<string name="revanced_hide_shorts_subscriptions_title">구독 피드에서 Shorts 선반 숨기기</string>
|
||||
<string name="revanced_hide_shorts_subscriptions_title">구독 피드에서 Shorts 숨기기</string>
|
||||
<string name="revanced_hide_shorts_subscriptions_summary_on">구독 피드에서 숨겨집니다</string>
|
||||
<string name="revanced_hide_shorts_subscriptions_summary_off">구독 피드에서 표시됩니다</string>
|
||||
<string name="revanced_hide_shorts_history_title">시청 기록에서 Shorts 숨기기</string>
|
||||
@@ -962,12 +971,12 @@ YouTube Premium 사용자라면 이 설정은 필요하지 않을 수 있습니
|
||||
<string name="revanced_hide_shorts_navigation_bar_summary_off">하단바가 표시됩니다</string>
|
||||
</patch>
|
||||
<patch id="layout.hide.endscreensuggestion.hideEndScreenSuggestedVideoPatch">
|
||||
<string name="revanced_end_screen_suggested_video_title">최종 화면 다음 재생 추천 동영상 숨기기</string>
|
||||
<string name="revanced_end_screen_suggested_video_summary_on">"자동재생이 꺼져 있을 경우에 최종 화면에서 다음 재생 추천 동영상이 숨겨집니다
|
||||
<string name="revanced_end_screen_suggested_video_title">최종 화면 추천 동영상 숨기기</string>
|
||||
<string name="revanced_end_screen_suggested_video_summary_on">"자동재생이 꺼져 있을 경우에 최종 화면에서 추천 동영상이 숨겨집니다
|
||||
|
||||
자동재생은 YouTube 설정에서 변경할 수 있습니다:
|
||||
설정 → 재생 → 다음 동영상 자동재생"</string>
|
||||
<string name="revanced_end_screen_suggested_video_summary_off">최종 화면에서 다음 재생 추천 동영상이 표시됩니다</string>
|
||||
<string name="revanced_end_screen_suggested_video_summary_off">최종 화면에서 추천 동영상이 표시됩니다</string>
|
||||
</patch>
|
||||
<patch id="layout.hide.relatedvideooverlay.hideRelatedVideoOverlayPatch">
|
||||
<string name="revanced_hide_related_videos_overlay_title">관련 동영상 오버레이 숨기기</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK sukurties data yra sugadinta</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Įspėjimas</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced pranešimas</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Jūsų žiūrėjimo istorija nėra išsaugoma.<br><br>Tikėtina, kad tai sukelia DNS skelbimų blokatorius arba tinklo tarpinis serveris.<br><br>Norėdami išspręsti šią problemą, įtraukite į baltąjį sąrašą <b>s.youtube.com</b> arba išjunkite visus DNS blokatorius ir tarpinį serverį.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Nerodyti daugiau</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Nustatymai</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Ar tikrai norite tęsti?</string>
|
||||
<string name="revanced_settings_save">Išsaugoti</string>
|
||||
<string name="revanced_settings_reset">Atstatyti</string>
|
||||
<string name="revanced_settings_reset_color">Atkurti spalvą</string>
|
||||
<string name="revanced_settings_color_invalid">Neteisinga spalva</string>
|
||||
@@ -164,6 +165,14 @@ Apie netikėtus įvykius nebus pranešta."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Išvalyti derinimo žurnalus</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Išvalo visus išsaugotus „ReVanced“ derinimo žurnalus</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Žurnalai išvalyti</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Funkcijų žymių Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Tvarkyti logines funkcijų žymes</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktyviosios vėliavėlės (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Užblokuotos vėliavėlės (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Ieškoti vėliavėlių...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Vėliavėlės išsaugotos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Vėliavėlės nustatytos iš naujo</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Vėliavėlės nukopijuotos į iškarpinę</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Nuvalyti bendrinimo nuorodas</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK veidošanas datums ir bojāts</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Brīdinājums</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced paziņojums</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Jūsu skatīšanās vēsture netiek saglabāta.<br><br>Visticamāk, to izraisa DNS reklāmu bloķētājs vai tīkla starpniekserveris.<br><br>Lai to novērstu, pievienojiet baltajam sarakstam <b>s.youtube.com</b> vai izslēdziet visus DNS bloķētājus un starpniekservera serverus.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Nerādīt vēlreiz</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Iestatījumi</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Vai tiešām vēlaties turpināt?</string>
|
||||
<string name="revanced_settings_save">Saglabāt</string>
|
||||
<string name="revanced_settings_reset">Atiestatīt</string>
|
||||
<string name="revanced_settings_reset_color">Atiestatīt krāsu</string>
|
||||
<string name="revanced_settings_color_invalid">Nederīga krāsa</string>
|
||||
@@ -164,6 +165,14 @@ Jūs netiksit informēts par neparedzētiem notikumiem."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Notīrīt atkļūdošanas žurnālus</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Notīra visus saglabātos ReVanced atkļūdošanas žurnālus</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Žurnāli ir notīrīti</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Funkciju karodziņu Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Pārvaldīt Būla funkciju karodziņus</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktīvie karodziņi (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Bloķētie karodziņi (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Meklēt karodziņus...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Karodziņi saglabāti</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Karodziņi atiestatīti</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Karodziņi kopēti starpliktuvē</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Tīrīt koplietošanas saites</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK-bouwdatum is beschadigd</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Waarschuwing</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Melding</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Uw kijkgeschiedenis wordt niet opgeslagen.<br><br>Dit wordt hoogstwaarschijnlijk veroorzaakt door een DNS-adblocker of netwerkproxy.<br><br>Om dit te verhelpen, voegt u <b>s.youtube.com</b> toe aan de witte lijst of schakelt u alle DNS-blokkers en proxies uit.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Niet meer weergeven</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Instellingen</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Weet je zeker dat je door wilt gaan?</string>
|
||||
<string name="revanced_settings_save">Opslaan</string>
|
||||
<string name="revanced_settings_reset">Terugzetten</string>
|
||||
<string name="revanced_settings_reset_color">Kleur opnieuw instellen</string>
|
||||
<string name="revanced_settings_color_invalid">Ongeldige kleur</string>
|
||||
@@ -164,6 +165,14 @@ U wordt niet op de hoogte gesteld van onverwachte gebeurtenissen."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Foutopsporingslogboeken wissen</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Wist alle opgeslagen ReVanced-foutopsporingslogboeken</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Logboeken gewist</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Functievlaggen Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Beheer booleaanse functievlaggen</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Actieve vlaggen (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Geblokkeerde vlaggen (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Vlaggen zoeken...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Vlaggen opgeslagen</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Vlaggen gereset</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Vlaggen gekopieerd naar klembord</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Deelbare links opschonen</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Data kompilacji APK jest uszkodzona</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Ostrzeżenie</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Powiadomienie ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Twoja historia oglądania nie jest zapisywana.<br><br>Najprawdopodobniej jest to spowodowane blokadą reklam DNS lub serwer proxy.<br><br>Aby to naprawić, dodaj do białej listy<b>s.youtube.com</b> lub wyłącz wszystkie blokady DNS i proxy.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Nie pokazuj ponownie</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Ustawienia</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Czy na pewno chcesz kontynuować?</string>
|
||||
<string name="revanced_settings_save">Zapisz</string>
|
||||
<string name="revanced_settings_reset">Zresetuj</string>
|
||||
<string name="revanced_settings_reset_color">Zresetuj kolor</string>
|
||||
<string name="revanced_settings_color_invalid">Nieprawidłowy kolor</string>
|
||||
@@ -164,6 +165,14 @@ Nie będziesz informowany o żadnych nieoczekiwanych zdarzeniach."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Wyczyść dzienniki debugowania</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Czyści wszystkie zapisane dzienniki debugowania ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Dzienniki wyczyszczone</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager flag funkcji</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Zarządzaj flagami funkcji typu boolean</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktywne flagi (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Zablokowane flagi (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Szukaj flag...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flagi zapisane</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flagi zresetowane</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flagi skopiowane do schowka</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Oczyść linki udostępniania</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Data de compilação do APK está corrompida</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Atenção</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Aviso do ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Seu histórico de exibição não está sendo salvo.<br><br>Na maioria dos casos isso é causado por um bloqueador de anúncios por DNS ou proxy de rede.<br><br>Para corrigir isso, permita <b>s.youtube.com</b> na sua lista ou desative todos os bloqueadores de DNS e proxies.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Não exibir novamente</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Configurações</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Tem certeza de que deseja continuar?</string>
|
||||
<string name="revanced_settings_save">Salvar</string>
|
||||
<string name="revanced_settings_reset">Resetar</string>
|
||||
<string name="revanced_settings_reset_color">Redefinir cor</string>
|
||||
<string name="revanced_settings_color_invalid">Cor inválida</string>
|
||||
@@ -164,6 +165,14 @@ Você não será notificado sobre nenhum evento inesperado."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Limpar registros de depuração</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Limpa todos os registros de depuração do ReVanced armazenados</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Registros limpos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Gerenciador de sinalizadores de recursos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Gerenciar sinalizadores de recursos booleanos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Flags ativas (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Flags bloqueadas (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Pesquisar flags...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flags salvas</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flags redefinidas</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flags copiadas para a área de transferência</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Higienizar links de compartilhamento</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">A data da compilação da APK está corrompida</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Atenção</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Aviso do ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">O teu histórico de visualização não está a ser guardado.<br><br>Isto é mais provávelmente causado por um bloqueador de anúncios DNS ou proxy de rede.<br><br>Para reparar isto, adiciona às exceções <b>s.youtube.com</b> ou desativa todos os bloqueadores DNS e proxies.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Não mostrar novamente</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Configurações</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Tem certeza de que deseja prosseguir?</string>
|
||||
<string name="revanced_settings_save">Salvar</string>
|
||||
<string name="revanced_settings_reset">Repor</string>
|
||||
<string name="revanced_settings_reset_color">Redefinir cor</string>
|
||||
<string name="revanced_settings_color_invalid">Cor inválida</string>
|
||||
@@ -164,6 +165,14 @@ Não será notificado de quaisquer eventos inesperados."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Limpar registos de depuração</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Limpa todos os registos de depuração do ReVanced armazenados</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Registos limpos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager de sinalizadores de recurso</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Gerenciar sinalizadores de recurso booleanos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Sinalizadores ativos (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Sinalizadores bloqueados (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Pesquisar sinalizadores...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Sinalizadores salvos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Sinalizadores redefinidos</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Sinalizadores copiados para a área de transferência</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Sanitizar links de partilha</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Data construirii APK-ului este coruptă</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Atenție</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Notificare ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Istoricul de vizionare nu este salvat.<br><br>Cel mai probabil este cauzată de un DNS de blocare a anunțurilor sau de un proxy de rețea.<br><br>Pentru a remedia acest lucru, lista albă <b>s.youtube.com</b> sau pentru a opri toate blocantele DNS și proxy-urile.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Nu mai afișa</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Setări</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Sigur doriți să continuați?</string>
|
||||
<string name="revanced_settings_save">Salvați</string>
|
||||
<string name="revanced_settings_reset">Resetare</string>
|
||||
<string name="revanced_settings_reset_color">Resetează culoarea</string>
|
||||
<string name="revanced_settings_color_invalid">Culoare nevalidă</string>
|
||||
@@ -164,6 +165,14 @@ Nu veți fi notificat de niciun eveniment neașteptat."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Șterge jurnalele de depanare</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Șterge toate jurnalele de depanare ReVanced stocate</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Jurnale șterse</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager de funcții</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Gestionați funcțiile booleene</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Steaguri active (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Steaguri blocate (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Căutați steaguri...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Steaguri salvate</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Steaguri resetate</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Steaguri copiate în clipboard</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Igienizează linkurile de partajare</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Дата сборки APK повреждена</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Внимание</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Уведомление ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Ваша история просмотра не сохраняется.<br><br>Вероятнее всего это вызвано DNS блокировщиком рекламы или сетевым прокси.<br><br>Чтобы это исправить, добавьте <b>s.youtube.com</b> в белый список блокировщика рекламы или отключите все блокировщики DNS и прокси.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Не показывать снова</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Настройки</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Вы уверены, что хотите продолжить?</string>
|
||||
<string name="revanced_settings_save">Сохранить</string>
|
||||
<string name="revanced_settings_reset">Сбросить</string>
|
||||
<string name="revanced_settings_reset_color">Сбросить цвет</string>
|
||||
<string name="revanced_settings_color_invalid">Неверный цвет</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Очистить журналы отладки</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Очищает все сохраненные журналы отладки ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Журналы очищены</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Флаги функций Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Управление логическими флагами функций</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Активные флаги (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Заблокированные флаги (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Поиск флагов...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Флаги сохранены</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Флаги сброшены</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Флаги скопированы в буфер обмена</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Очищать ссылки для обмена</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Dátum zostavenia APK je poškodený</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Upozornenie</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Upozornenie ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Vaša história pozeraného sa neuchováva.<br><br>Toto je pravdepodobne spôsobené blokovaním reklám pomocou DNS alebo sieťového proxy.<br><br>Pre vyriešenie tohto problému povoľte <b>s.youtube.com</b> alebo vypnite všetky blokátory reklám pomocou DNS a proxy.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Neukazuj znovu</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Nastavenia</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Naozaj chcete pokračovať?</string>
|
||||
<string name="revanced_settings_save">Uložiť</string>
|
||||
<string name="revanced_settings_reset">Resetovať</string>
|
||||
<string name="revanced_settings_reset_color">Obnovi farbu</string>
|
||||
<string name="revanced_settings_color_invalid">Neplatn farba</string>
|
||||
@@ -162,6 +163,14 @@ Nebudete informovaní o žiadnych nepredvídaných udalostiach."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Vymazať protokoly ladenia</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Vymaže všetky uložené protokoly ladenia ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Protokoly vymazané</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager príznakov funkcií</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Spravovať booleovské príznaky funkcií</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktívne príznaky (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blokované príznaky (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Hľadať príznaky...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Príznaky uložené</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Príznaky resetované</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Príznaky skopírované do schránky</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Vyčistiť odkazy na zdieľanie</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Datum izgradnje APK je poškodovan</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Opozorilo</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Obvestilo ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Vaš zgodovine gledanja se ne shranjuje.<br><br>To najverjetneje povzroči DNS blokiralnik oglasov ali omrežni posrednik.<br><br>Za odpravo težave dodajte na beli seznam <b>s.youtube.com</b> ali izklopite vse blokiralnike oglasov DNS in posrednike.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Ne prikazuj več</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Nastavitve</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Ali ste prepričani, da želite nadaljevati?</string>
|
||||
<string name="revanced_settings_save">Shrani</string>
|
||||
<string name="revanced_settings_reset">Ponastavi</string>
|
||||
<string name="revanced_settings_reset_color">Ponastavi barvo</string>
|
||||
<string name="revanced_settings_color_invalid">Neveljavna barva</string>
|
||||
@@ -164,6 +165,14 @@ Ne boste obveščeni o nobenih nepričakovanih dogodkih."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Počisti dnevnike napak</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Počisti vse shranjene dnevnike napak ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Dnevniki so bili izbrisani</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Zastavice funkcij Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Upravljanje logičnih zastavic funkcij</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktivne zastavice (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blokirane zastavice (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Iskanje zastavic...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Zastavice shranjene</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Zastavice ponastavljene</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Zastavice kopirane v odložišče</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Sanitiziraj povezave za deljenje</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Data e ndërtimit të APK është e korruptuar</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Kujdes</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Njoftim ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Historia juaj e shikimit nuk po ruhet.<br><br>Kjo me shumë mundësi shkaktohet nga një bllokues DNS reklamash ose një prokuri rrjeti.<br><br>Për të zgjidhur këtë, shto në listën e bardhë <b>s.youtube.com</b> ose çaktivizo të gjithë bllokuesit DNS dhe prokuritë.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Mos shfaq përsëri</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Cilësimet</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">A jeni i sigurt që dëshironi të vazhdoni?</string>
|
||||
<string name="revanced_settings_save">Ruaj</string>
|
||||
<string name="revanced_settings_reset">Rivendos</string>
|
||||
<string name="revanced_settings_reset_color">Rikthe ngjyrën</string>
|
||||
<string name="revanced_settings_color_invalid">Ngjyrë e pavlefshme</string>
|
||||
@@ -164,6 +165,14 @@ Ju nuk do të njoftoheni për ndonjë ngjarje të papritur."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Pastro regjistrat e korrigjimit</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Pastro të gjithë regjistrat e ruajtur të korrigjimit të ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Regjistrat u pastruan</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager i sinjaleve të veçorive</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Menaxhoni sinjalet boolean të veçorive</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Flamuj aktivë (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Flamuj të bllokuar (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Kërko flamuj...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flamujt u ruajtën</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flamujt u rivendosën</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flamujt u kopjuan në kujtesën e punës</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Pastro lidhjet e ndarjes</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Datum izrade APK-a je oštećen</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Upozorenje</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced obaveštenje</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Vaša istorija gledanja se ne čuva.<br><br>Ovo je najverovatnije uzrokovano DNS blokatorom oglasa ili mrežnim proksijem.<br><br>Da biste ovo popravili, stavite na belu listu <b>s.youtube.com</b> ili isključite sve DNS blokatore i proksije.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Ne prikazuj ponovo</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Podešavanja</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Želite li zaista da nastavite?</string>
|
||||
<string name="revanced_settings_save">Sačuvaj</string>
|
||||
<string name="revanced_settings_reset">Resetuj</string>
|
||||
<string name="revanced_settings_reset_color">Resetuj boju</string>
|
||||
<string name="revanced_settings_color_invalid">Nevažeća boja</string>
|
||||
@@ -164,6 +165,14 @@ Nećete biti obavešteni ni o kakvim neočekivanim događajima."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Izbriši evidencije otklanjanja grešaka</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Briše sve sačuvane evidencije otklanjanja grešaka ReVanceda</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Evidencije su izbrisane</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Feature flags Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Upravljajte bulovim zastavicama funkcija</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktivne zastavice (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blokirane zastavice (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Pretraži zastavice...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Zastavice sačuvane</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Zastavice resetovane</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Zastavice kopirane u međumemoriju</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Očisti deljene linkove</string>
|
||||
@@ -328,9 +337,9 @@ Ako se Doodle trenutno prikazuje u vašem regionu i ova opcija skrivanja je uklj
|
||||
<string name="revanced_hide_how_this_was_made_section_title">Sakrij odeljak „Kako je napravljen ovaj sadržaj”</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_on">Odeljak „Kako je napravljen ovaj sadržaj” je skriven</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_off">Odeljak „Kako je napravljen ovaj sadržaj” je prikazan</string>
|
||||
<string name="revanced_hide_hype_points_title">Sakrij Hype poene</string>
|
||||
<string name="revanced_hide_hype_points_summary_on">Hype poeni su skriveni</string>
|
||||
<string name="revanced_hide_hype_points_summary_off">Hype poeni su prikazani</string>
|
||||
<string name="revanced_hide_hype_points_title">Sakrij hajp poene</string>
|
||||
<string name="revanced_hide_hype_points_summary_on">Hajp poeni su skriveni</string>
|
||||
<string name="revanced_hide_hype_points_summary_off">Hajp poeni su prikazani</string>
|
||||
<string name="revanced_hide_podcast_section_title">Sakrij odeljak „Istražite podkast”</string>
|
||||
<string name="revanced_hide_podcast_section_summary_on">Odeljak „Istražite podkast” je skriven</string>
|
||||
<string name="revanced_hide_podcast_section_summary_off">Odeljak „Istražite podkast” je prikazan</string>
|
||||
@@ -779,9 +788,9 @@ Ako se promena ove opcije ne primeni, pokušajte da pređete u režim bez arhivi
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_on">Dugme „Zaključaj ekran” je skriveno</string>
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_off">Dugme „Zaključaj ekran” je prikazano</string>
|
||||
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">Sakrij Slušaj uz YouTube Music</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_on">Meni Slušaj uz YouTube Music je sakriven</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_off">Meni Slušaj uz YouTube Music je prikazan</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">Sakrij meni „Slušajte na YouTube Musicu”</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_on">Meni „Slušajte na YouTube Musicu” je skriven</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_off">Meni „Slušajte na YouTube Musicu” je prikazan</string>
|
||||
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_audio_track_title">Sakrij meni „Audio snimak”</string>
|
||||
<string name="revanced_hide_player_flyout_audio_track_summary_on">Meni „Audio snimak” je skriven</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Датум израде APK-а је оштећен</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Упозорење</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced обавештење</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Ваша историја гледања се не чува.<br><br>Ово је највероватније узроковано DNS блокатором огласа или мрежним проксијем.<br><br>Да бисте ово поправили, ставите на белу листу <b>s.youtube.com</b> или искључите све DNS блокаторе и проксије.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Не приказуј поново</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Подешавања</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Желите ли заиста да наставите?</string>
|
||||
<string name="revanced_settings_save">Сачувај</string>
|
||||
<string name="revanced_settings_reset">Ресетуј</string>
|
||||
<string name="revanced_settings_reset_color">Ресетуј боју</string>
|
||||
<string name="revanced_settings_color_invalid">Неважећа боја</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Избриши евиденције отклањања грешака</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Брише све сачуване евиденције отклањања грешака ReVanced-а</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Евиденције су избрисане</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager ознака функција</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Управљај буловским ознакама функција</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Активне заставице (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Блокиране заставице (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Претражи заставице...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Заставице сачуване</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Заставице ресетоване</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Заставице копиране у оставу</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Очисти дељене линкове</string>
|
||||
@@ -328,7 +337,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_title">Сакриј одељак „Како је направљен овај садржај”</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_on">Одељак „Како је направљен овај садржај” је скривен</string>
|
||||
<string name="revanced_hide_how_this_was_made_section_summary_off">Одељак „Како је направљен овај садржај” је приказан</string>
|
||||
<string name="revanced_hide_hype_points_title">Сакриј Хајп поене</string>
|
||||
<string name="revanced_hide_hype_points_title">Сакриј хајп поене</string>
|
||||
<string name="revanced_hide_hype_points_summary_on">Хајп поени су скривени</string>
|
||||
<string name="revanced_hide_hype_points_summary_off">Хајп поени су приказани</string>
|
||||
<string name="revanced_hide_podcast_section_title">Сакриј одељак „Истражите подкаст”</string>
|
||||
@@ -779,9 +788,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_on">Дугме „Закључај екран” је скривено</string>
|
||||
<string name="revanced_hide_player_flyout_lock_screen_summary_off">Дугме „Закључај екран” је приказано</string>
|
||||
<!-- 'Listen with YouTube Music' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">Сакриј „Слушај помоћу YouTube музике“</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_on">Мени „Слушај помоћу YouTube музике“ је скривен</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_off">Мени „Слушај помоћу YouTube музике“ је приказан</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_title">Сакриј мени „Слушајте на YouTube Music-у”</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_on">Мени „Слушајте на YouTube Music-у” је скривен</string>
|
||||
<string name="revanced_hide_player_flyout_listen_with_youtube_music_summary_off">Мени „Слушајте на YouTube Music-у” је приказан</string>
|
||||
<!-- 'Audio track' should be translated using the same localized wording YouTube displays for the menu item. -->
|
||||
<string name="revanced_hide_player_flyout_audio_track_title">Сакриј мени „Аудио снимак”</string>
|
||||
<string name="revanced_hide_player_flyout_audio_track_summary_on">Мени „Аудио снимак” је скривен</string>
|
||||
|
||||
@@ -26,7 +26,7 @@ Second \"item\" text"</string>
|
||||
<!-- Translations of this should be identical to revanced_custom_branding_icon_entry_5 -->
|
||||
<string name="revanced_custom_branding_name_entry_5">Anpassad</string>
|
||||
<string name="revanced_custom_branding_icon_title">Appikon</string>
|
||||
<string name="revanced_custom_branding_icon_entry_1">Original</string>
|
||||
<string name="revanced_custom_branding_icon_entry_1">Ursprunglig</string>
|
||||
<!-- Translation of this should be identical to revanced_header_logo_entry_5 -->
|
||||
<string name="revanced_custom_branding_icon_entry_3">ReVanced minimalistisk</string>
|
||||
<string name="revanced_custom_branding_icon_entry_4">ReVanced skalad</string>
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Byggdatum för APK är skadat</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Varning</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced-meddelande</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Din visningshistorik sparas inte.<br><br>Detta orsakas troligen av en DNS-annonsblockerare eller nätverksproxy.<br><br>För att åtgärda detta, vitlista <b>s.youtube.com</b> eller stäng av alla DNS-blockerare och proxyer.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Visa inte igen</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Inställningar</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Är du säker på att du vill fortsätta?</string>
|
||||
<string name="revanced_settings_save">Spara</string>
|
||||
<string name="revanced_settings_reset">Återställ</string>
|
||||
<string name="revanced_settings_reset_color">Återställ färg</string>
|
||||
<string name="revanced_settings_color_invalid">Ogiltig färg</string>
|
||||
@@ -164,6 +165,14 @@ Du kommer inte att bli meddelad om oväntade händelser."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Rensa felsökningsloggar</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Rensar alla lagrade ReVanced-felsökningsloggar</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Loggar rensade</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Funktionsflaggor Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Hantera booleska funktionsflaggor</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktiva flaggor (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blockerade flaggor (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Sök efter flaggor...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flaggor sparade</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flaggor återställda</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flaggor kopierade till urklipp</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Rensa delningslänkar</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">วันที่สร้าง APK เสียหาย</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">คำเตือน</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ประกาศ ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">ประวัติการรับชมของคุณไม่ได้ถูกบันทึก<br><br>สาเหตุที่เป็นไปได้มากที่สุดคือตัวบล็อกโฆษณา DNS หรือพร็อกซีเครือข่าย<br><br>เพื่อแก้ไขปัญหานี้ ให้เพิ่ม <b>s.youtube.com</b> ในรายการที่อนุญาต หรือปิดตัวบล็อกโฆษณา DNS และพร็อกซีทั้งหมด</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">อย่าแสดงอีก</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">การตั้งค่า</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ</string>
|
||||
<string name="revanced_settings_save">บันทึก</string>
|
||||
<string name="revanced_settings_reset">รีเซ็ต</string>
|
||||
<string name="revanced_settings_reset_color">รีเซ็ตสี</string>
|
||||
<string name="revanced_settings_color_invalid">สีไม่ถูกต้อง</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">ล้างบันทึกการแก้ไขข้อบกพร่อง</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">ล้างบันทึกการแก้ไขข้อบกพร่องของ ReVanced ที่จัดเก็บไว้ทั้งหมด</string>
|
||||
<string name="revanced_debug_logs_clear_toast">ล้างบันทึกแล้ว</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">แฟล็กคุณสมบัติ Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">จัดการแฟล็กคุณสมบัติบูลีน</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">แฟล็กที่ใช้งานอยู่ (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">แฟล็กที่ถูกบล็อก (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">ค้นหาแฟล็ก...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">บันทึกแฟล็กแล้ว</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">รีเซ็ตแฟล็กแล้ว</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">คัดลอกแฟล็กไปยังคลิปบอร์ดแล้ว</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">ล้างข้อมูลลิงก์ที่แชร์</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK derleme tarihi bozuk</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Uyarı</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced Bildirimi</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">İzleme geçmişiniz kaydedilmiyor.<br><br>Bu büyük ihtimalle bir reklam engelleyici DNS\'den veya proxy\'den kaynaklanıyor.<br><br>Bunu düzeltmek için, <b>s.youtube.com</b> adresini beyaz listeye ekleyin veya bütün engelleyici DNSleri ve proxy\'leri kapatın.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Bir daha gösterme</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Ayarlar</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Devam etmek istediğinizden emin misiniz?</string>
|
||||
<string name="revanced_settings_save">Kaydet</string>
|
||||
<string name="revanced_settings_reset">Sıfırla</string>
|
||||
<string name="revanced_settings_reset_color">Rengi sıfırla</string>
|
||||
<string name="revanced_settings_color_invalid">Geçersiz renk</string>
|
||||
@@ -164,6 +165,14 @@ Beklenmedik olaylar hakkında bilgilendirilmeyeceksiniz."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Hata ayıklama kayıtlarını temizle</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Kaydedilmiş tüm ReVanced hata ayıklama kayıtlarını temizler</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Kayıtlar temizlendi</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Özellik bayrakları Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Boole özellik bayraklarını yönet</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Aktif bayraklar (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Engellenen bayraklar (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Bayrakları ara...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Bayraklar kaydedildi</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Bayraklar sıfırlandı</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Bayraklar panoya kopyalandı</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Paylaşım bağlantılarını temizle</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Дата збірки APK пошкоджена</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Увага</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Повідомлення ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Ваша історія переглядів не зберігається.<br><br>Швидше за все, це спричинено блокувальником реклами DNS або мережевим проксі.<br><br>Щоб це виправити, додайте <b>s.youtube.com</b> у білий список блокувальника або вимкніть усі DNS блокувальники та проксі.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Більше не показувати</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Налаштування</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Ви впевнені, що хочете продовжити?</string>
|
||||
<string name="revanced_settings_save">Зберегти</string>
|
||||
<string name="revanced_settings_reset">Скинути</string>
|
||||
<string name="revanced_settings_reset_color">Скинути колір</string>
|
||||
<string name="revanced_settings_color_invalid">Недійсний колір</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Очистити журнали налагодження</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Очищує всі збережені журнали налагодження ReVanced</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Журнали очищено</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Функціональні прапорці Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Керувати логічними функціональними прапорцями</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Активні прапорці (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Заблоковані прапорці (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Пошук прапорців...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Прапорці збережено</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Прапорці скинуто</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Прапорці скопійовано до буфера обміну</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Очищення посилань для поширення</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">Ngày dựng APK bị hỏng</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Cảnh báo</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">Thông báo ReVanced</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">Nhật ký xem của bạn hiện không được lưu lại.<br><br>Nguyên nhân có thể là do trình chặn quảng cáo DNS hoặc proxy mạng.<br><br>Để khắc phục, hãy thêm <b>s.youtube.com</b> vào danh sách cho phép, hoặc tắt tất cả trình chặn DNS và proxy.</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">Không hiện lại</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">Thiết lập</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Bạn có chắc chắn muốn tiếp tục không?</string>
|
||||
<string name="revanced_settings_save">Lưu</string>
|
||||
<string name="revanced_settings_reset">Đặt lại</string>
|
||||
<string name="revanced_settings_reset_color">Đặt lại màu</string>
|
||||
<string name="revanced_settings_color_invalid">Màu không hợp lệ</string>
|
||||
@@ -164,6 +165,14 @@ Bạn sẽ không được thông báo khi xẩy ra lỗi bất ngờ."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Xóa nhật ký gỡ lỗi</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Xóa tất cả nhật ký gỡ lỗi ReVanced đã lưu trữ</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Đã xóa nhật ký</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Manager cờ tính năng</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Quản lý các cờ tính năng boolean</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Cờ đang hoạt động (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Cờ bị chặn (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Tìm kiếm cờ...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Đã lưu cờ</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Đã đặt lại cờ</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Đã sao chép cờ vào bảng nhớ tạm</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Rút gọn liên kết chia sẻ</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK 构建日期已损坏</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">警告</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced 通知</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">您的观看历史记录未保存。<br><br>这很可能是由 DNS 广告拦截器或网络代理造成的。<br><br>要解决此问题,请将 <b>s.youtube.com</b> 添加到白名单或关闭所有 DNS 广告拦截器和代理。</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">不再显示</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">设置</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">确定要继续吗?</string>
|
||||
<string name="revanced_settings_save">保存</string>
|
||||
<string name="revanced_settings_reset">重置</string>
|
||||
<string name="revanced_settings_reset_color">重置颜色</string>
|
||||
<string name="revanced_settings_color_invalid">无效的颜色</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">清除调试日志</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">清除所有存储的 ReVanced 调试日志</string>
|
||||
<string name="revanced_debug_logs_clear_toast">日志已清除</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">功能标志 Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">管理布尔功能标志</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">活动标志 (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">已阻止标志 (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">搜索标志...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">标志已保存</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">标志已重置</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">标志已复制到剪贴板</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">净化分享链接</string>
|
||||
|
||||
@@ -45,13 +45,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_check_environment_not_near_patch_time_invalid">APK 建構日期已損毀</string>
|
||||
</patch>
|
||||
<patch id="misc.dns.checkWatchHistoryDomainNameResolutionPatch">
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">警告</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_title">ReVanced 通知</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_message">你的觀看記錄未被儲存。<br><br>這很可能是由於 DNS 廣告封鎖器或網路代理所導致。<br><br>若要解決此問題,請將 <b>s.youtube.com</b> 加入白名單,或關閉所有 DNS 封鎖器和代理。</string>
|
||||
<string name="revanced_check_watch_history_domain_name_dialog_ignore">不再顯示</string>
|
||||
</patch>
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string name="revanced_settings_submenu_title">設定</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">你確定要繼續嗎?</string>
|
||||
<string name="revanced_settings_save">儲存</string>
|
||||
<string name="revanced_settings_reset">重設</string>
|
||||
<string name="revanced_settings_reset_color">重設顏色</string>
|
||||
<string name="revanced_settings_color_invalid">無效的顏色</string>
|
||||
@@ -164,6 +165,14 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">清除偵錯記錄</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">清除所有儲存的 ReVanced 偵錯記錄</string>
|
||||
<string name="revanced_debug_logs_clear_toast">記錄已清除</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">功能旗標 Manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">管理布林功能旗標</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">啟用的旗標 (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">已封鎖的旗標 (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">搜尋旗標...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">旗標已儲存</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">旗標已重設</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">旗標已複製到剪貼簿</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">清理分享連結</string>
|
||||
|
||||
@@ -31,72 +31,93 @@
|
||||
<patch id="misc.settings.settingsResourcePatch">
|
||||
<string-array name="revanced_language_entries">
|
||||
<item>@string/revanced_language_DEFAULT</item>
|
||||
<item>@string/revanced_language_AM</item>
|
||||
<item>@string/revanced_language_AR</item>
|
||||
<item>@string/revanced_language_AZ</item>
|
||||
<item>@string/revanced_language_BE</item>
|
||||
<item>@string/revanced_language_BG</item>
|
||||
<item>@string/revanced_language_BN</item>
|
||||
<item>@string/revanced_language_CA</item>
|
||||
<item>@string/revanced_language_CS</item>
|
||||
<item>@string/revanced_language_DA</item>
|
||||
<item>@string/revanced_language_DE</item>
|
||||
<item>@string/revanced_language_EL</item>
|
||||
<item>@string/revanced_language_EN</item>
|
||||
<item>@string/revanced_language_ES</item>
|
||||
<item>@string/revanced_language_ET</item>
|
||||
<item>@string/revanced_language_FA</item>
|
||||
<item>@string/revanced_language_FI</item>
|
||||
<item>@string/revanced_language_FR</item>
|
||||
<item>@string/revanced_language_GA</item>
|
||||
<item>@string/revanced_language_GU</item>
|
||||
<item>@string/revanced_language_HE</item>
|
||||
<item>@string/revanced_language_HI</item>
|
||||
<item>@string/revanced_language_HR</item>
|
||||
<item>@string/revanced_language_HU</item>
|
||||
<item>@string/revanced_language_ID</item>
|
||||
<item>@string/revanced_language_IT</item>
|
||||
<item>@string/revanced_language_JA</item>
|
||||
<item>@string/revanced_language_KK</item>
|
||||
<item>@string/revanced_language_KO</item>
|
||||
<item>@string/revanced_language_LT</item>
|
||||
<item>@string/revanced_language_LV</item>
|
||||
<item>@string/revanced_language_MK</item>
|
||||
<item>@string/revanced_language_MN</item>
|
||||
<item>@string/revanced_language_MR</item>
|
||||
<item>@string/revanced_language_MS</item>
|
||||
<item>@string/revanced_language_MY</item>
|
||||
<item>@string/revanced_language_NL</item>
|
||||
<item>@string/revanced_language_OR</item>
|
||||
<item>@string/revanced_language_PA</item>
|
||||
<item>@string/revanced_language_PL</item>
|
||||
<item>@string/revanced_language_PT</item>
|
||||
<item>@string/revanced_language_RO</item>
|
||||
<item>@string/revanced_language_RU</item>
|
||||
<item>@string/revanced_language_SK</item>
|
||||
<item>@string/revanced_language_SQ</item>
|
||||
<item>@string/revanced_language_SL</item>
|
||||
<item>@string/revanced_language_SR</item>
|
||||
<item>@string/revanced_language_SV</item>
|
||||
<item>@string/revanced_language_SW</item>
|
||||
<item>@string/revanced_language_TA</item>
|
||||
<item>@string/revanced_language_TE</item>
|
||||
<item>@string/revanced_language_TH</item>
|
||||
<item>@string/revanced_language_TR</item>
|
||||
<item>@string/revanced_language_UK</item>
|
||||
<item>@string/revanced_language_UR</item>
|
||||
<item>@string/revanced_language_VI</item>
|
||||
<item>@string/revanced_language_ZH</item>
|
||||
<item>Afrikaans</item>
|
||||
<item>አማርኛ</item>
|
||||
<item>العربية</item>
|
||||
<item>অসমীয়া</item>
|
||||
<item>Azərbaycanca</item>
|
||||
<item>Беларуская</item>
|
||||
<item>Български</item>
|
||||
<item>বাংলা</item>
|
||||
<item>Bosanski</item>
|
||||
<item>Català</item>
|
||||
<item>Čeština</item>
|
||||
<item>Dansk</item>
|
||||
<item>Deutsch</item>
|
||||
<item>Ελληνικά</item>
|
||||
<item>English</item>
|
||||
<item>Español</item>
|
||||
<item>Eesti</item>
|
||||
<item>Euskara</item>
|
||||
<item>فارسی</item>
|
||||
<item>Suomi</item>
|
||||
<item>Français</item>
|
||||
<item>Gaeilge</item>
|
||||
<item>Galego</item>
|
||||
<item>ગુજરાતી</item>
|
||||
<item>עברית</item>
|
||||
<item>हिन्दी</item>
|
||||
<item>Hrvatski</item>
|
||||
<item>Magyar</item>
|
||||
<item>Հայերեն</item>
|
||||
<item>Bahasa Indonesia</item>
|
||||
<item>Íslenska</item>
|
||||
<item>Italiano</item>
|
||||
<item>日本語</item>
|
||||
<item>ქართული</item>
|
||||
<item>Қазақ тілі</item>
|
||||
<item>ភាសាខ្មែរ</item>
|
||||
<item>ಕನ್ನಡ</item>
|
||||
<item>한국어</item>
|
||||
<item>Кыргызча</item>
|
||||
<item>ລາວ</item>
|
||||
<item>Lietuvių</item>
|
||||
<item>Latviešu</item>
|
||||
<item>Македонски</item>
|
||||
<item>മലയാളം</item>
|
||||
<item>Монгол</item>
|
||||
<item>मराठी</item>
|
||||
<item>Bahasa Melayu</item>
|
||||
<item>မြန်မာစာ</item>
|
||||
<item>Norsk bokmål</item>
|
||||
<item>नेपाली</item>
|
||||
<item>Nederlands</item>
|
||||
<item>ଓଡ଼ିଆ</item>
|
||||
<item>ਪੰਜਾਬੀ</item>
|
||||
<item>Polski</item>
|
||||
<item>Português</item>
|
||||
<item>Română</item>
|
||||
<item>Русский</item>
|
||||
<item>සිංහල</item>
|
||||
<item>Slovenčina</item>
|
||||
<item>Slovenščina</item>
|
||||
<item>Shqip</item>
|
||||
<item>Српски</item>
|
||||
<item>Svenska</item>
|
||||
<item>Kiswahili</item>
|
||||
<item>தமிழ்</item>
|
||||
<item>తెలుగు</item>
|
||||
<item>ไทย</item>
|
||||
<item>Tagalog</item>
|
||||
<item>Türkçe</item>
|
||||
<item>Українська</item>
|
||||
<item>اردو</item>
|
||||
<item>Oʻzbekcha</item>
|
||||
<item>Tiếng Việt</item>
|
||||
<item>中文</item>
|
||||
<item>isiZulu</item>
|
||||
</string-array>
|
||||
<string-array name="revanced_language_entry_values">
|
||||
<!-- Extension enum names. -->
|
||||
<item>DEFAULT</item>
|
||||
<item>AF</item>
|
||||
<item>AM</item>
|
||||
<item>AR</item>
|
||||
<item>AS</item>
|
||||
<item>AZ</item>
|
||||
<item>BE</item>
|
||||
<item>BG</item>
|
||||
<item>BN</item>
|
||||
<item>BS</item>
|
||||
<item>CA</item>
|
||||
<item>CS</item>
|
||||
<item>DA</item>
|
||||
@@ -105,27 +126,39 @@
|
||||
<item>EN</item>
|
||||
<item>ES</item>
|
||||
<item>ET</item>
|
||||
<item>EU</item>
|
||||
<item>FA</item>
|
||||
<item>FI</item>
|
||||
<item>FR</item>
|
||||
<item>GA</item>
|
||||
<item>GL</item>
|
||||
<item>GU</item>
|
||||
<item>HE</item>
|
||||
<item>HI</item>
|
||||
<item>HR</item>
|
||||
<item>HU</item>
|
||||
<item>HY</item>
|
||||
<item>ID</item>
|
||||
<item>IS</item>
|
||||
<item>IT</item>
|
||||
<item>JA</item>
|
||||
<item>KA</item>
|
||||
<item>KK</item>
|
||||
<item>KM</item>
|
||||
<item>KN</item>
|
||||
<item>KO</item>
|
||||
<item>KY</item>
|
||||
<item>LO</item>
|
||||
<item>LT</item>
|
||||
<item>LV</item>
|
||||
<item>MK</item>
|
||||
<item>ML</item>
|
||||
<item>MN</item>
|
||||
<item>MR</item>
|
||||
<item>MS</item>
|
||||
<item>MY</item>
|
||||
<item>NB</item>
|
||||
<item>NE</item>
|
||||
<item>NL</item>
|
||||
<item>OR</item>
|
||||
<item>PA</item>
|
||||
@@ -133,20 +166,24 @@
|
||||
<item>PT</item>
|
||||
<item>RO</item>
|
||||
<item>RU</item>
|
||||
<item>SI</item>
|
||||
<item>SK</item>
|
||||
<item>SQ</item>
|
||||
<item>SL</item>
|
||||
<item>SQ</item>
|
||||
<item>SR</item>
|
||||
<item>SV</item>
|
||||
<item>SW</item>
|
||||
<item>TA</item>
|
||||
<item>TE</item>
|
||||
<item>TH</item>
|
||||
<item>TL</item>
|
||||
<item>TR</item>
|
||||
<item>UK</item>
|
||||
<item>UR</item>
|
||||
<item>UZ</item>
|
||||
<item>VI</item>
|
||||
<item>ZH</item>
|
||||
<item>ZU</item>
|
||||
</string-array>
|
||||
</patch>
|
||||
</app>
|
||||
|
||||
@@ -53,6 +53,7 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_submenu_title">Settings</string>
|
||||
<string name="revanced_settings_title" translatable="false">ReVanced</string>
|
||||
<string name="revanced_settings_confirm_user_dialog_title">Are you sure you want to proceed?</string>
|
||||
<string name="revanced_settings_save">Save</string>
|
||||
<string name="revanced_settings_reset">Reset</string>
|
||||
<string name="revanced_settings_reset_color">Reset color</string>
|
||||
<string name="revanced_settings_color_invalid">Invalid color</string>
|
||||
@@ -90,62 +91,6 @@ Second \"item\" text"</string>
|
||||
|
||||
To translate new languages or improve the existing translations, visit translate.revanced.app"</string>
|
||||
<string name="revanced_language_DEFAULT">App language</string>
|
||||
<string name="revanced_language_AM" translatable="false">አማርኛ</string>
|
||||
<string name="revanced_language_AR" translatable="false">العربية</string>
|
||||
<string name="revanced_language_AZ" translatable="false">Azərbaycan</string>
|
||||
<string name="revanced_language_BE" translatable="false">беларуская</string>
|
||||
<string name="revanced_language_BG" translatable="false">Български</string>
|
||||
<string name="revanced_language_BN" translatable="false">বাংলা</string>
|
||||
<string name="revanced_language_CA" translatable="false">Català</string>
|
||||
<string name="revanced_language_CS" translatable="false">Čeština</string>
|
||||
<string name="revanced_language_DA" translatable="false">Dansk</string>
|
||||
<string name="revanced_language_DE" translatable="false">Deutsch</string>
|
||||
<string name="revanced_language_EL" translatable="false">Ελληνικά</string>s
|
||||
<string name="revanced_language_EN" translatable="false">English</string>
|
||||
<string name="revanced_language_ES" translatable="false">Español</string>
|
||||
<string name="revanced_language_ET" translatable="false">Eesti</string>
|
||||
<string name="revanced_language_FA" translatable="false">فارسی</string>
|
||||
<string name="revanced_language_FI" translatable="false">Suomi</string>
|
||||
<string name="revanced_language_FR" translatable="false">Français</string>
|
||||
<string name="revanced_language_GA" translatable="false">Gaeilge</string>
|
||||
<string name="revanced_language_GU" translatable="false">ગુજરાતી</string>
|
||||
<string name="revanced_language_HE" translatable="false">עברי</string>
|
||||
<string name="revanced_language_HI" translatable="false">हिन्दी</string>
|
||||
<string name="revanced_language_HR" translatable="false">Hrvatski</string>
|
||||
<string name="revanced_language_HU" translatable="false">Magyar</string>
|
||||
<string name="revanced_language_ID" translatable="false">Indonesia</string>
|
||||
<string name="revanced_language_IT" translatable="false">Italiano</string>
|
||||
<string name="revanced_language_JA" translatable="false">日本語</string>
|
||||
<string name="revanced_language_KK" translatable="false">Қазақ тілі</string>
|
||||
<string name="revanced_language_KO" translatable="false">한국어</string>
|
||||
<string name="revanced_language_LT" translatable="false">Lietuvių</string>
|
||||
<string name="revanced_language_LV" translatable="false">Latviešu</string>
|
||||
<string name="revanced_language_MK" translatable="false">Македонски</string>
|
||||
<string name="revanced_language_MN" translatable="false">Монгол</string>
|
||||
<string name="revanced_language_MR" translatable="false">मराठी</string>
|
||||
<string name="revanced_language_MS" translatable="false">Melayu</string>
|
||||
<string name="revanced_language_MY" translatable="false">ဗမာ</string>
|
||||
<string name="revanced_language_NL" translatable="false">Nederlands</string>
|
||||
<string name="revanced_language_OR" translatable="false">ଓଡ଼ିଆ</string>
|
||||
<string name="revanced_language_PA" translatable="false">ਪੰਜਾਬੀ</string>
|
||||
<string name="revanced_language_PL" translatable="false">Polski</string>
|
||||
<string name="revanced_language_PT" translatable="false">Português</string>
|
||||
<string name="revanced_language_RO" translatable="false">Română</string>
|
||||
<string name="revanced_language_RU" translatable="false">Русский</string>
|
||||
<string name="revanced_language_SK" translatable="false">Slovenčina</string>
|
||||
<string name="revanced_language_SQ" translatable="false">Shqip</string>
|
||||
<string name="revanced_language_SL" translatable="false">Slovenščina</string>
|
||||
<string name="revanced_language_SR" translatable="false">Српски</string>
|
||||
<string name="revanced_language_SV" translatable="false">Svenska</string>
|
||||
<string name="revanced_language_SW" translatable="false">Kiswahili</string>
|
||||
<string name="revanced_language_TA" translatable="false">தமிழ்</string>
|
||||
<string name="revanced_language_TE" translatable="false">తెలుగు</string>
|
||||
<string name="revanced_language_TH" translatable="false">ไทย</string>
|
||||
<string name="revanced_language_TR" translatable="false">Türkçe</string>
|
||||
<string name="revanced_language_UK" translatable="false">Українська</string>
|
||||
<string name="revanced_language_UR" translatable="false">اردو</string>
|
||||
<string name="revanced_language_VI" translatable="false">Tiếng Việt</string>
|
||||
<string name="revanced_language_ZH" translatable="false">中文</string>
|
||||
<string name="revanced_pref_import_export_title">Import / Export</string>
|
||||
<string name="revanced_pref_import_export_summary">Import / Export ReVanced settings</string>
|
||||
<!-- Settings about dialog. -->
|
||||
@@ -221,6 +166,14 @@ You will not be notified of any unexpected events."</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_title">Clear debug logs</string>
|
||||
<string name="revanced_debug_logs_clear_buffer_summary">Clears all stored ReVanced debug logs</string>
|
||||
<string name="revanced_debug_logs_clear_toast">Logs cleared</string>
|
||||
<string name="revanced_debug_feature_flags_manager_title">Feature flags manager</string>
|
||||
<string name="revanced_debug_feature_flags_manager_summary">Manage boolean feature flags</string>
|
||||
<string name="revanced_debug_feature_flags_manager_active_header">Active flags (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_blocked_header">Blocked flags (%d)</string>
|
||||
<string name="revanced_debug_feature_flags_manager_search_hint">Search flags...</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_saved">Flags saved</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_reset">Flags reset</string>
|
||||
<string name="revanced_debug_feature_flags_manager_toast_copied">Flags copied to clipboard</string>
|
||||
</patch>
|
||||
<patch id="misc.privacy.sanitizeSharingLinksPatch">
|
||||
<string name="revanced_sanitize_sharing_links_title">Sanitize sharing links</string>
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/keyboard_double_arrow_left/materialsymbolsoutlined/keyboard_double_arrow_left_wght200_24px.xml
|
||||
Changes made: Added custom stroke.
|
||||
|
||||
Copyright 2022 Google
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M11.25,17.3086 L5.94141,12 L11.25,6.69141 L11.957,7.39844 L7.36328,12 L11.957,16.6016 Z M17.3516,17.3086 L12.043,12 L17.3516,6.69141 L18.0586,7.39844 L13.4648,12 L18.0586,16.6016 Z M17.3516,17.3086" />
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M1.80859,23.8086 C0.875313,23.8086,0.1914,23.1246,0.1914,22.1914 L0.191402,1.80859 C0.191402,0.875317,0.875368,0.19141,1.80859,0.19141 L22.1914,0.19141 C23.1247,0.19141,23.8086,0.875376,23.8086,1.80859 L23.8086,22.1914 C23.8086,23.1247,23.1246,23.8086,22.1914,23.8086 Z M1.80859,22.8086 L22.1914,22.8086 C22.5552,22.8086,22.8086,22.5552,22.8086,22.1914 L22.8086,1.80859 C22.8086,1.44477,22.5552,1.19141,22.1914,1.19141 L1.80859,1.19141 C1.44477,1.19141,1.19141,1.4448,1.19141,1.8086 L1.19141,22.1914 C1.19141,22.5552,1.4448,22.8086,1.8086,22.8086 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,31 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/keyboard_arrow_left/materialsymbolsoutlined/keyboard_arrow_left_wght200_24px.xml
|
||||
|
||||
Copyright 2022 Google
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M14,17.3086 L8.69141,12 L14,6.69141 L14.707,7.39844 L10.1094,12 L14.707,16.6016 Z M14,17.3086" />
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M1.80859,23.8086 C0.875313,23.8086,0.1914,23.1246,0.1914,22.1914 L0.191402,1.80859 C0.191402,0.875317,0.875368,0.19141,1.80859,0.19141 L22.1914,0.19141 C23.1247,0.19141,23.8086,0.875376,23.8086,1.80859 L23.8086,22.1914 C23.8086,23.1247,23.1246,23.8086,22.1914,23.8086 Z M1.80859,22.8086 L22.1914,22.8086 C22.5552,22.8086,22.8086,22.5552,22.8086,22.1914 L22.8086,1.80859 C22.8086,1.44477,22.5552,1.19141,22.1914,1.19141 L1.80859,1.19141 C1.44477,1.19141,1.19141,1.4448,1.19141,1.8086 L1.19141,22.1914 C1.19141,22.5552,1.4448,22.8086,1.8086,22.8086 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,32 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/keyboard_double_arrow_right/materialsymbolsoutlined/keyboard_double_arrow_right_wght200_24px.xml
|
||||
Changes made: Added custom stroke.
|
||||
|
||||
Copyright 2022 Google
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M10.5352,12 L5.94141,7.39844 L6.64844,6.69141 L11.957,12 L6.64844,17.3086 L5.94141,16.6016 Z M16.6367,12 L12.043,7.39844 L12.75,6.69141 L18.0586,12 L12.75,17.3086 L12.043,16.6016 Z M16.6367,12" />
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M1.80859,23.8086 C0.875313,23.8086,0.1914,23.1246,0.1914,22.1914 L0.191402,1.80859 C0.191402,0.875317,0.875368,0.19141,1.80859,0.19141 L22.1914,0.19141 C23.1247,0.19141,23.8086,0.875376,23.8086,1.80859 L23.8086,22.1914 C23.8086,23.1247,23.1246,23.8086,22.1914,23.8086 Z M1.80859,22.8086 L22.1914,22.8086 C22.5552,22.8086,22.8086,22.5552,22.8086,22.1914 L22.8086,1.80859 C22.8086,1.44477,22.5552,1.19141,22.1914,1.19141 L1.80859,1.19141 C1.44477,1.19141,1.19141,1.4448,1.19141,1.8086 L1.19141,22.1914 C1.19141,22.5552,1.4448,22.8086,1.8086,22.8086 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,31 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/keyboard_arrow_right/materialsymbolsoutlined/keyboard_arrow_right_wght200_24px.xml
|
||||
|
||||
Copyright 2022 Google
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M13.293,12 L8.69141,7.39844 L9.39844,6.69141 L14.707,12 L9.39844,17.3086 L8.69141,16.6016 Z M13.293,12" />
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M1.80859,23.8086 C0.875313,23.8086,0.1914,23.1246,0.1914,22.1914 L0.191402,1.80859 C0.191402,0.875317,0.875368,0.19141,1.80859,0.19141 L22.1914,0.19141 C23.1247,0.19141,23.8086,0.875376,23.8086,1.80859 L23.8086,22.1914 C23.8086,23.1247,23.1246,23.8086,22.1914,23.8086 Z M1.80859,22.8086 L22.1914,22.8086 C22.5552,22.8086,22.8086,22.5552,22.8086,22.1914 L22.8086,1.80859 C22.8086,1.44477,22.5552,1.19141,22.1914,1.19141 L1.80859,1.19141 C1.44477,1.19141,1.19141,1.4448,1.19141,1.8086 L1.19141,22.1914 C1.19141,22.5552,1.4448,22.8086,1.8086,22.8086 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,28 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/copy_all/materialsymbolsoutlined/copy_all_wght200_24px.xml
|
||||
|
||||
Copyright 2022 Google
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M4,17.4219 L4,16.1914 L5.23047,16.1914 L5.23047,17.4219 Z M4,13.8477 L4,12.6172 L5.23047,12.6172 L5.23047,13.8477 Z M4,10.2695 L4,9.03906 L5.23047,9.03906 L5.23047,10.2695 Z M7.57813,21 L7.57813,19.7695 L8.80859,19.7695 L8.80859,21 Z M9.30859,17.3086 C8.84766,17.3086,8.46484,17.1523,8.15625,16.8438 C7.84766,16.5352,7.69141,16.1523,7.69141,15.6914 L7.69141,4.61719 C7.69141,4.15625,7.84766,3.76953,8.15625,3.46094 C8.46484,3.15234,8.84766,3,9.30859,3 L17.3828,3 C17.8438,3,18.2305,3.15234,18.5391,3.46094 C18.8477,3.76953,19,4.15625,19,4.61719 L19,15.6914 C19,16.1523,18.8477,16.5352,18.5391,16.8438 C18.2305,17.1523,17.8438,17.3086,17.3828,17.3086 Z M9.30859,16.3086 L17.3828,16.3086 C17.5391,16.3086,17.6797,16.2422,17.8086,16.1172 C17.9375,15.9883,18,15.8477,18,15.6914 L18,4.61719 C18,4.46094,17.9375,4.32031,17.8086,4.19141 C17.6797,4.0625,17.5391,4,17.3828,4 L9.30859,4 C9.15234,4,9.01172,4.0625,8.88281,4.19141 C8.75781,4.32031,8.69141,4.46094,8.69141,4.61719 L8.69141,15.6914 C8.69141,15.8477,8.75781,15.9883,8.88281,16.1172 C9.01172,16.2422,9.15234,16.3086,9.30859,16.3086 Z M11.1523,21 L11.1523,19.7695 L12.3828,19.7695 L12.3828,21 Z M5.23047,21 C4.89063,21,4.60156,20.8789,4.36328,20.6367 C4.12109,20.3984,4,20.1094,4,19.7695 L5.23047,19.7695 Z M14.7305,21 L14.7305,19.7695 L15.9609,19.7695 C15.9609,20.1133,15.8398,20.4063,15.6016,20.6445 C15.3594,20.8828,15.0703,21,14.7305,21 Z M4,6.69141 C4,6.35547,4.12109,6.0625,4.36328,5.82422 C4.60156,5.58203,4.89063,5.46094,5.23047,5.46094 L5.23047,6.69141 Z M13.3477,10.1523 Z M13.3477,10.1523" />
|
||||
</vector>
|
||||
@@ -0,0 +1,28 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/deselect/materialsymbolsoutlined/deselect_wght200_24px.xml
|
||||
|
||||
Copyright 2022 Google
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M19.832,21.2539 L14.8867,16.3086 L7.69141,16.3086 L7.69141,9.11328 L2.74609,4.16797 L3.45313,3.45313 L20.5469,20.5469 Z M8.69141,15.3086 L13.8867,15.3086 L8.69141,10.1133 Z M16.3086,13.4844 L15.3086,12.4844 L15.3086,8.69141 L11.5156,8.69141 L10.5156,7.69141 L16.3086,7.69141 Z M5.23047,18.7695 L5.23047,20 C4.89063,20,4.60156,19.8789,4.36328,19.6367 C4.12109,19.3984,4,19.1094,4,18.7695 Z M4,16.3086 L4,15.0781 L5.23047,15.0781 L5.23047,16.3086 Z M4,12.6172 L4,11.3828 L5.23047,11.3828 L5.23047,12.6172 Z M4,8.92188 L4,7.69141 L5.23047,7.69141 L5.23047,8.92188 Z M7.69141,20 L7.69141,18.7695 L8.92188,18.7695 L8.92188,20 Z M7.69141,5.23047 L7.69141,4 L8.92188,4 L8.92188,5.23047 Z M11.3828,20 L11.3828,18.7695 L12.6172,18.7695 L12.6172,20 Z M11.3828,5.23047 L11.3828,4 L12.6172,4 L12.6172,5.23047 Z M15.0781,20 L15.0781,18.7695 L16.3086,18.7695 L16.3086,20 Z M15.0781,5.23047 L15.0781,4 L16.3086,4 L16.3086,5.23047 Z M18.7695,16.3086 L18.7695,15.0781 L20,15.0781 L20,16.3086 Z M18.7695,12.6172 L18.7695,11.3828 L20,11.3828 L20,12.6172 Z M18.7695,8.92188 L18.7695,7.69141 L20,7.69141 L20,8.92188 Z M18.7695,5.23047 L18.7695,4 C19.1094,4,19.3984,4.12109,19.6367,4.36328 C19.8789,4.60156,20,4.89063,20,5.23047 Z M18.7695,5.23047" />
|
||||
</vector>
|
||||
@@ -0,0 +1,28 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/select_all/materialsymbolsoutlined/select_all_wght200_24px.xml
|
||||
|
||||
Copyright 2022 Google
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M7.69141,16.3086 L7.69141,7.69141 L16.3086,7.69141 L16.3086,16.3086 Z M8.69141,15.3086 L15.3086,15.3086 L15.3086,8.69141 L8.69141,8.69141 Z M5.23047,18.7695 L5.23047,20 C4.89063,20,4.60156,19.8789,4.36328,19.6367 C4.12109,19.3984,4,19.1094,4,18.7695 Z M4,16.3086 L4,15.0781 L5.23047,15.0781 L5.23047,16.3086 Z M4,12.6172 L4,11.3828 L5.23047,11.3828 L5.23047,12.6172 Z M4,8.92188 L4,7.69141 L5.23047,7.69141 L5.23047,8.92188 Z M5.23047,5.23047 L4,5.23047 C4,4.89063,4.12109,4.60156,4.36328,4.36328 C4.60156,4.12109,4.89063,4,5.23047,4 Z M7.69141,20 L7.69141,18.7695 L8.92188,18.7695 L8.92188,20 Z M7.69141,5.23047 L7.69141,4 L8.92188,4 L8.92188,5.23047 Z M11.3828,20 L11.3828,18.7695 L12.6172,18.7695 L12.6172,20 Z M11.3828,5.23047 L11.3828,4 L12.6172,4 L12.6172,5.23047 Z M15.0781,20 L15.0781,18.7695 L16.3086,18.7695 L16.3086,20 Z M15.0781,5.23047 L15.0781,4 L16.3086,4 L16.3086,5.23047 Z M18.7695,20 L18.7695,18.7695 L20,18.7695 C20,19.1133,19.8789,19.4063,19.6367,19.6445 C19.3984,19.8828,19.1094,20,18.7695,20 Z M18.7695,16.3086 L18.7695,15.0781 L20,15.0781 L20,16.3086 Z M18.7695,12.6172 L18.7695,11.3828 L20,11.3828 L20,12.6172 Z M18.7695,8.92188 L18.7695,7.69141 L20,7.69141 L20,8.92188 Z M18.7695,5.23047 L18.7695,4 C19.1094,4,19.3984,4.12109,19.6367,4.36328 C19.8789,4.60156,20,4.89063,20,5.23047 Z M18.7695,5.23047" />
|
||||
</vector>
|
||||
Reference in New Issue
Block a user