mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2026-01-24 11:11:03 +00:00
Add ReVanced bold icons
This commit is contained in:
@@ -25,6 +25,7 @@ public class BaseSettings {
|
||||
* Use the icons declared in the preferences created during patching. If no icons or styles are declared then this setting does nothing.
|
||||
*/
|
||||
public static final BooleanSetting SHOW_MENU_ICONS = new BooleanSetting("revanced_show_menu_icons", TRUE, true);
|
||||
public static final BooleanSetting SETTINGS_DISABLE_BOLD_ICONS = new BooleanSetting("revanced_settings_disable_bold_icons", TRUE, true, parent(SHOW_MENU_ICONS));
|
||||
|
||||
public static final BooleanSetting SETTINGS_SEARCH_HISTORY = new BooleanSetting("revanced_settings_search_history", TRUE, true);
|
||||
public static final StringSetting SETTINGS_SEARCH_ENTRIES = new StringSetting("revanced_settings_search_entries", "");
|
||||
|
||||
@@ -104,9 +104,15 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
|
||||
* so all app specific {@link Setting} instances are loaded before this method returns.
|
||||
*/
|
||||
protected void initialize() {
|
||||
String preferenceResourceName = BaseSettings.SHOW_MENU_ICONS.get()
|
||||
? "revanced_prefs_icons"
|
||||
: "revanced_prefs";
|
||||
String preferenceResourceName;
|
||||
if (BaseSettings.SHOW_MENU_ICONS.get()) {
|
||||
preferenceResourceName = BaseSettings.SETTINGS_DISABLE_BOLD_ICONS.get()
|
||||
? "revanced_prefs_icons"
|
||||
: "revanced_prefs_icons_bold";
|
||||
} else {
|
||||
preferenceResourceName = "revanced_prefs";
|
||||
}
|
||||
|
||||
final var identifier = Utils.getResourceIdentifier(ResourceType.XML, preferenceResourceName);
|
||||
if (identifier == 0) return;
|
||||
addPreferencesFromResource(identifier);
|
||||
|
||||
@@ -21,6 +21,7 @@ import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.ResourceType;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.settings.BaseActivityHook;
|
||||
import app.revanced.extension.shared.settings.BaseSettings;
|
||||
|
||||
@SuppressWarnings({"deprecation", "NewApi"})
|
||||
public class ToolbarPreferenceFragment extends AbstractPreferenceFragment {
|
||||
@@ -135,8 +136,10 @@ public class ToolbarPreferenceFragment extends AbstractPreferenceFragment {
|
||||
*/
|
||||
@SuppressLint("UseCompatLoadingForDrawables")
|
||||
public static Drawable getBackButtonDrawable() {
|
||||
final int backButtonResource = Utils.getResourceIdentifierOrThrow(
|
||||
ResourceType.DRAWABLE, "revanced_settings_toolbar_arrow_left");
|
||||
final int backButtonResource = Utils.getResourceIdentifierOrThrow(ResourceType.DRAWABLE,
|
||||
BaseSettings.SETTINGS_DISABLE_BOLD_ICONS.get()
|
||||
? "revanced_settings_toolbar_arrow_left"
|
||||
: "revanced_settings_toolbar_arrow_left_bold");
|
||||
Drawable drawable = Utils.getContext().getResources().getDrawable(backButtonResource);
|
||||
customizeBackButtonDrawable(drawable);
|
||||
return drawable;
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
package app.revanced.extension.shared.settings.search;
|
||||
|
||||
import static app.revanced.extension.shared.Utils.getResourceIdentifierOrThrow;
|
||||
import static app.revanced.extension.shared.settings.search.BaseSearchViewController.DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON;
|
||||
|
||||
import android.animation.AnimatorSet;
|
||||
import android.animation.ArgbEvaluator;
|
||||
@@ -276,7 +275,7 @@ public abstract class BaseSearchResultsAdapter extends ArrayAdapter<BaseSearchRe
|
||||
holder.titleView.setText(item.highlightedTitle);
|
||||
holder.summaryView.setText(item.highlightedSummary);
|
||||
holder.summaryView.setVisibility(TextUtils.isEmpty(item.highlightedSummary) ? View.GONE : View.VISIBLE);
|
||||
holder.iconView.setImageResource(DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON);
|
||||
holder.iconView.setImageResource(BaseSearchViewController.getSearchIcon());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -79,11 +79,22 @@ public abstract class BaseSearchViewController {
|
||||
ResourceType.ID, "action_search");
|
||||
protected static final int ID_REVANCED_SETTINGS_FRAGMENTS = getResourceIdentifierOrThrow(
|
||||
ResourceType.ID, "revanced_settings_fragments");
|
||||
public static final int DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON = getResourceIdentifierOrThrow(
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON = getResourceIdentifierOrThrow(
|
||||
ResourceType.DRAWABLE, "revanced_settings_search_icon");
|
||||
private static final int DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON_BOLD = getResourceIdentifierOrThrow(
|
||||
ResourceType.DRAWABLE, "revanced_settings_search_icon_bold");
|
||||
protected static final int MENU_REVANCED_SEARCH_MENU = getResourceIdentifierOrThrow(
|
||||
ResourceType.MENU, "revanced_search_menu");
|
||||
|
||||
/**
|
||||
* @return The search icon, either bold or not bold, depending on the ReVanced UI setting.
|
||||
*/
|
||||
public static int getSearchIcon() {
|
||||
return BaseSettings.SETTINGS_DISABLE_BOLD_ICONS.get()
|
||||
? DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON
|
||||
: DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON_BOLD;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new BaseSearchViewController instance.
|
||||
*
|
||||
@@ -529,7 +540,7 @@ public abstract class BaseSearchViewController {
|
||||
noResultsPreference.setTitle(str("revanced_settings_search_no_results_title", query));
|
||||
noResultsPreference.setSummary(str("revanced_settings_search_no_results_summary"));
|
||||
noResultsPreference.setSelectable(false);
|
||||
noResultsPreference.setIcon(DRAWABLE_REVANCED_SETTINGS_SEARCH_ICON);
|
||||
noResultsPreference.setIcon(getSearchIcon());
|
||||
filteredSearchItems.add(new BaseSearchResultItem.PreferenceSearchItem(noResultsPreference, "", Collections.emptyList()));
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import java.util.LinkedList;
|
||||
|
||||
import app.revanced.extension.shared.Logger;
|
||||
import app.revanced.extension.shared.ResourceType;
|
||||
import app.revanced.extension.shared.settings.BaseSettings;
|
||||
import app.revanced.extension.shared.settings.preference.BulletPointPreference;
|
||||
import app.revanced.extension.shared.ui.CustomDialog;
|
||||
|
||||
@@ -57,6 +58,10 @@ public class SearchHistoryManager {
|
||||
ResourceType.LAYOUT, "revanced_preference_search_history_item");
|
||||
private static final int ID_SEARCH_HISTORY_LIST = getResourceIdentifierOrThrow(
|
||||
ResourceType.ID, "search_history_list");
|
||||
private static final int ID_SEARCH_REMOVE_ICON = getResourceIdentifierOrThrow(
|
||||
ResourceType.DRAWABLE, "revanced_settings_search_remove");
|
||||
private static final int ID_SEARCH_REMOVE_ICON_BOLD = getResourceIdentifierOrThrow(
|
||||
ResourceType.DRAWABLE, "revanced_settings_search_remove_bold");
|
||||
|
||||
private final Deque<String> searchHistory;
|
||||
private final Activity activity;
|
||||
@@ -324,14 +329,20 @@ public class SearchHistoryManager {
|
||||
View view = inflater.inflate(LAYOUT_REVANCED_PREFERENCE_SEARCH_HISTORY_ITEM, container, false);
|
||||
|
||||
TextView historyText = view.findViewById(ID_HISTORY_TEXT);
|
||||
ImageView deleteIcon = view.findViewById(ID_DELETE_ICON);
|
||||
|
||||
historyText.setText(query);
|
||||
|
||||
// Set click listener for main item (select query).
|
||||
view.setOnClickListener(v -> onSelectHistoryItemListener.onSelectHistoryItem(query));
|
||||
|
||||
// Set click listener for delete icon.
|
||||
ImageView deleteIcon = view.findViewById(ID_DELETE_ICON);
|
||||
|
||||
deleteIcon.setImageResource(
|
||||
BaseSettings.SETTINGS_DISABLE_BOLD_ICONS.get()
|
||||
? ID_SEARCH_REMOVE_ICON
|
||||
: ID_SEARCH_REMOVE_ICON_BOLD
|
||||
);
|
||||
|
||||
deleteIcon.setOnClickListener(v -> createAndShowDialog(
|
||||
query,
|
||||
str("revanced_settings_search_remove_message"),
|
||||
|
||||
@@ -38,9 +38,6 @@ public final class NavigationButtonsPatch {
|
||||
private static final boolean DISABLE_TRANSLUCENT_NAVIGATION_BAR_DARK
|
||||
= Settings.DISABLE_TRANSLUCENT_NAVIGATION_BAR_DARK.get();
|
||||
|
||||
private static final boolean NAVIGATION_BAR_DISABLE_BOLD_ICONS
|
||||
= Settings.NAVIGATION_BAR_DISABLE_BOLD_ICONS.get();
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
@@ -71,13 +68,6 @@ public final class NavigationButtonsPatch {
|
||||
return Settings.NAVIGATION_BAR_ANIMATIONS.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
public static boolean useBoldIcons(boolean original) {
|
||||
return !NAVIGATION_BAR_DISABLE_BOLD_ICONS;
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package app.revanced.extension.youtube.patches.theme;
|
||||
|
||||
import android.graphics.Canvas;
|
||||
import android.graphics.ColorFilter;
|
||||
import android.graphics.Rect;
|
||||
import android.graphics.drawable.Drawable;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import app.revanced.extension.shared.ResourceType;
|
||||
import app.revanced.extension.shared.Utils;
|
||||
import app.revanced.extension.shared.settings.BaseSettings;
|
||||
|
||||
/**
|
||||
* Dynamic drawable that is either the regular or bolded ReVanced preference icon.
|
||||
*
|
||||
* This is needed because the YouTube ReVanced preference intent is an AndroidX preference,
|
||||
* and AndroidX classes are not built into Android which makes programmatically changing
|
||||
* the preference thru patching overly complex. This solves the problem by using a drawable
|
||||
* wrapper to dynamically pick which icon drawable to use at runtime.
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
public class ReVancedSettingsIconDynamicDrawable extends Drawable {
|
||||
|
||||
private final Drawable icon;
|
||||
|
||||
public ReVancedSettingsIconDynamicDrawable() {
|
||||
final int resId = Utils.getResourceIdentifier(ResourceType.DRAWABLE,
|
||||
BaseSettings.SETTINGS_DISABLE_BOLD_ICONS.get()
|
||||
? "revanced_settings_icon"
|
||||
: "revanced_settings_icon_bold"
|
||||
);
|
||||
|
||||
icon = Utils.getContext().getDrawable(resId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void draw(@NonNull Canvas canvas) {
|
||||
icon.draw(canvas);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setAlpha(int alpha) {
|
||||
icon.setAlpha(alpha);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setColorFilter(@Nullable ColorFilter colorFilter) {
|
||||
icon.setColorFilter(colorFilter);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOpacity() {
|
||||
return icon.getOpacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIntrinsicWidth() {
|
||||
return icon.getIntrinsicWidth();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getIntrinsicHeight() {
|
||||
return icon.getIntrinsicHeight();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBounds(int left, int top, int right, int bottom) {
|
||||
super.setBounds(left, top, right, bottom);
|
||||
icon.setBounds(left, top, right, bottom);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBounds(@NonNull Rect bounds) {
|
||||
super.setBounds(bounds);
|
||||
icon.setBounds(bounds);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBoundsChange(@NonNull Rect bounds) {
|
||||
super.onBoundsChange(bounds);
|
||||
icon.setBounds(bounds);
|
||||
}
|
||||
}
|
||||
@@ -285,7 +285,6 @@ public class Settings extends BaseSettings {
|
||||
public static final BooleanSetting SWITCH_CREATE_WITH_NOTIFICATIONS_BUTTON = new BooleanSetting("revanced_switch_create_with_notifications_button", TRUE, true,
|
||||
"revanced_switch_create_with_notifications_button_user_dialog_message");
|
||||
public static final BooleanSetting NAVIGATION_BAR_ANIMATIONS = new BooleanSetting("revanced_navigation_bar_animations", FALSE);
|
||||
public static final BooleanSetting NAVIGATION_BAR_DISABLE_BOLD_ICONS = new BooleanSetting("revanced_navigation_bar_disable_bold_icons", TRUE, true);
|
||||
public static final BooleanSetting DISABLE_TRANSLUCENT_STATUS_BAR = new BooleanSetting("revanced_disable_translucent_status_bar", FALSE, true,
|
||||
"revanced_disable_translucent_status_bar_user_dialog_message");
|
||||
public static final BooleanSetting DISABLE_TRANSLUCENT_NAVIGATION_BAR_LIGHT = new BooleanSetting("revanced_disable_translucent_navigation_bar_light", FALSE, true);
|
||||
|
||||
@@ -21,6 +21,9 @@ import app.revanced.extension.youtube.settings.search.YouTubeSearchViewControlle
|
||||
@SuppressWarnings("deprecation")
|
||||
public class YouTubeActivityHook extends BaseActivityHook {
|
||||
|
||||
private static final boolean SETTINGS_DISABLE_BOLD_ICONS
|
||||
= Settings.SETTINGS_DISABLE_BOLD_ICONS.get();
|
||||
|
||||
private static int currentThemeValueOrdinal = -1; // Must initially be a non-valid enum ordinal value.
|
||||
|
||||
/**
|
||||
@@ -148,4 +151,12 @@ public class YouTubeActivityHook extends BaseActivityHook {
|
||||
public static boolean handleBackPress() {
|
||||
return YouTubeSearchViewController.handleFinish(searchViewController);
|
||||
}
|
||||
|
||||
/**
|
||||
* Injection point.
|
||||
*/
|
||||
@SuppressWarnings("unused")
|
||||
public static boolean useBoldIcons(boolean original) {
|
||||
return !SETTINGS_DISABLE_BOLD_ICONS;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -284,7 +284,7 @@ public final class NavigationBar {
|
||||
private static final int fillBellCairoBlack = Utils.getResourceIdentifier(ResourceType.DRAWABLE,
|
||||
// The bold cairo notification filled icon is present,
|
||||
// but YT still has not fixed the icon not associated to the enum.
|
||||
VersionCheckPatch.IS_20_31_OR_GREATER && !Settings.NAVIGATION_BAR_DISABLE_BOLD_ICONS.get()
|
||||
VersionCheckPatch.IS_20_31_OR_GREATER && !Settings.SETTINGS_DISABLE_BOLD_ICONS.get()
|
||||
? "yt_fill_experimental_bell_vd_theme_24"
|
||||
: "revanced_fill_bell_cairo_black_24");
|
||||
|
||||
|
||||
@@ -860,9 +860,10 @@ public final class app/revanced/patches/shared/misc/settings/SettingsPatchKt {
|
||||
|
||||
public abstract class app/revanced/patches/shared/misc/settings/preference/BasePreference {
|
||||
public static final field Companion Lapp/revanced/patches/shared/misc/settings/preference/BasePreference$Companion;
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getIcon ()Ljava/lang/String;
|
||||
public final fun getIconBold ()Ljava/lang/String;
|
||||
public final fun getKey ()Ljava/lang/String;
|
||||
public final fun getLayout ()Ljava/lang/String;
|
||||
public final fun getSummaryKey ()Ljava/lang/String;
|
||||
@@ -886,9 +887,10 @@ public abstract class app/revanced/patches/shared/misc/settings/preference/BaseP
|
||||
|
||||
public abstract class app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$BasePreferenceCollection {
|
||||
public fun <init> ()V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getIcon ()Ljava/lang/String;
|
||||
public final fun getIconBold ()Ljava/lang/String;
|
||||
public final fun getKey ()Ljava/lang/String;
|
||||
public final fun getLayout ()Ljava/lang/String;
|
||||
public final fun getPreferences ()Ljava/util/Set;
|
||||
@@ -897,8 +899,8 @@ public abstract class app/revanced/patches/shared/misc/settings/preference/BaseP
|
||||
}
|
||||
|
||||
public class app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen : app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$BasePreferenceCollection {
|
||||
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;)V
|
||||
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;)V
|
||||
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;Ljava/util/Set;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun addPreferences ([Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;)V
|
||||
public final fun getCategories ()Ljava/util/Set;
|
||||
public synthetic fun transform ()Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;
|
||||
@@ -906,8 +908,8 @@ public class app/revanced/patches/shared/misc/settings/preference/BasePreference
|
||||
}
|
||||
|
||||
public class app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen$Category : app/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$BasePreferenceCollection {
|
||||
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Lapp/revanced/patches/shared/misc/settings/preference/BasePreferenceScreen$Screen;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun addPreferences ([Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;)V
|
||||
public synthetic fun transform ()Lapp/revanced/patches/shared/misc/settings/preference/BasePreference;
|
||||
public fun transform ()Lapp/revanced/patches/shared/misc/settings/preference/PreferenceCategory;
|
||||
@@ -926,8 +928,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/InputTyp
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/shared/misc/settings/preference/IntentPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getIntent ()Lapp/revanced/patches/shared/misc/settings/preference/IntentPreference$Intent;
|
||||
public fun hashCode ()I
|
||||
@@ -947,8 +949,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/ListPref
|
||||
public fun <init> ()V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/util/resource/ArrayResource;Lapp/revanced/util/resource/ArrayResource;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/util/resource/ArrayResource;Lapp/revanced/util/resource/ArrayResource;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getEntries ()Lapp/revanced/util/resource/ArrayResource;
|
||||
public final fun getEntriesKey ()Ljava/lang/String;
|
||||
public final fun getEntryValues ()Lapp/revanced/util/resource/ArrayResource;
|
||||
@@ -957,22 +959,22 @@ public final class app/revanced/patches/shared/misc/settings/preference/ListPref
|
||||
}
|
||||
|
||||
public final class app/revanced/patches/shared/misc/settings/preference/NonInteractivePreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ZILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getSelectable ()Z
|
||||
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
|
||||
}
|
||||
|
||||
public class app/revanced/patches/shared/misc/settings/preference/PreferenceCategory : app/revanced/patches/shared/misc/settings/preference/BasePreference {
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getPreferences ()Ljava/util/Set;
|
||||
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
|
||||
}
|
||||
|
||||
public class app/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/PreferenceScreenPreference$Sorting;Ljava/lang/String;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getPreferences ()Ljava/util/Set;
|
||||
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
|
||||
}
|
||||
@@ -1000,8 +1002,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/SummaryT
|
||||
|
||||
public final class app/revanced/patches/shared/misc/settings/preference/SwitchPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
|
||||
public fun <init> ()V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getSummaryOffKey ()Ljava/lang/String;
|
||||
public final fun getSummaryOnKey ()Ljava/lang/String;
|
||||
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
|
||||
@@ -1009,8 +1011,8 @@ public final class app/revanced/patches/shared/misc/settings/preference/SwitchPr
|
||||
|
||||
public final class app/revanced/patches/shared/misc/settings/preference/TextPreference : app/revanced/patches/shared/misc/settings/preference/BasePreference {
|
||||
public fun <init> ()V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;)V
|
||||
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lapp/revanced/patches/shared/misc/settings/preference/InputType;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun getInputType ()Lapp/revanced/patches/shared/misc/settings/preference/InputType;
|
||||
public fun serialize (Lorg/w3c/dom/Document;Lkotlin/jvm/functions/Function1;)Lorg/w3c/dom/Element;
|
||||
}
|
||||
|
||||
@@ -56,8 +56,14 @@ fun settingsPatch (
|
||||
execute {
|
||||
copyResources(
|
||||
"settings",
|
||||
ResourceGroup("xml", "revanced_prefs.xml", "revanced_prefs_icons.xml"),
|
||||
ResourceGroup("menu", "revanced_search_menu.xml"),
|
||||
ResourceGroup("xml",
|
||||
"revanced_prefs.xml",
|
||||
"revanced_prefs_icons.xml",
|
||||
"revanced_prefs_icons_bold.xml"
|
||||
),
|
||||
ResourceGroup("menu",
|
||||
"revanced_search_menu.xml"
|
||||
),
|
||||
ResourceGroup("drawable",
|
||||
// CustomListPreference resources.
|
||||
"revanced_ic_dialog_alert.xml",
|
||||
@@ -65,8 +71,11 @@ fun settingsPatch (
|
||||
"revanced_settings_arrow_time.xml",
|
||||
"revanced_settings_custom_checkmark.xml",
|
||||
"revanced_settings_search_icon.xml",
|
||||
"revanced_settings_search_icon_bold.xml",
|
||||
"revanced_settings_search_remove.xml",
|
||||
"revanced_settings_search_remove_bold.xml",
|
||||
"revanced_settings_toolbar_arrow_left.xml",
|
||||
"revanced_settings_toolbar_arrow_left_bold.xml",
|
||||
),
|
||||
ResourceGroup("layout",
|
||||
"revanced_custom_list_item_checked.xml",
|
||||
@@ -127,19 +136,30 @@ fun settingsPatch (
|
||||
// there is no easy way to change to the Android default preference layout
|
||||
// after the preference is inflated.
|
||||
// Using two different preference files is the simplest and most robust solution.
|
||||
fun removeIconsAndLayout(preferences: Collection<BasePreference>) {
|
||||
fun removeIconsAndLayout(preferences: Collection<BasePreference>, removeAllIconsAndLayout: Boolean) {
|
||||
preferences.forEach { preference ->
|
||||
preference.icon = null
|
||||
preference.layout = null
|
||||
if (removeAllIconsAndLayout) {
|
||||
preference.iconBold = null
|
||||
preference.layout = null
|
||||
}
|
||||
|
||||
if (preference is PreferenceCategory) {
|
||||
removeIconsAndLayout(preference.preferences)
|
||||
removeIconsAndLayout(preference.preferences, removeAllIconsAndLayout)
|
||||
} else if (preference is PreferenceScreenPreference) {
|
||||
removeIconsAndLayout(preference.preferences)
|
||||
removeIconsAndLayout(preference.preferences, removeAllIconsAndLayout)
|
||||
}
|
||||
}
|
||||
}
|
||||
removeIconsAndLayout(preferences)
|
||||
|
||||
// Bold icons.
|
||||
removeIconsAndLayout(preferences, false)
|
||||
document("res/xml/revanced_prefs_icons_bold.xml").use { document ->
|
||||
val revancedPreferenceScreenNode = document.getNode("PreferenceScreen")
|
||||
preferences.forEach { revancedPreferenceScreenNode.addPreference(it) }
|
||||
}
|
||||
|
||||
removeIconsAndLayout(preferences, true)
|
||||
|
||||
document("res/xml/revanced_prefs.xml").use { document ->
|
||||
val revancedPreferenceScreenNode = document.getNode("PreferenceScreen")
|
||||
|
||||
@@ -20,6 +20,7 @@ abstract class BasePreference(
|
||||
val titleKey: String? = "${key}_title",
|
||||
val summaryKey: String? = "${key}_summary",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
val tag: String
|
||||
) {
|
||||
@@ -27,6 +28,9 @@ abstract class BasePreference(
|
||||
var icon: String? = icon
|
||||
internal set
|
||||
|
||||
var iconBold: String? = iconBold
|
||||
internal set
|
||||
|
||||
var layout: String? = layout
|
||||
internal set
|
||||
|
||||
@@ -44,8 +48,9 @@ abstract class BasePreference(
|
||||
key?.let { setAttribute("android:key", it) }
|
||||
titleKey?.let { setAttribute("android:title", "@string/${titleKey}") }
|
||||
summaryKey?.let { addSummary(it) }
|
||||
icon?.let {
|
||||
setAttribute("android:icon", it)
|
||||
|
||||
if (icon != null || iconBold != null) {
|
||||
setAttribute("android:icon", icon ?: iconBold)
|
||||
setAttribute("app:iconSpaceReserved", "true")
|
||||
}
|
||||
layout?.let { setAttribute("android:layout", layout) }
|
||||
|
||||
@@ -25,11 +25,12 @@ abstract class BasePreferenceScreen(
|
||||
titleKey: String = "${key}_title",
|
||||
private val summaryKey: String? = "${key}_summary",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
preferences: MutableSet<BasePreference> = mutableSetOf(),
|
||||
val categories: MutableSet<Category> = mutableSetOf(),
|
||||
private val sorting: Sorting = Sorting.BY_TITLE,
|
||||
) : BasePreferenceCollection(key, titleKey, icon, layout, preferences) {
|
||||
) : BasePreferenceCollection(key, titleKey, icon, iconBold, layout, preferences) {
|
||||
|
||||
override fun transform(): PreferenceScreenPreference {
|
||||
return PreferenceScreenPreference(
|
||||
@@ -37,6 +38,7 @@ abstract class BasePreferenceScreen(
|
||||
titleKey,
|
||||
summaryKey,
|
||||
icon,
|
||||
iconBold,
|
||||
layout,
|
||||
sorting,
|
||||
// Screens and preferences are sorted at runtime by extension code,
|
||||
@@ -61,16 +63,18 @@ abstract class BasePreferenceScreen(
|
||||
key: String? = null,
|
||||
titleKey: String = "${key}_title",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
preferences: MutableSet<BasePreference> = mutableSetOf(),
|
||||
) : BasePreferenceCollection(key, titleKey, icon, layout, preferences) {
|
||||
) : BasePreferenceCollection(key, titleKey, icon, iconBold, layout, preferences) {
|
||||
override fun transform(): PreferenceCategory {
|
||||
return PreferenceCategory(
|
||||
key,
|
||||
titleKey,
|
||||
icon,
|
||||
layout,
|
||||
sorting,
|
||||
key = key,
|
||||
titleKey = titleKey,
|
||||
icon = icon,
|
||||
iconBold = iconBold,
|
||||
layout = layout,
|
||||
sorting = sorting,
|
||||
preferences = preferences,
|
||||
)
|
||||
}
|
||||
@@ -92,6 +96,7 @@ abstract class BasePreferenceScreen(
|
||||
val key: String? = null,
|
||||
val titleKey: String = "${key}_title",
|
||||
val icon: String? = null,
|
||||
val iconBold: String? = null,
|
||||
val layout: String? = null,
|
||||
val preferences: MutableSet<BasePreference> = mutableSetOf(),
|
||||
) {
|
||||
|
||||
@@ -19,10 +19,11 @@ class IntentPreference(
|
||||
titleKey: String = "${key}_title",
|
||||
summaryKey: String? = "${key}_summary",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
tag: String = "Preference",
|
||||
val intent: Intent,
|
||||
) : BasePreference(key, titleKey, summaryKey, icon, layout, tag) {
|
||||
) : BasePreference(key, titleKey, summaryKey, icon, iconBold, layout, tag) {
|
||||
|
||||
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
|
||||
super.serialize(ownerDocument, resourceCallback).apply {
|
||||
|
||||
@@ -20,11 +20,12 @@ class ListPreference(
|
||||
key: String? = null,
|
||||
titleKey: String = "${key}_title",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
tag: String = "app.revanced.extension.shared.settings.preference.CustomDialogListPreference",
|
||||
val entriesKey: String? = "${key}_entries",
|
||||
val entryValuesKey: String? = "${key}_entry_values"
|
||||
) : BasePreference(key, titleKey, null, icon, layout, tag) {
|
||||
) : BasePreference(key, titleKey, null, icon, iconBold, layout, tag) {
|
||||
var entries: ArrayResource? = null
|
||||
private set
|
||||
var entryValues: ArrayResource? = null
|
||||
|
||||
@@ -21,10 +21,11 @@ class NonInteractivePreference(
|
||||
titleKey: String = "${key}_title",
|
||||
summaryKey: String? = "${key}_summary",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
tag: String = "Preference",
|
||||
val selectable: Boolean = false,
|
||||
) : BasePreference(key, titleKey, summaryKey, icon, layout, tag) {
|
||||
) : BasePreference(key, titleKey, summaryKey, icon, iconBold, layout, tag) {
|
||||
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
|
||||
super.serialize(ownerDocument, resourceCallback).apply {
|
||||
setAttribute("android:selectable", selectable.toString())
|
||||
|
||||
@@ -19,11 +19,12 @@ open class PreferenceCategory(
|
||||
key: String? = null,
|
||||
titleKey: String? = "${key}_title",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
sorting: Sorting = Sorting.BY_TITLE,
|
||||
tag: String = "PreferenceCategory",
|
||||
val preferences: Set<BasePreference>
|
||||
) : BasePreference(sorting.appendSortType(key), titleKey, null, icon, layout, tag) {
|
||||
) : BasePreference(sorting.appendSortType(key), titleKey, null, icon, iconBold, layout, tag) {
|
||||
|
||||
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
|
||||
super.serialize(ownerDocument, resourceCallback).apply {
|
||||
|
||||
@@ -22,6 +22,7 @@ open class PreferenceScreenPreference(
|
||||
titleKey: String = "${key}_title",
|
||||
summaryKey: String? = "${key}_summary",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
sorting: Sorting = Sorting.BY_TITLE,
|
||||
tag: String = "PreferenceScreen",
|
||||
@@ -32,7 +33,7 @@ open class PreferenceScreenPreference(
|
||||
// or adding new attributes to the attrs.xml file.
|
||||
// Since the key value is not currently used by the extensions,
|
||||
// for now it's much simpler to modify the key to include the sort parameter.
|
||||
) : BasePreference(sorting.appendSortType(key), titleKey, summaryKey, icon, layout, tag) {
|
||||
) : BasePreference(sorting.appendSortType(key), titleKey, summaryKey, icon, iconBold, layout, tag) {
|
||||
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
|
||||
super.serialize(ownerDocument, resourceCallback).apply {
|
||||
preferences.forEach {
|
||||
|
||||
@@ -20,10 +20,11 @@ class SwitchPreference(
|
||||
titleKey: String = "${key}_title",
|
||||
tag: String = "SwitchPreference",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
val summaryOnKey: String = "${key}_summary_on",
|
||||
val summaryOffKey: String = "${key}_summary_off"
|
||||
) : BasePreference(key, titleKey, null, icon, layout, tag) {
|
||||
) : BasePreference(key, titleKey, null, icon, iconBold, layout, tag) {
|
||||
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
|
||||
super.serialize(ownerDocument, resourceCallback).apply {
|
||||
addSummary(summaryOnKey, SummaryType.ON)
|
||||
|
||||
@@ -20,10 +20,11 @@ class TextPreference(
|
||||
titleKey: String = "${key}_title",
|
||||
summaryKey: String? = "${key}_summary",
|
||||
icon: String? = null,
|
||||
iconBold: String? = null,
|
||||
layout: String? = null,
|
||||
tag: String = "app.revanced.extension.shared.settings.preference.ResettableEditTextPreference",
|
||||
val inputType: InputType = InputType.TEXT
|
||||
) : BasePreference(key, titleKey, summaryKey, icon, layout, tag) {
|
||||
) : BasePreference(key, titleKey, summaryKey, icon, iconBold, layout, tag) {
|
||||
|
||||
override fun serialize(ownerDocument: Document, resourceCallback: (BaseResource) -> Unit) =
|
||||
super.serialize(ownerDocument, resourceCallback).apply {
|
||||
|
||||
@@ -66,13 +66,3 @@ internal val translucentNavigationButtonsSystemFeatureFlagFingerprint by fingerp
|
||||
literal(45632194L) // Translucent system buttons feature flag.
|
||||
)
|
||||
}
|
||||
|
||||
// Flag is present in 20.23, but icons are missing and forcing bold icons crashes the app.
|
||||
internal val boldIconsFeatureFlagFingerprint by fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
parameters()
|
||||
instructions(
|
||||
literal(45685201L)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -14,7 +14,6 @@ import app.revanced.patches.youtube.misc.navigation.hookNavigationButtonCreated
|
||||
import app.revanced.patches.youtube.misc.navigation.navigationBarHookPatch
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.is_20_15_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.is_20_31_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
|
||||
import app.revanced.patches.youtube.misc.settings.PreferenceScreen
|
||||
import app.revanced.patches.youtube.misc.settings.settingsPatch
|
||||
@@ -73,12 +72,6 @@ val navigationButtonsPatch = bytecodePatch(
|
||||
)
|
||||
}
|
||||
|
||||
if (is_20_31_or_greater) {
|
||||
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
|
||||
SwitchPreference("revanced_navigation_bar_disable_bold_icons")
|
||||
)
|
||||
}
|
||||
|
||||
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
|
||||
PreferenceScreenPreference(
|
||||
key = "revanced_navigation_buttons_screen",
|
||||
@@ -153,16 +146,5 @@ val navigationButtonsPatch = bytecodePatch(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Bold icon resources are found starting in 20.23, but many YT icons are not bold.
|
||||
// 20.31 is the first version that seems to have all the bold icons.
|
||||
if (is_20_31_or_greater) {
|
||||
boldIconsFeatureFlagFingerprint.let {
|
||||
it.method.insertLiteralOverride(
|
||||
it.instructionMatches.first().index,
|
||||
"$EXTENSION_CLASS_DESCRIPTOR->useBoldIcons(Z)Z"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -212,7 +212,7 @@ val lithoFilterPatch = bytecodePatch(
|
||||
lithoConverterBufferUpbFeatureFlagFingerprint.let {
|
||||
// Procool buffer has changed in 20.22, and UPB native code is now always enabled.
|
||||
if (is_20_22_or_greater) {
|
||||
Logger.getLogger(this::class.java.name).severe(
|
||||
Logger.getLogger(this::class.java.name).warning(
|
||||
"\n!!!" +
|
||||
"\n!!! Litho filtering is not yet fully supported when patching 20.22+" +
|
||||
"\n!!! Action buttons, Shorts shelves, and possibly other components cannot be set hidden." +
|
||||
|
||||
@@ -33,4 +33,15 @@ internal val cairoFragmentConfigFingerprint by fingerprint {
|
||||
literal(45532100L),
|
||||
opcode(Opcode.MOVE_RESULT, 10)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
// Flag is present in 20.23, but bold icons are missing and forcing them crashes the app.
|
||||
// 20.31 is the first target with all the bold icons present.
|
||||
internal val boldIconsFeatureFlagFingerprint by fingerprint {
|
||||
accessFlags(AccessFlags.PUBLIC, AccessFlags.FINAL)
|
||||
returns("Z")
|
||||
parameters()
|
||||
instructions(
|
||||
literal(45685201L)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -12,15 +12,30 @@ import app.revanced.patches.all.misc.resources.addResources
|
||||
import app.revanced.patches.all.misc.resources.addResourcesPatch
|
||||
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
|
||||
import app.revanced.patches.shared.misc.settings.overrideThemeColors
|
||||
import app.revanced.patches.shared.misc.settings.preference.*
|
||||
import app.revanced.patches.shared.misc.settings.preference.BasePreference
|
||||
import app.revanced.patches.shared.misc.settings.preference.BasePreferenceScreen
|
||||
import app.revanced.patches.shared.misc.settings.preference.InputType
|
||||
import app.revanced.patches.shared.misc.settings.preference.IntentPreference
|
||||
import app.revanced.patches.shared.misc.settings.preference.ListPreference
|
||||
import app.revanced.patches.shared.misc.settings.preference.NonInteractivePreference
|
||||
import app.revanced.patches.shared.misc.settings.preference.PreferenceCategory
|
||||
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.patches.shared.misc.settings.preference.TextPreference
|
||||
import app.revanced.patches.shared.misc.settings.settingsPatch
|
||||
import app.revanced.patches.youtube.misc.check.checkEnvironmentPatch
|
||||
import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
|
||||
import app.revanced.patches.youtube.misc.fix.playbackspeed.fixPlaybackSpeedWhilePlayingPatch
|
||||
import app.revanced.patches.youtube.misc.playservice.is_19_34_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.is_20_31_or_greater
|
||||
import app.revanced.patches.youtube.misc.playservice.versionCheckPatch
|
||||
import app.revanced.util.*
|
||||
import app.revanced.util.ResourceGroup
|
||||
import app.revanced.util.addInstructionsAtControlFlowLabel
|
||||
import app.revanced.util.copyResources
|
||||
import app.revanced.util.findElementByAttributeValueOrThrow
|
||||
import app.revanced.util.findInstructionIndicesReversedOrThrow
|
||||
import app.revanced.util.insertLiteralOverride
|
||||
import com.android.tools.smali.dexlib2.AccessFlags
|
||||
import com.android.tools.smali.dexlib2.Opcode
|
||||
import com.android.tools.smali.dexlib2.builder.MutableMethodImplementation
|
||||
@@ -44,8 +59,9 @@ private val settingsResourcePatch = resourcePatch {
|
||||
IntentPreference(
|
||||
titleKey = "revanced_settings_title",
|
||||
summaryKey = null,
|
||||
intent = newIntent("revanced_settings_intent"),
|
||||
intent = newIntent("revanced_settings_intent")
|
||||
) to "settings_fragment",
|
||||
|
||||
PreferenceCategory(
|
||||
titleKey = "revanced_settings_title",
|
||||
layout = "@layout/preference_group_title",
|
||||
@@ -53,12 +69,12 @@ private val settingsResourcePatch = resourcePatch {
|
||||
IntentPreference(
|
||||
titleKey = "revanced_settings_submenu_title",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_icon",
|
||||
icon = "@drawable/revanced_settings_icon_dynamic",
|
||||
layout = "@layout/preference_with_icon",
|
||||
intent = newIntent("revanced_settings_intent"),
|
||||
intent = newIntent("revanced_settings_intent")
|
||||
)
|
||||
)
|
||||
) to "settings_fragment_cairo",
|
||||
) to "settings_fragment_cairo"
|
||||
),
|
||||
preferences = preferences
|
||||
)
|
||||
@@ -71,20 +87,35 @@ private val settingsResourcePatch = resourcePatch {
|
||||
copyResources(
|
||||
"settings",
|
||||
ResourceGroup("drawable",
|
||||
"revanced_settings_icon_dynamic.xml",
|
||||
"revanced_settings_icon.xml",
|
||||
"revanced_settings_icon_bold.xml",
|
||||
"revanced_settings_screen_00_about.xml",
|
||||
"revanced_settings_screen_00_about_bold.xml",
|
||||
"revanced_settings_screen_01_ads.xml",
|
||||
"revanced_settings_screen_01_ads_bold.xml",
|
||||
"revanced_settings_screen_02_alt_thumbnails.xml",
|
||||
"revanced_settings_screen_02_alt_thumbnails_bold.xml",
|
||||
"revanced_settings_screen_03_feed.xml",
|
||||
"revanced_settings_screen_03_feed_bold.xml",
|
||||
"revanced_settings_screen_04_general.xml",
|
||||
"revanced_settings_screen_04_general_bold.xml",
|
||||
"revanced_settings_screen_05_player.xml",
|
||||
"revanced_settings_screen_05_player_bold.xml",
|
||||
"revanced_settings_screen_06_shorts.xml",
|
||||
"revanced_settings_screen_06_shorts_bold.xml",
|
||||
"revanced_settings_screen_07_seekbar.xml",
|
||||
"revanced_settings_screen_07_seekbar_bold.xml",
|
||||
"revanced_settings_screen_08_swipe_controls.xml",
|
||||
"revanced_settings_screen_08_swipe_controls_bold.xml",
|
||||
"revanced_settings_screen_09_return_youtube_dislike.xml",
|
||||
"revanced_settings_screen_09_return_youtube_dislike_bold.xml",
|
||||
"revanced_settings_screen_10_sponsorblock.xml",
|
||||
"revanced_settings_screen_10_sponsorblock_bold.xml",
|
||||
"revanced_settings_screen_11_misc.xml",
|
||||
"revanced_settings_screen_11_misc_bold.xml",
|
||||
"revanced_settings_screen_12_video.xml",
|
||||
"revanced_settings_screen_12_video_bold.xml",
|
||||
)
|
||||
)
|
||||
|
||||
@@ -158,6 +189,7 @@ val settingsPatch = bytecodePatch(
|
||||
preferences += NonInteractivePreference(
|
||||
key = "revanced_settings_screen_00_about",
|
||||
icon = "@drawable/revanced_settings_screen_00_about",
|
||||
iconBold = "@drawable/revanced_settings_screen_00_about_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
summaryKey = null,
|
||||
tag = "app.revanced.extension.shared.settings.preference.ReVancedAboutPreference",
|
||||
@@ -172,7 +204,23 @@ val settingsPatch = bytecodePatch(
|
||||
|
||||
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
|
||||
SwitchPreference("revanced_settings_search_history"),
|
||||
SwitchPreference("revanced_show_menu_icons")
|
||||
)
|
||||
|
||||
|
||||
PreferenceScreen.GENERAL_LAYOUT.addPreferences(
|
||||
if (is_20_31_or_greater) {
|
||||
PreferenceCategory(
|
||||
titleKey = null,
|
||||
sorting = Sorting.UNSORTED,
|
||||
tag = "app.revanced.extension.shared.settings.preference.NoTitlePreferenceCategory",
|
||||
preferences = setOf(
|
||||
SwitchPreference("revanced_show_menu_icons"),
|
||||
SwitchPreference("revanced_settings_disable_bold_icons")
|
||||
)
|
||||
)
|
||||
} else {
|
||||
SwitchPreference("revanced_show_menu_icons")
|
||||
}
|
||||
)
|
||||
|
||||
PreferenceScreen.MISC.addPreferences(
|
||||
@@ -208,6 +256,17 @@ val settingsPatch = bytecodePatch(
|
||||
"$YOUTUBE_ACTIVITY_HOOK_CLASS_DESCRIPTOR->useCairoSettingsFragment(Z)Z"
|
||||
)
|
||||
|
||||
// Bold icon resources are found starting in 20.23, but many YT icons are not bold.
|
||||
// 20.31 is the first version that seems to have all the bold icons.
|
||||
if (is_20_31_or_greater) {
|
||||
boldIconsFeatureFlagFingerprint.let {
|
||||
it.method.insertLiteralOverride(
|
||||
it.instructionMatches.first().index,
|
||||
"$YOUTUBE_ACTIVITY_HOOK_CLASS_DESCRIPTOR->useBoldIcons(Z)Z"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
modifyActivityForSettingsInjection(
|
||||
licenseActivityOnCreateFingerprint.classDef,
|
||||
licenseActivityOnCreateFingerprint.method,
|
||||
@@ -315,12 +374,14 @@ object PreferenceScreen : BasePreferenceScreen() {
|
||||
key = "revanced_settings_screen_01_ads",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_01_ads",
|
||||
iconBold = "@drawable/revanced_settings_screen_01_ads_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
)
|
||||
val ALTERNATIVE_THUMBNAILS = Screen(
|
||||
key = "revanced_settings_screen_02_alt_thumbnails",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_02_alt_thumbnails",
|
||||
iconBold = "@drawable/revanced_settings_screen_02_alt_thumbnails_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
sorting = Sorting.UNSORTED,
|
||||
)
|
||||
@@ -328,36 +389,42 @@ object PreferenceScreen : BasePreferenceScreen() {
|
||||
key = "revanced_settings_screen_03_feed",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_03_feed",
|
||||
iconBold = "@drawable/revanced_settings_screen_03_feed_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
)
|
||||
val GENERAL_LAYOUT = Screen(
|
||||
key = "revanced_settings_screen_04_general",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_04_general",
|
||||
iconBold = "@drawable/revanced_settings_screen_04_general_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
)
|
||||
val PLAYER = Screen(
|
||||
key = "revanced_settings_screen_05_player",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_05_player",
|
||||
iconBold = "@drawable/revanced_settings_screen_05_player_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
)
|
||||
val SHORTS = Screen(
|
||||
key = "revanced_settings_screen_06_shorts",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_06_shorts",
|
||||
iconBold = "@drawable/revanced_settings_screen_06_shorts_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
)
|
||||
val SEEKBAR = Screen(
|
||||
key = "revanced_settings_screen_07_seekbar",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_07_seekbar",
|
||||
iconBold = "@drawable/revanced_settings_screen_07_seekbar_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
)
|
||||
val SWIPE_CONTROLS = Screen(
|
||||
key = "revanced_settings_screen_08_swipe_controls",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_08_swipe_controls",
|
||||
iconBold = "@drawable/revanced_settings_screen_08_swipe_controls_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
sorting = Sorting.UNSORTED,
|
||||
)
|
||||
@@ -365,6 +432,7 @@ object PreferenceScreen : BasePreferenceScreen() {
|
||||
key = "revanced_settings_screen_09_return_youtube_dislike",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_09_return_youtube_dislike",
|
||||
iconBold = "@drawable/revanced_settings_screen_09_return_youtube_dislike_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
sorting = Sorting.UNSORTED,
|
||||
)
|
||||
@@ -372,6 +440,7 @@ object PreferenceScreen : BasePreferenceScreen() {
|
||||
key = "revanced_settings_screen_10_sponsorblock",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_10_sponsorblock",
|
||||
iconBold = "@drawable/revanced_settings_screen_10_sponsorblock_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
sorting = Sorting.UNSORTED,
|
||||
)
|
||||
@@ -379,12 +448,14 @@ object PreferenceScreen : BasePreferenceScreen() {
|
||||
key = "revanced_settings_screen_11_misc",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_11_misc",
|
||||
iconBold = "@drawable/revanced_settings_screen_11_misc_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
)
|
||||
val VIDEO = Screen(
|
||||
key = "revanced_settings_screen_12_video",
|
||||
summaryKey = null,
|
||||
icon = "@drawable/revanced_settings_screen_12_video",
|
||||
iconBold = "@drawable/revanced_settings_screen_12_video_bold",
|
||||
layout = "@layout/preference_with_icon",
|
||||
sorting = Sorting.BY_KEY,
|
||||
)
|
||||
|
||||
@@ -82,6 +82,9 @@ Second \"item\" text"</string>
|
||||
<string name="revanced_settings_search_history_title">Show settings search history</string>
|
||||
<string name="revanced_settings_search_history_summary_on">Settings search history is shown</string>
|
||||
<string name="revanced_settings_search_history_summary_off">Settings search history is not shown</string>
|
||||
<string name="revanced_settings_disable_bold_icons_title">Disable bold icons</string>
|
||||
<string name="revanced_settings_disable_bold_icons_summary_on">Icons are not bold</string>
|
||||
<string name="revanced_settings_disable_bold_icons_summary_off">Icons are bold</string>
|
||||
<string name="revanced_show_menu_icons_title">Show ReVanced setting icons</string>
|
||||
<string name="revanced_show_menu_icons_summary_on">Setting icons are shown</string>
|
||||
<string name="revanced_show_menu_icons_summary_off">Setting icons are not shown</string>
|
||||
@@ -792,9 +795,6 @@ If changing this setting does not take effect, try switching to Incognito mode."
|
||||
<string name="revanced_navigation_bar_animations_title">Enable navigation bar animations</string>
|
||||
<string name="revanced_navigation_bar_animations_summary_on">Navigation transitions are animated</string>
|
||||
<string name="revanced_navigation_bar_animations_summary_off">Navigation transitions are not animated</string>
|
||||
<string name="revanced_navigation_bar_disable_bold_icons_title">Disable bold icons</string>
|
||||
<string name="revanced_navigation_bar_disable_bold_icons_summary_on">Icons are not bold</string>
|
||||
<string name="revanced_navigation_bar_disable_bold_icons_summary_off">Icons are bold</string>
|
||||
<string name="revanced_disable_translucent_status_bar_title">Disable translucent status bar</string>
|
||||
<string name="revanced_disable_translucent_status_bar_summary_on">Status bar is opaque</string>
|
||||
<string name="revanced_disable_translucent_status_bar_summary_off">Status bar is opaque or translucent</string>
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
|
||||
<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:fillType="evenOdd"
|
||||
android:pathData="M21.9342,3.05381 C22.0403,2.82135,22.017,2.55323,21.8722,2.34075 C21.7277,2.12828,21.4811,2.00023,21.2168,2.00023 L20.2025,2.00023 C19.9805,2.00023,19.7796,2.12634,19.6903,2.32142 C18.7975,4.27368,14.0858,14.5775,12.5121,18.0188 C12.4228,18.2139,12.2219,18.34,11.9999,18.34 C11.7779,18.34,11.577,18.2139,11.4877,18.0188 C9.91413,14.5775,5.20222,4.27368,4.30965,2.32142 C4.22037,2.12634,4.01944,2.00023,3.79747,2.00023 L2.78317,2.00023 C2.51891,2.00023,2.27233,2.12828,2.12756,2.34075 C1.98301,2.55323,1.95974,2.82135,2.0658,3.05381 C3.75249,6.75037,9.3601,19.0395,10.5057,21.5497 C10.6306,21.8232,10.9121,22,11.2231,22 L12.7769,22 C13.0879,22,13.3694,21.8232,13.4943,21.5497 C14.6397,19.0395,20.2476,6.7504,21.9342,3.0538 Z"
|
||||
android:strokeLineJoin="round"
|
||||
android:strokeMiterLimit="2" />
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:fillType="evenOdd"
|
||||
android:pathData="M12.5812,11.6776 C12.4613,11.8771,12.2397,11.9999,11.9999,11.9999 C11.7601,11.9999,11.5385,11.8771,11.4186,11.6776 C10.2015,9.65367,7.39776,4.99071,6.18062,2.96678 C6.0607,2.76727,6.0607,2.52176,6.18062,2.32225 C6.30044,2.12308,6.52202,2,6.76186,2 L17.2378,2 C17.4777,2,17.6992,2.12308,17.8192,2.32227 C17.9391,2.52178,17.9391,2.76729,17.8192,2.9668 C16.6021,4.99073,13.7984,9.65369,12.5812,11.6776 Z"
|
||||
android:strokeLineJoin="round"
|
||||
android:strokeMiterLimit="2" />
|
||||
</vector>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Copyright 2024 ReVanced. Not licensed under GPL. See https://github.com/ReVanced/revanced-branding -->
|
||||
<!--<selector xmlns:android="http://schemas.android.com/apk/res/android"-->
|
||||
<!-- class="app.revanced.extension.youtube.patches.theme.ReVancedSettingsIconDynamicDrawable">-->
|
||||
|
||||
<!-- <!– This is just a placeholder item to make the XML valid –>-->
|
||||
<!-- <item android:drawable="@android:color/transparent" />-->
|
||||
|
||||
<!--</selector>-->
|
||||
<drawable xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
class="app.revanced.extension.youtube.patches.theme.ReVancedSettingsIconDynamicDrawable" />
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="M12,1C5.925,1 1,5.925 1,12s4.925,11 11,11 11,-4.925 11,-11S18.075,1 12,1ZM12,3a9,9 0,1 1,0 18.001A9,9 0,0 1,12 3ZM12,6.75a1.25,1.25 0,1 0,0 2.5,1.25 1.25,0 0,0 0,-2.5ZM13,15v-5h-2.5a1,1 0,0 0,0 2h0.5v3h-1a1,1 0,0 0,0 2h4a1,1 0,0 0,0 -2h-1Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,26 @@
|
||||
<!--
|
||||
https://github.com/google/material-design-icons/blob/bb04090f930e272697f2a1f0d7b352d92dfeee43/symbols/android/campaign/materialsymbolsrounded/campaign_wght500_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="M21.2734,13.0898 L19.1797,13.0898 C18.8711,13.0898,18.6133,12.9844,18.4023,12.7773 C18.1953,12.5664,18.0898,12.3086,18.0898,12 C18.0898,11.6914,18.1953,11.4336,18.4023,11.2227 C18.6133,11.0156,18.8711,10.9102,19.1797,10.9102 L21.2734,10.9102 C21.582,10.9102,21.8438,11.0156,22.0508,11.2227 C22.2617,11.4336,22.3633,11.6914,22.3633,12 C22.3633,12.3086,22.2617,12.5664,22.0508,12.7773 C21.8438,12.9844,21.582,13.0898,21.2734,13.0898 Z M16.7148,16.7461 C16.8945,16.4961,17.1328,16.3516,17.4258,16.3125 C17.7188,16.2734,17.9883,16.3438,18.2383,16.5273 L19.9102,17.7813 C20.1602,17.9648,20.3047,18.2031,20.3438,18.4961 C20.3828,18.7891,20.3125,19.0586,20.1289,19.3086 C19.9453,19.5625,19.707,19.707,19.4141,19.7461 C19.125,19.7852,18.8516,19.7148,18.5977,19.5313 L16.9258,18.2734 C16.6758,18.0898,16.5313,17.8516,16.4961,17.5586 C16.457,17.2656,16.5313,16.9961,16.7148,16.7461 Z M19.9102,6.21875 L18.2383,7.47266 C17.9883,7.65625,17.7188,7.72656,17.4258,7.6875 C17.1328,7.64844,16.8945,7.50391,16.7148,7.25391 C16.5313,7.00391,16.457,6.73438,16.4922,6.44141 C16.5313,6.14844,16.6719,5.91016,16.9258,5.72656 L18.6016,4.46875 C18.8555,4.28516,19.1289,4.21484,19.418,4.25391 C19.7109,4.29297,19.9453,4.4375,20.1289,4.69141 C20.3125,4.94141,20.3828,5.21094,20.3438,5.50391 C20.3047,5.79688,20.1602,6.03516,19.9102,6.21875 Z M4.63672,15.2031 L3.81641,15.2031 C3.20313,15.1797,2.6875,14.9453,2.26953,14.5039 C1.84766,14.0625,1.63672,13.5391,1.63672,12.9297 L1.63672,11.0703 C1.63672,10.4453,1.85938,9.91016,2.30469,9.46484 C2.75,9.01953,3.28516,8.79688,3.91016,8.79688 L7.77734,8.79688 L11.3086,6.66797 C11.6875,6.4375,12.0703,6.4375,12.457,6.66016 C12.8438,6.88281,13.0352,7.21484,13.0352,7.65625 L13.0352,16.3438 C13.0352,16.7852,12.8438,17.1172,12.457,17.3398 C12.0703,17.5625,11.6875,17.5625,11.3086,17.332 L7.77734,15.2031 L6.94531,15.2031 L6.94531,18.0469 C6.94531,18.3711,6.83594,18.6445,6.60938,18.8672 C6.38672,19.0898,6.11328,19.2031,5.78906,19.2031 C5.46875,19.2031,5.19531,19.0898,4.97266,18.8672 C4.74609,18.6445,4.63672,18.3711,4.63672,18.0469 Z M10.7617,14.332 L10.7617,9.66797 L8.38281,11.0703 L3.91016,11.0703 L3.91016,12.9297 L8.38281,12.9297 Z M14.0352,15.5547 L14.0352,8.44531 C14.5469,8.86328,14.9531,9.37891,15.2617,9.99219 C15.5664,10.6094,15.7227,11.2773,15.7227,12 C15.7227,12.7227,15.5664,13.3906,15.2617,14.0078 C14.9531,14.6211,14.5469,15.1367,14.0352,15.5547 Z M7.33984,12 Z M7.33984,12" />
|
||||
</vector>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
https://github.com/ajayyy/DeArrow/blob/4d9e85b41382de0cc8ec2053789455b374b7a70d/public/icons/logo.svg
|
||||
Changes made: The DeArrow logo was resized.
|
||||
|
||||
Copyright 2023 Ajay Ramachandran <dev@ajay.app>
|
||||
-->
|
||||
<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="M15.3167,11.9222 C15.3167,13.6784,13.8439,15.1565,12.0878,15.1565 C10.3317,15.1565,8.96963,13.6784,8.96963,11.9222 C8.96963,10.166,10.3317,8.73604,12.0878,8.73604 C13.8439,8.73604,15.3167,10.166,15.3167,11.9222 Z" />
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M12.0898,1 C9.11051,1,6.47604,2.46218,4.52344,4.45703 C2.57082,6.45189,1,9.14131,1,12.1855 C1,15.2298,2.21732,18.2805,4.16992,20.2754 C6.12253,22.2702,9.1099,22.9512,12.0898,22.9512 C15.0698,22.9512,17.5923,21.7956,19.5449,19.8008 C21.4975,17.8059,23,15.2298,23,12.1855 C23,9.14193,21.7364,6.32103,19.7832,4.32617 C17.8306,2.33133,15.0692,1,12.0898,1 Z M11.8906,3.42578 C14.2597,3.42578,16.3243,4.74678,17.877,6.29883 C19.4297,7.85087,20.4648,9.91599,20.4648,12.2852 C20.4648,14.6543,19.6836,16.9733,18.1309,18.5254 C16.5782,20.0774,14.259,20.5254,11.8906,20.5254 C9.52227,20.5254,7.53903,19.7415,5.98633,18.1895 C4.43363,16.6374,3.53516,14.6543,3.53516,12.2852 C3.53516,9.91599,4.17849,7.67581,5.73047,6.12305 C7.28245,4.57029,9.52154,3.42578,11.8906,3.42578 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="M20,2L8,2a2,2 0,0 0,-2 2v12a2,2 0,0 0,2 2h12a2,2 0,0 0,2 -2L22,4a2,2 0,0 0,-2 -2ZM8,16L8,4h12v12L8,16ZM4,20L4,6a2,2 0,0 0,-2 2v12a2,2 0,0 0,2 2h12a2,2 0,0 0,2 -2L4,20ZM17,10 L12,7v6l5,-3Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="M12.844,1h-1.687a2,2 0,0 0,-1.962 1.616,3 3,0 0,1 -3.92,2.263 2,2 0,0 0,-2.38 0.891l-0.842,1.46a2,2 0,0 0,0.417 2.507,3 3,0 0,1 0,4.525 2,2 0,0 0,-0.417 2.507l0.843,1.46a2,2 0,0 0,2.38 0.892,3.001 3.001,0 0,1 3.918,2.263A2,2 0,0 0,11.157 23h1.686a2,2 0,0 0,1.963 -1.615,3.002 3.002,0 0,1 3.92,-2.263 2,2 0,0 0,2.38 -0.892l0.842,-1.46a2,2 0,0 0,-0.418 -2.507,3 3,0 0,1 0,-4.526 2,2 0,0 0,0.418 -2.508l-0.843,-1.46a2,2 0,0 0,-2.38 -0.891,3 3,0 0,1 -3.919,-2.263A2,2 0,0 0,12.844 1ZM11.077,3.347a6,6 0,0 0,0.08 -0.347h1.687a4.98,4.98 0,0 0,2.407 3.37,4.98 4.98,0 0,0 4.122,0.4l0.843,1.46A4.98,4.98 0,0 0,18.5 12a4.98,4.98 0,0 0,1.716 3.77l-0.843,1.46a4.98,4.98 0,0 0,-4.123 0.4A4.979,4.979 0,0 0,12.843 21h-1.686a4.98,4.98 0,0 0,-2.408 -3.371,4.999 4.999,0 0,0 -4.12,-0.399l-0.844,-1.46A4.979,4.979 0,0 0,5.5 12a4.98,4.98 0,0 0,-1.715 -3.77l0.842,-1.459a4.98,4.98 0,0 0,4.123 -0.399,4.981 4.981,0 0,0 2.327,-3.025ZM16,12a4,4 0,1 1,-7.999 0,4 4,0 0,1 8,0ZM12,14a2,2 0,1 0,0 -4,2 2,0 0,0 0,4Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="M5,4.623v14.755a1.5,1.5 0,0 0,2.261 1.294l12.766,-7.51L22,12.002l-1.973,-1.162L7.26,3.33A1.5,1.5 0,0 0,5 4.623ZM7,18.503L7,5.497L18.056,12 7,18.503Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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.467,1.19 l-8,4.7a5,5 0,0 0,-0.255 8.46,5 5,0 0,0 5.32,8.462l8,-4.7a5,5 0,0 0,0.258 -8.462,5 5,0 0,0 1.641,-6.464l-0.12,-0.217a5,5 0,0 0,-6.844 -1.78m5.12,2.79a2.999,2.999 0,0 1,-1.067 4.107l-1.327,0.78a1,1 0,0 0,0.096 1.775l0.943,0.423a3,3 0,0 1,0.288 5.323l-8,4.7a3,3 0,0 1,-3.039 -5.173l1.327,-0.78a1,1 0,0 0,-0.097 -1.775l-0.942,-0.423a3,3 0,0 1,-0.288 -5.323l8,-4.7a3,3 0,0 1,4.106 1.066ZM15,12l-5,-3v6l5,-3Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="M8.99981,8 A4.002865,4.0002529,0,0,0,5.12652,11.0021 L2.99943,11.0021 A1.0007162,1.0000632,0,0,0,2.99943,13.0036 L5.12652,13.0036 A4.0048664,4.002253,0,0,0,12.8731,13.0036 L21.0006,13.0036 A1.0007162,1.0000632,0,0,0,21.0006,11.0022 L12.8731,11.0022 A4.002865,4.0002529,0,0,0,8.99981,8 Z M8.99981,10.0014 A2.0014325,2.0001264,0,0,1,8.99981,14.0043 A2.0014325,2.0001264,0,0,1,8.99981,10.0014 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="M8.99981,8 A4.002865,4.0002529,0,0,0,5.12652,11.0021 L2.99943,11.0021 A1.0007162,1.0000632,0,0,0,2.99943,13.0036 L5.12652,13.0036 A4.0048664,4.002253,0,0,0,12.8731,13.0036 L21.0006,13.0036 A1.0007162,1.0000632,0,0,0,21.0006,11.0022 L12.8731,11.0022 A4.002865,4.0002529,0,0,0,8.99981,8 Z M8.99981,10.0014 A2.0014325,2.0001264,0,0,1,8.99981,14.0043 A2.0014325,2.0001264,0,0,1,8.99981,10.0014 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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.31,2 l0.392,0.007c1.824,0.06 3.61,0.534 5.223,1.388l0.343,0.189 0.27,0.154c0.264,0.152 0.56,0.24 0.863,0.26l0.13,0.004H20.5a1.5,1.5 0,0 1,1.5 1.5V11.5a1.5,1.5 0,0 1,-1.5 1.5h-1.79l-0.158,0.013a1,1 0,0 0,-0.723 0.512l-0.064,0.145 -2.987,8.535a1,1 0,0 1,-1.109 0.656l-1.04,-0.174a4,4 0,0 1,-3.251 -4.783L10,15H5.938a3.664,3.664 0,0 1,-3.576 -2.868A3.682,3.682 0,0 1,3 9.15l-0.02,-0.088A3.816,3.816 0,0 1,4 5.5v-0.043l0.008,-0.227a2.86,2.86 0,0 1,0.136 -0.664l0.107,-0.28A3.754,3.754 0,0 1,7.705 2h3.605ZM7.705,4c-0.755,0 -1.425,0.483 -1.663,1.2l-0.032,0.126a0.818,0.818 0,0 0,-0.01 0.131v0.872l-0.587,0.586a1.816,1.816 0,0 0,-0.524 1.465l0.038,0.23 0.02,0.087 0.21,0.9 -0.55,0.744a1.686,1.686 0,0 0,-0.321 1.18l0.029,0.177c0.17,0.76 0.844,1.302 1.623,1.302H10a2.002,2.002 0,0 1,1.956 2.419l-0.623,2.904 -0.034,0.208a2.002,2.002 0,0 0,1.454 2.139l0.206,0.045 0.21,0.035 2.708,-7.741A3.001,3.001 0,0 1,18.71 11H20V6.002h-1.47c-0.696,0 -1.38,-0.183 -1.985,-0.528l-0.27,-0.155 -0.285,-0.157A10.002,10.002 0,0 0,11.31 4H7.705Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,20 @@
|
||||
<!--
|
||||
https://github.com/ajayyy/SponsorBlock/blob/e1d656f43f8b3cfb40e1c521e4103d61db756872/public/icons/PlayerStartIconSponsorBlocker.svg
|
||||
Changes made: The SponsorBlock logo was inverted.
|
||||
|
||||
Copyright 2021 Ajay Ramachandran <dev@ajay.app>
|
||||
-->
|
||||
<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="M1.99219,3.51563 C1.37141,3.8503,0.988667,4.49868,1,5.20117 C1.1021,12.3909,4.8421,18.9426,11.0039,22.7246 C11.6168,23.0914,12.3832,23.0914,12.9961,22.7246 C19.1579,18.9417,22.8975,12.3909,23,5.20117 C23.0116,4.49849,22.6288,3.85028,22.0078,3.51563 C15.7798,0.162157,8.20704,0.168825,1.99219,3.51563 Z M20.5723,5.00586 C20.8388,5.151,21.0033,5.52221,21,5.82422 C20.9123,11.9927,17.3689,17.7513,12.4297,20.7793 C12.1663,20.9397,11.8337,20.9397,11.5703,20.7793 C6.63106,17.7513,3.08771,11.9927,3,5.82422 C2.99672,5.52222,3.18352,5.14551,3.42773,5.00586 C8.3842,2.1716,15.408,2.23147,20.5723,5.00586 Z" />
|
||||
|
||||
<path
|
||||
android:fillColor="?android:attr/textColorPrimary"
|
||||
android:pathData="M9.635,7.47461 L9.635,14.4066 C9.63455,14.952,10.1735,15.2913,10.6008,15.0145 L16.0542,11.4863 L16.897,10.9413 L16.0542,10.3954 L10.6004,6.86715 C10.1733,6.59109,9.63507,6.92975,9.635,7.47461 Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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.252,2.087 L6.951,8.029c-0.74,1.332 0.223,2.97 1.748,2.97h6.602c1.524,-0.001 2.488,-1.638 1.747,-2.971l-3.3,-5.941c-0.762,-1.371 -2.734,-1.371 -3.496,0ZM8.699,8.999 L12,3.059l3.301,5.94L8.699,8.999ZM18,12.748a5.251,5.251 0,1 0,0 10.502,5.251 5.251,0 0,0 0,-10.502ZM9,12.998L3,12.998a2,2 0,0 0,-2 2v6a2,2 0,0 0,2 2h6a2,2 0,0 0,2 -2v-6a2,2 0,0 0,-2 -2ZM18,14.748a3.25,3.25 0,1 1,0 6.5,3.25 3.25,0 0,1 0,-6.5ZM3,20.998v-6h6v6L3,20.998Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="M21,3L3,3a2,2 0,0 0,-2 2v14a2,2 0,0 0,2 2h18a2,2 0,0 0,2 -2L23,5a2,2 0,0 0,-2 -2ZM3,19L3,5h18v14L3,19ZM10,8a1,1 0,0 0,-1 1v2L7,11L7,9a1,1 0,0 0,-2 0v6a1,1 0,1 0,2 0v-2h2v2a1,1 0,1 0,2 0L11,9a1,1 0,0 0,-1 -1ZM15.5,8L14,8a1,1 0,0 0,-1 1v6a1,1 0,0 0,1 1h1.5a3.5,3.5 0,0 0,3.5 -3.5v-1A3.5,3.5 0,0 0,15.5 8ZM15,14v-4h0.5a1.5,1.5 0,0 1,1.5 1.5v1a1.5,1.5 0,0 1,-1.5 1.5L15,14Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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,2a9,9 0,1 0,5.641 16.01,0.966 0.966,0 0,0 0.152,0.197l3.5,3.5a1,1 0,1 0,1.414 -1.414l-3.5,-3.5a1,1 0,0 0,-0.197 -0.153A8.96,8.96 0,0 0,20 11a9,9 0,0 0,-9 -9ZM11,4a7,7 0,1 1,0 14,7 7,0 0,1 0,-14Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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,3h-4L15,2a1,1 0,0 0,-1 -1h-4a1,1 0,0 0,-1 1v1L5,3a2,2 0,0 0,-2 2h18a2,2 0,0 0,-2 -2ZM6,19L6,7L4,7v12a4,4 0,0 0,4 4h8a4,4 0,0 0,4 -4L20,7h-2v12a2,2 0,0 1,-2 2L8,21a2,2 0,0 1,-2 -2ZM10,8a1,1 0,0 0,-1 1v8a1,1 0,1 0,2 0L11,9a1,1 0,0 0,-1 -1ZM14,8a1,1 0,0 0,-1 1v8a1,1 0,0 0,2 0L15,9a1,1 0,0 0,-1 -1Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,25 @@
|
||||
<!--
|
||||
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="#000000"
|
||||
android:pathData="M10.293,4.293 L2.586,12l7.707,7.706a1,1 0,1 0,1.414 -1.413L6.414,13H20a1,1 0,0 0,0 -2H6.414l5.293,-5.292a1,1 0,0 0,-1.414 -1.415Z" />
|
||||
</vector>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:key="revanced_settings_root_screen_sort_by_key"> <!-- Sort by preference key -->
|
||||
</PreferenceScreen>
|
||||
Reference in New Issue
Block a user