diff --git a/app/src/main/java/app/revanced/integrations/shared/Utils.java b/app/src/main/java/app/revanced/integrations/shared/Utils.java index 359397c949..279abdead2 100644 --- a/app/src/main/java/app/revanced/integrations/shared/Utils.java +++ b/app/src/main/java/app/revanced/integrations/shared/Utils.java @@ -10,6 +10,8 @@ import android.os.Build; import android.os.Handler; import android.os.Looper; +import android.preference.Preference; +import android.preference.PreferenceGroup; import android.view.View; import android.view.ViewGroup; import android.view.animation.Animation; @@ -26,6 +28,8 @@ import java.text.Bidi; import java.util.Locale; import java.util.Objects; +import java.util.SortedMap; +import java.util.TreeMap; import java.util.concurrent.Callable; import java.util.concurrent.Future; import java.util.concurrent.SynchronousQueue; @@ -33,6 +37,7 @@ import java.util.concurrent.TimeUnit; import app.revanced.integrations.shared.settings.BooleanSetting; +import kotlin.text.Regex; public class Utils { @@ -388,6 +393,45 @@ public static void hideViewByLayoutParams(View view) { } } + private static final Regex punctuationRegex = new Regex("\\p{P}+"); + + /** + * Sort the preferences by title and ignore the casing. + * + * Android Preferences are automatically sorted by title, + * but if using a localized string key it sorts on the key and not the actual title text that's used at runtime. + * + * @param menuDepthToSort Maximum menu depth to sort. Menus deeper than this value + * will show preferences in the order created in patches. + */ + public static void sortPreferenceGroupByTitle(PreferenceGroup group, int menuDepthToSort) { + if (menuDepthToSort == 0) return; + + SortedMap preferences = new TreeMap<>(); + for (int i = 0, prefCount = group.getPreferenceCount(); i < prefCount; i++) { + Preference preference = group.getPreference(i); + if (preference instanceof PreferenceGroup) { + sortPreferenceGroupByTitle((PreferenceGroup) preference, menuDepthToSort - 1); + } + preferences.put(removePunctuationConvertToLowercase(preference.getTitle()), preference); + } + + int prefIndex = 0; + for (Preference pref : preferences.values()) { + int indexToSet = prefIndex++; + if (pref instanceof PreferenceGroup || pref.getIntent() != null) { + // Place preference groups last. + // Use an offset to push the group to the end. + indexToSet += 1000; + } + pref.setOrder(indexToSet); + } + } + + public static String removePunctuationConvertToLowercase(CharSequence original) { + return punctuationRegex.replace(original, "").toLowerCase(); + } + public enum NetworkType { NONE, MOBILE, diff --git a/app/src/main/java/app/revanced/integrations/shared/settings/preference/AbstractPreferenceFragment.java b/app/src/main/java/app/revanced/integrations/shared/settings/preference/AbstractPreferenceFragment.java index 416970400b..1f36ac4305 100644 --- a/app/src/main/java/app/revanced/integrations/shared/settings/preference/AbstractPreferenceFragment.java +++ b/app/src/main/java/app/revanced/integrations/shared/settings/preference/AbstractPreferenceFragment.java @@ -76,6 +76,7 @@ protected void initialize() { if (identifier == 0) return; addPreferencesFromResource(identifier); + Utils.sortPreferenceGroupByTitle(getPreferenceScreen(), 2); } private void showSettingUserDialogConfirmation(SwitchPreference switchPref, BooleanSetting setting) { diff --git a/app/src/main/java/app/revanced/integrations/twitch/patches/ShowDeletedMessagesPatch.java b/app/src/main/java/app/revanced/integrations/twitch/patches/ShowDeletedMessagesPatch.java index ae64614e76..bdf06ed740 100644 --- a/app/src/main/java/app/revanced/integrations/twitch/patches/ShowDeletedMessagesPatch.java +++ b/app/src/main/java/app/revanced/integrations/twitch/patches/ShowDeletedMessagesPatch.java @@ -18,6 +18,10 @@ @SuppressWarnings("unused") public class ShowDeletedMessagesPatch { + + /** + * Injection point. + */ public static boolean shouldUseSpoiler() { return "spoiler".equals(Settings.SHOW_DELETED_MESSAGES.get()); } diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/ChangeStartPagePatch.java b/app/src/main/java/app/revanced/integrations/youtube/patches/ChangeStartPagePatch.java index c098abb702..2e3f007a41 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/ChangeStartPagePatch.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/ChangeStartPagePatch.java @@ -7,7 +7,7 @@ @SuppressWarnings("unused") public final class ChangeStartPagePatch { - public static void changeIntent(Intent intent) { + public static void changeIntent(final Intent intent) { final var startPage = Settings.START_PAGE.get(); if (startPage.isEmpty()) return; diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/GmsCoreSupport.java b/app/src/main/java/app/revanced/integrations/youtube/patches/GmsCoreSupport.java index 4726117d55..ea1273fee2 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/GmsCoreSupport.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/GmsCoreSupport.java @@ -46,14 +46,16 @@ public static void checkAvailability() { Logger.printInfo(() -> "GmsCore was not found", exception); search(context, getGmsCoreDownloadLink(), str("gms_core_not_installed_warning")); - // Gracefully exit the app, so it does not crash. System.exit(0); } try (var client = context.getContentResolver().acquireContentProviderClient(GMS_CORE_PROVIDER)) { if (client != null) return; + Logger.printInfo(() -> "GmsCore is not running in the background"); search(context, DONT_KILL_MY_APP_LINK, str("gms_core_not_running_warning")); + + System.exit(0); } } diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/AnnouncementsPatch.java b/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/AnnouncementsPatch.java index d8ed7212af..6f2c9e50ba 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/AnnouncementsPatch.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/AnnouncementsPatch.java @@ -18,9 +18,11 @@ import java.net.HttpURLConnection; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; +import java.util.Locale; import java.util.UUID; import static android.text.Html.FROM_HTML_MODE_COMPACT; +import static app.revanced.integrations.shared.StringRef.str; import static app.revanced.integrations.youtube.patches.announcements.requests.AnnouncementsRoutes.GET_LATEST_ANNOUNCEMENT; @SuppressWarnings("unused") @@ -39,9 +41,10 @@ public static void showAnnouncement(final Activity context) { Utils.runOnBackgroundThread(() -> { try { - HttpURLConnection connection = AnnouncementsRoutes.getAnnouncementsConnectionFromRoute(GET_LATEST_ANNOUNCEMENT, CONSUMER); + HttpURLConnection connection = AnnouncementsRoutes.getAnnouncementsConnectionFromRoute( + GET_LATEST_ANNOUNCEMENT, CONSUMER, Locale.getDefault().toLanguageTag()); - Logger.printDebug(() -> "Get latest announcement route connection url: " + connection.getURL().toString()); + Logger.printDebug(() -> "Get latest announcement route connection url: " + connection.getURL()); try { // Do not show the announcement if the request failed. @@ -49,7 +52,7 @@ public static void showAnnouncement(final Activity context) { if (Settings.ANNOUNCEMENT_LAST_HASH.get().isEmpty()) return; Settings.ANNOUNCEMENT_LAST_HASH.resetToDefault(); - Utils.showToastLong("Failed to get announcement"); + Utils.showToastLong(str("revanced_announcements_connection_failed")); return; } diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/requests/AnnouncementsRoutes.java b/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/requests/AnnouncementsRoutes.java index 39a7d4f3c3..6fca530c2b 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/requests/AnnouncementsRoutes.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/announcements/requests/AnnouncementsRoutes.java @@ -11,8 +11,10 @@ public class AnnouncementsRoutes { private static final String ANNOUNCEMENTS_PROVIDER = "https://api.revanced.app/v2"; - - public static final Route GET_LATEST_ANNOUNCEMENT = new Route(GET, "/announcements/youtube/latest?consumer={consumer}"); + /** + * 'language' parameter is IETF format (for USA it would be 'en-us'). + */ + public static final Route GET_LATEST_ANNOUNCEMENT = new Route(GET, "/announcements/youtube/latest?consumer={consumer}&language={language}"); private AnnouncementsRoutes() { } diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/playback/quality/RememberVideoQualityPatch.java b/app/src/main/java/app/revanced/integrations/youtube/patches/playback/quality/RememberVideoQualityPatch.java index b06a2107e1..566792857f 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/playback/quality/RememberVideoQualityPatch.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/playback/quality/RememberVideoQualityPatch.java @@ -12,6 +12,7 @@ import java.util.ArrayList; import java.util.List; +import static app.revanced.integrations.shared.StringRef.str; import static app.revanced.integrations.shared.Utils.NetworkType; @SuppressWarnings("unused") @@ -43,13 +44,13 @@ private static void changeDefaultQuality(int defaultQuality) { String networkTypeMessage; if (Utils.getNetworkType() == NetworkType.MOBILE) { mobileQualitySetting.save(defaultQuality); - networkTypeMessage = "mobile"; + networkTypeMessage = str("revanced_remember_video_quality_mobile"); } else { wifiQualitySetting.save(defaultQuality); - networkTypeMessage = "Wi-Fi"; + networkTypeMessage = str("revanced_remember_video_quality_wifi"); } - Utils.showToastShort("Changed default " + networkTypeMessage - + " quality to: " + defaultQuality +"p"); + Utils.showToastShort( + str("revanced_remember_video_quality_toast", networkTypeMessage, (defaultQuality + "p"))); } /** diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java b/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java index cd07ac502d..e863f8fdbc 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/CustomPlaybackSpeedPatch.java @@ -1,5 +1,7 @@ package app.revanced.integrations.youtube.patches.playback.speed; +import static app.revanced.integrations.shared.StringRef.str; + import android.preference.ListPreference; import android.support.v7.widget.RecyclerView; import android.view.View; @@ -62,8 +64,7 @@ private static void loadCustomSpeeds() { throw new IllegalArgumentException(); } if (speed >= MAXIMUM_PLAYBACK_SPEED) { - resetCustomSpeeds("Custom speeds must be less than " + MAXIMUM_PLAYBACK_SPEED - + ". Using default values."); + resetCustomSpeeds(str("revanced_custom_playback_speeds_invalid", MAXIMUM_PLAYBACK_SPEED)); loadCustomSpeeds(); return; } @@ -71,7 +72,7 @@ private static void loadCustomSpeeds() { } } catch (Exception ex) { Logger.printInfo(() -> "parse error", ex); - resetCustomSpeeds("Invalid custom playback speeds. Using default values."); + resetCustomSpeeds(str("revanced_custom_playback_speeds_parse_exception")); loadCustomSpeeds(); } } diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java b/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java index ca46706975..1782ade6b3 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java @@ -1,5 +1,7 @@ package app.revanced.integrations.youtube.patches.playback.speed; +import static app.revanced.integrations.shared.StringRef.str; + import app.revanced.integrations.youtube.patches.VideoInformation; import app.revanced.integrations.youtube.settings.Settings; import app.revanced.integrations.shared.Logger; @@ -25,7 +27,7 @@ public static void newVideoStarted(Object ignoredPlayerController) { public static void userSelectedPlaybackSpeed(float playbackSpeed) { if (Settings.REMEMBER_PLAYBACK_SPEED_LAST_SELECTED.get()) { Settings.PLAYBACK_SPEED_DEFAULT.save(playbackSpeed); - Utils.showToastLong("Changed default speed to: " + playbackSpeed + "x"); + Utils.showToastLong(str("revanced_remember_playback_speed_toast", (playbackSpeed + "x"))); } } diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/spoof/requests/StoryboardRendererRequester.java b/app/src/main/java/app/revanced/integrations/youtube/patches/spoof/requests/StoryboardRendererRequester.java index 4747e33148..aeb7fe251f 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/spoof/requests/StoryboardRendererRequester.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/spoof/requests/StoryboardRendererRequester.java @@ -16,6 +16,7 @@ import java.nio.charset.StandardCharsets; import java.util.Objects; +import static app.revanced.integrations.shared.StringRef.str; import static app.revanced.integrations.youtube.patches.spoof.requests.PlayerRoutes.*; public class StoryboardRendererRequester { @@ -62,14 +63,14 @@ private static JSONObject fetchPlayerResponse(@NonNull String requestBody, boole if (responseCode == 200) return Requester.parseJSONObject(connection); // Always show a toast for this, as a non 200 response means something is broken. + // Not a normal code path and should not be reached, so no translations are needed. handleConnectionError("Spoof storyboard not available: " + responseCode, null, showToastOnIOException || BaseSettings.DEBUG_TOAST_ON_ERROR.get()); connection.disconnect(); } catch (SocketTimeoutException ex) { - handleConnectionError("Spoof storyboard temporarily not available (API timed out)", - ex, showToastOnIOException); + handleConnectionError(str("revanced_spoof_storyboard_timeout"), ex, showToastOnIOException); } catch (IOException ex) { - handleConnectionError("Spoof storyboard temporarily not available: " + ex.getMessage(), + handleConnectionError(str("revanced_spoof_storyboard_io_exception", ex.getMessage()), ex, showToastOnIOException); } catch (Exception ex) { Logger.printException(() -> "Spoof storyboard fetch failed", ex); // Should never happen. diff --git a/app/src/main/java/app/revanced/integrations/youtube/patches/theme/SeekbarColorPatch.java b/app/src/main/java/app/revanced/integrations/youtube/patches/theme/SeekbarColorPatch.java index c8957c2f00..17caa5f6dc 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/patches/theme/SeekbarColorPatch.java +++ b/app/src/main/java/app/revanced/integrations/youtube/patches/theme/SeekbarColorPatch.java @@ -1,5 +1,7 @@ package app.revanced.integrations.youtube.patches.theme; +import static app.revanced.integrations.shared.StringRef.str; + import android.graphics.Color; import app.revanced.integrations.youtube.settings.Settings; @@ -48,7 +50,7 @@ private static void loadCustomSeekbarColor() { seekbarColor = Color.parseColor(Settings.SEEKBAR_CUSTOM_COLOR_VALUE.get()); Color.colorToHSV(seekbarColor, customSeekbarColorHSV); } catch (Exception ex) { - Utils.showToastShort("Invalid seekbar color value. Using default value."); + Utils.showToastShort(str("revanced_seekbar_custom_color_invalid")); Settings.SEEKBAR_CUSTOM_COLOR_VALUE.resetToDefault(); loadCustomSeekbarColor(); } diff --git a/app/src/main/java/app/revanced/integrations/youtube/settings/LicenseActivityHook.java b/app/src/main/java/app/revanced/integrations/youtube/settings/LicenseActivityHook.java index cfe769705f..30d97a6724 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/settings/LicenseActivityHook.java +++ b/app/src/main/java/app/revanced/integrations/youtube/settings/LicenseActivityHook.java @@ -41,15 +41,15 @@ public static void initialize(Activity licenseActivity) { String toolbarTitleResourceName; String dataString = licenseActivity.getIntent().getDataString(); switch (dataString) { - case "sponsorblock_settings": - toolbarTitleResourceName = "revanced_sponsorblock_settings_title"; + case "revanced_sb_settings_intent": + toolbarTitleResourceName = "revanced_sb_settings_title"; fragment = new SponsorBlockPreferenceFragment(); break; - case "ryd_settings": + case "revanced_ryd_settings_intent": toolbarTitleResourceName = "revanced_ryd_settings_title"; fragment = new ReturnYouTubeDislikePreferenceFragment(); break; - case "revanced_settings": + case "revanced_settings_intent": toolbarTitleResourceName = "revanced_settings_title"; fragment = new ReVancedPreferenceFragment(); break; diff --git a/app/src/main/java/app/revanced/integrations/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java b/app/src/main/java/app/revanced/integrations/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java index deaee7affa..50b0a78bb8 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java +++ b/app/src/main/java/app/revanced/integrations/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java @@ -120,9 +120,9 @@ public void onCreate(Bundle savedInstanceState) { toastOnRYDNotAvailable = new SwitchPreference(context); toastOnRYDNotAvailable.setChecked(Settings.RYD_TOAST_ON_CONNECTION_ERROR.get()); - toastOnRYDNotAvailable.setTitle(str("ryd_toast_on_connection_error_title")); - toastOnRYDNotAvailable.setSummaryOn(str("ryd_toast_on_connection_error_summary_on")); - toastOnRYDNotAvailable.setSummaryOff(str("ryd_toast_on_connection_error_summary_off")); + toastOnRYDNotAvailable.setTitle(str("revanced_ryd_toast_on_connection_error_title")); + toastOnRYDNotAvailable.setSummaryOn(str("revanced_ryd_toast_on_connection_error_summary_on")); + toastOnRYDNotAvailable.setSummaryOff(str("revanced_ryd_toast_on_connection_error_summary_off")); toastOnRYDNotAvailable.setOnPreferenceChangeListener((pref, newValue) -> { Settings.RYD_TOAST_ON_CONNECTION_ERROR.save((Boolean) newValue); updateUIState(); diff --git a/app/src/main/java/app/revanced/integrations/youtube/settings/preference/SponsorBlockPreferenceFragment.java b/app/src/main/java/app/revanced/integrations/youtube/settings/preference/SponsorBlockPreferenceFragment.java index 034c37e068..137509d862 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/settings/preference/SponsorBlockPreferenceFragment.java +++ b/app/src/main/java/app/revanced/integrations/youtube/settings/preference/SponsorBlockPreferenceFragment.java @@ -101,9 +101,9 @@ private void updateUI() { // If the user has a private user id, then include a subtext that mentions not to share it. String exportSummarySubText = SponsorBlockSettings.userHasSBPrivateId() - ? str("sb_settings_ie_sum_warning") + ? str("revanced_sb_settings_ie_sum_warning") : ""; - importExport.setSummary(str("sb_settings_ie_sum", exportSummarySubText)); + importExport.setSummary(str("revanced_sb_settings_ie_sum", exportSummarySubText)); apiUrl.setEnabled(enabled); importExport.setEnabled(enabled); @@ -127,8 +127,8 @@ public void onCreate(Bundle savedInstanceState) { SponsorBlockSettings.initialize(); sbEnabled = new SwitchPreference(context); - sbEnabled.setTitle(str("sb_enable_sb")); - sbEnabled.setSummary(str("sb_enable_sb_sum")); + sbEnabled.setTitle(str("revanced_sb_enable_sb")); + sbEnabled.setSummary(str("revanced_sb_enable_sb_sum")); preferenceScreen.addPreference(sbEnabled); sbEnabled.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_ENABLED.save((Boolean) newValue); @@ -139,7 +139,7 @@ public void onCreate(Bundle savedInstanceState) { addAppearanceCategory(context, preferenceScreen); segmentCategory = new PreferenceCategory(context); - segmentCategory.setTitle(str("sb_diff_segments")); + segmentCategory.setTitle(str("revanced_sb_diff_segments")); preferenceScreen.addPreference(segmentCategory); updateSegmentCategories(); @@ -148,7 +148,7 @@ public void onCreate(Bundle savedInstanceState) { addGeneralCategory(context, preferenceScreen); statsCategory = new PreferenceCategory(context); - statsCategory.setTitle(str("sb_stats")); + statsCategory.setTitle(str("revanced_sb_stats")); preferenceScreen.addPreference(statsCategory); fetchAndDisplayStats(); @@ -163,12 +163,12 @@ public void onCreate(Bundle savedInstanceState) { private void addAppearanceCategory(Context context, PreferenceScreen screen) { PreferenceCategory category = new PreferenceCategory(context); screen.addPreference(category); - category.setTitle(str("sb_appearance_category")); + category.setTitle(str("revanced_sb_appearance_category")); votingEnabled = new SwitchPreference(context); - votingEnabled.setTitle(str("sb_enable_voting")); - votingEnabled.setSummaryOn(str("sb_enable_voting_sum_on")); - votingEnabled.setSummaryOff(str("sb_enable_voting_sum_off")); + votingEnabled.setTitle(str("revanced_sb_enable_voting")); + votingEnabled.setSummaryOn(str("revanced_sb_enable_voting_sum_on")); + votingEnabled.setSummaryOff(str("revanced_sb_enable_voting_sum_off")); category.addPreference(votingEnabled); votingEnabled.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_VOTING_BUTTON.save((Boolean) newValue); @@ -177,9 +177,9 @@ private void addAppearanceCategory(Context context, PreferenceScreen screen) { }); compactSkipButton = new SwitchPreference(context); - compactSkipButton.setTitle(str("sb_enable_compact_skip_button")); - compactSkipButton.setSummaryOn(str("sb_enable_compact_skip_button_sum_on")); - compactSkipButton.setSummaryOff(str("sb_enable_compact_skip_button_sum_off")); + compactSkipButton.setTitle(str("revanced_sb_enable_compact_skip_button")); + compactSkipButton.setSummaryOn(str("revanced_sb_enable_compact_skip_button_sum_on")); + compactSkipButton.setSummaryOff(str("revanced_sb_enable_compact_skip_button_sum_off")); category.addPreference(compactSkipButton); compactSkipButton.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_COMPACT_SKIP_BUTTON.save((Boolean) newValue); @@ -188,9 +188,9 @@ private void addAppearanceCategory(Context context, PreferenceScreen screen) { }); autoHideSkipSegmentButton = new SwitchPreference(context); - autoHideSkipSegmentButton.setTitle(str("sb_enable_auto_hide_skip_segment_button")); - autoHideSkipSegmentButton.setSummaryOn(str("sb_enable_auto_hide_skip_segment_button_sum_on")); - autoHideSkipSegmentButton.setSummaryOff(str("sb_enable_auto_hide_skip_segment_button_sum_off")); + autoHideSkipSegmentButton.setTitle(str("revanced_sb_enable_auto_hide_skip_segment_button")); + autoHideSkipSegmentButton.setSummaryOn(str("revanced_sb_enable_auto_hide_skip_segment_button_sum_on")); + autoHideSkipSegmentButton.setSummaryOff(str("revanced_sb_enable_auto_hide_skip_segment_button_sum_off")); category.addPreference(autoHideSkipSegmentButton); autoHideSkipSegmentButton.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_AUTO_HIDE_SKIP_BUTTON.save((Boolean) newValue); @@ -199,11 +199,11 @@ private void addAppearanceCategory(Context context, PreferenceScreen screen) { }); showSkipToast = new SwitchPreference(context); - showSkipToast.setTitle(str("sb_general_skiptoast")); - showSkipToast.setSummaryOn(str("sb_general_skiptoast_sum_on")); - showSkipToast.setSummaryOff(str("sb_general_skiptoast_sum_off")); + showSkipToast.setTitle(str("revanced_sb_general_skiptoast")); + showSkipToast.setSummaryOn(str("revanced_sb_general_skiptoast_sum_on")); + showSkipToast.setSummaryOff(str("revanced_sb_general_skiptoast_sum_off")); showSkipToast.setOnPreferenceClickListener(preference1 -> { - Utils.showToastShort(str("sb_skipped_sponsor")); + Utils.showToastShort(str("revanced_sb_skipped_sponsor")); return false; }); showSkipToast.setOnPreferenceChangeListener((preference1, newValue) -> { @@ -214,9 +214,9 @@ private void addAppearanceCategory(Context context, PreferenceScreen screen) { category.addPreference(showSkipToast); showTimeWithoutSegments = new SwitchPreference(context); - showTimeWithoutSegments.setTitle(str("sb_general_time_without")); - showTimeWithoutSegments.setSummaryOn(str("sb_general_time_without_sum_on")); - showTimeWithoutSegments.setSummaryOff(str("sb_general_time_without_sum_off")); + showTimeWithoutSegments.setTitle(str("revanced_sb_general_time_without")); + showTimeWithoutSegments.setSummaryOn(str("revanced_sb_general_time_without_sum_on")); + showTimeWithoutSegments.setSummaryOff(str("revanced_sb_general_time_without_sum_off")); showTimeWithoutSegments.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_VIDEO_LENGTH_WITHOUT_SEGMENTS.save((Boolean) newValue); updateUI(); @@ -228,21 +228,21 @@ private void addAppearanceCategory(Context context, PreferenceScreen screen) { private void addCreateSegmentCategory(Context context, PreferenceScreen screen) { PreferenceCategory category = new PreferenceCategory(context); screen.addPreference(category); - category.setTitle(str("sb_create_segment_category")); + category.setTitle(str("revanced_sb_create_segment_category")); addNewSegment = new SwitchPreference(context); - addNewSegment.setTitle(str("sb_enable_create_segment")); - addNewSegment.setSummaryOn(str("sb_enable_create_segment_sum_on")); - addNewSegment.setSummaryOff(str("sb_enable_create_segment_sum_off")); + addNewSegment.setTitle(str("revanced_sb_enable_create_segment")); + addNewSegment.setSummaryOn(str("revanced_sb_enable_create_segment_sum_on")); + addNewSegment.setSummaryOff(str("revanced_sb_enable_create_segment_sum_off")); category.addPreference(addNewSegment); addNewSegment.setOnPreferenceChangeListener((preference1, o) -> { Boolean newValue = (Boolean) o; if (newValue && !Settings.SB_SEEN_GUIDELINES.get()) { new AlertDialog.Builder(preference1.getContext()) - .setTitle(str("sb_guidelines_popup_title")) - .setMessage(str("sb_guidelines_popup_content")) - .setNegativeButton(str("sb_guidelines_popup_already_read"), null) - .setPositiveButton(str("sb_guidelines_popup_open"), (dialogInterface, i) -> openGuidelines()) + .setTitle(str("revanced_sb_guidelines_popup_title")) + .setMessage(str("revanced_sb_guidelines_popup_content")) + .setNegativeButton(str("revanced_sb_guidelines_popup_already_read"), null) + .setPositiveButton(str("revanced_sb_guidelines_popup_open"), (dialogInterface, i) -> openGuidelines()) .setOnDismissListener(dialog -> Settings.SB_SEEN_GUIDELINES.save(true)) .setCancelable(false) .show(); @@ -253,13 +253,13 @@ private void addCreateSegmentCategory(Context context, PreferenceScreen screen) }); newSegmentStep = new EditTextPreference(context); - newSegmentStep.setTitle(str("sb_general_adjusting")); - newSegmentStep.setSummary(str("sb_general_adjusting_sum")); + newSegmentStep.setTitle(str("revanced_sb_general_adjusting")); + newSegmentStep.setSummary(str("revanced_sb_general_adjusting_sum")); newSegmentStep.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER); newSegmentStep.setOnPreferenceChangeListener((preference1, newValue) -> { final int newAdjustmentValue = Integer.parseInt(newValue.toString()); if (newAdjustmentValue == 0) { - Utils.showToastLong(str("sb_general_adjusting_invalid")); + Utils.showToastLong(str("revanced_sb_general_adjusting_invalid")); return false; } Settings.SB_CREATE_NEW_SEGMENT_STEP.save(newAdjustmentValue); @@ -268,8 +268,8 @@ private void addCreateSegmentCategory(Context context, PreferenceScreen screen) category.addPreference(newSegmentStep); Preference guidelinePreferences = new Preference(context); - guidelinePreferences.setTitle(str("sb_guidelines_preference_title")); - guidelinePreferences.setSummary(str("sb_guidelines_preference_sum")); + guidelinePreferences.setTitle(str("revanced_sb_guidelines_preference_title")); + guidelinePreferences.setSummary(str("revanced_sb_guidelines_preference_sum")); guidelinePreferences.setOnPreferenceClickListener(preference1 -> { openGuidelines(); return true; @@ -280,12 +280,12 @@ private void addCreateSegmentCategory(Context context, PreferenceScreen screen) private void addGeneralCategory(final Context context, PreferenceScreen screen) { PreferenceCategory category = new PreferenceCategory(context); screen.addPreference(category); - category.setTitle(str("sb_general")); + category.setTitle(str("revanced_sb_general")); toastOnConnectionError = new SwitchPreference(context); - toastOnConnectionError.setTitle(str("sb_toast_on_connection_error_title")); - toastOnConnectionError.setSummaryOn(str("sb_toast_on_connection_error_summary_on")); - toastOnConnectionError.setSummaryOff(str("sb_toast_on_connection_error_summary_off")); + toastOnConnectionError.setTitle(str("revanced_sb_toast_on_connection_error_title")); + toastOnConnectionError.setSummaryOn(str("revanced_sb_toast_on_connection_error_summary_on")); + toastOnConnectionError.setSummaryOff(str("revanced_sb_toast_on_connection_error_summary_off")); toastOnConnectionError.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_TOAST_ON_CONNECTION_ERROR.save((Boolean) newValue); updateUI(); @@ -294,9 +294,9 @@ private void addGeneralCategory(final Context context, PreferenceScreen screen) category.addPreference(toastOnConnectionError); trackSkips = new SwitchPreference(context); - trackSkips.setTitle(str("sb_general_skipcount")); - trackSkips.setSummaryOn(str("sb_general_skipcount_sum_on")); - trackSkips.setSummaryOff(str("sb_general_skipcount_sum_off")); + trackSkips.setTitle(str("revanced_sb_general_skipcount")); + trackSkips.setSummaryOn(str("revanced_sb_general_skipcount_sum_on")); + trackSkips.setSummaryOff(str("revanced_sb_general_skipcount_sum_off")); trackSkips.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_TRACK_SKIP_COUNT.save((Boolean) newValue); updateUI(); @@ -305,8 +305,8 @@ private void addGeneralCategory(final Context context, PreferenceScreen screen) category.addPreference(trackSkips); minSegmentDuration = new EditTextPreference(context); - minSegmentDuration.setTitle(str("sb_general_min_duration")); - minSegmentDuration.setSummary(str("sb_general_min_duration_sum")); + minSegmentDuration.setTitle(str("revanced_sb_general_min_duration")); + minSegmentDuration.setSummary(str("revanced_sb_general_min_duration_sum")); minSegmentDuration.getEditText().setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL); minSegmentDuration.setOnPreferenceChangeListener((preference1, newValue) -> { Settings.SB_SEGMENT_MIN_DURATION.save(Float.valueOf(newValue.toString())); @@ -315,12 +315,12 @@ private void addGeneralCategory(final Context context, PreferenceScreen screen) category.addPreference(minSegmentDuration); privateUserId = new EditTextPreference(context); - privateUserId.setTitle(str("sb_general_uuid")); - privateUserId.setSummary(str("sb_general_uuid_sum")); + privateUserId.setTitle(str("revanced_sb_general_uuid")); + privateUserId.setSummary(str("revanced_sb_general_uuid_sum")); privateUserId.setOnPreferenceChangeListener((preference1, newValue) -> { String newUUID = newValue.toString(); if (!SponsorBlockSettings.isValidSBUserId(newUUID)) { - Utils.showToastLong(str("sb_general_uuid_invalid")); + Utils.showToastLong(str("revanced_sb_general_uuid_invalid")); return false; } Settings.SB_PRIVATE_USER_ID.save(newUUID); @@ -331,8 +331,8 @@ private void addGeneralCategory(final Context context, PreferenceScreen screen) category.addPreference(privateUserId); apiUrl = new Preference(context); - apiUrl.setTitle(str("sb_general_api_url")); - apiUrl.setSummary(Html.fromHtml(str("sb_general_api_url_sum"))); + apiUrl.setTitle(str("revanced_sb_general_api_url")); + apiUrl.setSummary(Html.fromHtml(str("revanced_sb_general_api_url_sum"))); apiUrl.setOnPreferenceClickListener(preference1 -> { EditText editText = new EditText(context); editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_URI); @@ -341,14 +341,14 @@ private void addGeneralCategory(final Context context, PreferenceScreen screen) DialogInterface.OnClickListener urlChangeListener = (dialog, buttonPressed) -> { if (buttonPressed == DialogInterface.BUTTON_NEUTRAL) { Settings.SB_API_URL.resetToDefault(); - Utils.showToastLong(str("sb_api_url_reset")); + Utils.showToastLong(str("revanced_sb_api_url_reset")); } else if (buttonPressed == DialogInterface.BUTTON_POSITIVE) { String serverAddress = editText.getText().toString(); if (!SponsorBlockSettings.isValidSBServerAddress(serverAddress)) { - Utils.showToastLong(str("sb_api_url_invalid")); + Utils.showToastLong(str("revanced_sb_api_url_invalid")); } else if (!serverAddress.equals(Settings.SB_API_URL.get())) { Settings.SB_API_URL.save(serverAddress); - Utils.showToastLong(str("sb_api_url_changed")); + Utils.showToastLong(str("revanced_sb_api_url_changed")); } } }; @@ -356,7 +356,7 @@ private void addGeneralCategory(final Context context, PreferenceScreen screen) .setTitle(apiUrl.getTitle()) .setView(editText) .setNegativeButton(android.R.string.cancel, null) - .setNeutralButton(str("sb_reset"), urlChangeListener) + .setNeutralButton(str("revanced_sb_reset"), urlChangeListener) .setPositiveButton(android.R.string.ok, urlChangeListener) .show(); return true; @@ -365,12 +365,12 @@ private void addGeneralCategory(final Context context, PreferenceScreen screen) importExport = new EditTextPreference(context) { protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { - builder.setNeutralButton(str("sb_settings_copy"), (dialog, which) -> { + builder.setNeutralButton(str("revanced_sb_settings_copy"), (dialog, which) -> { Utils.setClipboard(getEditText().getText().toString()); }); } }; - importExport.setTitle(str("sb_settings_ie")); + importExport.setTitle(str("revanced_sb_settings_ie")); // Summary is set in updateUI() importExport.getEditText().setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE @@ -409,13 +409,13 @@ private void updateSegmentCategories() { private void addAboutCategory(Context context, PreferenceScreen screen) { PreferenceCategory category = new PreferenceCategory(context); screen.addPreference(category); - category.setTitle(str("sb_about")); + category.setTitle(str("revanced_sb_about")); { Preference preference = new Preference(context); category.addPreference(preference); - preference.setTitle(str("sb_about_api")); - preference.setSummary(str("sb_about_api_sum")); + preference.setTitle(str("revanced_sb_about_api")); + preference.setSummary(str("revanced_sb_about_api_sum")); preference.setOnPreferenceClickListener(preference1 -> { Intent i = new Intent(Intent.ACTION_VIEW); i.setData(Uri.parse("https://sponsor.ajay.app")); @@ -444,7 +444,7 @@ private void fetchAndDisplayStats() { loadingPlaceholderPreference.setEnabled(false); statsCategory.addPreference(loadingPlaceholderPreference); if (Settings.SB_ENABLED.get()) { - loadingPlaceholderPreference.setTitle(str("sb_stats_loading")); + loadingPlaceholderPreference.setTitle(str("revanced_sb_stats_loading")); Utils.runOnBackgroundThread(() -> { UserStats stats = SBRequester.retrieveUserStats(); Utils.runOnMainThread(() -> { // get back on main thread to modify UI elements @@ -453,7 +453,7 @@ private void fetchAndDisplayStats() { }); }); } else { - loadingPlaceholderPreference.setTitle(str("sb_stats_sb_disabled")); + loadingPlaceholderPreference.setTitle(str("revanced_sb_stats_sb_disabled")); } } catch (Exception ex) { Logger.printException(() -> "fetchAndDisplayStats failure", ex); @@ -464,7 +464,7 @@ private void addUserStats(@NonNull Preference loadingPlaceholder, @Nullable User Utils.verifyOnMainThread(); try { if (stats == null) { - loadingPlaceholder.setTitle(str("sb_stats_connection_failure")); + loadingPlaceholder.setTitle(str("revanced_sb_stats_connection_failure")); return; } statsCategory.removeAll(); @@ -475,8 +475,8 @@ private void addUserStats(@NonNull Preference loadingPlaceholder, @Nullable User EditTextPreference preference = new EditTextPreference(context); statsCategory.addPreference(preference); String userName = stats.userName; - preference.setTitle(fromHtml(str("sb_stats_username", userName))); - preference.setSummary(str("sb_stats_username_change")); + preference.setTitle(fromHtml(str("revanced_sb_stats_username", userName))); + preference.setSummary(str("revanced_sb_stats_username_change")); preference.setText(userName); preference.setOnPreferenceChangeListener((preference1, value) -> { Utils.runOnBackgroundThread(() -> { @@ -484,9 +484,9 @@ private void addUserStats(@NonNull Preference loadingPlaceholder, @Nullable User String errorMessage = SBRequester.setUsername(newUserName); Utils.runOnMainThread(() -> { if (errorMessage == null) { - preference.setTitle(fromHtml(str("sb_stats_username", newUserName))); + preference.setTitle(fromHtml(str("revanced_sb_stats_username", newUserName))); preference.setText(newUserName); - Utils.showToastLong(str("sb_stats_username_changed")); + Utils.showToastLong(str("revanced_sb_stats_username_changed")); } else { preference.setText(userName); // revert to previous Utils.showToastLong(errorMessage); @@ -502,7 +502,7 @@ private void addUserStats(@NonNull Preference loadingPlaceholder, @Nullable User Preference preference = new Preference(context); statsCategory.addPreference(preference); String formatted = SponsorBlockUtils.getNumberOfSkipsString(stats.segmentCount); - preference.setTitle(fromHtml(str("sb_stats_submissions", formatted))); + preference.setTitle(fromHtml(str("revanced_sb_stats_submissions", formatted))); if (stats.totalSegmentCountIncludingIgnored == 0) { preference.setSelectable(false); } else { @@ -519,7 +519,7 @@ private void addUserStats(@NonNull Preference loadingPlaceholder, @Nullable User // "user reputation". Usually not useful, since it appears most users have zero reputation. // But if there is a reputation, then show it here Preference preference = new Preference(context); - preference.setTitle(fromHtml(str("sb_stats_reputation", stats.reputation))); + preference.setTitle(fromHtml(str("revanced_sb_stats_reputation", stats.reputation))); preference.setSelectable(false); if (stats.reputation != 0) { statsCategory.addPreference(preference); @@ -534,12 +534,12 @@ private void addUserStats(@NonNull Preference loadingPlaceholder, @Nullable User String stats_saved; String stats_saved_sum; if (stats.totalSegmentCountIncludingIgnored == 0) { - stats_saved = str("sb_stats_saved_zero"); - stats_saved_sum = str("sb_stats_saved_sum_zero"); + stats_saved = str("revanced_sb_stats_saved_zero"); + stats_saved_sum = str("revanced_sb_stats_saved_sum_zero"); } else { - stats_saved = str("sb_stats_saved", + stats_saved = str("revanced_sb_stats_saved", SponsorBlockUtils.getNumberOfSkipsString(stats.viewCount)); - stats_saved_sum = str("sb_stats_saved_sum", SponsorBlockUtils.getTimeSavedString((long) (60 * stats.minutesSaved))); + stats_saved_sum = str("revanced_sb_stats_saved_sum", SponsorBlockUtils.getTimeSavedString((long) (60 * stats.minutesSaved))); } preference.setTitle(fromHtml(stats_saved)); preference.setSummary(fromHtml(stats_saved_sum)); @@ -562,14 +562,14 @@ private void addLocalUserStats() { Runnable updateStatsSelfSaved = () -> { String formatted = SponsorBlockUtils.getNumberOfSkipsString(Settings.SB_LOCAL_TIME_SAVED_NUMBER_SEGMENTS.get()); - preference.setTitle(fromHtml(str("sb_stats_self_saved", formatted))); + preference.setTitle(fromHtml(str("revanced_sb_stats_self_saved", formatted))); String formattedSaved = SponsorBlockUtils.getTimeSavedString(Settings.SB_LOCAL_TIME_SAVED_MILLISECONDS.get() / 1000); - preference.setSummary(fromHtml(str("sb_stats_self_saved_sum", formattedSaved))); + preference.setSummary(fromHtml(str("revanced_sb_stats_self_saved_sum", formattedSaved))); }; updateStatsSelfSaved.run(); preference.setOnPreferenceClickListener(preference1 -> { new AlertDialog.Builder(preference1.getContext()) - .setTitle(str("sb_stats_self_saved_reset_title")) + .setTitle(str("revanced_sb_stats_self_saved_reset_title")) .setPositiveButton(android.R.string.yes, (dialog, whichButton) -> { Settings.SB_LOCAL_TIME_SAVED_NUMBER_SEGMENTS.resetToDefault(); Settings.SB_LOCAL_TIME_SAVED_MILLISECONDS.resetToDefault(); diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SegmentPlaybackController.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SegmentPlaybackController.java index 7360e01fe5..9a35adceda 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SegmentPlaybackController.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SegmentPlaybackController.java @@ -602,7 +602,7 @@ private static void showSkippedSegmentToast(@NonNull SponsorSegment segment) { } Utils.showToastShort(toastNumberOfSegmentsSkipped == 1 ? toastSegmentSkipped.getSkippedToastText() - : str("sb_skipped_multiple_segments")); + : str("revanced_sb_skipped_multiple_segments")); } catch (Exception ex) { Logger.printException(() -> "showSkippedSegmentToast failure", ex); } finally { diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockSettings.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockSettings.java index e84fd63b68..084bbf5254 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockSettings.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockSettings.java @@ -55,7 +55,7 @@ public static void importDesktopSettings(@NonNull String json) { final int desktopValue = categorySelectionObject.getInt("option"); CategoryBehaviour behaviour = CategoryBehaviour.byDesktopKeyValue(desktopValue); if (behaviour == null) { - Utils.showToastLong(categoryKey + " unknown desktop behavior value: " + desktopValue); + Utils.showToastLong(categoryKey + " unknown behavior key: " + categoryKey); } else if (category == SegmentCategory.HIGHLIGHT && behaviour == CategoryBehaviour.SKIP_AUTOMATICALLY_ONCE) { Utils.showToastLong("Skip-once behavior not allowed for " + category.keyValue); category.setBehaviour(CategoryBehaviour.SKIP_AUTOMATICALLY); // use closest match @@ -104,10 +104,10 @@ public static void importDesktopSettings(@NonNull String json) { Settings.SB_LOCAL_TIME_SAVED_MILLISECONDS.save((long) (minutesSaved * 60 * 1000)); } - Utils.showToastLong(str("sb_settings_import_successful")); + Utils.showToastLong(str("revanced_sb_settings_import_successful")); } catch (Exception ex) { Logger.printInfo(() -> "failed to import settings", ex); // use info level, as we are showing our own toast - Utils.showToastLong(str("sb_settings_import_failed", ex.getMessage())); + Utils.showToastLong(str("revanced_sb_settings_import_failed", ex.getMessage())); } } @@ -153,7 +153,7 @@ public static String exportDesktopSettings() { return json.toString(2); } catch (Exception ex) { Logger.printInfo(() -> "failed to export settings", ex); // use info level, as we are showing our own toast - Utils.showToastLong(str("sb_settings_export_failed", ex)); + Utils.showToastLong(str("revanced_sb_settings_export_failed", ex)); return ""; } } @@ -169,8 +169,8 @@ public static void showExportWarningIfNeeded(@Nullable Context dialogContext) { if (dialogContext != null && SponsorBlockSettings.userHasSBPrivateId() && !Settings.SB_HIDE_EXPORT_WARNING.get()) { new AlertDialog.Builder(dialogContext) - .setMessage(str("sb_settings_revanced_export_user_id_warning")) - .setNeutralButton(str("sb_settings_revanced_export_user_id_warning_dismiss"), + .setMessage(str("revanced_sb_settings_revanced_export_user_id_warning")) + .setNeutralButton(str("revanced_sb_settings_revanced_export_user_id_warning_dismiss"), (dialog, which) -> Settings.SB_HIDE_EXPORT_WARNING.save(true)) .setPositiveButton(android.R.string.ok, null) .setCancelable(false) diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockUtils.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockUtils.java index a24be86374..a8ec384fc0 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockUtils.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/SponsorBlockUtils.java @@ -76,7 +76,7 @@ public void onClick(DialogInterface dialog, int which) { SegmentCategory category = SegmentCategory.categoriesWithoutHighlights()[which]; final boolean enableButton; if (category.behaviour == CategoryBehaviour.IGNORE) { - Utils.showToastLong(str("sb_new_segment_disabled_category")); + Utils.showToastLong(str("revanced_sb_new_segment_disabled_category")); enableButton = false; } else { newUserCreatedSegmentCategory = category; @@ -107,7 +107,7 @@ public void onClick(DialogInterface dialog, int which) { newUserCreatedSegmentCategory = null; new AlertDialog.Builder(context) - .setTitle(str("sb_new_segment_choose_category")) + .setTitle(str("revanced_sb_new_segment_choose_category")) .setSingleChoiceItems(titles, -1, segmentTypeListener) .setNegativeButton(android.R.string.cancel, null) .setPositiveButton(android.R.string.ok, segmentCategorySelectedDialogListener) @@ -143,10 +143,10 @@ public void onClick(DialogInterface dialog, int which) { editByHandSaveDialogListener.settingStart = isStart; editByHandSaveDialogListener.editText = new WeakReference<>(textView); new AlertDialog.Builder(context) - .setTitle(str(isStart ? "sb_new_segment_time_start" : "sb_new_segment_time_end")) + .setTitle(str(isStart ? "revanced_sb_new_segment_time_start" : "revanced_sb_new_segment_time_end")) .setView(textView) .setNegativeButton(android.R.string.cancel, null) - .setNeutralButton(str("sb_new_segment_now"), editByHandSaveDialogListener) + .setNeutralButton(str("revanced_sb_new_segment_now"), editByHandSaveDialogListener) .setPositiveButton(android.R.string.ok, editByHandSaveDialogListener) .show(); @@ -241,14 +241,14 @@ public static void onMarkLocationClicked() { newSponsorSegmentDialogShownMillis = VideoInformation.getVideoTime(); new AlertDialog.Builder(SponsorBlockViewController.getOverLaysViewGroupContext()) - .setTitle(str("sb_new_segment_title")) - .setMessage(str("sb_new_segment_mark_time_as_question", + .setTitle(str("revanced_sb_new_segment_title")) + .setMessage(str("revanced_sb_new_segment_mark_time_as_question", newSponsorSegmentDialogShownMillis / 60000, newSponsorSegmentDialogShownMillis / 1000 % 60, newSponsorSegmentDialogShownMillis % 1000)) .setNeutralButton(android.R.string.cancel, null) - .setNegativeButton(str("sb_new_segment_mark_start"), newSponsorSegmentDialogListener) - .setPositiveButton(str("sb_new_segment_mark_end"), newSponsorSegmentDialogListener) + .setNegativeButton(str("revanced_sb_new_segment_mark_start"), newSponsorSegmentDialogListener) + .setPositiveButton(str("revanced_sb_new_segment_mark_end"), newSponsorSegmentDialogListener) .show(); } catch (Exception ex) { Logger.printException(() -> "onMarkLocationClicked failure", ex); @@ -259,18 +259,18 @@ public static void onPublishClicked() { try { Utils.verifyOnMainThread(); if (newSponsorSegmentStartMillis < 0 || newSponsorSegmentEndMillis < 0) { - Utils.showToastShort(str("sb_new_segment_mark_locations_first")); + Utils.showToastShort(str("revanced_sb_new_segment_mark_locations_first")); } else if (newSponsorSegmentStartMillis >= newSponsorSegmentEndMillis) { - Utils.showToastShort(str("sb_new_segment_start_is_before_end")); + Utils.showToastShort(str("revanced_sb_new_segment_start_is_before_end")); } else if (!newSponsorSegmentPreviewed && newSponsorSegmentStartMillis != 0) { - Utils.showToastLong(str("sb_new_segment_preview_segment_first")); + Utils.showToastLong(str("revanced_sb_new_segment_preview_segment_first")); } else { long length = (newSponsorSegmentEndMillis - newSponsorSegmentStartMillis) / 1000; long start = (newSponsorSegmentStartMillis) / 1000; long end = (newSponsorSegmentEndMillis) / 1000; new AlertDialog.Builder(SponsorBlockViewController.getOverLaysViewGroupContext()) - .setTitle(str("sb_new_segment_confirm_title")) - .setMessage(str("sb_new_segment_confirm_content", + .setTitle(str("revanced_sb_new_segment_confirm_title")) + .setMessage(str("revanced_sb_new_segment_confirm_content", start / 60, start % 60, end / 60, end % 60, length / 60, length % 60)) @@ -291,7 +291,7 @@ public static void onVotingClicked(@NonNull Context context) { // Button is hidden if no segments exist. // But if prior video had segments, and current video does not, // then the button persists until the overlay fades out (this is intentional, as abruptly hiding the button is jarring). - Utils.showToastShort(str("sb_vote_no_segments")); + Utils.showToastShort(str("revanced_sb_vote_no_segments")); return; } @@ -347,7 +347,7 @@ private static void onNewCategorySelect(@NonNull SponsorSegment segment, @NonNul } new AlertDialog.Builder(context) - .setTitle(str("sb_new_segment_choose_category")) + .setTitle(str("revanced_sb_new_segment_choose_category")) .setItems(titles, (dialog, which) -> SBRequester.voteToChangeCategoryOnBackgroundThread(segment, values[which])) .show(); } catch (Exception ex) { @@ -359,9 +359,9 @@ public static void onPreviewClicked() { try { Utils.verifyOnMainThread(); if (newSponsorSegmentStartMillis < 0 || newSponsorSegmentEndMillis < 0) { - Utils.showToastShort(str("sb_new_segment_mark_locations_first")); + Utils.showToastShort(str("revanced_sb_new_segment_mark_locations_first")); } else if (newSponsorSegmentStartMillis >= newSponsorSegmentEndMillis) { - Utils.showToastShort(str("sb_new_segment_start_is_before_end")); + Utils.showToastShort(str("revanced_sb_new_segment_start_is_before_end")); } else { SegmentPlaybackController.removeUnsubmittedSegments(); // If user hits preview more than once before playing. SegmentPlaybackController.addUnsubmittedSegment( @@ -393,11 +393,11 @@ public static void onEditByHandClicked() { try { Utils.verifyOnMainThread(); new AlertDialog.Builder(SponsorBlockViewController.getOverLaysViewGroupContext()) - .setTitle(str("sb_new_segment_edit_by_hand_title")) - .setMessage(str("sb_new_segment_edit_by_hand_content")) + .setTitle(str("revanced_sb_new_segment_edit_by_hand_title")) + .setMessage(str("revanced_sb_new_segment_edit_by_hand_content")) .setNeutralButton(android.R.string.cancel, null) - .setNegativeButton(str("sb_new_segment_mark_start"), editByHandDialogListener) - .setPositiveButton(str("sb_new_segment_mark_end"), editByHandDialogListener) + .setNegativeButton(str("revanced_sb_new_segment_mark_start"), editByHandDialogListener) + .setPositiveButton(str("revanced_sb_new_segment_mark_end"), editByHandDialogListener) .show(); } catch (Exception ex) { Logger.printException(() -> "onEditByHandClicked failure", ex); @@ -417,14 +417,14 @@ public static String getTimeSavedString(long totalSecondsSaved) { String minutesFormatted = statsNumberFormatter.format(minutes); if (hours > 0) { String hoursFormatted = statsNumberFormatter.format(hours); - return str("sb_stats_saved_hour_format", hoursFormatted, minutesFormatted); + return str("revanced_sb_stats_saved_hour_format", hoursFormatted, minutesFormatted); } final long seconds = duration.getSeconds() % 60; String secondsFormatted = statsNumberFormatter.format(seconds); if (minutes > 0) { - return str("sb_stats_saved_minute_format", minutesFormatted, secondsFormatted); + return str("revanced_sb_stats_saved_minute_format", minutesFormatted, secondsFormatted); } - return str("sb_stats_saved_second_format", secondsFormatted); + return str("revanced_sb_stats_saved_second_format", secondsFormatted); } return "error"; // will never be reached. YouTube requires Android O or greater } @@ -453,7 +453,7 @@ public void onClick(DialogInterface dialog, int which) { DialogInterface.BUTTON_NEGATIVE : DialogInterface.BUTTON_POSITIVE); } catch (ParseException e) { - Utils.showToastLong(str("sb_new_segment_edit_by_hand_parse_error")); + Utils.showToastLong(str("revanced_sb_new_segment_edit_by_hand_parse_error")); } catch (Exception ex) { Logger.printException(() -> "EditByHandSaveDialogListener failure", ex); } diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/CategoryBehaviour.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/CategoryBehaviour.java index e6f762396b..d34a8e6417 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/CategoryBehaviour.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/CategoryBehaviour.java @@ -11,13 +11,13 @@ import app.revanced.integrations.shared.StringRef; public enum CategoryBehaviour { - SKIP_AUTOMATICALLY("skip", 2, true, sf("sb_skip_automatically")), + SKIP_AUTOMATICALLY("skip", 2, true, sf("revanced_sb_skip_automatically")), // desktop does not have skip-once behavior. Key is unique to ReVanced - SKIP_AUTOMATICALLY_ONCE("skip-once", 3, true, sf("sb_skip_automatically_once")), - MANUAL_SKIP("manual-skip", 1, false, sf("sb_skip_showbutton")), - SHOW_IN_SEEKBAR("seekbar-only", 0, false, sf("sb_skip_seekbaronly")), + SKIP_AUTOMATICALLY_ONCE("skip-once", 3, true, sf("revanced_sb_skip_automatically_once")), + MANUAL_SKIP("manual-skip", 1, false, sf("revanced_sb_skip_showbutton")), + SHOW_IN_SEEKBAR("seekbar-only", 0, false, sf("revanced_sb_skip_seekbaronly")), // ignored categories are not exported to json, and ignore is the default behavior when importing - IGNORE("ignore", -1, false, sf("sb_skip_ignore")); + IGNORE("ignore", -1, false, sf("revanced_sb_skip_ignore")); /** * ReVanced specific value. diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategory.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategory.java index 056a0c93aa..03d74b3b7a 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategory.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategory.java @@ -25,36 +25,36 @@ import app.revanced.integrations.shared.StringRef; public enum SegmentCategory { - SPONSOR("sponsor", sf("sb_segments_sponsor"), sf("sb_segments_sponsor_sum"), sf("sb_skip_button_sponsor"), sf("sb_skipped_sponsor"), + SPONSOR("sponsor", sf("revanced_sb_segments_sponsor"), sf("revanced_sb_segments_sponsor_sum"), sf("revanced_sb_skip_button_sponsor"), sf("revanced_sb_skipped_sponsor"), SB_CATEGORY_SPONSOR, SB_CATEGORY_SPONSOR_COLOR), - SELF_PROMO("selfpromo", sf("sb_segments_selfpromo"), sf("sb_segments_selfpromo_sum"), sf("sb_skip_button_selfpromo"), sf("sb_skipped_selfpromo"), + SELF_PROMO("selfpromo", sf("revanced_sb_segments_selfpromo"), sf("revanced_sb_segments_selfpromo_sum"), sf("revanced_sb_skip_button_selfpromo"), sf("revanced_sb_skipped_selfpromo"), SB_CATEGORY_SELF_PROMO, SB_CATEGORY_SELF_PROMO_COLOR), - INTERACTION("interaction", sf("sb_segments_interaction"), sf("sb_segments_interaction_sum"), sf("sb_skip_button_interaction"), sf("sb_skipped_interaction"), + INTERACTION("interaction", sf("revanced_sb_segments_interaction"), sf("revanced_sb_segments_interaction_sum"), sf("revanced_sb_skip_button_interaction"), sf("revanced_sb_skipped_interaction"), SB_CATEGORY_INTERACTION, SB_CATEGORY_INTERACTION_COLOR), /** * Unique category that is treated differently than the rest. */ - HIGHLIGHT("poi_highlight", sf("sb_segments_highlight"), sf("sb_segments_highlight_sum"), sf("sb_skip_button_highlight"), sf("sb_skipped_highlight"), + HIGHLIGHT("poi_highlight", sf("revanced_sb_segments_highlight"), sf("revanced_sb_segments_highlight_sum"), sf("revanced_sb_skip_button_highlight"), sf("revanced_sb_skipped_highlight"), SB_CATEGORY_HIGHLIGHT, SB_CATEGORY_HIGHLIGHT_COLOR), - INTRO("intro", sf("sb_segments_intro"), sf("sb_segments_intro_sum"), - sf("sb_skip_button_intro_beginning"), sf("sb_skip_button_intro_middle"), sf("sb_skip_button_intro_end"), - sf("sb_skipped_intro_beginning"), sf("sb_skipped_intro_middle"), sf("sb_skipped_intro_end"), + INTRO("intro", sf("revanced_sb_segments_intro"), sf("revanced_sb_segments_intro_sum"), + sf("revanced_sb_skip_button_intro_beginning"), sf("revanced_sb_skip_button_intro_middle"), sf("revanced_sb_skip_button_intro_end"), + sf("revanced_sb_skipped_intro_beginning"), sf("revanced_sb_skipped_intro_middle"), sf("revanced_sb_skipped_intro_end"), SB_CATEGORY_INTRO, SB_CATEGORY_INTRO_COLOR), - OUTRO("outro", sf("sb_segments_outro"), sf("sb_segments_outro_sum"), sf("sb_skip_button_outro"), sf("sb_skipped_outro"), + OUTRO("outro", sf("revanced_sb_segments_outro"), sf("revanced_sb_segments_outro_sum"), sf("revanced_sb_skip_button_outro"), sf("revanced_sb_skipped_outro"), SB_CATEGORY_OUTRO, SB_CATEGORY_OUTRO_COLOR), - PREVIEW("preview", sf("sb_segments_preview"), sf("sb_segments_preview_sum"), - sf("sb_skip_button_preview_beginning"), sf("sb_skip_button_preview_middle"), sf("sb_skip_button_preview_end"), - sf("sb_skipped_preview_beginning"), sf("sb_skipped_preview_middle"), sf("sb_skipped_preview_end"), + PREVIEW("preview", sf("revanced_sb_segments_preview"), sf("revanced_sb_segments_preview_sum"), + sf("revanced_sb_skip_button_preview_beginning"), sf("revanced_sb_skip_button_preview_middle"), sf("revanced_sb_skip_button_preview_end"), + sf("revanced_sb_skipped_preview_beginning"), sf("revanced_sb_skipped_preview_middle"), sf("revanced_sb_skipped_preview_end"), SB_CATEGORY_PREVIEW, SB_CATEGORY_PREVIEW_COLOR), - FILLER("filler", sf("sb_segments_filler"), sf("sb_segments_filler_sum"), sf("sb_skip_button_filler"), sf("sb_skipped_filler"), + FILLER("filler", sf("revanced_sb_segments_filler"), sf("revanced_sb_segments_filler_sum"), sf("revanced_sb_skip_button_filler"), sf("revanced_sb_skipped_filler"), SB_CATEGORY_FILLER, SB_CATEGORY_FILLER_COLOR), - MUSIC_OFFTOPIC("music_offtopic", sf("sb_segments_nomusic"), sf("sb_segments_nomusic_sum"), sf("sb_skip_button_nomusic"), sf("sb_skipped_nomusic"), + MUSIC_OFFTOPIC("music_offtopic", sf("revanced_sb_segments_nomusic"), sf("revanced_sb_segments_nomusic_sum"), sf("revanced_sb_skip_button_nomusic"), sf("revanced_sb_skipped_nomusic"), SB_CATEGORY_MUSIC_OFFTOPIC, SB_CATEGORY_MUSIC_OFFTOPIC_COLOR), - UNSUBMITTED("unsubmitted", StringRef.empty, StringRef.empty, sf("sb_skip_button_unsubmitted"), sf("sb_skipped_unsubmitted"), + UNSUBMITTED("unsubmitted", StringRef.empty, StringRef.empty, sf("revanced_sb_skip_button_unsubmitted"), sf("revanced_sb_skipped_unsubmitted"), SB_CATEGORY_UNSUBMITTED, SB_CATEGORY_UNSUBMITTED_COLOR),; - private static final StringRef skipSponsorTextCompact = sf("sb_skip_button_compact"); - private static final StringRef skipSponsorTextCompactHighlight = sf("sb_skip_button_compact_highlight"); + private static final StringRef skipSponsorTextCompact = sf("revanced_sb_skip_button_compact"); + private static final StringRef skipSponsorTextCompactHighlight = sf("revanced_sb_skip_button_compact_highlight"); private static final SegmentCategory[] categoriesWithoutHighlights = new SegmentCategory[]{ SPONSOR, diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategoryListPreference.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategoryListPreference.java index 443517bb44..09235e8504 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategoryListPreference.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SegmentCategoryListPreference.java @@ -53,7 +53,7 @@ protected void onPrepareDialogBuilder(AlertDialog.Builder builder) { TableRow row = new TableRow(context); TextView colorTextLabel = new TextView(context); - colorTextLabel.setText(str("sb_color_dot_label")); + colorTextLabel.setText(str("revanced_sb_color_dot_label")); row.addView(colorTextLabel); TextView colorDotView = new TextView(context); @@ -102,11 +102,11 @@ public void afterTextChanged(Editable s) { builder.setPositiveButton(android.R.string.ok, (dialog, which) -> { onClick(dialog, DialogInterface.BUTTON_POSITIVE); }); - builder.setNeutralButton(str("sb_reset_color"), (dialog, which) -> { + builder.setNeutralButton(str("revanced_sb_reset_color"), (dialog, which) -> { try { category.resetColor(); updateTitle(); - Utils.showToastShort(str("sb_color_reset")); + Utils.showToastShort(str("revanced_sb_color_reset")); } catch (Exception ex) { Logger.printException(() -> "setNeutralButton failure", ex); } @@ -134,10 +134,10 @@ protected void onDialogClosed(boolean positiveResult) { try { if (!colorString.equals(category.colorString())) { category.setColor(colorString); - Utils.showToastShort(str("sb_color_changed")); + Utils.showToastShort(str("revanced_sb_color_changed")); } } catch (IllegalArgumentException ex) { - Utils.showToastShort(str("sb_color_invalid")); + Utils.showToastShort(str("revanced_sb_color_invalid")); } updateTitle(); } diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SponsorSegment.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SponsorSegment.java index 9be2b177ce..7e8d529e59 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SponsorSegment.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/objects/SponsorSegment.java @@ -11,9 +11,9 @@ public class SponsorSegment implements Comparable { public enum SegmentVote { - UPVOTE(sf("sb_vote_upvote"), 1,false), - DOWNVOTE(sf("sb_vote_downvote"), 0, true), - CATEGORY_CHANGE(sf("sb_vote_category"), -1, true); // apiVoteType is not used for category change + UPVOTE(sf("revanced_sb_vote_upvote"), 1,false), + DOWNVOTE(sf("revanced_sb_vote_downvote"), 0, true), + CATEGORY_CHANGE(sf("revanced_sb_vote_category"), -1, true); // apiVoteType is not used for category change public static final SegmentVote[] voteTypesWithoutCategoryChange = { UPVOTE, diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/requests/SBRequester.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/requests/SBRequester.java index 0e0ff882b0..020fd03849 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/requests/SBRequester.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/requests/SBRequester.java @@ -97,13 +97,13 @@ public static SponsorSegment[] getSegments(@NonNull String videoId) { // no segments are found. a normal response Logger.printDebug(() -> "No segments found for video: " + videoId); } else { - handleConnectionError(str("sb_sponsorblock_connection_failure_status", responseCode), null); + handleConnectionError(str("revanced_sb_sponsorblock_connection_failure_status", responseCode), null); connection.disconnect(); // something went wrong, might as well disconnect } } catch (SocketTimeoutException ex) { - handleConnectionError(str("sb_sponsorblock_connection_failure_timeout"), ex); + handleConnectionError(str("revanced_sb_sponsorblock_connection_failure_timeout"), ex); } catch (IOException ex) { - handleConnectionError(str("sb_sponsorblock_connection_failure_generic"), ex); + handleConnectionError(str("revanced_sb_sponsorblock_connection_failure_generic"), ex); } catch (Exception ex) { // Should never happen Logger.printException(() -> "getSegments failure", ex); @@ -153,30 +153,30 @@ public static void submitSegments(@NonNull String videoId, @NonNull String categ final String messageToToast; switch (responseCode) { case HTTP_STATUS_CODE_SUCCESS: - messageToToast = str("sb_submit_succeeded"); + messageToToast = str("revanced_sb_submit_succeeded"); break; case 409: - messageToToast = str("sb_submit_failed_duplicate"); + messageToToast = str("revanced_sb_submit_failed_duplicate"); break; case 403: - messageToToast = str("sb_submit_failed_forbidden", Requester.parseErrorJsonAndDisconnect(connection)); + messageToToast = str("revanced_sb_submit_failed_forbidden", Requester.parseErrorJsonAndDisconnect(connection)); break; case 429: - messageToToast = str("sb_submit_failed_rate_limit"); + messageToToast = str("revanced_sb_submit_failed_rate_limit"); break; case 400: - messageToToast = str("sb_submit_failed_invalid", Requester.parseErrorJsonAndDisconnect(connection)); + messageToToast = str("revanced_sb_submit_failed_invalid", Requester.parseErrorJsonAndDisconnect(connection)); break; default: - messageToToast = str("sb_submit_failed_unknown_error", responseCode, connection.getResponseMessage()); + messageToToast = str("revanced_sb_submit_failed_unknown_error", responseCode, connection.getResponseMessage()); break; } Utils.showToastLong(messageToToast); } catch (SocketTimeoutException ex) { // Always show, even if show connection toasts is turned off - Utils.showToastLong(str("sb_submit_failed_timeout")); + Utils.showToastLong(str("revanced_sb_submit_failed_timeout")); } catch (IOException ex) { - Utils.showToastLong(str("sb_submit_failed_unknown_error", 0, ex.getMessage())); + Utils.showToastLong(str("revanced_sb_submit_failed_unknown_error", 0, ex.getMessage())); } catch (Exception ex) { Logger.printException(() -> "failed to submit segments", ex); } @@ -223,17 +223,17 @@ private static void voteOrRequestCategoryChange(@NonNull SponsorSegment segment, break; case 403: Utils.showToastLong( - str("sb_vote_failed_forbidden", Requester.parseErrorJsonAndDisconnect(connection))); + str("revanced_sb_vote_failed_forbidden", Requester.parseErrorJsonAndDisconnect(connection))); break; default: Utils.showToastLong( - str("sb_vote_failed_unknown_error", responseCode, connection.getResponseMessage())); + str("revanced_sb_vote_failed_unknown_error", responseCode, connection.getResponseMessage())); break; } } catch (SocketTimeoutException ex) { - Utils.showToastShort(str("sb_vote_failed_timeout")); + Utils.showToastShort(str("revanced_sb_vote_failed_timeout")); } catch (IOException ex) { - Utils.showToastShort(str("sb_vote_failed_unknown_error", 0, ex.getMessage())); + Utils.showToastShort(str("revanced_sb_vote_failed_unknown_error", 0, ex.getMessage())); } catch (Exception ex) { Logger.printException(() -> "failed to vote for segment", ex); // should never happen } @@ -271,10 +271,10 @@ public static String setUsername(@NonNull String username) { if (responseCode == HTTP_STATUS_CODE_SUCCESS) { return null; } - return str("sb_stats_username_change_unknown_error", responseCode, responseMessage); + return str("revanced_sb_stats_username_change_unknown_error", responseCode, responseMessage); } catch (Exception ex) { // should never happen Logger.printInfo(() -> "failed to set username", ex); // do not toast - return str("sb_stats_username_change_unknown_error", 0, ex.getMessage()); + return str("revanced_sb_stats_username_change_unknown_error", 0, ex.getMessage()); } } diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/CreateSegmentButtonController.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/CreateSegmentButtonController.java index 3ed6d22288..dffdf9ff48 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/CreateSegmentButtonController.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/CreateSegmentButtonController.java @@ -25,7 +25,7 @@ public static void initialize(View youtubeControlsLayout) { try { Logger.printDebug(() -> "initializing new segment button"); ImageView imageView = Objects.requireNonNull(youtubeControlsLayout.findViewById( - getResourceIdentifier("sb_sponsorblock_button", "id"))); + getResourceIdentifier("revanced_sb_create_segment_button", "id"))); imageView.setVisibility(View.GONE); imageView.setOnClickListener(v -> { SponsorBlockViewController.toggleNewSegmentLayoutVisibility(); diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/NewSegmentLayout.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/NewSegmentLayout.java index c76adde492..d5ee7f4278 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/NewSegmentLayout.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/NewSegmentLayout.java @@ -44,7 +44,7 @@ public NewSegmentLayout(final Context context, final AttributeSet attributeSet, super(context, attributeSet, defStyleAttr, defStyleRes); LayoutInflater.from(context).inflate( - getResourceIdentifier(context, "new_segment", "layout"), this, true + getResourceIdentifier(context, "revanced_sb_new_segment", "layout"), this, true ); TypedValue rippleEffect = new TypedValue(); @@ -53,42 +53,42 @@ public NewSegmentLayout(final Context context, final AttributeSet attributeSet, initializeButton( context, - "sb_new_segment_rewind", + "revanced_sb_new_segment_rewind", () -> VideoInformation.seekToRelative(-Settings.SB_CREATE_NEW_SEGMENT_STEP.get()), "Rewind button clicked" ); initializeButton( context, - "sb_new_segment_forward", + "revanced_sb_new_segment_forward", () -> VideoInformation.seekToRelative(Settings.SB_CREATE_NEW_SEGMENT_STEP.get()), "Forward button clicked" ); initializeButton( context, - "sb_new_segment_adjust", + "revanced_sb_new_segment_adjust", SponsorBlockUtils::onMarkLocationClicked, "Adjust button clicked" ); initializeButton( context, - "sb_new_segment_compare", + "revanced_sb_new_segment_compare", SponsorBlockUtils::onPreviewClicked, "Compare button clicked" ); initializeButton( context, - "sb_new_segment_edit", + "revanced_sb_new_segment_edit", SponsorBlockUtils::onEditByHandClicked, "Edit button clicked" ); initializeButton( context, - "sb_new_segment_publish", + "revanced_sb_new_segment_publish", SponsorBlockUtils::onPublishClicked, "Publish button clicked" ); diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SkipSponsorButton.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SkipSponsorButton.java index e28dde9138..f3b954d4f4 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SkipSponsorButton.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SkipSponsorButton.java @@ -47,9 +47,9 @@ public SkipSponsorButton(Context context, AttributeSet attributeSet, int defStyl public SkipSponsorButton(Context context, AttributeSet attributeSet, int defStyleAttr, int defStyleRes) { super(context, attributeSet, defStyleAttr, defStyleRes); - LayoutInflater.from(context).inflate(getResourceIdentifier(context, "skip_sponsor_button", "layout"), this, true); // layout:skip_ad_button + LayoutInflater.from(context).inflate(getResourceIdentifier(context, "revanced_sb_skip_sponsor_button", "layout"), this, true); // layout:skip_ad_button setMinimumHeight(getResourceDimensionPixelSize("ad_skip_ad_button_min_height")); // dimen:ad_skip_ad_button_min_height - skipSponsorBtnContainer = Objects.requireNonNull((LinearLayout) findViewById(getResourceIdentifier(context, "sb_skip_sponsor_button_container", "id"))); // id:skip_ad_button_container + skipSponsorBtnContainer = Objects.requireNonNull((LinearLayout) findViewById(getResourceIdentifier(context, "revanced_sb_skip_sponsor_button_container", "id"))); // id:skip_ad_button_container background = new Paint(); background.setColor(getResourceColor("skip_ad_button_background_color")); // color:skip_ad_button_background_color); background.setStyle(Paint.Style.FILL); @@ -57,7 +57,7 @@ public SkipSponsorButton(Context context, AttributeSet attributeSet, int defStyl border.setColor(getResourceColor("skip_ad_button_border_color")); // color:skip_ad_button_border_color); border.setStrokeWidth(getResourceDimension("ad_skip_ad_button_border_width")); // dimen:ad_skip_ad_button_border_width); border.setStyle(Paint.Style.STROKE); - skipSponsorTextView = Objects.requireNonNull((TextView) findViewById(getResourceIdentifier(context, "sb_skip_sponsor_button_text", "id"))); // id:skip_ad_button_text; + skipSponsorTextView = Objects.requireNonNull((TextView) findViewById(getResourceIdentifier(context, "revanced_sb_skip_sponsor_button_text", "id"))); // id:skip_ad_button_text; defaultBottomMargin = getResourceDimensionPixelSize("skip_button_default_bottom_margin"); // dimen:skip_button_default_bottom_margin ctaBottomMargin = getResourceDimensionPixelSize("skip_button_cta_bottom_margin"); // dimen:skip_button_cta_bottom_margin diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SponsorBlockViewController.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SponsorBlockViewController.java index 28a1465f87..12deeb8342 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SponsorBlockViewController.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/SponsorBlockViewController.java @@ -61,7 +61,7 @@ public static void initialize(ViewGroup viewGroup) { Context context = Utils.getContext(); RelativeLayout layout = new RelativeLayout(context); layout.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT)); - LayoutInflater.from(context).inflate(getResourceIdentifier("inline_sponsor_overlay", "layout"), layout); + LayoutInflater.from(context).inflate(getResourceIdentifier("revanced_sb_inline_sponsor_overlay", "layout"), layout); inlineSponsorOverlayRef = new WeakReference<>(layout); viewGroup.addView(layout); @@ -81,11 +81,11 @@ public void onChildViewRemoved(View parent, View child) { youtubeOverlaysLayoutRef = new WeakReference<>(viewGroup); skipHighlightButtonRef = new WeakReference<>( - Objects.requireNonNull(layout.findViewById(getResourceIdentifier("sb_skip_highlight_button", "id")))); + Objects.requireNonNull(layout.findViewById(getResourceIdentifier("revanced_sb_skip_highlight_button", "id")))); skipSponsorButtonRef = new WeakReference<>( - Objects.requireNonNull(layout.findViewById(getResourceIdentifier("sb_skip_sponsor_button", "id")))); + Objects.requireNonNull(layout.findViewById(getResourceIdentifier("revanced_sb_skip_sponsor_button", "id")))); newSegmentLayoutRef = new WeakReference<>( - Objects.requireNonNull(layout.findViewById(getResourceIdentifier("sb_new_segment_view", "id")))); + Objects.requireNonNull(layout.findViewById(getResourceIdentifier("revanced_sb_new_segment_view", "id")))); newSegmentLayoutVisible = false; skipHighlight = null; diff --git a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/VotingButtonController.java b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/VotingButtonController.java index b11e05920e..581ba1ada5 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/VotingButtonController.java +++ b/app/src/main/java/app/revanced/integrations/youtube/sponsorblock/ui/VotingButtonController.java @@ -27,7 +27,7 @@ public static void initialize(View youtubeControlsLayout) { try { Logger.printDebug(() -> "initializing voting button"); ImageView imageView = Objects.requireNonNull(youtubeControlsLayout.findViewById( - getResourceIdentifier("sb_voting_button", "id"))); + getResourceIdentifier("revanced_sb_voting_button", "id"))); imageView.setVisibility(View.GONE); imageView.setOnClickListener(v -> { SponsorBlockUtils.onVotingClicked(v.getContext()); diff --git a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt index 2793da81ad..d5f0c25ab2 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt +++ b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt @@ -82,10 +82,10 @@ class SwipeControlsOverlayLayout( // get icons scaled, assuming square icons val iconHeight = round(feedbackTextView.lineHeight * .8).toInt() - autoBrightnessIcon = getDrawable("ic_sc_brightness_auto", iconHeight, iconHeight) - manualBrightnessIcon = getDrawable("ic_sc_brightness_manual", iconHeight, iconHeight) - mutedVolumeIcon = getDrawable("ic_sc_volume_mute", iconHeight, iconHeight) - normalVolumeIcon = getDrawable("ic_sc_volume_normal", iconHeight, iconHeight) + autoBrightnessIcon = getDrawable("revanced_ic_sc_brightness_auto", iconHeight, iconHeight) + manualBrightnessIcon = getDrawable("revanced_ic_sc_brightness_manual", iconHeight, iconHeight) + mutedVolumeIcon = getDrawable("revanced_ic_sc_volume_mute", iconHeight, iconHeight) + normalVolumeIcon = getDrawable("revanced_ic_sc_volume_normal", iconHeight, iconHeight) } private val feedbackHideHandler = Handler(Looper.getMainLooper()) diff --git a/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlButton.java b/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlButton.java index 540c645fdb..5995da96b0 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlButton.java +++ b/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlButton.java @@ -16,7 +16,7 @@ public class CopyVideoUrlButton extends BottomControlButton { public CopyVideoUrlButton(ViewGroup viewGroup) { super( viewGroup, - "copy_video_url_button", + "revanced_copy_video_url_button", Settings.COPY_VIDEO_URL, view -> CopyVideoUrlPatch.copyUrl(false), view -> { diff --git a/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlTimestampButton.java b/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlTimestampButton.java index 117cc42925..41af50ac95 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlTimestampButton.java +++ b/app/src/main/java/app/revanced/integrations/youtube/videoplayer/CopyVideoUrlTimestampButton.java @@ -16,7 +16,7 @@ public class CopyVideoUrlTimestampButton extends BottomControlButton { public CopyVideoUrlTimestampButton(ViewGroup bottomControlsViewGroup) { super( bottomControlsViewGroup, - "copy_video_url_timestamp_button", + "revanced_copy_video_url_timestamp_button", Settings.COPY_VIDEO_URL_TIMESTAMP, view -> CopyVideoUrlPatch.copyUrl(true), view -> { diff --git a/app/src/main/java/app/revanced/integrations/youtube/videoplayer/ExternalDownloadButton.java b/app/src/main/java/app/revanced/integrations/youtube/videoplayer/ExternalDownloadButton.java index edbf2b3c79..5d1498fc56 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/videoplayer/ExternalDownloadButton.java +++ b/app/src/main/java/app/revanced/integrations/youtube/videoplayer/ExternalDownloadButton.java @@ -21,7 +21,7 @@ public class ExternalDownloadButton extends BottomControlButton { public ExternalDownloadButton(ViewGroup viewGroup) { super( viewGroup, - "external_download_button", + "revanced_external_download_button", Settings.EXTERNAL_DOWNLOADER, ExternalDownloadButton::onDownloadClick, null @@ -62,7 +62,7 @@ private static void onDownloadClick(View view) { // If the package is not installed, show the toast if (!packageEnabled) { - Utils.showToastLong(downloaderPackageName + " " + StringRef.str("external_downloader_not_installed_warning")); + Utils.showToastLong(StringRef.str("revanced_external_downloader_not_installed_warning", downloaderPackageName)); return; }