mirror of
https://github.com/ReVanced/revanced-patches.git
synced 2024-11-12 18:04:26 +01:00
fix(YouTube - Settings): Use multiline preference title for localized languages (#3821)
This commit is contained in:
parent
bc6700119f
commit
ff85d49088
4 changed files with 35 additions and 15 deletions
|
@ -722,6 +722,35 @@ public class Utils {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set all preferences to multiline titles if the device is not using an English variant.
|
||||
* The English strings are heavily scrutinized and all titles fit on screen
|
||||
* except 2 or 3 preference strings and those do not affect readability.
|
||||
*
|
||||
* Allowing multiline for those 2 or 3 English preferences looks weird and out of place,
|
||||
* and visually it looks better to clip the text and keep all titles 1 line.
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public static void setPreferenceTitlesToMultiLineIfNeeded(PreferenceGroup group) {
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
||||
return;
|
||||
}
|
||||
|
||||
String deviceLanguage = Utils.getContext().getResources().getConfiguration().locale.getLanguage();
|
||||
if (deviceLanguage.equals("en")) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (int i = 0, prefCount = group.getPreferenceCount(); i < prefCount; i++) {
|
||||
Preference pref = group.getPreference(i);
|
||||
pref.setSingleLineTitle(false);
|
||||
|
||||
if (pref instanceof PreferenceGroup) {
|
||||
setPreferenceTitlesToMultiLineIfNeeded((PreferenceGroup) pref);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* If {@link Fragment} uses [Android library] rather than [AndroidX library],
|
||||
* the Dialog theme corresponding to [Android library] should be used.
|
||||
|
|
|
@ -17,7 +17,7 @@ import app.revanced.extension.shared.settings.Setting;
|
|||
|
||||
import static app.revanced.extension.shared.StringRef.str;
|
||||
|
||||
@SuppressWarnings({"unused", "deprecation"})
|
||||
@SuppressWarnings("deprecation")
|
||||
public abstract class AbstractPreferenceFragment extends PreferenceFragment {
|
||||
/**
|
||||
* Indicates that if a preference changes,
|
||||
|
@ -80,10 +80,12 @@ public abstract class AbstractPreferenceFragment extends PreferenceFragment {
|
|||
*/
|
||||
protected void initialize() {
|
||||
final var identifier = Utils.getResourceIdentifier("revanced_prefs", "xml");
|
||||
|
||||
if (identifier == 0) return;
|
||||
addPreferencesFromResource(identifier);
|
||||
Utils.sortPreferenceGroups(getPreferenceScreen());
|
||||
|
||||
PreferenceScreen screen = getPreferenceScreen();
|
||||
Utils.sortPreferenceGroups(screen);
|
||||
Utils.setPreferenceTitlesToMultiLineIfNeeded(screen);
|
||||
}
|
||||
|
||||
private void showSettingUserDialogConfirmation(SwitchPreference switchPref, BooleanSetting setting) {
|
||||
|
|
|
@ -137,7 +137,7 @@ public final class MiniplayerPatch {
|
|||
MiniplayerType type = Settings.MINIPLAYER_TYPE.get();
|
||||
return (!IS_19_20_OR_GREATER && (type == MODERN_1 || type == MODERN_3))
|
||||
|| (!IS_19_26_OR_GREATER && type == MODERN_1
|
||||
&& !Settings.MINIPLAYER_DOUBLE_TAP_ACTION.get() && !Settings.MINIPLAYER_DRAG_AND_DROP.get())
|
||||
&& !Settings.MINIPLAYER_DOUBLE_TAP_ACTION.get() && !Settings.MINIPLAYER_DRAG_AND_DROP.get())
|
||||
|| (IS_19_29_OR_GREATER && type == MODERN_3);
|
||||
}
|
||||
}
|
||||
|
@ -196,8 +196,6 @@ public final class MiniplayerPatch {
|
|||
* Injection point.
|
||||
*/
|
||||
public static boolean getModernFeatureFlagsActiveOverride(boolean original) {
|
||||
if (original) Logger.printDebug(() -> "getModernFeatureFlagsActiveOverride original: " + original);
|
||||
|
||||
if (CURRENT_TYPE == ORIGINAL) {
|
||||
return original;
|
||||
}
|
||||
|
@ -209,8 +207,6 @@ public final class MiniplayerPatch {
|
|||
* Injection point.
|
||||
*/
|
||||
public static boolean enableMiniplayerDoubleTapAction(boolean original) {
|
||||
if (original) Logger.printDebug(() -> "enableMiniplayerDoubleTapAction original: " + true);
|
||||
|
||||
if (CURRENT_TYPE == ORIGINAL) {
|
||||
return original;
|
||||
}
|
||||
|
@ -222,8 +218,6 @@ public final class MiniplayerPatch {
|
|||
* Injection point.
|
||||
*/
|
||||
public static boolean enableMiniplayerDragAndDrop(boolean original) {
|
||||
if (original) Logger.printDebug(() -> "enableMiniplayerDragAndDrop original: " + true);
|
||||
|
||||
if (CURRENT_TYPE == ORIGINAL) {
|
||||
return original;
|
||||
}
|
||||
|
@ -236,8 +230,6 @@ public final class MiniplayerPatch {
|
|||
* Injection point.
|
||||
*/
|
||||
public static boolean setRoundedCorners(boolean original) {
|
||||
if (original) Logger.printDebug(() -> "setRoundedCorners original: " + true);
|
||||
|
||||
if (CURRENT_TYPE.isModern()) {
|
||||
return MINIPLAYER_ROUNDED_CORNERS_ENABLED;
|
||||
}
|
||||
|
@ -271,8 +263,6 @@ public final class MiniplayerPatch {
|
|||
* Injection point.
|
||||
*/
|
||||
public static boolean setDropShadow(boolean original) {
|
||||
if (original) Logger.printDebug(() -> "setViewElevation original: " + true);
|
||||
|
||||
return original;
|
||||
}
|
||||
|
||||
|
|
|
@ -155,7 +155,6 @@ public final class LithoFilterPatch {
|
|||
// Potentially the buffer may have been null or never set up until now.
|
||||
// Use an empty buffer so the litho id/path filters still work correctly.
|
||||
if (protobufBuffer == null) {
|
||||
Logger.printDebug(() -> "Proto buffer is null, using an empty buffer array");
|
||||
bufferArray = EMPTY_BYTE_ARRAY;
|
||||
} else if (!protobufBuffer.hasArray()) {
|
||||
Logger.printDebug(() -> "Proto buffer does not have an array, using an empty buffer array");
|
||||
|
|
Loading…
Reference in a new issue