mirror of
https://github.com/revanced/revanced-integrations.git
synced 2024-09-05 05:55:26 +02:00
refactor: move settings to SettingsEnum (#49)
This commit is contained in:
parent
7bd3b07559
commit
0476299570
@ -12,9 +12,6 @@ import app.revanced.integrations.patches.HideShortsButtonPatch;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
|
||||
/**
|
||||
* API Class that provides the logic to the Patch classes. All methods in here should be protected/private and only be accessed from a Patch class.
|
||||
*/
|
||||
public class AdRemoverAPI {
|
||||
|
||||
/**
|
||||
@ -22,6 +19,7 @@ public class AdRemoverAPI {
|
||||
*
|
||||
* @param view
|
||||
*/
|
||||
//ToDo: refactor this
|
||||
public static void HideViewWithLayout1dp(View view) {
|
||||
if (view instanceof LinearLayout) {
|
||||
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(1, 1);
|
||||
@ -43,101 +41,4 @@ public class AdRemoverAPI {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the Create button
|
||||
*
|
||||
* @param view
|
||||
*/
|
||||
public static void hideCreateButton(View view) {
|
||||
String message = SettingsEnum.CREATE_BUTTON_SHOWN_BOOLEAN.getBoolean() ? "Create button: Shown" : "Create button: Hidden";
|
||||
LogHelper.debug(AdRemoverAPI.class, message);
|
||||
if (SettingsEnum.CREATE_BUTTON_SHOWN_BOOLEAN.getBoolean()) {
|
||||
view.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
view.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes the shorts button
|
||||
*
|
||||
* @param view
|
||||
*/
|
||||
public static void hideShortsButton(View view) {
|
||||
if (HideShortsButtonPatch.lastPivotTab != null && HideShortsButtonPatch.lastPivotTab.name() == "TAB_SHORTS") {
|
||||
String message = SettingsEnum.SHORTS_BUTTON_SHOWN_BOOLEAN.getBoolean() ? "Shorts button: shown" : "Shorts button: hidden";
|
||||
LogHelper.debug(AdRemoverAPI.class, message);
|
||||
if (!SettingsEnum.SHORTS_BUTTON_SHOWN_BOOLEAN.getBoolean()) {
|
||||
view.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
private static void inspectComponentHost(Object item) {
|
||||
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
|
||||
if (stackTraceElements.length <= 3) {
|
||||
LogHelper.debug("Litho", "Couldn't locate the method called from.");
|
||||
} else {
|
||||
String sb = "Called from method: " +
|
||||
stackTraceElements[3].toString() + "\n";
|
||||
LogHelper.debug("Litho", sb);
|
||||
}
|
||||
if (item == null) {
|
||||
LogHelper.debug("Litho", "Item is null.");
|
||||
} else if (item.getClass().getSimpleName().contains("cwl")) {
|
||||
LogHelper.debug("Litho", "Item is a cwl item.");
|
||||
LogHelper.debug("Litho", getViewHierarchy((ViewGroup) item));
|
||||
} else {
|
||||
LogHelper.debug("Litho", "Item is not a cwl item.");
|
||||
}
|
||||
}
|
||||
|
||||
private static String getViewHierarchy(ViewGroup v) {
|
||||
StringBuffer buf = new StringBuffer();
|
||||
printViews(v, buf, 0);
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
private static String printViews(ViewGroup v, StringBuffer buf, int level) {
|
||||
int childCount = v.getChildCount();
|
||||
v.getId();
|
||||
indent(buf, level);
|
||||
buf.append(v.getClass().getName());
|
||||
buf.append(" children:");
|
||||
buf.append(childCount);
|
||||
buf.append(" id:").append(v.getId());
|
||||
buf.append("\n");
|
||||
for (int i = 0; i < childCount; i++) {
|
||||
View child = v.getChildAt(i);
|
||||
if (child instanceof ViewGroup) {
|
||||
printViews((ViewGroup) child, buf, level + 1);
|
||||
} else {
|
||||
indent(buf, level + 1);
|
||||
buf.append(child.getClass().getName());
|
||||
buf.append(" id:").append(child.getId());
|
||||
buf.append("\n");
|
||||
}
|
||||
}
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
private static void indent(StringBuffer buf, int level) {
|
||||
for (int i = 0; i < level; i++) {
|
||||
buf.append(" ");
|
||||
}
|
||||
}
|
||||
|
||||
private static void recursiveLoopChildren(ViewGroup parent) {
|
||||
for (int i = 0; i < parent.getChildCount(); i++) {
|
||||
View child = parent.getChildAt(i);
|
||||
if (child instanceof ViewGroup) {
|
||||
recursiveLoopChildren((ViewGroup) child);
|
||||
child.setVisibility(View.GONE);
|
||||
} else if (child != null) {
|
||||
child.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
}
|
||||
|
@ -16,87 +16,25 @@ import app.revanced.integrations.utils.ReVancedUtils;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
|
||||
public class LithoAdRemoval {
|
||||
private static boolean getBoolean(String key, boolean _default) {
|
||||
return SharedPrefHelper.getBoolean(Objects.requireNonNull(ReVancedUtils.getContext()), SharedPrefHelper.SharedPrefNames.YOUTUBE, key, _default);
|
||||
}
|
||||
|
||||
private static boolean isCommunityGuidelines() {
|
||||
return getBoolean("experimental_community_guidelines", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalAdRemoval() {
|
||||
return getBoolean("experimental_ad_removal", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalCommentsRemoval() {
|
||||
return getBoolean("experimental_comments", false);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalCommunityPostRemoval() {
|
||||
return getBoolean("experimental_community_posts", false);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalCompactBannerRemoval() {
|
||||
return getBoolean("experimental_compact_banner", false);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalEmergencyBoxRemoval() {
|
||||
return getBoolean("experimental_emergency_box", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalInfoPanelRemoval() {
|
||||
return getBoolean("experimental_info_panel", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalMedicalPanelRemoval() {
|
||||
return getBoolean("experimental_medical_panel", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalMerchandiseRemoval() {
|
||||
return getBoolean("experimental_merchandise", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalMovieRemoval() {
|
||||
return getBoolean("experimental_movie", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalPaidContentRemoval() {
|
||||
return getBoolean("experimental_paid_content", true);
|
||||
}
|
||||
|
||||
private static boolean isExperimentalSuggestedForYou() {
|
||||
return getBoolean("experimental_suggested_for_you", true);
|
||||
}
|
||||
|
||||
private static boolean isInFeedSurvey() {
|
||||
return getBoolean("experimental_in_feed_survey", false);
|
||||
}
|
||||
|
||||
private static boolean isShortsShelf() {
|
||||
return getBoolean("experimental_shorts_shelf", true);
|
||||
}
|
||||
|
||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||
public static boolean containsAd(String value, ByteBuffer buffer) {
|
||||
try {
|
||||
if (!(isExperimentalAdRemoval() ||
|
||||
isExperimentalMerchandiseRemoval() ||
|
||||
isExperimentalPaidContentRemoval() || isExperimentalCommunityPostRemoval() ||
|
||||
isExperimentalMovieRemoval() ||
|
||||
isExperimentalCompactBannerRemoval() ||
|
||||
isExperimentalCommentsRemoval() ||
|
||||
isInFeedSurvey() ||
|
||||
isShortsShelf() ||
|
||||
isCommunityGuidelines()) ||
|
||||
value == null ||
|
||||
value.isEmpty()
|
||||
) {
|
||||
return false;
|
||||
boolean enabled = false;
|
||||
for (SettingsEnum setting : SettingsEnum.getAdRemovalSettings()) {
|
||||
if (setting.getBoolean()) {
|
||||
enabled = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
if (value == null || value.isEmpty() || !enabled) return false;
|
||||
LogHelper.printException(LithoAdRemoval.class, "Searching for AD: " + value);
|
||||
|
||||
List<String> blockList = new ArrayList<>();
|
||||
List<String> bufferBlockList = new ArrayList<>();
|
||||
|
||||
if (isExperimentalAdRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_AD_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("_ad");
|
||||
blockList.add("ad_badge");
|
||||
blockList.add("ads_video_with_context");
|
||||
@ -105,58 +43,65 @@ public class LithoAdRemoval {
|
||||
blockList.add("shelf_header");
|
||||
blockList.add("text_search_ad_with_description_first");
|
||||
blockList.add("watch_metadata_app_promo");
|
||||
|
||||
|
||||
bufferBlockList.add("ad_cpn");
|
||||
}
|
||||
if (isExperimentalSuggestedForYou()) {
|
||||
if (SettingsEnum.ADREMOVER_SUGGESTED_FOR_YOU_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
bufferBlockList.add("watch-vrecH");
|
||||
}
|
||||
if (isExperimentalMovieRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_MOVIE_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("compact_movie");
|
||||
blockList.add("horizontal_movie_shelf");
|
||||
blockList.add("movie_and_show_upsell_card");
|
||||
|
||||
|
||||
bufferBlockList.add("YouTube Movies");
|
||||
}
|
||||
if (containsAny(value, "home_video_with_context", "related_video_with_context") &&
|
||||
bufferBlockList.stream().anyMatch(StandardCharsets.UTF_8.decode(buffer).toString()::contains)
|
||||
bufferBlockList.stream().anyMatch(StandardCharsets.UTF_8.decode(buffer).toString()::contains)
|
||||
) return true;
|
||||
|
||||
if (isExperimentalCommentsRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_COMMENTS_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("comments_composite_entry_point");
|
||||
}
|
||||
if (isCommunityGuidelines()) {
|
||||
if (SettingsEnum.ADREMOVER_COMMUNITY_GUIDELINES_BOOLEAN.getBoolean()) {
|
||||
blockList.add("community_guidelines");
|
||||
}
|
||||
if (isExperimentalCompactBannerRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_COMPACT_BANNER_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("compact_banner");
|
||||
}
|
||||
if (isExperimentalEmergencyBoxRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_EMERGENCY_BOX_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("emergency_onebox");
|
||||
}
|
||||
if (isInFeedSurvey()) {
|
||||
if (SettingsEnum.ADREMOVER_FEED_SURVEY_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("in_feed_survey");
|
||||
}
|
||||
if (isExperimentalMedicalPanelRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_MEDICAL_PANEL_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("medical_panel");
|
||||
}
|
||||
if (isExperimentalPaidContentRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_PAID_CONTECT_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("paid_content_overlay");
|
||||
}
|
||||
if (isExperimentalCommunityPostRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_COMMUNITY_POSTS_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("post_base_wrapper");
|
||||
}
|
||||
if (isExperimentalMerchandiseRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_MERCHANDISE_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("product_carousel");
|
||||
}
|
||||
if (isShortsShelf()) {
|
||||
if (SettingsEnum.ADREMOVER_SHORTS_SHELF_BOOLEAN.getBoolean()) {
|
||||
blockList.add("shorts_shelf");
|
||||
}
|
||||
if (isExperimentalInfoPanelRemoval()) {
|
||||
if (SettingsEnum.ADREMOVER_INFO_PANEL_REMOVAL_BOOLEAN.getBoolean()) {
|
||||
blockList.add("publisher_transparency_panel");
|
||||
blockList.add("single_item_information_panel");
|
||||
}
|
||||
|
||||
if (SettingsEnum.ADREMOVER_HIDE_SUGGESTIONS_BOOLEAN.getBoolean()) {
|
||||
blockList.add("horizontal_video_shelf");
|
||||
}
|
||||
if (SettingsEnum.ADREMOVER_HIDE_LATEST_POSTS_BOOLEAN.getBoolean()) {
|
||||
blockList.add("post_shelf");
|
||||
}
|
||||
|
||||
|
||||
if (containsAny(value,
|
||||
"home_video_with_context",
|
||||
"related_video_with_context",
|
||||
@ -169,19 +114,19 @@ public class LithoAdRemoval {
|
||||
)) return false;
|
||||
|
||||
if (blockList.stream().anyMatch(value::contains)) {
|
||||
LogHelper.debug(LithoAdRemoval.class, value);
|
||||
LogHelper.debug(LithoAdRemoval.class, "Blocking ad: " + value);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!SettingsEnum.DEBUG_BOOLEAN.getBoolean()) return false;
|
||||
if (value.contains("related_video_with_context")) {
|
||||
LogHelper.debug(LithoAdRemoval.class, value + " | " + bytesToHex(buffer.array()));
|
||||
return false;
|
||||
if (SettingsEnum.DEBUG_BOOLEAN.getBoolean()) {
|
||||
if (value.contains("related_video_with_context")) {
|
||||
LogHelper.debug(LithoAdRemoval.class, value + " | " + bytesToHex(buffer.array()));
|
||||
return false;
|
||||
}
|
||||
LogHelper.debug(LithoAdRemoval.class, value + " returns false.");
|
||||
}
|
||||
LogHelper.debug(LithoAdRemoval.class, value);
|
||||
return false;
|
||||
} catch (
|
||||
Exception ex) {
|
||||
} catch (Exception ex) {
|
||||
LogHelper.printException(LithoAdRemoval.class, ex.getMessage(), ex);
|
||||
return false;
|
||||
}
|
||||
|
@ -5,8 +5,6 @@ import android.app.Activity;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import app.revanced.integrations.fenster.WatchWhilePlayerType;
|
||||
import app.revanced.integrations.fenster.controllers.FensterController;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
@ -32,7 +30,7 @@ public final class FensterSwipePatch {
|
||||
* @param thisRef reference to the WatchWhileActivity instance
|
||||
* @smali Lapp/revanced/integrations/patches/FensterSwipePatch;->WatchWhileActivity_onStartHookEX(Ljava/lang/Object;)V
|
||||
*/
|
||||
public static void WatchWhileActivity_onStartHookEX(@Nullable Object thisRef) {
|
||||
public static void WatchWhileActivity_onStartHookEX(Object thisRef) {
|
||||
if (thisRef == null) return;
|
||||
if (thisRef instanceof Activity) {
|
||||
FENSTER.initializeController((Activity) thisRef);
|
||||
@ -45,7 +43,7 @@ public final class FensterSwipePatch {
|
||||
* @param thisRef reference to the PlayerOverlays instance
|
||||
* @smali Lapp/revanced/integrations/patches/FensterSwipePatch;->YouTubePlayerOverlaysLayout_onFinishInflateHookEX(Ljava/lang/Object;)V
|
||||
*/
|
||||
public static void YouTubePlayerOverlaysLayout_onFinishInflateHookEX(@Nullable Object thisRef) {
|
||||
public static void YouTubePlayerOverlaysLayout_onFinishInflateHookEX(Object thisRef) {
|
||||
if (thisRef == null) return;
|
||||
if (thisRef instanceof ViewGroup) {
|
||||
FENSTER.initializeOverlay((ViewGroup) thisRef);
|
||||
@ -58,7 +56,7 @@ public final class FensterSwipePatch {
|
||||
* @param type the new player type
|
||||
* @smali Lapp/revanced/integrations/patches/FensterSwipePatch;->YouTubePlayerOverlaysLayout_updatePlayerTypeHookEX(Ljava/lang/Object;)V
|
||||
*/
|
||||
public static void YouTubePlayerOverlaysLayout_updatePlayerTypeHookEX(@Nullable Object type) {
|
||||
public static void YouTubePlayerOverlaysLayout_updatePlayerTypeHookEX(Object type) {
|
||||
if (type == null) return;
|
||||
|
||||
// disable processing events if not watching fullscreen video
|
||||
@ -75,7 +73,7 @@ public final class FensterSwipePatch {
|
||||
* @return was the event consumed by the hook?
|
||||
* @smali Lapp/revanced/integrations/patches/FensterSwipePatch;->NextGenWatchLayout_onTouchEventHookEX(Ljava/lang/Object;Ljava/lang/Object;)Z
|
||||
*/
|
||||
public static boolean NextGenWatchLayout_onTouchEventHookEX(@Nullable Object thisRef, @Nullable Object motionEvent) {
|
||||
public static boolean NextGenWatchLayout_onTouchEventHookEX(Object thisRef, Object motionEvent) {
|
||||
if (motionEvent == null) return false;
|
||||
if (motionEvent instanceof MotionEvent) {
|
||||
return FENSTER.onTouchEvent((MotionEvent) motionEvent);
|
||||
@ -92,7 +90,7 @@ public final class FensterSwipePatch {
|
||||
* @return was the event consumed by the hook?
|
||||
* @smali Lapp/revanced/integrations/patches/FensterSwipePatch;->NextGenWatchLayout_onInterceptTouchEventHookEX(Ljava/lang/Object;Ljava/lang/Object;)Z
|
||||
*/
|
||||
public static boolean NextGenWatchLayout_onInterceptTouchEventHookEX(@Nullable Object thisRef, @Nullable Object motionEvent) {
|
||||
public static boolean NextGenWatchLayout_onInterceptTouchEventHookEX(Object thisRef, Object motionEvent) {
|
||||
if (motionEvent == null) return false;
|
||||
if (motionEvent instanceof MotionEvent) {
|
||||
return FENSTER.onTouchEvent((MotionEvent) motionEvent);
|
||||
|
@ -3,12 +3,19 @@ package app.revanced.integrations.patches;
|
||||
import android.view.View;
|
||||
|
||||
import app.revanced.integrations.adremover.AdRemoverAPI;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
|
||||
public class HideCreateButtonPatch {
|
||||
|
||||
//Todo: Switch BooleanPreferences to Settings class
|
||||
//Used by app.revanced.patches.youtube.layout.createbutton.patch.CreateButtonRemoverPatch
|
||||
public static void hideCreateButton(View view) {
|
||||
AdRemoverAPI.hideCreateButton(view);
|
||||
String message = SettingsEnum.CREATE_BUTTON_SHOWN_BOOLEAN.getBoolean() ? "Create button: Shown" : "Create button: Hidden";
|
||||
LogHelper.debug(HideCreateButtonPatch.class, message);
|
||||
if (SettingsEnum.CREATE_BUTTON_SHOWN_BOOLEAN.getBoolean()) {
|
||||
view.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
view.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -4,13 +4,21 @@ package app.revanced.integrations.patches;
|
||||
import android.view.View;
|
||||
|
||||
import app.revanced.integrations.adremover.AdRemoverAPI;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
|
||||
public class HideShortsButtonPatch {
|
||||
|
||||
//Todo: Switch BooleanPreferences to Settings class
|
||||
//Used by app.revanced.patches.youtube.layout.shorts.button.patch.ShortsButtonRemoverPatch
|
||||
public static void hideShortsButton(View view) {
|
||||
AdRemoverAPI.hideShortsButton(view);
|
||||
if (lastPivotTab != null && lastPivotTab.name() == "TAB_SHORTS") {
|
||||
String message = SettingsEnum.SHORTS_BUTTON_SHOWN_BOOLEAN.getBoolean() ? "Shorts button: shown" : "Shorts button: hidden";
|
||||
LogHelper.debug(HideShortsButtonPatch.class, message);
|
||||
if (!SettingsEnum.SHORTS_BUTTON_SHOWN_BOOLEAN.getBoolean()) {
|
||||
view.setVisibility(View.GONE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Needed for the ShortsButtonRemoverPatch
|
||||
|
@ -1,7 +0,0 @@
|
||||
package app.revanced.integrations.ryd;
|
||||
|
||||
public class RYDSettings {
|
||||
public static final String PREFERENCES_KEY_USERID = "userId";
|
||||
public static final String PREFERENCES_KEY_RYD_ENABLED = "ryd-enabled";
|
||||
public static final String PREFERENCES_KEY_RYD_HINT_SHOWN = "ryd_hint_shown";
|
||||
}
|
@ -1,40 +1,28 @@
|
||||
package app.revanced.integrations.ryd;
|
||||
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.Base64;
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.security.SecureRandom;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.ryd.requests.RYDRequester;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
|
||||
public class Registration {
|
||||
private String userId;
|
||||
private Context context;
|
||||
|
||||
public Registration(Context context) {
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
// https://stackoverflow.com/a/157202
|
||||
private final String AB = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
||||
private SecureRandom rnd = new SecureRandom();
|
||||
private String userId;
|
||||
|
||||
public String getUserId() {
|
||||
return userId != null ? userId : fetchUserId();
|
||||
}
|
||||
|
||||
public void saveUserId(String userId) {
|
||||
try {
|
||||
if (this.context == null)
|
||||
throw new Exception("Unable to save userId because context was null");
|
||||
SharedPrefHelper.saveString(context, SharedPrefHelper.SharedPrefNames.RYD, RYDSettings.PREFERENCES_KEY_USERID, userId);
|
||||
} catch (Exception ex) {
|
||||
LogHelper.printException(Registration.class, "Unable to save the userId in shared preferences", ex);
|
||||
}
|
||||
SettingsEnum.RYD_USER_ID_STRING.saveValue(userId);
|
||||
}
|
||||
|
||||
public static String solvePuzzle(String challenge, int difficulty) {
|
||||
@ -81,17 +69,9 @@ public class Registration {
|
||||
}
|
||||
|
||||
private String fetchUserId() {
|
||||
try {
|
||||
if (this.context == null)
|
||||
throw new Exception("Unable to fetch userId because context was null");
|
||||
|
||||
this.userId = SharedPrefHelper.getString(context, SharedPrefHelper.SharedPrefNames.RYD, RYDSettings.PREFERENCES_KEY_USERID, null);
|
||||
|
||||
if (this.userId == null) {
|
||||
this.userId = register();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
LogHelper.printException(Registration.class, "Unable to fetch the userId from shared preferences", ex);
|
||||
this.userId = SettingsEnum.RYD_USER_ID_STRING.getString();
|
||||
if (this.userId == null) {
|
||||
this.userId = register();
|
||||
}
|
||||
|
||||
return this.userId;
|
||||
|
@ -2,7 +2,6 @@ package app.revanced.integrations.ryd;
|
||||
|
||||
import static app.revanced.integrations.sponsorblock.player.VideoInformation.currentVideoId;
|
||||
import static app.revanced.integrations.sponsorblock.player.VideoInformation.dislikeCount;
|
||||
import static app.revanced.integrations.ryd.RYDSettings.PREFERENCES_KEY_RYD_ENABLED;
|
||||
import static app.revanced.integrations.utils.ReVancedUtils.getIdentifier;
|
||||
|
||||
import android.content.Context;
|
||||
@ -15,6 +14,7 @@ import android.widget.TextView;
|
||||
import java.util.Locale;
|
||||
import java.util.Objects;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.ryd.requests.RYDRequester;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
@ -34,10 +34,10 @@ public class ReturnYouTubeDislikes {
|
||||
|
||||
static {
|
||||
Context context = ReVancedUtils.getContext();
|
||||
isEnabled = SharedPrefHelper.getBoolean(Objects.requireNonNull(context), SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_ENABLED, false);
|
||||
isEnabled = SettingsEnum.RYD_ENABLED_BOOLEAN.getBoolean();
|
||||
if (isEnabled) {
|
||||
registration = new Registration(context);
|
||||
voting = new Voting(context, registration);
|
||||
registration = new Registration();
|
||||
voting = new Voting(registration);
|
||||
}
|
||||
|
||||
Locale locale = context.getResources().getConfiguration().locale;
|
||||
@ -53,10 +53,10 @@ public class ReturnYouTubeDislikes {
|
||||
public static void onEnabledChange(boolean enabled) {
|
||||
isEnabled = enabled;
|
||||
if (registration == null) {
|
||||
registration = new Registration(ReVancedUtils.getContext());
|
||||
registration = new Registration();
|
||||
}
|
||||
if (voting == null) {
|
||||
voting = new Voting(ReVancedUtils.getContext(), registration);
|
||||
voting = new Voting(registration);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,17 +1,12 @@
|
||||
package app.revanced.integrations.ryd;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.ryd.requests.RYDRequester;
|
||||
|
||||
public class Voting {
|
||||
private Registration registration;
|
||||
private Context context;
|
||||
|
||||
public Voting(Context context, Registration registration) {
|
||||
this.context = context;
|
||||
public Voting(Registration registration) {
|
||||
this.registration = registration;
|
||||
}
|
||||
|
||||
|
@ -1,21 +1,16 @@
|
||||
package app.revanced.integrations.ryd.dialog;
|
||||
|
||||
import static app.revanced.integrations.ryd.RYDSettings.PREFERENCES_KEY_RYD_ENABLED;
|
||||
import static app.revanced.integrations.ryd.RYDSettings.PREFERENCES_KEY_RYD_HINT_SHOWN;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN;
|
||||
import static app.revanced.integrations.sponsorblock.StringRef.str;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.AlertDialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.content.Intent;
|
||||
import android.graphics.LightingColorFilter;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
|
||||
public class Dialogs {
|
||||
@ -25,15 +20,14 @@ public class Dialogs {
|
||||
}
|
||||
|
||||
private static void rydFirstRun(Activity activity) {
|
||||
Context context = ReVancedUtils.getContext();
|
||||
boolean enabled = SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_ENABLED, false);
|
||||
boolean hintShown = SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_HINT_SHOWN, false);
|
||||
boolean enabled = SettingsEnum.RYD_ENABLED_BOOLEAN.getBoolean();
|
||||
boolean hintShown = SettingsEnum.RYD_HINT_SHOWN_BOOLEAN.getBoolean();
|
||||
|
||||
// If RYD is enabled or hint has been shown, exit
|
||||
if (enabled || hintShown) {
|
||||
// If RYD is enabled but hint hasn't been shown, mark it as shown
|
||||
if (enabled && !hintShown) {
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_HINT_SHOWN, true);
|
||||
SettingsEnum.RYD_HINT_SHOWN_BOOLEAN.saveValue(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -50,15 +44,15 @@ public class Dialogs {
|
||||
builder.setMessage(str("revanced_ryd_firstrun"));
|
||||
builder.setPositiveButton(str("revanced_enable"),
|
||||
(dialog, id) -> {
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_HINT_SHOWN, true);
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_ENABLED, true);
|
||||
SettingsEnum.RYD_HINT_SHOWN_BOOLEAN.saveValue(true);
|
||||
SettingsEnum.RYD_ENABLED_BOOLEAN.saveValue(true);
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
builder.setNegativeButton(str("revanced_disable"),
|
||||
(dialog, id) -> {
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_HINT_SHOWN, true);
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_ENABLED, false);
|
||||
SettingsEnum.RYD_HINT_SHOWN_BOOLEAN.saveValue(true);
|
||||
SettingsEnum.RYD_ENABLED_BOOLEAN.saveValue(false);
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
|
@ -2,52 +2,107 @@ package app.revanced.integrations.settings;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
|
||||
public enum SettingsEnum {
|
||||
|
||||
DEBUG_BOOLEAN("debug_revanced_enabled", false),
|
||||
MANUFACTURER_OVERRIDE_STRING("override_manufacturer", null),
|
||||
MODEL_OVERRIDE_STRING("override_model", null),
|
||||
CODEC_OVERRIDE_BOOLEAN("revanced_vp9_enabled", true),
|
||||
PREFERRED_RESOLUTION_WIFI_INTEGER("pref_video_quality_wifi", -2),
|
||||
PREFERRED_RESOLUTION_MOBILE_INTEGER("pref_video_quality_mobile", -2),
|
||||
PREFERRED_VIDEO_SPEED_FLOAT("pref_video_speed", -2.0f),
|
||||
PREFERRED_MINIMIZED_VIDEO_PREVIEW_INTEGER("pref_minimized_video_preview", -2),
|
||||
PREFERRED_AUTO_REPEAT_BOOLEAN("pref_auto_repeat", true),
|
||||
HOME_ADS_SHOWN_BOOLEAN("home_ads_enabled", false),
|
||||
VIDEO_ADS_SHOWN_BOOLEAN("video_ads_enabled", false),
|
||||
REEL_BUTTON_SHOWN_BOOLEAN("reel_button_enabled", false),
|
||||
SHORTS_BUTTON_SHOWN_BOOLEAN("shorts_button_enabled", false),
|
||||
CAST_BUTTON_SHOWN_BOOLEAN("cast_button_enabled", false),
|
||||
//Codec Override
|
||||
CODEC_OVERRIDE_BOOLEAN("revanced_override_codec_enabled", true),
|
||||
MANUFACTURER_OVERRIDE_STRING("revanced_override_codec_manufacturer", null),
|
||||
MODEL_OVERRIDE_STRING("revanced_override_codec_model", null),
|
||||
|
||||
//Video Settings
|
||||
OLD_STYLE_QUALITY_SETTINGS_BOOLEAN("revanced_use_old_style_quality_settings", true),
|
||||
OVERRIDE_RESOLUTION_TO_MAX_BOOLEAN("revanced_override_resolution_max", false),
|
||||
PREFERRED_RESOLUTION_WIFI_INTEGER("revanced_pref_video_quality_wifi", -2),
|
||||
PREFERRED_RESOLUTION_MOBILE_INTEGER("revanced_pref_video_quality_mobile", -2),
|
||||
PREFERRED_VIDEO_SPEED_FLOAT("revanced_pref_video_speed", -2.0f),
|
||||
|
||||
//Whitelist Settings
|
||||
ENABLE_WHITELIST_BOOLEAN("revanced_whitelist_ads_enabled", false),
|
||||
|
||||
//Ad settings
|
||||
HOME_ADS_SHOWN_BOOLEAN("revanced_home_ads_enabled", false),
|
||||
VIDEO_ADS_SHOWN_BOOLEAN("revanced_video_ads_enabled", false),
|
||||
ADREMOVER_AD_REMOVAL_BOOLEAN("revanced_adremover_ad_removal", true),
|
||||
ADREMOVER_MERCHANDISE_REMOVAL_BOOLEAN("revanced_adremover_merchandise", true),
|
||||
ADREMOVER_COMMUNITY_POSTS_REMOVAL_BOOLEAN("revanced_adremover_community_posts_removal", false),
|
||||
ADREMOVER_COMPACT_BANNER_REMOVAL_BOOLEAN("revanced_adremover_compact_banner_removal", true),
|
||||
ADREMOVER_COMMENTS_REMOVAL_BOOLEAN("revanced_adremover_comments_removal", false),
|
||||
ADREMOVER_MOVIE_REMOVAL_BOOLEAN("revanced_adremover_movie", true),
|
||||
ADREMOVER_FEED_SURVEY_REMOVAL_BOOLEAN("revanced_adremover_feed_survey", true),
|
||||
ADREMOVER_SHORTS_SHELF_BOOLEAN("revanced_adremover_shorts_shelf", true),
|
||||
ADREMOVER_COMMUNITY_GUIDELINES_BOOLEAN("revanced_adremover_community_guidelines", true),
|
||||
//ToDo: These Settings have to be added to revanced_prefs.xml
|
||||
ADREMOVER_EMERGENCY_BOX_REMOVAL_BOOLEAN("revanced_adremover_emergency_box_removal", true),
|
||||
ADREMOVER_INFO_PANEL_REMOVAL_BOOLEAN("revanced_adremover_info_panel", true),
|
||||
ADREMOVER_MEDICAL_PANEL_REMOVAL_BOOLEAN("revanced_adremover_medical_panel", true),
|
||||
ADREMOVER_PAID_CONTECT_REMOVAL_BOOLEAN("revanced_adremover_paid_content", true),
|
||||
ADREMOVER_SUGGESTED_FOR_YOU_REMOVAL_BOOLEAN("revanced_adremover_suggested", true),
|
||||
ADREMOVER_HIDE_SUGGESTIONS_BOOLEAN("revanced_adremover_hide_suggestions", true),
|
||||
ADREMOVER_HIDE_LATEST_POSTS_BOOLEAN("revanced_adremover_hide_latest_posts", true),
|
||||
|
||||
//Layout settings
|
||||
REEL_BUTTON_SHOWN_BOOLEAN("revanced_reel_button_enabled", false),
|
||||
INFO_CARDS_SHOWN_BOOLEAN("revanced_info_cards_enabled", false),
|
||||
BRANDING_SHOWN_BOOLEAN("revanced_branding_watermark_enabled", false),
|
||||
CAST_BUTTON_SHOWN_BOOLEAN("revanced_cast_button_enabled", false),
|
||||
USE_TABLET_MINIPLAYER_BOOLEAN("revanced_tablet_miniplayer", false),
|
||||
CREATE_BUTTON_SHOWN_BOOLEAN("revanced_create_button_enabled", false),
|
||||
INFO_CARDS_SHOWN_BOOLEAN("info_cards_enabled", false),
|
||||
BRANDING_SHOWN_BOOLEAN("branding_watermark_enabled", false),
|
||||
USE_TABLET_MINIPLAYER_BOOLEAN("tablet_miniplayer", false),
|
||||
USE_NEW_ACTIONBAR_BOOLEAN("revanced_new_actionbar", false),
|
||||
USE_DARK_THEME_BOOLEAN("app_theme_dark", false),
|
||||
USE_HDR_BRIGHTNESS_BOOLEAN("pref_hdr_autobrightness", true),
|
||||
ENABLE_SWIPE_BRIGHTNESS_BOOLEAN("pref_xfenster_brightness", true),
|
||||
ENABLE_SWIPE_VOLUME_BOOLEAN("pref_xfenster_volume", true),
|
||||
SHORTS_BUTTON_SHOWN_BOOLEAN("revanced_shorts_button_enabled", false),
|
||||
|
||||
@Deprecated
|
||||
SWIPE_THRESHOLD_INTEGER("pref_xfenster_swipe_threshold", 30),
|
||||
@Deprecated
|
||||
SWIPE_PADDING_TOP_INTEGER("pref_xfenster_swipe_padding_top", 50),
|
||||
@Deprecated
|
||||
SWIPE_USE_TABLET_MODE("pref_xfenster_tablet", false),
|
||||
|
||||
MAX_BUFFER_INTEGER("pref_max_buffer_ms", 120000),
|
||||
PLAYBACK_MAX_BUFFER_INTEGER("pref_buffer_for_playback_ms", 2500),
|
||||
MAX_PLAYBACK_BUFFER_AFTER_REBUFFER_INTEGER("pref_buffer_for_playback_after_rebuffer_ms", 5000),
|
||||
OLD_STYLE_QUALITY_SETTINGS_BOOLEAN("old_style_quality_settings", true),
|
||||
//Misc. Settings
|
||||
AUTOREPEAT_BUTTON_SHOWN_BOOLEAN("revanced_pref_auto_repeat_button", false),
|
||||
PREFERRED_AUTO_REPEAT_BOOLEAN("revanced_pref_auto_repeat", true),
|
||||
USE_HDR_BRIGHTNESS_BOOLEAN("revanced_pref_hdr_autobrightness", true),
|
||||
TAP_SEEKING_ENABLED_BOOLEAN("revanced_enable_tap_seeking", true),
|
||||
;
|
||||
|
||||
//Swipe controls
|
||||
ENABLE_SWIPE_BRIGHTNESS_BOOLEAN("revanced_enable_swipe_brightness", true),
|
||||
ENABLE_SWIPE_VOLUME_BOOLEAN("revanced_enable_swipe_volume", true),
|
||||
|
||||
//Buffer Settings
|
||||
MAX_BUFFER_INTEGER("revanced_pref_max_buffer_ms", 120000),
|
||||
PLAYBACK_MAX_BUFFER_INTEGER("revanced_pref_buffer_for_playback_ms", 2500),
|
||||
MAX_PLAYBACK_BUFFER_AFTER_REBUFFER_INTEGER("revanced_pref_buffer_for_playback_after_rebuffer_ms", 5000),
|
||||
|
||||
//ReVanced General Settings
|
||||
DEBUG_BOOLEAN("revanced_debug_enabled", true),
|
||||
USE_DARK_THEME_BOOLEAN("app_theme_dark", false),
|
||||
|
||||
//RYD Settings
|
||||
RYD_USER_ID_STRING("ryd_userId", null, SharedPrefHelper.SharedPrefNames.RYD),
|
||||
RYD_ENABLED_BOOLEAN("ryd_enabled", true, SharedPrefHelper.SharedPrefNames.RYD),
|
||||
RYD_HINT_SHOWN_BOOLEAN("ryd_hint_shown", false, SharedPrefHelper.SharedPrefNames.RYD),
|
||||
|
||||
//SponsorBlock Settings
|
||||
SB_ENABLED_BOOLEAN("sb-enabled", true, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_SHOW_TOAST_WHEN_SKIP_BOOLEAN("show-toast", true, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_COUNT_SKIPS_BOOLEAN("count-skips", true, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_UUID_STRING("uuid", null, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_ADJUST_NEW_SEGMENT_STEP_INTEGER("new-segment-step-accuracy", 150, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_MIN_DURATION_FLOAT("sb-min-duration", 0F, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_SPONSOR_BLOCK_HINT_SHOWN_BOOLEAN("sb_hint_shown", false, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_SEEN_GUIDELINES_BOOLEAN("sb-seen-gl", false, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_NEW_SEGMENT_ENABLED_BOOLEAN("sb-new-segment-enabled", false, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_VOTING_ENABLED_BOOLEAN("sb-voting-enabled", true, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_SKIPPED_SEGMENTS_INTEGER("sb-skipped-segments", 0, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_SKIPPED_SEGMENTS_TIME_LONG("sb-skipped-segments-time", 0L, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_SHOW_TIME_WITHOUT_SEGMENTS_BOOLEAN("sb-length-without-segments", true, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_IS_VIP_BOOLEAN("sb-is-vip", false, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_LAST_VIP_CHECK_LONG("sb-last-vip-check", 0L, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_SHOW_BROWSER_BUTTON_BOOLEAN("sb-browser-button", false, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK),
|
||||
SB_API_URL_STRING("sb-api-url", "https://sponsor.ajay.app/api/", SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK);
|
||||
|
||||
private final String path;
|
||||
private final Object defaultValue;
|
||||
private final SharedPrefHelper.SharedPrefNames sharedPref;
|
||||
|
||||
private Object value = null;
|
||||
private static boolean loaded = false;
|
||||
@ -55,6 +110,13 @@ public enum SettingsEnum {
|
||||
SettingsEnum(String path, Object defaultValue) {
|
||||
this.path = path;
|
||||
this.defaultValue = defaultValue;
|
||||
this.sharedPref = SharedPrefHelper.SharedPrefNames.YOUTUBE;
|
||||
}
|
||||
|
||||
SettingsEnum(String path, Object defaultValue, SharedPrefHelper.SharedPrefNames prefName) {
|
||||
this.path = path;
|
||||
this.defaultValue = defaultValue;
|
||||
this.sharedPref = prefName;
|
||||
}
|
||||
|
||||
public static void loadSettings() {
|
||||
@ -91,6 +153,16 @@ public enum SettingsEnum {
|
||||
return loaded;
|
||||
}
|
||||
|
||||
public static List<SettingsEnum> getAdRemovalSettings() {
|
||||
List<SettingsEnum> list = new ArrayList<>();
|
||||
for (SettingsEnum var : SettingsEnum.values()) {
|
||||
if (var.toString().startsWith("ADREMOVER")) {
|
||||
list.add(var);
|
||||
}
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
public void setValue(Object newValue) {
|
||||
this.value = newValue;
|
||||
}
|
||||
@ -100,15 +172,15 @@ public enum SettingsEnum {
|
||||
Context context = ReVancedUtils.getContext();
|
||||
if (context != null) {
|
||||
if (name().endsWith("BOOLEAN")) {
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.YOUTUBE, getPath(), (Boolean) newValue);
|
||||
SharedPrefHelper.saveBoolean(context, sharedPref, getPath(), (Boolean) newValue);
|
||||
} else if (name().endsWith("INTEGER")) {
|
||||
SharedPrefHelper.saveInt(context, SharedPrefHelper.SharedPrefNames.YOUTUBE, getPath(), (int) newValue);
|
||||
SharedPrefHelper.saveInt(context, sharedPref, getPath(), (int) newValue);
|
||||
} else if (name().endsWith("STRING")) {
|
||||
SharedPrefHelper.saveString(context, SharedPrefHelper.SharedPrefNames.YOUTUBE, getPath(), (String) newValue);
|
||||
SharedPrefHelper.saveString(context, sharedPref, getPath(), (String) newValue);
|
||||
} else if (name().endsWith("LONG")) {
|
||||
SharedPrefHelper.saveLong(context, SharedPrefHelper.SharedPrefNames.YOUTUBE, getPath(), (Long) newValue);
|
||||
SharedPrefHelper.saveLong(context, sharedPref, getPath(), (Long) newValue);
|
||||
} else if (name().endsWith(("FLOAT"))) {
|
||||
SharedPrefHelper.saveFloat(context, SharedPrefHelper.SharedPrefNames.YOUTUBE, getPath(), (Float) newValue);
|
||||
SharedPrefHelper.saveFloat(context, sharedPref, getPath(), (Float) newValue);
|
||||
} else {
|
||||
LogHelper.printException(SettingsEnum.class, "Setting does not end with a valid Type. Name is: " + name());
|
||||
}
|
||||
@ -133,7 +205,8 @@ public enum SettingsEnum {
|
||||
|
||||
public boolean getBoolean() {
|
||||
SettingsEnum.loadSettings();
|
||||
//LogHelper.debug("SettingsEnum", "Variable " + name() + " is " + value);
|
||||
if (this != DEBUG_BOOLEAN)
|
||||
LogHelper.debug(SettingsEnum.class, "Variable " + name() + " is " + value);
|
||||
return (Boolean) value;
|
||||
}
|
||||
|
||||
|
@ -1,7 +1,5 @@
|
||||
package app.revanced.integrations.settingsmenu;
|
||||
|
||||
import static app.revanced.integrations.ryd.RYDSettings.PREFERENCES_KEY_RYD_ENABLED;
|
||||
import static app.revanced.integrations.ryd.RYDSettings.PREFERENCES_KEY_RYD_HINT_SHOWN;
|
||||
import static app.revanced.integrations.sponsorblock.StringRef.str;
|
||||
|
||||
import android.app.Activity;
|
||||
@ -16,7 +14,6 @@ import android.preference.PreferenceScreen;
|
||||
import android.preference.SwitchPreference;
|
||||
|
||||
import app.revanced.integrations.ryd.ReturnYouTubeDislikes;
|
||||
import app.revanced.integrations.settings.Settings;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
|
||||
@ -35,9 +32,9 @@ public class RYDSettingsFragment extends PreferenceFragment {
|
||||
{
|
||||
SwitchPreference preference = new SwitchPreference(context);
|
||||
preferenceScreen.addPreference(preference);
|
||||
preference.setKey(PREFERENCES_KEY_RYD_ENABLED);
|
||||
preference.setKey(SettingsEnum.RYD_ENABLED_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(false);
|
||||
preference.setChecked(SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_ENABLED));
|
||||
preference.setChecked(SettingsEnum.RYD_ENABLED_BOOLEAN.getBoolean());
|
||||
preference.setTitle(str("revanced_ryd_title"));
|
||||
preference.setSummary(str("revanced_ryd_summary"));
|
||||
preference.setOnPreferenceChangeListener((pref, newValue) -> {
|
||||
@ -51,9 +48,9 @@ public class RYDSettingsFragment extends PreferenceFragment {
|
||||
if (SettingsEnum.DEBUG_BOOLEAN.getBoolean()) {
|
||||
SwitchPreference preference = new SwitchPreference(context);
|
||||
preferenceScreen.addPreference(preference);
|
||||
preference.setKey(PREFERENCES_KEY_RYD_HINT_SHOWN);
|
||||
preference.setKey(SettingsEnum.RYD_HINT_SHOWN_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(false);
|
||||
preference.setChecked(SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_RYD_HINT_SHOWN));
|
||||
preference.setChecked(SettingsEnum.RYD_HINT_SHOWN_BOOLEAN.getBoolean());
|
||||
preference.setTitle("Hint debug");
|
||||
preference.setSummary("Debug toggle for clearing the hint shown preference");
|
||||
preference.setOnPreferenceChangeListener((pref, newValue) -> true);
|
||||
|
@ -8,6 +8,7 @@ import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Process;
|
||||
import android.preference.EditTextPreference;
|
||||
@ -52,8 +53,6 @@ public class ReVancedSettingsFragment extends PreferenceFragment {
|
||||
|
||||
private final CharSequence[] videoQualityEntries = {"Auto", "144p", "240p", "360p", "480p", "720p", "1080p", "1440p", "2160p"};
|
||||
private final CharSequence[] videoQualityentryValues = {"-2", "144", "240", "360", "480", "720", "1080", "1440", "2160"};
|
||||
private final CharSequence[] minimizedVideoEntries = {"Auto", "Video only", "Video with controls"};
|
||||
private final CharSequence[] minimizedVideoentryValues = {"-2", "0", "1"};
|
||||
private final CharSequence[] videoSpeedEntries = {"Auto", "0.25x", "0.5x", "0.75x", "Normal", "1.25x", "1.5x", "1.75x", "2x", "3x", "4x", "5x"};
|
||||
private final CharSequence[] videoSpeedentryValues = {"-2", "0.25", "0.5", "0.75", "1.0", "1.25", "1.5", "1.75", "2.0", "3.0", "4.0", "5.0"};
|
||||
private final CharSequence[] buttonLocationEntries = {"None", "In player", "Under player", "Both"};
|
||||
@ -119,14 +118,6 @@ public class ReVancedSettingsFragment extends PreferenceFragment {
|
||||
if (ReVancedUtils.getContext() != null && settingsInitialized) {
|
||||
rebootDialog(getActivity());
|
||||
}
|
||||
} else if (str.equals(SettingsEnum.PREFERRED_MINIMIZED_VIDEO_PREVIEW_INTEGER.getPath())) {
|
||||
ListPreference listPreference = (ListPreference) layoutSettingsPreferenceScreen.findPreference(str);
|
||||
int index = SettingsEnum.PREFERRED_MINIMIZED_VIDEO_PREVIEW_INTEGER.getInt();
|
||||
listPreference.setDefaultValue(SettingsEnum.PREFERRED_MINIMIZED_VIDEO_PREVIEW_INTEGER.getDefaultValue());
|
||||
listPreference.setSummary(minimizedVideoEntries[listPreference.findIndexOfValue(String.valueOf(index))]);
|
||||
if (ReVancedUtils.getContext() != null && settingsInitialized) {
|
||||
rebootDialog(getActivity());
|
||||
}
|
||||
} else if (str.equals(SettingsEnum.CODEC_OVERRIDE_BOOLEAN.getPath())) {
|
||||
SettingsEnum.CODEC_OVERRIDE_BOOLEAN.setValue(((SwitchPreference) findPreference(str)).isChecked());
|
||||
if (ReVancedUtils.getContext() != null && settingsInitialized) {
|
||||
@ -198,7 +189,6 @@ public class ReVancedSettingsFragment extends PreferenceFragment {
|
||||
addPreferencesFromResource(identifier);
|
||||
String stringByName = ReVancedUtils.getStringByName(getActivity(), "quality_auto");
|
||||
this.videoQualityEntries[0] = stringByName;
|
||||
this.minimizedVideoEntries[0] = stringByName;
|
||||
this.videoSpeedEntries[0] = stringByName;
|
||||
String stringByName2 = ReVancedUtils.getStringByName(getActivity(), "pref_subtitles_scale_normal");
|
||||
if (stringByName2.equals("")) {
|
||||
@ -206,8 +196,6 @@ public class ReVancedSettingsFragment extends PreferenceFragment {
|
||||
} else {
|
||||
this.videoSpeedEntries[4] = stringByName2;
|
||||
}
|
||||
this.minimizedVideoEntries[1] = ReVancedUtils.getStringByName(getActivity(), "revanced_miniplayer_style_video");
|
||||
this.minimizedVideoEntries[2] = ReVancedUtils.getStringByName(getActivity(), "revanced_miniplayer_style_video_controls");
|
||||
SharedPreferences sharedPreferences = getPreferenceManager().getSharedPreferences();
|
||||
this.sharedPreferences = sharedPreferences;
|
||||
this.settingsInitialized = sharedPreferences.getBoolean("revanced_initialized", false);
|
||||
@ -256,12 +244,12 @@ public class ReVancedSettingsFragment extends PreferenceFragment {
|
||||
Preference findPreference = findPreference("pref_about_field");
|
||||
|
||||
this.codecDefault.setOnPreferenceClickListener(preference -> {
|
||||
ReVancedSettingsFragment.this.ChangeCodec(preference);
|
||||
ReVancedSettingsFragment.this.changeCodec();
|
||||
return false;
|
||||
});
|
||||
|
||||
this.codecVP9.setOnPreferenceClickListener(preference -> {
|
||||
ReVancedSettingsFragment.this.ChangeCodec(preference);
|
||||
ReVancedSettingsFragment.this.changeCodec();
|
||||
return false;
|
||||
});
|
||||
|
||||
@ -298,16 +286,6 @@ public class ReVancedSettingsFragment extends PreferenceFragment {
|
||||
listPreference.setSummary(this.videoQualityEntries[listPreference.findIndexOfValue(string)]);
|
||||
}
|
||||
|
||||
protected void setMinimizedListPreferenceData(ListPreference listPreference) {
|
||||
listPreference.setEntries(this.minimizedVideoEntries);
|
||||
listPreference.setEntryValues(this.minimizedVideoentryValues);
|
||||
String string = this.sharedPreferences.getString("pref_minimized_video_preview", "-2");
|
||||
if (listPreference.getValue() == null) {
|
||||
listPreference.setValue(string);
|
||||
}
|
||||
listPreference.setSummary(this.minimizedVideoEntries[listPreference.findIndexOfValue(string)]);
|
||||
}
|
||||
|
||||
protected void setSpeedListPreferenceData(ListPreference listPreference) {
|
||||
listPreference.setEntries(this.videoSpeedEntries);
|
||||
listPreference.setEntryValues(this.videoSpeedentryValues);
|
||||
@ -340,14 +318,16 @@ public class ReVancedSettingsFragment extends PreferenceFragment {
|
||||
return PACKAGE_NAME;
|
||||
}
|
||||
|
||||
private void ChangeCodec(Preference preference) {
|
||||
private void changeCodec() {
|
||||
String manufacturer = null;
|
||||
String model = null;
|
||||
|
||||
String key = preference.getKey();
|
||||
if (key.equals("pref_vp9_override")) {
|
||||
if (SettingsEnum.CODEC_OVERRIDE_BOOLEAN.getBoolean()) {
|
||||
manufacturer = "samsung";
|
||||
model = "SM-G920F";
|
||||
} else {
|
||||
manufacturer = Build.MANUFACTURER;
|
||||
model = Build.MODEL;
|
||||
}
|
||||
|
||||
SettingsEnum.MANUFACTURER_OVERRIDE_STRING.saveValue(manufacturer);
|
||||
|
@ -1,25 +1,5 @@
|
||||
package app.revanced.integrations.settingsmenu;
|
||||
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.DEFAULT_API_URL;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_ADJUST_NEW_SEGMENT_STEP;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_API_URL;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_BROWSER_BUTTON;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_COUNT_SKIPS;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_MIN_DURATION;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_NEW_SEGMENT_ENABLED;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SHOW_TIME_WITHOUT_SEGMENTS;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SHOW_TOAST_WHEN_SKIP;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_UUID;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_VOTING_ENABLED;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.adjustNewSegmentMillis;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.countSkips;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.minDuration;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.setSeenGuidelines;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.showTimeWithoutSegments;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.showToastWhenSkippedAutomatically;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.uuid;
|
||||
import static app.revanced.integrations.sponsorblock.StringRef.str;
|
||||
|
||||
import android.app.Activity;
|
||||
@ -56,7 +36,6 @@ import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
import app.revanced.integrations.sponsorblock.objects.EditTextListPreference;
|
||||
import app.revanced.integrations.sponsorblock.requests.SBRequester;
|
||||
|
||||
@SuppressWarnings({"unused", "deprecation"}) // injected
|
||||
public class SponsorBlockSettingsFragment extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
public static final DecimalFormat FORMATTER = new DecimalFormat("#,###,###");
|
||||
public static final String SAVED_TEMPLATE = "%dh %.1f %s";
|
||||
@ -80,9 +59,9 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
{
|
||||
SwitchPreference preference = new SwitchPreference(context);
|
||||
preferenceScreen.addPreference(preference);
|
||||
preference.setKey(PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED);
|
||||
preference.setDefaultValue(SponsorBlockSettings.isSponsorBlockEnabled);
|
||||
preference.setChecked(SponsorBlockSettings.isSponsorBlockEnabled);
|
||||
preference.setKey(SettingsEnum.SB_ENABLED_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_ENABLED_BOOLEAN.getDefaultValue());
|
||||
preference.setChecked(SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean());
|
||||
preference.setTitle(str("enable_sb"));
|
||||
preference.setSummary(str("enable_sb_sum"));
|
||||
preference.setOnPreferenceChangeListener((preference1, newValue) -> {
|
||||
@ -96,9 +75,9 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
if (SettingsEnum.DEBUG_BOOLEAN.getBoolean()) {
|
||||
SwitchPreference preference = new SwitchPreference(context);
|
||||
preferenceScreen.addPreference(preference);
|
||||
preference.setKey(PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN);
|
||||
preference.setKey(SettingsEnum.SB_SPONSOR_BLOCK_HINT_SHOWN_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(false);
|
||||
preference.setChecked(SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK, PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN));
|
||||
preference.setChecked(SettingsEnum.SB_SPONSOR_BLOCK_HINT_SHOWN_BOOLEAN.getBoolean());
|
||||
preference.setTitle("Hint debug");
|
||||
preference.setSummary("Debug toggle for clearing the hint shown preference");
|
||||
preference.setOnPreferenceChangeListener((pref, newValue) -> true);
|
||||
@ -107,15 +86,15 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
{
|
||||
SwitchPreference preference = new SwitchPreference(context);
|
||||
preferenceScreen.addPreference(preference);
|
||||
preference.setKey(PREFERENCES_KEY_NEW_SEGMENT_ENABLED);
|
||||
preference.setDefaultValue(SponsorBlockSettings.isAddNewSegmentEnabled);
|
||||
preference.setChecked(SponsorBlockSettings.isAddNewSegmentEnabled);
|
||||
preference.setKey(SettingsEnum.SB_NEW_SEGMENT_ENABLED_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_NEW_SEGMENT_ENABLED_BOOLEAN.getBoolean());
|
||||
preference.setChecked(SettingsEnum.SB_NEW_SEGMENT_ENABLED_BOOLEAN.getBoolean());
|
||||
preference.setTitle(str("enable_segmadding"));
|
||||
preference.setSummary(str("enable_segmadding_sum"));
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
preference.setOnPreferenceChangeListener((preference12, o) -> {
|
||||
final boolean value = (Boolean) o;
|
||||
if (value && !SponsorBlockSettings.seenGuidelinesPopup) {
|
||||
if (value && !SettingsEnum.SB_SEEN_GUIDELINES_BOOLEAN.getBoolean()) {
|
||||
new AlertDialog.Builder(preference12.getContext())
|
||||
.setTitle(str("sb_guidelines_popup_title"))
|
||||
.setMessage(str("sb_guidelines_popup_content"))
|
||||
@ -132,9 +111,9 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
preferenceScreen.addPreference(preference);
|
||||
preference.setTitle(str("enable_voting"));
|
||||
preference.setSummary(str("enable_voting_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_VOTING_ENABLED);
|
||||
preference.setDefaultValue(SponsorBlockSettings.isVotingEnabled);
|
||||
preference.setChecked(SponsorBlockSettings.isVotingEnabled);
|
||||
preference.setKey(SettingsEnum.SB_VOTING_ENABLED_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_VOTING_ENABLED_BOOLEAN.getBoolean());
|
||||
preference.setChecked(SettingsEnum.SB_VOTING_ENABLED_BOOLEAN.getBoolean());
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
}
|
||||
|
||||
@ -143,21 +122,21 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
addStatsCategory(context, preferenceScreen);
|
||||
addAboutCategory(context, preferenceScreen);
|
||||
|
||||
enableCategoriesIfNeeded(SponsorBlockSettings.isSponsorBlockEnabled);
|
||||
enableCategoriesIfNeeded(SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean());
|
||||
}
|
||||
|
||||
private void openGuidelines() {
|
||||
final Context context = getActivity();
|
||||
setSeenGuidelines(context);
|
||||
SettingsEnum.SB_SEEN_GUIDELINES_BOOLEAN.saveValue(true);
|
||||
|
||||
Intent intent = new Intent(Intent.ACTION_VIEW);
|
||||
intent.setData(Uri.parse("https://wiki.sponsor.ajay.app/w/Guidelines"));
|
||||
context.startActivity(intent);
|
||||
}
|
||||
|
||||
private void enableCategoriesIfNeeded(boolean enabled) {
|
||||
private void enableCategoriesIfNeeded(boolean value) {
|
||||
for (Preference preference : preferencesToDisableWhenSBDisabled)
|
||||
preference.setEnabled(enabled);
|
||||
preference.setEnabled(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -264,8 +243,8 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
Preference preference = new SwitchPreference(context);
|
||||
preference.setTitle(str("general_skiptoast"));
|
||||
preference.setSummary(str("general_skiptoast_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_SHOW_TOAST_WHEN_SKIP);
|
||||
preference.setDefaultValue(showToastWhenSkippedAutomatically);
|
||||
preference.setKey(SettingsEnum.SB_SHOW_TOAST_WHEN_SKIP_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_SHOW_TOAST_WHEN_SKIP_BOOLEAN.getBoolean());
|
||||
preference.setOnPreferenceClickListener(preference12 -> {
|
||||
Toast.makeText(preference12.getContext(), str("skipped_sponsor"), Toast.LENGTH_SHORT).show();
|
||||
return false;
|
||||
@ -278,8 +257,8 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
Preference preference = new SwitchPreference(context);
|
||||
preference.setTitle(str("general_skipcount"));
|
||||
preference.setSummary(str("general_skipcount_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_COUNT_SKIPS);
|
||||
preference.setDefaultValue(countSkips);
|
||||
preference.setKey(SettingsEnum.SB_COUNT_SKIPS_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_COUNT_SKIPS_BOOLEAN.getBoolean());
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
screen.addPreference(preference);
|
||||
}
|
||||
@ -288,8 +267,8 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
Preference preference = new SwitchPreference(context);
|
||||
preference.setTitle(str("general_time_without_sb"));
|
||||
preference.setSummary(str("general_time_without_sb_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_SHOW_TIME_WITHOUT_SEGMENTS);
|
||||
preference.setDefaultValue(showTimeWithoutSegments);
|
||||
preference.setKey(SettingsEnum.SB_SHOW_TIME_WITHOUT_SEGMENTS_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_SHOW_TIME_WITHOUT_SEGMENTS_BOOLEAN.getBoolean());
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
screen.addPreference(preference);
|
||||
}
|
||||
@ -307,7 +286,8 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
Preference preference = new SwitchPreference(context);
|
||||
preference.setTitle(str("general_browser_button"));
|
||||
preference.setSummary(str("general_browser_button_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_BROWSER_BUTTON);
|
||||
preference.setKey(SettingsEnum.SB_SHOW_BROWSER_BUTTON_BOOLEAN.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_SHOW_BROWSER_BUTTON_BOOLEAN.getBoolean());
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
screen.addPreference(preference);
|
||||
}
|
||||
@ -317,8 +297,8 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
preference.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER);
|
||||
preference.setTitle(str("general_adjusting"));
|
||||
preference.setSummary(str("general_adjusting_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_ADJUST_NEW_SEGMENT_STEP);
|
||||
preference.setDefaultValue(String.valueOf(adjustNewSegmentMillis));
|
||||
preference.setKey(SettingsEnum.SB_ADJUST_NEW_SEGMENT_STEP_INTEGER.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_ADJUST_NEW_SEGMENT_STEP_INTEGER.getInt());
|
||||
screen.addPreference(preference);
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
}
|
||||
@ -328,8 +308,8 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
preference.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
|
||||
preference.setTitle(str("general_min_duration"));
|
||||
preference.setSummary(str("general_min_duration_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_MIN_DURATION);
|
||||
preference.setDefaultValue(String.valueOf(minDuration));
|
||||
preference.setKey(SettingsEnum.SB_MIN_DURATION_FLOAT.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_MIN_DURATION_FLOAT.getFloat());
|
||||
screen.addPreference(preference);
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
}
|
||||
@ -338,8 +318,8 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
Preference preference = new EditTextPreference(context);
|
||||
preference.setTitle(str("general_uuid"));
|
||||
preference.setSummary(str("general_uuid_sum"));
|
||||
preference.setKey(PREFERENCES_KEY_UUID);
|
||||
preference.setDefaultValue(uuid);
|
||||
preference.setKey(SettingsEnum.SB_UUID_STRING.getPath());
|
||||
preference.setDefaultValue(SettingsEnum.SB_UUID_STRING.getString());
|
||||
screen.addPreference(preference);
|
||||
preferencesToDisableWhenSBDisabled.add(preference);
|
||||
}
|
||||
@ -352,7 +332,7 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
preference.setOnPreferenceClickListener(preference1 -> {
|
||||
EditText editText = new EditText(context);
|
||||
editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI);
|
||||
editText.setText(SponsorBlockSettings.apiUrl);
|
||||
editText.setText(SettingsEnum.SB_API_URL_STRING.getString());
|
||||
|
||||
API_URL_CHANGE_LISTENER.setEditTextRef(editText);
|
||||
new AlertDialog.Builder(context)
|
||||
@ -399,7 +379,7 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
|
||||
switch (which) {
|
||||
case DialogInterface.BUTTON_NEUTRAL:
|
||||
preferences.edit().putString(PREFERENCES_KEY_API_URL, DEFAULT_API_URL).apply();
|
||||
SettingsEnum.SB_API_URL_STRING.saveValue(SettingsEnum.SB_API_URL_STRING.getDefaultValue());
|
||||
Toast.makeText(applicationContext, str("api_url_reset"), Toast.LENGTH_SHORT).show();
|
||||
break;
|
||||
case DialogInterface.BUTTON_POSITIVE:
|
||||
@ -412,7 +392,7 @@ public class SponsorBlockSettingsFragment extends PreferenceFragment implements
|
||||
if (textAsString.isEmpty() || !Patterns.WEB_URL.matcher(textAsString).matches()) {
|
||||
invalidToast.show();
|
||||
} else {
|
||||
preferences.edit().putString(PREFERENCES_KEY_API_URL, textAsString).apply();
|
||||
SettingsEnum.SB_API_URL_STRING.saveValue(textAsString);
|
||||
Toast.makeText(applicationContext, str("api_url_changed"), Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,5 @@
|
||||
package app.revanced.integrations.sponsorblock;
|
||||
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.skippedSegments;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.skippedTime;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockUtils.timeWithoutSegments;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockUtils.videoHasSegments;
|
||||
|
||||
@ -23,6 +21,7 @@ import java.util.Arrays;
|
||||
import java.util.Timer;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.sponsorblock.player.VideoInformation;
|
||||
import app.revanced.integrations.adremover.whitelist.Whitelist;
|
||||
@ -65,7 +64,7 @@ public class PlayerController {
|
||||
Context context = ReVancedUtils.getContext();
|
||||
SponsorBlockSettings.update(context);
|
||||
|
||||
if (!SponsorBlockSettings.isSponsorBlockEnabled) {
|
||||
if (!SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean()) {
|
||||
currentVideoId = null;
|
||||
return;
|
||||
}
|
||||
@ -136,7 +135,7 @@ public class PlayerController {
|
||||
public static void setCurrentVideoTime(long millis) {
|
||||
LogHelper.debug(PlayerController.class, "setCurrentVideoTime: current video time: " + millis);
|
||||
VideoInformation.lastKnownVideoTime = millis;
|
||||
if (!SponsorBlockSettings.isSponsorBlockEnabled) return;
|
||||
if (!SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean()) return;
|
||||
lastKnownVideoTime = millis;
|
||||
if (millis <= 0) return;
|
||||
//findAndSkipSegment(false);
|
||||
@ -199,13 +198,13 @@ public class PlayerController {
|
||||
if (segment.category != SponsorBlockSettings.SegmentInfo.UNSUBMITTED) {
|
||||
Context context = ReVancedUtils.getContext();
|
||||
if (context != null) {
|
||||
long newSkippedTime = skippedTime + (segment.end - segment.start);
|
||||
SharedPrefHelper.saveInt(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK, SponsorBlockSettings.PREFERENCES_KEY_SKIPPED_SEGMENTS, skippedSegments + 1);
|
||||
SharedPrefHelper.saveLong(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK, SponsorBlockSettings.PREFERENCES_KEY_SKIPPED_SEGMENTS_TIME, newSkippedTime);
|
||||
long newSkippedTime = SettingsEnum.SB_SKIPPED_SEGMENTS_TIME_LONG.getLong() + (segment.end - segment.start);
|
||||
SettingsEnum.SB_SKIPPED_SEGMENTS_INTEGER.saveValue(SettingsEnum.SB_SKIPPED_SEGMENTS_INTEGER.getInt() + 1);
|
||||
SettingsEnum.SB_SKIPPED_SEGMENTS_TIME_LONG.saveValue(newSkippedTime);
|
||||
}
|
||||
}
|
||||
new Thread(() -> {
|
||||
if (SponsorBlockSettings.countSkips &&
|
||||
if (SettingsEnum.SB_COUNT_SKIPS_BOOLEAN.getBoolean() &&
|
||||
segment.category != SponsorBlockSettings.SegmentInfo.UNSUBMITTED &&
|
||||
millis - segment.start < 2000) {
|
||||
// Only skips from the start should count as a view
|
||||
@ -418,7 +417,7 @@ public class PlayerController {
|
||||
// lastSkippedSegment = segment;
|
||||
LogHelper.debug(PlayerController.class, "Skipping segment: " + segment.toString());
|
||||
|
||||
if (SponsorBlockSettings.showToastWhenSkippedAutomatically && !wasClicked)
|
||||
if (SettingsEnum.SB_SHOW_TOAST_WHEN_SKIP_BOOLEAN.getBoolean() && !wasClicked)
|
||||
SkipSegmentView.notifySkipped(segment);
|
||||
|
||||
skipToMillisecond(segment.end + 2);
|
||||
|
@ -9,10 +9,12 @@ import android.widget.ImageView;
|
||||
import android.widget.RelativeLayout;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.Set;
|
||||
|
||||
import static app.revanced.integrations.sponsorblock.PlayerController.getCurrentVideoLength;
|
||||
import static app.revanced.integrations.sponsorblock.PlayerController.getLastKnownVideoTime;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
|
||||
@ -95,7 +97,7 @@ public class ShieldButton {
|
||||
}
|
||||
|
||||
static boolean shouldBeShown() {
|
||||
return SponsorBlockUtils.isSettingEnabled(SponsorBlockSettings.isAddNewSegmentEnabled);
|
||||
return SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean() && SettingsEnum.SB_NEW_SEGMENT_ENABLED_BOOLEAN.getBoolean();
|
||||
}
|
||||
|
||||
//region Helpers
|
||||
|
@ -15,65 +15,22 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
|
||||
public class SponsorBlockSettings {
|
||||
|
||||
public static final String PREFERENCES_KEY_SHOW_TOAST_WHEN_SKIP = "show-toast";
|
||||
public static final String PREFERENCES_KEY_COUNT_SKIPS = "count-skips";
|
||||
public static final String PREFERENCES_KEY_UUID = "uuid";
|
||||
public static final String PREFERENCES_KEY_ADJUST_NEW_SEGMENT_STEP = "new-segment-step-accuracy";
|
||||
public static final String PREFERENCES_KEY_MIN_DURATION = "sb-min-duration";
|
||||
public static final String PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED = "sb-enabled";
|
||||
public static final String PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN = "sb_hint_shown";
|
||||
public static final String PREFERENCES_KEY_SEEN_GUIDELINES = "sb-seen-gl";
|
||||
public static final String PREFERENCES_KEY_NEW_SEGMENT_ENABLED = "sb-new-segment-enabled";
|
||||
public static final String PREFERENCES_KEY_VOTING_ENABLED = "sb-voting-enabled";
|
||||
public static final String PREFERENCES_KEY_SKIPPED_SEGMENTS = "sb-skipped-segments";
|
||||
public static final String PREFERENCES_KEY_SKIPPED_SEGMENTS_TIME = "sb-skipped-segments-time";
|
||||
public static final String PREFERENCES_KEY_SHOW_TIME_WITHOUT_SEGMENTS = "sb-length-without-segments";
|
||||
public static final String PREFERENCES_KEY_CATEGORY_COLOR_SUFFIX = "_color";
|
||||
public static final String PREFERENCES_KEY_BROWSER_BUTTON = "sb-browser-button";
|
||||
public static final String PREFERENCES_KEY_IS_VIP = "sb-is-vip";
|
||||
public static final String PREFERENCES_KEY_LAST_VIP_CHECK = "sb-last-vip-check";
|
||||
public static final String PREFERENCES_KEY_API_URL = "sb-api-url";
|
||||
|
||||
public static final String CATEGORY_COLOR_SUFFIX = "_color";
|
||||
public static final SegmentBehaviour DefaultBehaviour = SegmentBehaviour.IGNORE;
|
||||
public static final String DEFAULT_SERVER_URL = "https://sponsor.ajay.app";
|
||||
public static final String DEFAULT_API_URL = DEFAULT_SERVER_URL + "/api/";
|
||||
|
||||
public static boolean isSponsorBlockEnabled = false;
|
||||
public static boolean seenGuidelinesPopup = false;
|
||||
public static boolean isAddNewSegmentEnabled = false;
|
||||
public static boolean isVotingEnabled = true;
|
||||
public static boolean showToastWhenSkippedAutomatically = true;
|
||||
public static boolean countSkips = true;
|
||||
public static boolean showTimeWithoutSegments = true;
|
||||
public static boolean vip = false;
|
||||
public static long lastVipCheck = 0;
|
||||
public static int adjustNewSegmentMillis = 150;
|
||||
public static float minDuration = 0f;
|
||||
public static String uuid = "<invalid>";
|
||||
public static String apiUrl = DEFAULT_API_URL;
|
||||
public static String sponsorBlockUrlCategories = "[]";
|
||||
public static int skippedSegments;
|
||||
public static long skippedTime;
|
||||
|
||||
public static void setSeenGuidelines(Context context) {
|
||||
SponsorBlockSettings.seenGuidelinesPopup = true;
|
||||
SharedPrefHelper.getPreferences(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK).edit().putBoolean(PREFERENCES_KEY_SEEN_GUIDELINES, true).apply();
|
||||
}
|
||||
|
||||
public static void update(Context context) {
|
||||
if (context == null) return;
|
||||
|
||||
SharedPreferences preferences = SharedPrefHelper.getPreferences(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK);
|
||||
|
||||
isSponsorBlockEnabled = preferences.getBoolean(PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED, isSponsorBlockEnabled);
|
||||
seenGuidelinesPopup = preferences.getBoolean(PREFERENCES_KEY_SEEN_GUIDELINES, seenGuidelinesPopup);
|
||||
|
||||
if (!isSponsorBlockEnabled) {
|
||||
if (!SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean()) {
|
||||
SkipSegmentView.hide();
|
||||
NewSegmentHelperLayout.hide();
|
||||
SponsorBlockUtils.hideShieldButton();
|
||||
@ -83,16 +40,15 @@ public class SponsorBlockSettings {
|
||||
SponsorBlockUtils.showShieldButton();
|
||||
}
|
||||
|
||||
isAddNewSegmentEnabled = preferences.getBoolean(PREFERENCES_KEY_NEW_SEGMENT_ENABLED, isAddNewSegmentEnabled);
|
||||
if (!isAddNewSegmentEnabled) {
|
||||
if (!SettingsEnum.SB_NEW_SEGMENT_ENABLED_BOOLEAN.getBoolean()) {
|
||||
NewSegmentHelperLayout.hide();
|
||||
SponsorBlockUtils.hideShieldButton();
|
||||
} else {
|
||||
SponsorBlockUtils.showShieldButton();
|
||||
}
|
||||
|
||||
isVotingEnabled = preferences.getBoolean(PREFERENCES_KEY_VOTING_ENABLED, isVotingEnabled);
|
||||
if (!isVotingEnabled)
|
||||
|
||||
if (!SettingsEnum.SB_VOTING_ENABLED_BOOLEAN.getBoolean())
|
||||
SponsorBlockUtils.hideVoteButton();
|
||||
else
|
||||
SponsorBlockUtils.showVoteButton();
|
||||
@ -100,7 +56,7 @@ public class SponsorBlockSettings {
|
||||
SegmentBehaviour[] possibleBehaviours = SegmentBehaviour.values();
|
||||
final ArrayList<String> enabledCategories = new ArrayList<>(possibleBehaviours.length);
|
||||
for (SegmentInfo segment : SegmentInfo.values()) {
|
||||
String categoryColor = preferences.getString(segment.key + PREFERENCES_KEY_CATEGORY_COLOR_SUFFIX, SponsorBlockUtils.formatColorString(segment.defaultColor));
|
||||
String categoryColor = preferences.getString(segment.key + CATEGORY_COLOR_SUFFIX, SponsorBlockUtils.formatColorString(segment.defaultColor));
|
||||
segment.setColor(Color.parseColor(categoryColor));
|
||||
|
||||
SegmentBehaviour behaviour = null;
|
||||
@ -129,35 +85,13 @@ public class SponsorBlockSettings {
|
||||
else
|
||||
sponsorBlockUrlCategories = "[%22" + TextUtils.join("%22,%22", enabledCategories) + "%22]";
|
||||
|
||||
skippedSegments = preferences.getInt(PREFERENCES_KEY_SKIPPED_SEGMENTS, skippedSegments);
|
||||
skippedTime = preferences.getLong(PREFERENCES_KEY_SKIPPED_SEGMENTS_TIME, skippedTime);
|
||||
|
||||
showToastWhenSkippedAutomatically = preferences.getBoolean(PREFERENCES_KEY_SHOW_TOAST_WHEN_SKIP, showToastWhenSkippedAutomatically);
|
||||
String tmp1 = preferences.getString(PREFERENCES_KEY_ADJUST_NEW_SEGMENT_STEP, null);
|
||||
if (tmp1 != null)
|
||||
adjustNewSegmentMillis = Integer.parseInt(tmp1);
|
||||
|
||||
String minTmp = preferences.getString(PREFERENCES_KEY_MIN_DURATION, null);
|
||||
if (minTmp != null)
|
||||
minDuration = Float.parseFloat(minTmp);
|
||||
|
||||
countSkips = preferences.getBoolean(PREFERENCES_KEY_COUNT_SKIPS, countSkips);
|
||||
showTimeWithoutSegments = preferences.getBoolean(PREFERENCES_KEY_SHOW_TIME_WITHOUT_SEGMENTS, showTimeWithoutSegments);
|
||||
vip = preferences.getBoolean(PREFERENCES_KEY_IS_VIP, false);
|
||||
|
||||
String vipCheckTmp = preferences.getString(PREFERENCES_KEY_LAST_VIP_CHECK, null);
|
||||
if (vipCheckTmp != null)
|
||||
lastVipCheck = Long.parseLong(vipCheckTmp);
|
||||
|
||||
apiUrl = preferences.getString(PREFERENCES_KEY_API_URL, DEFAULT_API_URL);
|
||||
|
||||
uuid = preferences.getString(PREFERENCES_KEY_UUID, null);
|
||||
String uuid = SettingsEnum.SB_UUID_STRING.getString();
|
||||
if (uuid == null) {
|
||||
uuid = (UUID.randomUUID().toString() +
|
||||
UUID.randomUUID().toString() +
|
||||
UUID.randomUUID().toString())
|
||||
.replace("-", "");
|
||||
preferences.edit().putString(PREFERENCES_KEY_UUID, uuid).apply();
|
||||
SettingsEnum.SB_UUID_STRING.saveValue(uuid);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -9,28 +9,6 @@ import static app.revanced.integrations.sponsorblock.PlayerController.getLastKno
|
||||
import static app.revanced.integrations.sponsorblock.PlayerController.sponsorSegmentsOfCurrentVideo;
|
||||
import static app.revanced.integrations.settingsmenu.SponsorBlockSettingsFragment.FORMATTER;
|
||||
import static app.revanced.integrations.settingsmenu.SponsorBlockSettingsFragment.SAVED_TEMPLATE;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.DEFAULT_API_URL;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.DEFAULT_SERVER_URL;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_API_URL;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_CATEGORY_COLOR_SUFFIX;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_COUNT_SKIPS;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_IS_VIP;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_LAST_VIP_CHECK;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_MIN_DURATION;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SHOW_TIME_WITHOUT_SEGMENTS;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SHOW_TOAST_WHEN_SKIP;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_UUID;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.apiUrl;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.countSkips;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.isSponsorBlockEnabled;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.lastVipCheck;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.minDuration;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.showTimeWithoutSegments;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.showToastWhenSkippedAutomatically;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.skippedSegments;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.skippedTime;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.uuid;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.vip;
|
||||
import static app.revanced.integrations.sponsorblock.StringRef.str;
|
||||
import static app.revanced.integrations.sponsorblock.requests.SBRequester.voteForSegment;
|
||||
|
||||
@ -65,6 +43,8 @@ import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.TimeZone;
|
||||
|
||||
import app.revanced.integrations.settings.Settings;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.sponsorblock.player.PlayerType;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
@ -222,7 +202,7 @@ public abstract class SponsorBlockUtils {
|
||||
for (int i = 0; i < voteOptions.length; i++) {
|
||||
VoteOption voteOption = voteOptions[i];
|
||||
String title = voteOption.title;
|
||||
if (vip && segment.isLocked && voteOption.shouldHighlight) {
|
||||
if (SettingsEnum.SB_IS_VIP_BOOLEAN.getBoolean() && segment.isLocked && voteOption.shouldHighlight) {
|
||||
items[i] = Html.fromHtml(String.format("<font color=\"%s\">%s</font>", LOCKED_COLOR, title));
|
||||
} else {
|
||||
items[i] = title;
|
||||
@ -247,7 +227,7 @@ public abstract class SponsorBlockUtils {
|
||||
};
|
||||
private static final Runnable submitRunnable = () -> {
|
||||
messageToToast = null;
|
||||
final String uuid = SponsorBlockSettings.uuid;
|
||||
final String uuid = SettingsEnum.SB_UUID_STRING.getString();
|
||||
final long start = newSponsorSegmentStartMillis;
|
||||
final long end = newSponsorSegmentEndMillis;
|
||||
final String videoId = getCurrentVideoId();
|
||||
@ -424,7 +404,7 @@ public abstract class SponsorBlockUtils {
|
||||
}
|
||||
|
||||
public static String appendTimeWithoutSegments(String totalTime) {
|
||||
if (videoHasSegments && isSettingEnabled(showTimeWithoutSegments) && !TextUtils.isEmpty(totalTime) && getCurrentVideoLength() > 1) {
|
||||
if (videoHasSegments && (SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean() && SettingsEnum.SB_SHOW_TIME_WITHOUT_SEGMENTS_BOOLEAN.getBoolean()) && !TextUtils.isEmpty(totalTime) && getCurrentVideoLength() > 1) {
|
||||
if (timeWithoutSegments.isEmpty()) {
|
||||
timeWithoutSegments = getTimeWithoutSegments(sponsorSegmentsOfCurrentVideo);
|
||||
}
|
||||
@ -436,7 +416,7 @@ public abstract class SponsorBlockUtils {
|
||||
|
||||
public static String getTimeWithoutSegments(SponsorSegment[] sponsorSegmentsOfCurrentVideo) {
|
||||
long currentVideoLength = getCurrentVideoLength();
|
||||
if (!isSettingEnabled(showTimeWithoutSegments) || sponsorSegmentsOfCurrentVideo == null || currentVideoLength <= 1) {
|
||||
if (!(SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean() && SettingsEnum.SB_SHOW_TIME_WITHOUT_SEGMENTS_BOOLEAN.getBoolean()) || sponsorSegmentsOfCurrentVideo == null || currentVideoLength <= 1) {
|
||||
return "";
|
||||
}
|
||||
long timeWithoutSegments = currentVideoLength + 500; // YouTube:tm:
|
||||
@ -516,10 +496,10 @@ public abstract class SponsorBlockUtils {
|
||||
{
|
||||
Preference preference = new Preference(context);
|
||||
category.addPreference(preference);
|
||||
String formatted = FORMATTER.format(skippedSegments);
|
||||
String formatted = FORMATTER.format(SettingsEnum.SB_SKIPPED_SEGMENTS_INTEGER.getInt());
|
||||
|
||||
long hoursSaved = skippedTime / 3600000;
|
||||
double minutesSaved = (skippedTime / 60000d) % 60;
|
||||
long hoursSaved = SettingsEnum.SB_SKIPPED_SEGMENTS_TIME_LONG.getLong() / 3600000;
|
||||
double minutesSaved = (SettingsEnum.SB_SKIPPED_SEGMENTS_TIME_LONG.getLong() / 60000d) % 60;
|
||||
String formattedSaved = String.format(SAVED_TEMPLATE, hoursSaved, minutesSaved, minutesStr);
|
||||
|
||||
preference.setTitle(fromHtml(str("stats_self_saved", formatted)));
|
||||
@ -543,7 +523,7 @@ public abstract class SponsorBlockUtils {
|
||||
JSONObject categoryObject = barTypesObject.getJSONObject(categoryKey);
|
||||
String color = categoryObject.getString("color");
|
||||
|
||||
editor.putString(categoryKey + PREFERENCES_KEY_CATEGORY_COLOR_SUFFIX, color);
|
||||
editor.putString(categoryKey + SponsorBlockSettings.CATEGORY_COLOR_SUFFIX, color);
|
||||
editor.putString(categoryKey, SponsorBlockSettings.SegmentBehaviour.IGNORE.key);
|
||||
}
|
||||
|
||||
@ -562,21 +542,20 @@ public abstract class SponsorBlockUtils {
|
||||
editor.putString(category.key, behaviour.key);
|
||||
}
|
||||
|
||||
editor.putBoolean(PREFERENCES_KEY_SHOW_TOAST_WHEN_SKIP, !settingsJson.getBoolean("dontShowNotice"));
|
||||
editor.putBoolean(PREFERENCES_KEY_SHOW_TIME_WITHOUT_SEGMENTS, settingsJson.getBoolean("showTimeWithSkips"));
|
||||
editor.putBoolean(PREFERENCES_KEY_COUNT_SKIPS, settingsJson.getBoolean("trackViewCount"));
|
||||
editor.putBoolean(PREFERENCES_KEY_IS_VIP, settingsJson.getBoolean("isVip"));
|
||||
editor.putString(PREFERENCES_KEY_MIN_DURATION, settingsJson.getString("minDuration"));
|
||||
editor.putString(PREFERENCES_KEY_UUID, settingsJson.getString("userID"));
|
||||
editor.putString(PREFERENCES_KEY_LAST_VIP_CHECK, settingsJson.getString("lastIsVipUpdate"));
|
||||
SettingsEnum.SB_SHOW_TOAST_WHEN_SKIP_BOOLEAN.saveValue(!settingsJson.getBoolean("dontShowNotice"));
|
||||
SettingsEnum.SB_SHOW_TIME_WITHOUT_SEGMENTS_BOOLEAN.saveValue(settingsJson.getBoolean("showTimeWithSkips"));
|
||||
SettingsEnum.SB_COUNT_SKIPS_BOOLEAN.saveValue(settingsJson.getBoolean("trackViewCount"));
|
||||
SettingsEnum.SB_IS_VIP_BOOLEAN.saveValue(settingsJson.getBoolean("isVip"));
|
||||
SettingsEnum.SB_MIN_DURATION_FLOAT.saveValue(Float.valueOf(settingsJson.getString("minDuration")));
|
||||
SettingsEnum.SB_UUID_STRING.saveValue(settingsJson.getString("userID"));
|
||||
SettingsEnum.SB_LAST_VIP_CHECK_LONG.saveValue(settingsJson.getLong("lastIsVipUpdate"));
|
||||
|
||||
|
||||
String serverAddress = settingsJson.getString("serverAddress");
|
||||
if (serverAddress.equalsIgnoreCase(DEFAULT_SERVER_URL)) {
|
||||
serverAddress = DEFAULT_API_URL;
|
||||
if (serverAddress.equalsIgnoreCase("https://sponsor.ajay.app")) {
|
||||
serverAddress = (String) SettingsEnum.SB_API_URL_STRING.getDefaultValue();
|
||||
}
|
||||
editor.putString(PREFERENCES_KEY_API_URL, serverAddress);
|
||||
|
||||
editor.apply();
|
||||
SettingsEnum.SB_API_URL_STRING.saveValue(serverAddress);
|
||||
|
||||
Toast.makeText(context, str("settings_import_successful"), Toast.LENGTH_SHORT).show();
|
||||
} catch (Exception ex) {
|
||||
@ -607,21 +586,16 @@ public abstract class SponsorBlockUtils {
|
||||
categorySelectionsArray.put(behaviorObject);
|
||||
}
|
||||
}
|
||||
json.put("dontShowNotice", !showToastWhenSkippedAutomatically);
|
||||
json.put("dontShowNotice", !SettingsEnum.SB_SHOW_TOAST_WHEN_SKIP_BOOLEAN.getBoolean());
|
||||
json.put("barTypes", barTypesObject);
|
||||
json.put("showTimeWithSkips", showTimeWithoutSegments);
|
||||
json.put("minDuration", minDuration);
|
||||
json.put("trackViewCount", countSkips);
|
||||
json.put("showTimeWithSkips", SettingsEnum.SB_SHOW_TIME_WITHOUT_SEGMENTS_BOOLEAN.getBoolean());
|
||||
json.put("minDuration", SettingsEnum.SB_MIN_DURATION_FLOAT.getFloat());
|
||||
json.put("trackViewCount", SettingsEnum.SB_COUNT_SKIPS_BOOLEAN.getBoolean());
|
||||
json.put("categorySelections", categorySelectionsArray);
|
||||
json.put("userID", uuid);
|
||||
json.put("isVip", vip);
|
||||
json.put("lastIsVipUpdate", lastVipCheck);
|
||||
|
||||
String apiAddress = apiUrl;
|
||||
if (apiAddress.equalsIgnoreCase(DEFAULT_API_URL)) {
|
||||
apiAddress = DEFAULT_SERVER_URL;
|
||||
}
|
||||
json.put("serverAddress", apiAddress);
|
||||
json.put("userID", SettingsEnum.SB_UUID_STRING.getString());
|
||||
json.put("isVip", SettingsEnum.SB_IS_VIP_BOOLEAN.getBoolean());
|
||||
json.put("lastIsVipUpdate", SettingsEnum.SB_LAST_VIP_CHECK_LONG.getLong());
|
||||
json.put("serverAddress", SettingsEnum.SB_API_URL_STRING.getString());
|
||||
|
||||
return json.toString();
|
||||
} catch (Exception ex) {
|
||||
@ -631,12 +605,8 @@ public abstract class SponsorBlockUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isSettingEnabled(boolean setting) {
|
||||
return isSponsorBlockEnabled && setting;
|
||||
}
|
||||
|
||||
public static boolean isSBButtonEnabled(Context context, String key) {
|
||||
return isSettingEnabled(SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK, key, false));
|
||||
return SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean() && SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK, key, false);
|
||||
}
|
||||
|
||||
public enum VoteOption {
|
||||
|
@ -13,6 +13,7 @@ import java.lang.ref.WeakReference;
|
||||
import static app.revanced.integrations.sponsorblock.PlayerController.getCurrentVideoLength;
|
||||
import static app.revanced.integrations.sponsorblock.PlayerController.getLastKnownVideoTime;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
|
||||
@ -93,7 +94,7 @@ public class VotingButton {
|
||||
}
|
||||
|
||||
static boolean shouldBeShown() {
|
||||
return SponsorBlockUtils.isSettingEnabled(SponsorBlockSettings.isVotingEnabled);
|
||||
return SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean() && SettingsEnum.SB_VOTING_ENABLED_BOOLEAN.getBoolean();
|
||||
}
|
||||
|
||||
//region Helpers
|
||||
|
@ -1,9 +1,5 @@
|
||||
package app.revanced.integrations.sponsorblock.dialog;
|
||||
|
||||
import static app.revanced.integrations.ryd.RYDSettings.PREFERENCES_KEY_RYD_ENABLED;
|
||||
import static app.revanced.integrations.ryd.RYDSettings.PREFERENCES_KEY_RYD_HINT_SHOWN;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN;
|
||||
import static app.revanced.integrations.sponsorblock.StringRef.str;
|
||||
|
||||
import android.app.Activity;
|
||||
@ -15,6 +11,7 @@ import android.graphics.LightingColorFilter;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
|
||||
@ -26,14 +23,14 @@ public class Dialogs {
|
||||
|
||||
private static void sbFirstRun(Activity activity) {
|
||||
Context context = ReVancedUtils.getContext();
|
||||
boolean enabled = SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED, false);
|
||||
boolean hintShown = SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN, false);
|
||||
boolean enabled = SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean();
|
||||
boolean hintShown = SettingsEnum.SB_SPONSOR_BLOCK_HINT_SHOWN_BOOLEAN.getBoolean();
|
||||
|
||||
// If SB is enabled or hint has been shown, exit
|
||||
if (enabled || hintShown) {
|
||||
// If SB is enabled but hint hasn't been shown, mark it as shown
|
||||
if (enabled && !hintShown) {
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN, true);
|
||||
SettingsEnum.SB_SPONSOR_BLOCK_HINT_SHOWN_BOOLEAN.saveValue(true);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -50,15 +47,15 @@ public class Dialogs {
|
||||
builder.setMessage(str("vanced_sb_firstrun"));
|
||||
builder.setPositiveButton(str("vanced_enable"),
|
||||
(dialog, id) -> {
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN, true);
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED, true);
|
||||
SettingsEnum.SB_SPONSOR_BLOCK_HINT_SHOWN_BOOLEAN.saveValue(true);
|
||||
SettingsEnum.SB_ENABLED_BOOLEAN.saveValue(true);
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
builder.setNegativeButton(str("vanced_disable"),
|
||||
(dialog, id) -> {
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_SPONSOR_BLOCK_HINT_SHOWN, true);
|
||||
SharedPrefHelper.saveBoolean(context, SharedPrefHelper.SharedPrefNames.RYD, PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED, false);
|
||||
SettingsEnum.SB_SPONSOR_BLOCK_HINT_SHOWN_BOOLEAN.saveValue(true);
|
||||
SettingsEnum.SB_ENABLED_BOOLEAN.saveValue(false);
|
||||
dialog.dismiss();
|
||||
});
|
||||
|
||||
|
@ -115,7 +115,7 @@ public class EditTextListPreference extends ListPreference {
|
||||
}
|
||||
|
||||
private String getColorPreferenceKey() {
|
||||
return getKey() + SponsorBlockSettings.PREFERENCES_KEY_CATEGORY_COLOR_SUFFIX;
|
||||
return getKey() + SponsorBlockSettings.CATEGORY_COLOR_SUFFIX;
|
||||
}
|
||||
|
||||
private void reformatTitle() {
|
||||
|
@ -13,6 +13,7 @@ import android.widget.FrameLayout;
|
||||
import android.widget.ImageButton;
|
||||
import android.widget.LinearLayout;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.sponsorblock.NewSegmentHelperLayout;
|
||||
import app.revanced.integrations.sponsorblock.PlayerController;
|
||||
@ -69,7 +70,7 @@ public class NewSegmentLayout extends FrameLayout {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
LogHelper.debug(NewSegmentLayout.class, "Rewind button clicked");
|
||||
PlayerController.skipRelativeMilliseconds(-SponsorBlockSettings.adjustNewSegmentMillis);
|
||||
PlayerController.skipRelativeMilliseconds(-SettingsEnum.SB_ADJUST_NEW_SEGMENT_STEP_INTEGER.getInt());
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -80,7 +81,7 @@ public class NewSegmentLayout extends FrameLayout {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
LogHelper.debug(NewSegmentLayout.class, "Forward button clicked");
|
||||
PlayerController.skipRelativeMilliseconds(SponsorBlockSettings.adjustNewSegmentMillis);
|
||||
PlayerController.skipRelativeMilliseconds(SettingsEnum.SB_ADJUST_NEW_SEGMENT_STEP_INTEGER.getInt());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import android.net.Uri;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.sponsorblock.player.VideoInformation;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
import app.revanced.integrations.sponsorblock.SponsorBlockSettings;
|
||||
@ -18,7 +19,7 @@ public class SBBrowserButton extends SlimButton {
|
||||
|
||||
public SBBrowserButton(Context context, ViewGroup container) {
|
||||
super(context, container, SLIM_METADATA_BUTTON_ID,
|
||||
SponsorBlockUtils.isSBButtonEnabled(context, SponsorBlockSettings.PREFERENCES_KEY_BROWSER_BUTTON));
|
||||
SponsorBlockUtils.isSBButtonEnabled(context, SettingsEnum.SB_SHOW_BROWSER_BUTTON_BOOLEAN.getPath()));
|
||||
|
||||
initialize();
|
||||
}
|
||||
|
@ -1,7 +1,5 @@
|
||||
package app.revanced.integrations.sponsorblock.player.ui;
|
||||
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_BROWSER_BUTTON;
|
||||
import static app.revanced.integrations.sponsorblock.SponsorBlockSettings.PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
||||
@ -13,10 +11,10 @@ import com.google.android.apps.youtube.app.ui.SlimMetadataScrollableButtonContai
|
||||
|
||||
import app.revanced.integrations.adremover.whitelist.Whitelist;
|
||||
import app.revanced.integrations.adremover.whitelist.WhitelistType;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.utils.SharedPrefHelper;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
import app.revanced.integrations.sponsorblock.SponsorBlockSettings;
|
||||
|
||||
public class SlimButtonContainer extends SlimMetadataScrollableButtonContainerLayout {
|
||||
|
||||
@ -78,9 +76,9 @@ public class SlimButtonContainer extends SlimMetadataScrollableButtonContainerLa
|
||||
copyWithTimestampButton.setVisible(ButtonVisibility.isVisibleInContainer(context, "pref_copy_video_url_timestamp_button_list"));
|
||||
return;
|
||||
}
|
||||
if (PREFERENCES_KEY_SPONSOR_BLOCK_ENABLED.equals(key)) {
|
||||
if (SettingsEnum.SB_ENABLED_BOOLEAN.getPath().equals(key)) {
|
||||
if (sbWhitelistButton != null) {
|
||||
if (SponsorBlockSettings.isSponsorBlockEnabled) {
|
||||
if (SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean()) {
|
||||
toggleWhitelistButton();
|
||||
} else {
|
||||
Whitelist.setEnabled(WhitelistType.SPONSORBLOCK, false);
|
||||
@ -88,14 +86,14 @@ public class SlimButtonContainer extends SlimMetadataScrollableButtonContainerLa
|
||||
}
|
||||
}
|
||||
if (sbBrowserButton != null) {
|
||||
if (SponsorBlockSettings.isSponsorBlockEnabled) {
|
||||
if (SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean()) {
|
||||
toggleBrowserButton();
|
||||
} else {
|
||||
sbBrowserButton.setVisible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (PREFERENCES_KEY_BROWSER_BUTTON.equals(key) && sbBrowserButton != null) {
|
||||
if (SettingsEnum.SB_SHOW_BROWSER_BUTTON_BOOLEAN.getPath().equals(key) && sbBrowserButton != null) {
|
||||
toggleBrowserButton();
|
||||
return;
|
||||
}
|
||||
@ -131,6 +129,6 @@ public class SlimButtonContainer extends SlimMetadataScrollableButtonContainerLa
|
||||
}
|
||||
|
||||
private void toggleBrowserButton() {
|
||||
sbBrowserButton.setVisible(SharedPrefHelper.getBoolean(context, SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK, PREFERENCES_KEY_BROWSER_BUTTON, false));
|
||||
sbBrowserButton.setVisible(SettingsEnum.SB_SHOW_BROWSER_BUTTON_BOOLEAN.getBoolean());
|
||||
}
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import app.revanced.integrations.adremover.whitelist.requests.Requester;
|
||||
import app.revanced.integrations.adremover.whitelist.requests.Route;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.sponsorblock.PlayerController;
|
||||
import app.revanced.integrations.sponsorblock.SponsorBlockSettings;
|
||||
import app.revanced.integrations.sponsorblock.SponsorBlockUtils;
|
||||
@ -56,7 +57,7 @@ public class SBRequester {
|
||||
long start = (long) (segment.getDouble(0) * 1000);
|
||||
long end = (long) (segment.getDouble(1) * 1000);
|
||||
|
||||
long minDuration = (long) (SponsorBlockSettings.minDuration * 1000);
|
||||
long minDuration = (long) (SettingsEnum.SB_MIN_DURATION_FLOAT.getFloat() * 1000);
|
||||
if ((end - start) < minDuration)
|
||||
continue;
|
||||
|
||||
@ -127,7 +128,7 @@ public class SBRequester {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
String segmentUuid = segment.UUID;
|
||||
String uuid = SponsorBlockSettings.uuid;
|
||||
String uuid = SettingsEnum.SB_UUID_STRING.getString();
|
||||
String vote = Integer.toString(voteOption == VoteOption.UPVOTE ? 1 : 0);
|
||||
|
||||
runOnMainThread(() -> Toast.makeText(context, str("vote_started"), Toast.LENGTH_SHORT).show());
|
||||
@ -157,14 +158,14 @@ public class SBRequester {
|
||||
}
|
||||
|
||||
public static void retrieveUserStats(PreferenceCategory category, Preference loadingPreference) {
|
||||
if (!SponsorBlockSettings.isSponsorBlockEnabled) {
|
||||
if (!SettingsEnum.SB_ENABLED_BOOLEAN.getBoolean()) {
|
||||
loadingPreference.setTitle(str("stats_sb_disabled"));
|
||||
return;
|
||||
}
|
||||
|
||||
new Thread(() -> {
|
||||
try {
|
||||
JSONObject json = getJSONObject(SBRoutes.GET_USER_STATS, SponsorBlockSettings.uuid);
|
||||
JSONObject json = getJSONObject(SBRoutes.GET_USER_STATS, SettingsEnum.SB_UUID_STRING.getString());
|
||||
UserStats stats = new UserStats(json.getString("userName"), json.getDouble("minutesSaved"), json.getInt("segmentCount"),
|
||||
json.getInt("viewCount"));
|
||||
SponsorBlockUtils.addUserStats(category, loadingPreference, stats);
|
||||
@ -177,7 +178,7 @@ public class SBRequester {
|
||||
public static void setUsername(String username, EditTextPreference preference, Runnable toastRunnable) {
|
||||
new Thread(() -> {
|
||||
try {
|
||||
HttpURLConnection connection = getConnectionFromRoute(SBRoutes.CHANGE_USERNAME, SponsorBlockSettings.uuid, username);
|
||||
HttpURLConnection connection = getConnectionFromRoute(SBRoutes.CHANGE_USERNAME, SettingsEnum.SB_UUID_STRING.getString(), username);
|
||||
int responseCode = connection.getResponseCode();
|
||||
|
||||
if (responseCode == 200) {
|
||||
@ -199,19 +200,14 @@ public class SBRequester {
|
||||
|
||||
public static void runVipCheck() {
|
||||
long now = System.currentTimeMillis();
|
||||
if (now < (SponsorBlockSettings.lastVipCheck + TimeUnit.DAYS.toMillis(3))) {
|
||||
if (now < (SettingsEnum.SB_LAST_VIP_CHECK_LONG.getFloat() + TimeUnit.DAYS.toMillis(3))) {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
JSONObject json = getJSONObject(SBRoutes.IS_USER_VIP, SponsorBlockSettings.uuid);
|
||||
JSONObject json = getJSONObject(SBRoutes.IS_USER_VIP, SettingsEnum.SB_UUID_STRING.getString());
|
||||
boolean vip = json.getBoolean("vip");
|
||||
SponsorBlockSettings.vip = vip;
|
||||
SponsorBlockSettings.lastVipCheck = now;
|
||||
|
||||
SharedPreferences.Editor edit = SharedPrefHelper.getPreferences(ReVancedUtils.getContext(), SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK).edit();
|
||||
edit.putString(SponsorBlockSettings.PREFERENCES_KEY_LAST_VIP_CHECK, String.valueOf(now));
|
||||
edit.putBoolean(SponsorBlockSettings.PREFERENCES_KEY_IS_VIP, vip);
|
||||
edit.apply();
|
||||
SettingsEnum.SB_IS_VIP_BOOLEAN.saveValue(vip);
|
||||
SettingsEnum.SB_LAST_VIP_CHECK_LONG.saveValue(now);
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
@ -220,7 +216,7 @@ public class SBRequester {
|
||||
// helpers
|
||||
|
||||
private static HttpURLConnection getConnectionFromRoute(Route route, String... params) throws IOException {
|
||||
return Requester.getConnectionFromRoute(SponsorBlockSettings.apiUrl, route, params);
|
||||
return Requester.getConnectionFromRoute(SettingsEnum.SB_API_URL_STRING.getString(), route, params);
|
||||
}
|
||||
|
||||
private static JSONObject getJSONObject(Route route, String... params) throws Exception {
|
||||
|
@ -11,19 +11,19 @@ public class LogHelper {
|
||||
|
||||
public static void debug(Class clazz, String message) {
|
||||
if (SettingsEnum.DEBUG_BOOLEAN.getBoolean()) {
|
||||
Log.d("ReVanced: " + clazz != null ? clazz.getSimpleName() : "", message);
|
||||
Log.e("ReVanced: " + (clazz != null ? clazz.getSimpleName() : ""), message);
|
||||
}
|
||||
}
|
||||
|
||||
public static void printException(Class clazz, String message, Throwable ex) {
|
||||
Log.e("ReVanced: " + clazz != null ? clazz.getName() : "", message, ex);
|
||||
Log.e("ReVanced: " + (clazz != null ? clazz.getSimpleName() : ""), message, ex);
|
||||
}
|
||||
|
||||
public static void printException(Class clazz, String message) {
|
||||
Log.e("ReVanced: " + clazz != null ? clazz.getName() : "", message);
|
||||
Log.e("ReVanced: " + (clazz != null ? clazz.getSimpleName() : ""), message);
|
||||
}
|
||||
|
||||
public static void info(Class clazz, String message) {
|
||||
Log.i("ReVanced: " + clazz != null ? clazz.getSimpleName() : "", message);
|
||||
Log.i("ReVanced: " + (clazz != null ? clazz.getSimpleName() : ""), message);
|
||||
}
|
||||
}
|
||||
|
@ -12,11 +12,14 @@ import android.os.Looper;
|
||||
|
||||
import com.google.android.apps.youtube.app.YouTubeTikTokRoot_Application;
|
||||
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.sponsorblock.player.PlayerType;
|
||||
import app.revanced.integrations.videoplayer.videosettings.VideoSpeed;
|
||||
|
||||
public class ReVancedUtils {
|
||||
|
||||
private static PlayerType env;
|
||||
private static boolean newVideo = false;
|
||||
|
||||
//Used by Integrations patch
|
||||
public static Context context;
|
||||
@ -29,6 +32,15 @@ public class ReVancedUtils {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static void setNewVideo(boolean started) {
|
||||
LogHelper.debug(ReVancedUtils.class, "New video started: " + started);
|
||||
newVideo = started;
|
||||
}
|
||||
|
||||
public static boolean isNewVideoStarted() {
|
||||
return newVideo;
|
||||
}
|
||||
|
||||
public static String getStringByName(Context context, String name) {
|
||||
try {
|
||||
Resources res = context.getResources();
|
||||
@ -94,23 +106,4 @@ public class ReVancedUtils {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
//Not used atm
|
||||
/*public static String getManufacturer() {
|
||||
String manufacturer = SettingsEnum.MANUFACTURER_OVERRIDE_STRING.getString();
|
||||
if (manufacturer == null || manufacturer.isEmpty()) {
|
||||
manufacturer = Build.MANUFACTURER;
|
||||
}
|
||||
LogHelper.debug("Settings", "getManufacturer: " + manufacturer);
|
||||
return manufacturer;
|
||||
}
|
||||
|
||||
public static String getModel() {
|
||||
String model = SettingsEnum.MODEL_OVERRIDE_STRING.getString();
|
||||
if (model == null || model.isEmpty()) {
|
||||
model = Build.MODEL;
|
||||
}
|
||||
LogHelper.debug("Settings", "getModel: " + model);
|
||||
return model;
|
||||
}*/
|
||||
}
|
@ -16,25 +16,23 @@ import java.util.Collections;
|
||||
public class VideoQuality {
|
||||
public static final int[] videoResolutions = {0, 144, 240, 360, 480, 720, 1080, 1440, 2160};
|
||||
private static Boolean userChangedQuality = false;
|
||||
private static Boolean newVideo = false;
|
||||
|
||||
|
||||
public static void userChangedQuality() {
|
||||
userChangedQuality = true;
|
||||
newVideo = false;
|
||||
}
|
||||
|
||||
public static int setVideoQuality(Object[] qualities, int quality, Object qInterface) {
|
||||
int preferredQuality;
|
||||
Field[] fields;
|
||||
if (!newVideo || userChangedQuality || qInterface == null) {
|
||||
if (!ReVancedUtils.isNewVideoStarted() || userChangedQuality || qInterface == null) {
|
||||
if (SettingsEnum.DEBUG_BOOLEAN.getBoolean() && userChangedQuality) {
|
||||
LogHelper.debug(VideoQuality.class, "Skipping quality change because user changed it: " + quality);
|
||||
}
|
||||
userChangedQuality = false;
|
||||
return quality;
|
||||
}
|
||||
newVideo = false;
|
||||
ReVancedUtils.setNewVideo(false);
|
||||
LogHelper.debug(VideoQuality.class, "Quality: " + quality);
|
||||
Context context = ReVancedUtils.getContext();
|
||||
if (context == null) {
|
||||
|
@ -4,6 +4,7 @@ package app.revanced.integrations.videoplayer.videosettings;
|
||||
import app.revanced.integrations.settings.SettingsEnum;
|
||||
import app.revanced.integrations.utils.LogHelper;
|
||||
import app.revanced.integrations.settings.Settings;
|
||||
import app.revanced.integrations.utils.ReVancedUtils;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
@ -15,15 +16,14 @@ import java.util.Iterator;
|
||||
public class VideoSpeed {
|
||||
public static final float[] videoSpeeds = {0.25f, 0.5f, 0.75f, 1.0f, 1.25f, 1.5f, 1.75f, 2.0f, 3.0f, 4.0f, 5.0f};
|
||||
private static Boolean userChangedSpeed = false;
|
||||
private static Boolean newVideoSpeed = false;
|
||||
|
||||
public static int DefaultSpeed(Object[] speeds, int speed, Object qInterface) {
|
||||
public static int getDefaultSpeed(Object[] speeds, int speed, Object qInterface) {
|
||||
int speed2;
|
||||
Exception e;
|
||||
if (!newVideoSpeed) {
|
||||
if (!ReVancedUtils.isNewVideoStarted()) {
|
||||
return speed;
|
||||
}
|
||||
newVideoSpeed = false;
|
||||
ReVancedUtils.setNewVideo(false);
|
||||
LogHelper.debug(VideoSpeed.class, "Speed: " + speed);
|
||||
float preferredSpeed = SettingsEnum.PREFERRED_VIDEO_SPEED_FLOAT.getFloat();
|
||||
LogHelper.debug(VideoSpeed.class, "Preferred speed: " + preferredSpeed);
|
||||
@ -93,25 +93,18 @@ public class VideoSpeed {
|
||||
|
||||
public static void userChangedSpeed() {
|
||||
userChangedSpeed = true;
|
||||
newVideoSpeed = false;
|
||||
}
|
||||
|
||||
|
||||
public static void NewVideoStarted() {
|
||||
newVideoSpeed = true;
|
||||
LogHelper.debug(VideoSpeed.class, "New video started!");
|
||||
}
|
||||
|
||||
public static float getSpeedValue(Object[] speeds, int speed) {
|
||||
int i = 0;
|
||||
if (!newVideoSpeed || userChangedSpeed) {
|
||||
if (!ReVancedUtils.isNewVideoStarted() || userChangedSpeed) {
|
||||
if (SettingsEnum.DEBUG_BOOLEAN.getBoolean() && userChangedSpeed) {
|
||||
LogHelper.debug(VideoSpeed.class, "Skipping speed change because user changed it: " + speed);
|
||||
}
|
||||
userChangedSpeed = false;
|
||||
return -1.0f;
|
||||
}
|
||||
newVideoSpeed = false;
|
||||
ReVancedUtils.setNewVideo(false);
|
||||
LogHelper.debug(VideoSpeed.class, "Speed: " + speed);
|
||||
float preferredSpeed = SettingsEnum.PREFERRED_VIDEO_SPEED_FLOAT.getFloat();
|
||||
LogHelper.debug(VideoSpeed.class, "Preferred speed: " + preferredSpeed);
|
||||
|
@ -1,12 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="revanced_about_summary">"
|
||||
- xfileFIN (First creator)
|
||||
- oSumAtrIX (Mods, Patcher, Support)
|
||||
- TheJeterLP (Integrations)
|
||||
- bogadana (Mods, Support)
|
||||
- Sculas (Manager, Patcher)
|
||||
- baiorett (Manager)"</string>
|
||||
<string name="revanced_about_summary">" - xfileFIN (First creator) - oSumAtrIX (Patches, Patcher, Support) - TheJeterLP (Patches, Integrations) - bogadana (Patches, Support) - Sculas (Manager, Patcher) - baiorett (Manager)"</string>
|
||||
<string name="revanced_about_title">About</string>
|
||||
<string name="revanced_auto_repeat_button_summary_off">"Doesn't show auto-repeat button in the player overlay. Use the toggle below to control auto-repeat"</string>
|
||||
<string name="revanced_auto_repeat_button_summary_on">Auto-repeat button is shown in the player overlay</string>
|
||||
@ -31,8 +25,6 @@
|
||||
<string name="revanced_default_codec_title">Default codec</string>
|
||||
<string name="revanced_discord_summary">Tap to join ReVanced on Discord</string>
|
||||
<string name="revanced_discord_title">Discord server</string>
|
||||
<string name="revanced_hardware_hdr_summary">Tap to enable hardware HDR</string>
|
||||
<string name="revanced_hardware_hdr_title" translatable="false">Samsung Galaxy S8+</string>
|
||||
<string name="revanced_hdr_full_brightness_summary_off">Video brightness will follow your device\'s brightness on HDR landscape videos</string>
|
||||
<string name="revanced_hdr_full_brightness_summary_on">Video brightness is set to max on HDR landscape videos</string>
|
||||
<string name="revanced_hdr_full_brightness_title">HDR max brightness</string>
|
||||
@ -62,8 +54,6 @@
|
||||
|
||||
Default: 5000"</string>
|
||||
<string name="revanced_rebuffer_title">Rebuffer</string>
|
||||
<string name="revanced_software_hdr_summary">Tap to enable software HDR</string>
|
||||
<string name="revanced_software_hdr_title" translatable="false">Google Pixel XL</string>
|
||||
<string name="revanced_suggestion_summary_off">End screens are hidden</string>
|
||||
<string name="revanced_suggestion_summary_on">End screens are shown</string>
|
||||
<string name="revanced_suggestion_title">End screens</string>
|
||||
@ -77,6 +67,9 @@
|
||||
<string name="revanced_new_actionbar_title">Wide search bar</string>
|
||||
<string name="revanced_new_actionbar_summary_off">Search bar style is defined by the app</string>
|
||||
<string name="revanced_new_actionbar_summary_on">Forcing wide search bar</string>
|
||||
<string name="revanced_shorts_button_title">Show shorts button</string>
|
||||
<string name="revanced_shorts_button_summary_off">Shorts button is hidden</string>
|
||||
<string name="revanced_shorts_button_summary_on">Shorts button is shown</string>
|
||||
<string name="revanced_zoom_to_fit_vertical_title">Dynamic player</string>
|
||||
<string name="revanced_zoom_to_fit_vertical_summary_off">Dynamic player is defined automatically</string>
|
||||
<string name="revanced_zoom_to_fit_vertical_summary_on">Dynamic player is forced on square and vertical videos</string>
|
||||
@ -101,13 +94,16 @@
|
||||
<string name="revanced_xfenster_volume_summary_on">Swipe controls for volume are enabled</string>
|
||||
<string name="revanced_xfenster_volume_title">Swipe controls for Volume</string>
|
||||
<string name="revanced_website_summary">Tap to open our website</string>
|
||||
<string name="revanced_website_title">Vanced website</string>
|
||||
<string name="revanced_website_title">ReVanced website</string>
|
||||
<string name="revanced_home_ads_summary_off">Home ADS are hidden</string>
|
||||
<string name="revanced_home_ads_summary_on">Home ADS are shown</string>
|
||||
<string name="revanced_home_ads_title">Home ADS (Experimental)</string>
|
||||
<string name="revanced_home_ads_title">Home ADS</string>
|
||||
<string name="revanced_video_ads_title">Video ADS</string>
|
||||
<string name="revanced_video_ads_summary_off">Video ADS are hidden</string>
|
||||
<string name="revanced_video_ads_summary_on">Video ADS are shown</string>
|
||||
<string name="revanced_reel_summary_off">Stories are hidden</string>
|
||||
<string name="revanced_reel_summary_on">Stories are shown</string>
|
||||
<string name="revanced_reel_title">YouTube stories (Experimental)</string>
|
||||
<string name="revanced_reel_title">YouTube stories</string>
|
||||
<string name="revanced_ad_settings_title">AD settings</string>
|
||||
<string name="revanced_credit_summary">Credits for people who have contributed</string>
|
||||
<string name="revanced_credit_title">Credits</string>
|
||||
|
@ -7,77 +7,73 @@
|
||||
</PreferenceScreen>
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="@string/revanced_settings" />
|
||||
<PreferenceScreen android:title="@string/revanced_codec_override_title" android:key="codec_override">
|
||||
<SwitchPreference android:title="@string/revanced_vp9_title" android:key="revanced_vp9_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_vp9_summary_on" android:summaryOff="@string/revanced_vp9_summary_off" />
|
||||
<Preference android:persistent="false" android:title="@string/revanced_default_codec_title" android:selectable="true" android:key="pref_default_override" android:summary="@string/revanced_default_codec_summary" />
|
||||
<Preference android:persistent="false" android:title="@string/revanced_vp9_title" android:selectable="true" android:key="pref_vp9_override" android:summary="@string/revanced_vp9_summary" />
|
||||
<Preference android:persistent="false" android:title="@string/revanced_hardware_hdr_title" android:selectable="true" android:key="pref_hdrhardware_override" android:summary="@string/revanced_hardware_hdr_summary" />
|
||||
<Preference android:persistent="false" android:title="@string/revanced_software_hdr_title" android:selectable="true" android:key="pref_hdrsoftware_override" android:summary="@string/revanced_software_hdr_summary" />
|
||||
<EditTextPreference android:singleLine="true" android:title="@string/revanced_current_override_manufacturer" android:key="override_manufacturer" />
|
||||
<EditTextPreference android:singleLine="true" android:title="@string/revanced_current_override_model" android:key="override_model" />
|
||||
<PreferenceScreen android:title="@string/revanced_codec_override_title" android:key="revanced_override_codec">
|
||||
<SwitchPreference android:title="@string/revanced_vp9_title" android:key="revanced_override_codec_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_vp9_summary_on" android:summaryOff="@string/revanced_vp9_summary_off" />
|
||||
<Preference android:persistent="false" android:title="@string/revanced_default_codec_title" android:selectable="true" android:key="revanced_override_codec_default" android:summary="@string/revanced_default_codec_summary" />
|
||||
<EditTextPreference android:singleLine="true" android:title="@string/revanced_current_override_manufacturer" android:key="revanced_override_codec_manufacturer" />
|
||||
<EditTextPreference android:singleLine="true" android:title="@string/revanced_current_override_model" android:key="revanced_override_codec_model" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_video_settings_title" android:key="video_settings">
|
||||
<SwitchPreference android:title="@string/revanced_old_style_quality_settings_title" android:key="old_style_quality_settings" android:defaultValue="true" android:summaryOn="@string/revanced_old_style_quality_settings_summary_on" android:summaryOff="@string/revanced_old_style_quality_settings_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_override_resolution_title" android:key="override_resolution_revanced_enabled" android:defaultValue="false" android:summaryOn="@string/revanced_override_resolution_summary_on" android:summaryOff="@string/revanced_override_resolution_summary_off" />
|
||||
<ListPreference android:title="@string/revanced_preferred_video_quality_wifi_title" android:key="pref_preferred_video_quality_wifi" android:summary="@string/revanced_preferred_video_quality_wifi_summary" />
|
||||
<ListPreference android:title="@string/revanced_preferred_video_quality_mobile_title" android:key="pref_preferred_video_quality_mobile" android:summary="@string/revanced_preferred_video_quality_mobile_summary" />
|
||||
<ListPreference android:title="@string/revanced_preferred_video_speed_title" android:key="pref_preferred_video_speed" android:summary="@string/revanced_preferred_video_speed_summary" />
|
||||
<SwitchPreference android:title="@string/revanced_old_style_quality_settings_title" android:key="revanced_use_old_style_quality_settings" android:defaultValue="true" android:summaryOn="@string/revanced_old_style_quality_settings_summary_on" android:summaryOff="@string/revanced_old_style_quality_settings_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_override_resolution_title" android:key="revanced_override_resolution_max" android:defaultValue="false" android:summaryOn="@string/revanced_override_resolution_summary_on" android:summaryOff="@string/revanced_override_resolution_summary_off" />
|
||||
<ListPreference android:title="@string/revanced_preferred_video_quality_wifi_title" android:key="revanced_pref_video_quality_wifi" android:summary="@string/revanced_preferred_video_quality_wifi_summary" />
|
||||
<ListPreference android:title="@string/revanced_preferred_video_quality_mobile_title" android:key="revanced_pref_video_quality_mobile" android:summary="@string/revanced_preferred_video_quality_mobile_summary" />
|
||||
<ListPreference android:title="@string/revanced_preferred_video_speed_title" android:key="revanced_pref_video_speed" android:summary="@string/revanced_preferred_video_speed_summary" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_video_ad_settings_title" android:key="video_ad_settings">
|
||||
<SwitchPreference android:title="@string/revanced_videoadwhitelisting_title" android:key="revanced_whitelist_ads_enabled" android:defaultValue="false" android:summaryOn="@string/revanced_videoadwhitelisting_summary_on" android:summaryOff="@string/revanced_videoadwhitelisting_summary_off" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_ad_settings_title" android:key="ad_settings">
|
||||
<SwitchPreference android:title="@string/revanced_home_ads_title" android:key="home_ads_enabled" android:defaultValue="false" android:summaryOn="@string/revanced_home_ads_summary_on" android:summaryOff="@string/revanced_home_ads_summary_off" />
|
||||
<SwitchPreference android:title="@string/litho_general_ad_removal" android:key="experimental_ad_removal" android:defaultValue="true" android:summaryOn="@string/litho_general_ad_removal_on" android:summaryOff="@string/litho_general_ad_removal_off" />
|
||||
<SwitchPreference android:title="@string/litho_merchandise" android:key="experimental_merchandise" android:defaultValue="false" android:summaryOn="@string/litho_merchandise_on" android:summaryOff="@string/litho_merchandise_off" />
|
||||
<SwitchPreference android:title="@string/litho_community_posts" android:key="experimental_community_posts" android:defaultValue="false" android:summaryOn="@string/litho_community_posts_on" android:summaryOff="@string/litho_community_posts_off" />
|
||||
<SwitchPreference android:title="@string/litho_movie_upsell" android:key="experimental_movie_upsell" android:defaultValue="false" android:summaryOn="@string/litho_movie_upsell_on" android:summaryOff="@string/litho_movie_upsell_off" />
|
||||
<SwitchPreference android:title="@string/litho_compact_banner" android:key="experimental_compact_banner" android:defaultValue="false" android:summaryOn="@string/litho_compact_banner_on" android:summaryOff="@string/litho_compact_banner_off" />
|
||||
<SwitchPreference android:title="@string/litho_comments" android:key="experimental_comments" android:defaultValue="false" android:summaryOn="@string/litho_comments_on" android:summaryOff="@string/litho_comments_off" />
|
||||
<SwitchPreference android:title="@string/litho_compact_movie" android:key="experimental_compact_movie" android:defaultValue="false" android:summaryOn="@string/litho_compact_movie_on" android:summaryOff="@string/litho_compact_movie_off" />
|
||||
<SwitchPreference android:title="@string/litho_horizontal_movie_shelf" android:key="experimental_horizontal_movie_shelf" android:defaultValue="false" android:summaryOn="@string/litho_horizontal_movie_shelf_on" android:summaryOff="@string/litho_horizontal_movie_shelf_off" />
|
||||
<SwitchPreference android:title="@string/litho_in_feed_survey" android:key="experimental_in_feed_survey" android:defaultValue="false" android:summaryOn="@string/litho_in_feed_survey_on" android:summaryOff="@string/litho_in_feed_survey_off" />
|
||||
<SwitchPreference android:title="@string/litho_shorts_shelf" android:key="experimental_shorts_shelf" android:defaultValue="false" android:summaryOn="@string/litho_shorts_shelf_on" android:summaryOff="@string/litho_shorts_shelf_off" />
|
||||
<SwitchPreference android:title="@string/litho_community_guidelines" android:key="experimental_community_guidelines" android:defaultValue="false" android:summaryOn="@string/litho_community_guidelines_on" android:summaryOff="@string/litho_community_guidelines_off" />
|
||||
<SwitchPreference android:title="@string/revanced_home_ads_title" android:key="revanced_home_ads_enabled" android:defaultValue="false" android:summaryOn="@string/revanced_home_ads_summary_on" android:summaryOff="@string/revanced_home_ads_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_video_ads_title" android:key="revanced_video_ads_enabled" android:defaultValue="false" android:summaryOn="@string/revanced_video_ads_summary_on" android:summaryOff="@string/revanced_video_ads_summary_off" />
|
||||
<SwitchPreference android:title="@string/litho_general_ad_removal" android:key="revanced_adremover_ad_removal" android:defaultValue="true" android:summaryOn="@string/litho_general_ad_removal_on" android:summaryOff="@string/litho_general_ad_removal_off" />
|
||||
<SwitchPreference android:title="@string/litho_merchandise" android:key="revanced_adremover_merchandise" android:defaultValue="false" android:summaryOn="@string/litho_merchandise_on" android:summaryOff="@string/litho_merchandise_off" />
|
||||
<SwitchPreference android:title="@string/litho_community_posts" android:key="revanced_adremover_community_posts_removal" android:defaultValue="false" android:summaryOn="@string/litho_community_posts_on" android:summaryOff="@string/litho_community_posts_off" />
|
||||
<SwitchPreference android:title="@string/litho_compact_banner" android:key="revanced_adremover_compact_banner_removal" android:defaultValue="false" android:summaryOn="@string/litho_compact_banner_on" android:summaryOff="@string/litho_compact_banner_off" />
|
||||
<SwitchPreference android:title="@string/litho_comments" android:key="revanced_adremover_comments_removal" android:defaultValue="false" android:summaryOn="@string/litho_comments_on" android:summaryOff="@string/litho_comments_off" />
|
||||
<SwitchPreference android:title="@string/litho_compact_movie" android:key="revanced_adremover_movie" android:defaultValue="false" android:summaryOn="@string/litho_compact_movie_on" android:summaryOff="@string/litho_compact_movie_off" />
|
||||
<SwitchPreference android:title="@string/litho_in_feed_survey" android:key="revanced_adremover_feed_survey" android:defaultValue="false" android:summaryOn="@string/litho_in_feed_survey_on" android:summaryOff="@string/litho_in_feed_survey_off" />
|
||||
<SwitchPreference android:title="@string/litho_shorts_shelf" android:key="revanced_adremover_shorts_shelf" android:defaultValue="false" android:summaryOn="@string/litho_shorts_shelf_on" android:summaryOff="@string/litho_shorts_shelf_off" />
|
||||
<SwitchPreference android:title="@string/litho_community_guidelines" android:key="revanced_adremover_community_guideline" android:defaultValue="false" android:summaryOn="@string/litho_community_guidelines_on" android:summaryOff="@string/litho_community_guidelines_off" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_layout_settings_title" android:key="layout_settings">
|
||||
<SwitchPreference android:title="@string/revanced_reel_title" android:key="reel_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_reel_summary_on" android:summaryOff="@string/revanced_reel_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_suggestion_title" android:key="info_cards_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_suggestion_summary_on" android:summaryOff="@string/revanced_suggestion_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_branding_watermark_title" android:key="branding_watermark_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_branding_watermark_summary_on" android:summaryOff="@string/revanced_branding_watermark_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_cast_button_title" android:key="cast_button_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_cast_button_summary_on" android:summaryOff="@string/revanced_cast_button_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_tablet_miniplayer_title" android:key="tablet_miniplayer" android:defaultValue="false" android:summaryOn="@string/revanced_tablet_miniplayer_summary_on" android:summaryOff="@string/revanced_tablet_miniplayer_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_create_button_title" android:key="revanced_create_button_hidden" android:defaultValue="false" android:summaryOn="@string/revanced_create_button_summary_on" android:summaryOff="@string/revanced_create_button_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_reel_title" android:key="revanced_reel_button_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_reel_summary_on" android:summaryOff="@string/revanced_reel_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_suggestion_title" android:key="revanced_info_cards_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_suggestion_summary_on" android:summaryOff="@string/revanced_suggestion_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_branding_watermark_title" android:key="revanced_branding_watermark_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_branding_watermark_summary_on" android:summaryOff="@string/revanced_branding_watermark_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_cast_button_title" android:key="revanced_cast_button_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_cast_button_summary_on" android:summaryOff="@string/revanced_cast_button_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_tablet_miniplayer_title" android:key="revanced_tablet_miniplayer" android:defaultValue="false" android:summaryOn="@string/revanced_tablet_miniplayer_summary_on" android:summaryOff="@string/revanced_tablet_miniplayer_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_create_button_title" android:key="revanced_create_button_enabled" android:defaultValue="false" android:summaryOn="@string/revanced_create_button_summary_on" android:summaryOff="@string/revanced_create_button_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_new_actionbar_title" android:key="revanced_new_actionbar" android:defaultValue="false" android:summaryOn="@string/revanced_new_actionbar_summary_on" android:summaryOff="@string/revanced_new_actionbar_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_shorts_button_title" android:key="revanced_shorts_button_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_shorts_button_summary_on" android:summaryOff="@string/revanced_shorts_button_summary_off" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_misc_title" android:key="misc_screen">
|
||||
<SwitchPreference android:title="@string/revanced_auto_repeat_button_title" android:key="pref_auto_repeat_button" android:defaultValue="false" android:summaryOn="@string/revanced_auto_repeat_button_summary_on" android:summaryOff="@string/revanced_auto_repeat_button_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_auto_repeat_title" android:key="pref_auto_repeat" android:defaultValue="false" android:summaryOn="@string/revanced_auto_repeat_summary_on" android:summaryOff="@string/revanced_auto_repeat_summary_off" />
|
||||
<ListPreference android:entries="@array/revanced_button_location_entries" android:title="@string/revanced_copy_video_url_timestamp_title" android:key="pref_copy_video_url_timestamp_button_list" android:entryValues="@array/revanced_button_location_entry_values" />
|
||||
<ListPreference android:entries="@array/revanced_button_location_entries" android:title="@string/revanced_copy_video_url_title" android:key="pref_copy_video_url_button_list" android:entryValues="@array/revanced_button_location_entry_values" />
|
||||
<SwitchPreference android:title="@string/revanced_hdr_full_brightness_title" android:key="pref_hdr_autobrightness" android:defaultValue="true" android:summaryOn="@string/revanced_hdr_full_brightness_summary_on" android:summaryOff="@string/revanced_hdr_full_brightness_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_auto_repeat_button_title" android:key="revanced_pref_auto_repeat_button" android:defaultValue="false" android:summaryOn="@string/revanced_auto_repeat_button_summary_on" android:summaryOff="@string/revanced_auto_repeat_button_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_auto_repeat_title" android:key="revanced_pref_auto_repeat" android:defaultValue="false" android:summaryOn="@string/revanced_auto_repeat_summary_on" android:summaryOff="@string/revanced_auto_repeat_summary_off" />
|
||||
<ListPreference android:entries="@array/revanced_button_location_entries" android:title="@string/revanced_copy_video_url_timestamp_title" android:key="revanced_pref_copy_video_url_timestamp_button_list" android:entryValues="@array/revanced_button_location_entry_values" />
|
||||
<ListPreference android:entries="@array/revanced_button_location_entries" android:title="@string/revanced_copy_video_url_title" android:key="revanced_pref_copy_video_url_button_list" android:entryValues="@array/revanced_button_location_entry_values" />
|
||||
<SwitchPreference android:title="@string/revanced_hdr_full_brightness_title" android:key="revanced_pref_hdr_autobrightness" android:defaultValue="true" android:summaryOn="@string/revanced_hdr_full_brightness_summary_on" android:summaryOff="@string/revanced_hdr_full_brightness_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_seekbar_tapping" android:key="revanced_enable_tap_seeking" android:defaultValue="false" android:summaryOn="@string/revanced_seekbar_tapping_on" android:summaryOff="@string/revanced_seekbar_tapping_off" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_xfenster_title" android:key="xfenster_screen" android:summary="@string/revanced_xfenster_screen_summary">
|
||||
<SwitchPreference android:title="@string/revanced_xfenster_brightness_title" android:key="revanced_enable_swipe_brightness" android:defaultValue="false" android:summaryOn="@string/revanced_xfenster_brightness_summary_on" android:summaryOff="@string/revanced_xfenster_brightness_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_xfenster_volume_title" android:key="revanced_enable_swipe_volume" android:defaultValue="false" android:summaryOn="@string/revanced_xfenster_volume_summary_on" android:summaryOff="@string/revanced_xfenster_volume_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_xfenster_tablet_title" android:key="revanced_swipe_tablet_mode" android:defaultValue="false" android:summaryOn="@string/revanced_xfenster_tablet_summary_on" android:summaryOff="@string/revanced_xfenster_tablet_summary_off" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_swipe_threshold_title" android:key="revanced_swipe_threshold" android:summary="@string/revanced_swipe_threshold_summary" android:defaultValue="0" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_swipe_padding_top_title" android:key="revanced_swipe_padding_top" android:summary="@string/revanced_swipe_padding_top_summary" android:defaultValue="20" />
|
||||
<SwitchPreference android:title="@string/revanced_xfenster_brightness_title" android:key="pref_xfenster_brightness" android:defaultValue="false" android:summaryOn="@string/revanced_xfenster_brightness_summary_on" android:summaryOff="@string/revanced_xfenster_brightness_summary_off" />
|
||||
<SwitchPreference android:title="@string/revanced_xfenster_volume_title" android:key="pref_xfenster_volume" android:defaultValue="false" android:summaryOn="@string/revanced_xfenster_volume_summary_on" android:summaryOff="@string/revanced_xfenster_volume_summary_off" />
|
||||
|
||||
<!--
|
||||
<SwitchPreference android:title="@string/revanced_xfenster_tablet_title" android:key="pref_xfenster_tablet" android:defaultValue="false" android:summaryOn="@string/revanced_xfenster_tablet_summary_on" android:summaryOff="@string/revanced_xfenster_tablet_summary_off" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_swipe_threshold_title" android:key="pref_xfenster_swipe_threshold" android:summary="@string/revanced_swipe_threshold_summary" android:defaultValue="0" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_swipe_padding_top_title" android:key="pref_xfenster_swipe_padding_top" android:summary="@string/revanced_swipe_padding_top_summary" android:defaultValue="20" />
|
||||
-->
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_buffer_title" android:key="buffer_screen">
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_maximum_buffer_title" android:key="pref_max_buffer_ms" android:summary="@string/revanced_maximum_buffer_summary" android:defaultValue="120000" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_playback_start_title" android:key="pref_buffer_for_playback_ms" android:summary="@string/revanced_playback_start_summary" android:defaultValue="2500" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_rebuffer_title" android:key="pref_buffer_for_playback_after_rebuffer_ms" android:summary="@string/revanced_rebuffer_summary" android:defaultValue="5000" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_maximum_buffer_title" android:key="revanced_pref_max_buffer_ms" android:summary="@string/revanced_maximum_buffer_summary" android:defaultValue="120000" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_playback_start_title" android:key="revanced_pref_buffer_for_playback_ms" android:summary="@string/revanced_playback_start_summary" android:defaultValue="2500" />
|
||||
<EditTextPreference android:numeric="integer" android:title="@string/revanced_rebuffer_title" android:key="revanced_pref_buffer_for_playback_after_rebuffer_ms" android:summary="@string/revanced_rebuffer_summary" android:defaultValue="5000" />
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_support_title" android:key="support_screen" android:summary="@string/revanced_support_summary">
|
||||
<Preference android:title="@string/revanced_discord_title" android:summary="@string/revanced_discord_summary">
|
||||
<intent android:action="android.intent.action.VIEW" android:data="https://discord.gg/rF2YcEjcrT" />
|
||||
</Preference>
|
||||
<Preference android:title="@string/revanced_website_title" android:summary="@string/revanced_website_summary">
|
||||
<intent android:action="android.intent.action.VIEW" android:data="https://github.com/revanced" />
|
||||
<intent android:action="android.intent.action.VIEW" android:data="https://revanced.app" />
|
||||
</Preference>
|
||||
</PreferenceScreen>
|
||||
<PreferenceScreen android:title="@string/revanced_credit_title" android:key="credits_screen" android:summary="@string/revanced_credit_summary">
|
||||
@ -89,6 +85,6 @@
|
||||
<intent android:action="android.intent.action.VIEW" android:data="https://crowdin.com/project/vanced" />
|
||||
</Preference>
|
||||
</PreferenceScreen>
|
||||
<SwitchPreference android:title="@string/revanced_debug_title" android:key="debug_revanced_enabled" android:defaultValue="false" android:summaryOn="@string/revanced_debug_summary_on" android:summaryOff="@string/revanced_debug_summary_off" />
|
||||
<Preference android:persistent="false" android:title="@string/revanced_about_title" android:selectable="true" android:key="pref_about_field" android:summary="@string/revanced_about_summary" />
|
||||
<SwitchPreference android:title="@string/revanced_debug_title" android:key="revanced_debug_enabled" android:defaultValue="true" android:summaryOn="@string/revanced_debug_summary_on" android:summaryOff="@string/revanced_debug_summary_off" />
|
||||
<Preference android:persistent="false" android:title="@string/revanced_about_title" android:selectable="true" android:key="pref_about_field" android:summary="@string/" />
|
||||
</PreferenceScreen>
|
Loading…
Reference in New Issue
Block a user