mirror of
https://github.com/SoPat712/YTLitePlus.git
synced 2025-08-22 02:58:45 -04:00
New Settings UI, Playback in feeds
This commit is contained in:
@@ -39,6 +39,25 @@ static const NSInteger YTLitePlusSection = 788;
|
|||||||
|
|
||||||
extern NSBundle *YTLitePlusBundle();
|
extern NSBundle *YTLitePlusBundle();
|
||||||
|
|
||||||
|
// Add both YTLite and YTLitePlus to YouGroupSettings
|
||||||
|
static const NSInteger YTLiteSection = 789; // Grabbed from YTLite
|
||||||
|
%hook YTSettingsGroupData
|
||||||
|
+ (NSMutableArray <NSNumber *> *)tweaks {
|
||||||
|
NSMutableArray <NSNumber *> *originalTweaks = %orig;
|
||||||
|
|
||||||
|
// Use a static variable to ensure the array is modified only once.
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
[originalTweaks addObject:@(YTLitePlusSection)];
|
||||||
|
[originalTweaks addObject:@(YTLiteSection)];
|
||||||
|
});
|
||||||
|
|
||||||
|
// Return the modified array.
|
||||||
|
return originalTweaks;
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
|
|
||||||
// Settings
|
// Settings
|
||||||
%hook YTAppSettingsPresentationData
|
%hook YTAppSettingsPresentationData
|
||||||
+ (NSArray *)settingsCategoryOrder {
|
+ (NSArray *)settingsCategoryOrder {
|
||||||
@@ -271,9 +290,51 @@ extern NSBundle *YTLitePlusBundle();
|
|||||||
}];
|
}];
|
||||||
[sectionItems addObject:themeGroup];
|
[sectionItems addObject:themeGroup];
|
||||||
|
|
||||||
|
# pragma mark - Copy of Playback in feeds section - @bhackel
|
||||||
|
// This section is hidden in vanilla YouTube when using the new settings UI, so
|
||||||
|
// we can recreate it here
|
||||||
|
YTSettingsSectionItem *playbackInFeedsGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"PLAYBACK_IN_FEEDS")
|
||||||
|
accessibilityIdentifier:nil
|
||||||
|
detailTextBlock:^NSString *() {
|
||||||
|
switch (GetSelection(@"inline_muted_playback_enabled")) {
|
||||||
|
case 3:
|
||||||
|
return LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY");
|
||||||
|
case 1:
|
||||||
|
return LOC(@"PLAYBACK_IN_FEEDS_OFF");
|
||||||
|
case 2:
|
||||||
|
default:
|
||||||
|
return LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
|
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_OFF") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"inline_muted_playback_enabled"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}],
|
||||||
|
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"inline_muted_playback_enabled"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}],
|
||||||
|
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setInteger:3 forKey:@"inline_muted_playback_enabled"];
|
||||||
|
[settingsViewController reloadData];
|
||||||
|
return YES;
|
||||||
|
}],
|
||||||
|
];
|
||||||
|
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"PLAYBACK_IN_FEEDS") pickerSectionTitle:nil rows:rows selectedItemIndex:(GetSelection(@"inline_muted_playback_enabled") - 1) parentResponder:[self parentResponder]];
|
||||||
|
[settingsViewController pushViewController:picker];
|
||||||
|
return YES;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
# pragma mark - Miscellaneous
|
# pragma mark - Miscellaneous
|
||||||
YTSettingsSectionItem *miscellaneousGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"MISCELLANEOUS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
YTSettingsSectionItem *miscellaneousGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"MISCELLANEOUS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
|
||||||
NSArray <YTSettingsSectionItem *> *rows = @[
|
NSArray <YTSettingsSectionItem *> *rows = @[
|
||||||
|
playbackInFeedsGroup,
|
||||||
|
BASIC_SWITCH(LOC(@"NEW_SETTINGS_UI"), LOC(@"NEW_SETTINGS_UI_DESC"), @"newSettingsUI_enabled"),
|
||||||
BASIC_SWITCH(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled"),
|
BASIC_SWITCH(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled"),
|
||||||
BASIC_SWITCH(LOC(@"HIDE_MODERN_INTERFACE"), LOC(@"HIDE_MODERN_INTERFACE_DESC"), @"ytNoModernUI_enabled"),
|
BASIC_SWITCH(LOC(@"HIDE_MODERN_INTERFACE"), LOC(@"HIDE_MODERN_INTERFACE_DESC"), @"ytNoModernUI_enabled"),
|
||||||
BASIC_SWITCH(LOC(@"IPAD_LAYOUT"), LOC(@"IPAD_LAYOUT_DESC"), @"iPadLayout_enabled"),
|
BASIC_SWITCH(LOC(@"IPAD_LAYOUT"), LOC(@"IPAD_LAYOUT_DESC"), @"iPadLayout_enabled"),
|
||||||
|
@@ -447,6 +447,13 @@ static NSData *cellDividerData = nil;
|
|||||||
}
|
}
|
||||||
%end
|
%end
|
||||||
|
|
||||||
|
// New Settings UI - @bhackel
|
||||||
|
%hook YTColdConfig
|
||||||
|
- (BOOL)mainAppCoreClientEnableCairoSettings {
|
||||||
|
return IS_ENABLED(@"newSettingsUI_enabled");
|
||||||
|
}
|
||||||
|
%end
|
||||||
|
|
||||||
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
|
// BigYTMiniPlayer: https://github.com/Galactic-Dev/BigYTMiniPlayer
|
||||||
%group Main
|
%group Main
|
||||||
%hook YTWatchMiniBarView
|
%hook YTWatchMiniBarView
|
||||||
@@ -718,4 +725,7 @@ static NSData *cellDividerData = nil;
|
|||||||
if (![allKeys containsObject:@"YouPiPEnabled"]) {
|
if (![allKeys containsObject:@"YouPiPEnabled"]) {
|
||||||
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"YouPiPEnabled"];
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"YouPiPEnabled"];
|
||||||
}
|
}
|
||||||
|
if (![allKeys containsObject:@"newSettingsUI_enabled"]) {
|
||||||
|
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"newSettingsUI_enabled"];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "متنوع";
|
"MISCELLANEOUS" = "متنوع";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Verschiedenes";
|
"MISCELLANEOUS" = "Verschiedenes";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube-Startanimation aktivieren";
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube-Startanimation aktivieren";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Misceláneos";
|
"MISCELLANEOUS" = "Misceláneos";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Activar la animación de inicio de YouTube";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activar la animación de inicio de YouTube";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -67,6 +67,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Divers";
|
"MISCELLANEOUS" = "Divers";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Activer l'animation de démarrage YouTube";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activer l'animation de démarrage YouTube";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "その他";
|
"MISCELLANEOUS" = "その他";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube起動時のアニメーションを有効化";
|
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube起動時のアニメーションを有効化";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Diverse";
|
"MISCELLANEOUS" = "Diverse";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Activare animație de pornire YouTube";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Activare animație de pornire YouTube";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -79,6 +79,14 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -64,6 +64,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "Miscellaneous";
|
"MISCELLANEOUS" = "Miscellaneous";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
@@ -62,6 +62,14 @@
|
|||||||
// Miscellaneous
|
// Miscellaneous
|
||||||
"MISCELLANEOUS" = "更多";
|
"MISCELLANEOUS" = "更多";
|
||||||
|
|
||||||
|
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
|
||||||
|
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
|
||||||
|
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
|
||||||
|
"PLAYBACK_IN_FEEDS_OFF" = "Off";
|
||||||
|
|
||||||
|
"NEW_SETTINGS_UI" = "New Settings UI";
|
||||||
|
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
|
||||||
|
|
||||||
"ENABLE_YT_STARTUP_ANIMATION" = "啟用 Youtube 歡迎動畫";
|
"ENABLE_YT_STARTUP_ANIMATION" = "啟用 Youtube 歡迎動畫";
|
||||||
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user