Compare commits

...
Author SHA1 Message Date
Nguyễn Đạt 1c8af4daa8 Update OLED theme 2024-02-25 11:03:45 +07:00
qnblackcat e69957ea5e update submodules 2024-02-25 10:32:43 +07:00
Nguyễn Đạt a8d8f5222b update to uYou v3.0.3 2024-02-25 10:08:15 +07:00
Nguyễn Đạt 5edb868c5a Update OLED theme 2024-02-25 10:04:39 +07:00
Nguyễn Đạt 5f2252b919 Merge pull request #1318 from qnblackcat/update-OLED
please, work :/
2024-02-24 11:36:02 +07:00
qnblackcat 0da6da06af update OLED dark theme 2024-02-21 14:42:53 +07:00
Nguyễn Đạt 492db13195 Merge pull request #1316 from therealFoxster/main
Update README.md
2024-02-21 14:22:44 +07:00
Nguyễn Đạt 33b2132a65 Merge pull request #1317 from qnblackcat/uYou_3.0.3
prepare for uYou v3.0.3
2024-02-21 14:19:12 +07:00
Nguyễn Đạt fd7c63cac6 Update README.md 2024-02-21 14:18:01 +07:00
qnblackcat 5df3bfbdfd prepare for uYou v3.0.3 2024-02-20 23:10:46 +07:00
Foxster 818d9abde1 Update README.md 2024-02-20 00:20:26 -08:00
Foxster ff208b4191 Update README.md 2024-02-19 21:48:13 -08:00
Foxster 707c84608e Merge pull request #1315 from therealFoxster/main
Update DontEatMyContent + reenable uYou appearance patch
2024-02-19 19:52:31 -08:00
Foxster 9a3c6be2d9 Update uYouPlusPatches.xm 2024-02-19 15:38:14 -08:00
Foxster f4a8a32887 Update submodules 2024-02-19 14:42:10 -08:00
qnblackcat 684ba19c4f update submodules 2024-02-19 10:25:09 +07:00
qnblackcat c6b6411697 uYou v3.0.3 2024-02-19 10:24:42 +07:00
Nguyễn Đạt 1b8e9821c7 prepare for uYou v3.0.2+ 2024-02-18 20:12:00 +07:00
qnblackcat 76657c6ba4 update vietnamese 2024-02-15 11:06:02 +07:00
qnblackcat a94e60639f update submodules 2024-02-15 09:40:43 +07:00
qnblackcat 7e17cbb123 update submodule 2024-02-15 09:36:55 +07:00
qnblackcat 5522c7604b update workflows 2024-02-15 09:29:28 +07:00
qnblackcat 9f6d0562b8 bump YT & uYou version 2024-02-15 09:27:29 +07:00
qnblackcat ced5cf81df prepare for uYou v3.0.2+ 2024-02-15 09:25:57 +07:00
qnblackcat b9d1826c99 prepare for uYou v3.0.2+ 2024-02-13 13:36:09 +07:00
qnblackcat 6307c0c2c6 typo 2024-02-13 13:16:02 +07:00
qnblackcat 7263ce7127 wrong tweak name :/ 2024-02-13 11:27:41 +07:00
Thatchapon Unprasert f376cabd2a Update YTABConfig submodule 2024-02-12 20:06:38 +07:00
Thatchapon Unprasert d7aee836ac Merge pull request #1304 from qnblackcat/psyt
Update PoomSmart's YouTube tweak submodules
2024-02-12 13:28:00 +07:00
Thatchapon Unprasert 556c7d99a5 Update PoomSmart's YouTube tweak submodules 2024-02-12 11:03:38 +07:00
Foxster dbc8c08db1 Merge pull request #1296 from therealFoxster/fix-hide-channel-watermark
Fix hide channel watermark
2024-01-30 23:12:24 -08:00
Foxster a30b04a503 Attempt to fix hide channel watermark 2024-01-30 12:35:05 -08:00
qnblackcat f5c765595c ops, add back Hide Play next in queue 2024-01-30 22:20:37 +07:00
qnblackcat 6385692aad update README 2024-01-29 16:23:13 +07:00
32 changed files with 395 additions and 459 deletions
+1 -1
View File
@@ -8,7 +8,7 @@ on:
inputs: inputs:
uyou_version: uyou_version:
description: "The version of uYou" description: "The version of uYou"
default: "3.0.1" default: "3.0.3"
required: true required: true
type: string type: string
decrypted_youtube_url: decrypted_youtube_url:
-4
View File
@@ -26,10 +26,6 @@
path = Tweaks/YouTubeHeader path = Tweaks/YouTubeHeader
url = https://github.com/PoomSmart/YouTubeHeader.git url = https://github.com/PoomSmart/YouTubeHeader.git
branch = main branch = main
[submodule "Tweaks/PSHeader"]
path = Tweaks/PSHeader
url = https://github.com/PoomSmart/PSHeader.git
branch = master
[submodule "Extensions"] [submodule "Extensions"]
path = Extensions path = Extensions
url = https://github.com/CokePokes/YoutubeExtensions.git url = https://github.com/CokePokes/YoutubeExtensions.git
@@ -100,7 +100,7 @@
"MISCELLANEOUS" = "🔎 Miscellaneous"; "MISCELLANEOUS" = "🔎 Miscellaneous";
"HIDE_UYOU" = "Hide uYou tab"; "HIDE_UYOU" = "Hide uYou tab";
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button"; "HIDE_ISPONSORBLOCK" = "Hides iSponsorBlock button";
"CAST_CONFIRM" = "YTCastConfirm"; "CAST_CONFIRM" = "YTCastConfirm";
"CAST_CONFIRM_DESC" = "Shows a confirmation alert before casting"; "CAST_CONFIRM_DESC" = "Shows a confirmation alert before casting";
@@ -115,7 +115,7 @@ https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Ap
"MISCELLANEOUS" = "🔎 Miscellaneous"; "MISCELLANEOUS" = "🔎 Miscellaneous";
"HIDE_UYOU" = "Hide uYou tab"; "HIDE_UYOU" = "Hide uYou tab";
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button"; "HIDE_ISPONSORBLOCK" = "Hides iSponsorBlock button";
"CAST_CONFIRM" = "YTCastConfirm"; "CAST_CONFIRM" = "YTCastConfirm";
"CAST_CONFIRM_DESC" = "Shows a confirmation alert before casting"; "CAST_CONFIRM_DESC" = "Shows a confirmation alert before casting";
@@ -5,7 +5,7 @@
"VERSION_CHECK" = "Chạm để kiểm tra bản cập nhật!"; "VERSION_CHECK" = "Chạm để kiểm tra bản cập nhật!";
"REPORT_AN_ISSUE" = "Báo lỗi"; "REPORT_AN_ISSUE" = "Báo lỗi";
"ADD_TITLE" = "Add your title here..."; "ADD_TITLE" = "Thêm tiêu đề lỗi ở đây...";
"QUIT_YOUTUBE" = "Đóng YouTube"; "QUIT_YOUTUBE" = "Đóng YouTube";
@@ -100,7 +100,7 @@
"MISCELLANEOUS" = "🔎 Cài đặt khác"; "MISCELLANEOUS" = "🔎 Cài đặt khác";
"HIDE_UYOU" = "Hide uYou tab"; "HIDE_UYOU" = "Hide uYou tab";
"HIDE_ISPONSORBLOCK" = "Hide iSponsorBlock button"; "HIDE_ISPONSORBLOCK" = "Ẩn nút iSponsorBlock trên thanh menu";
"CAST_CONFIRM" = "Xác nhận trước khi cast video (YTCastConfirm)"; "CAST_CONFIRM" = "Xác nhận trước khi cast video (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Hiện hộp thoại xác nhận trước khi cast video sang TV để tránh vô tình chiếm quyền điều khiển TV."; "CAST_CONFIRM_DESC" = "Hiện hộp thoại xác nhận trước khi cast video sang TV để tránh vô tình chiếm quyền điều khiển TV.";
+4 -4
View File
@@ -6,7 +6,7 @@ export libFLEX_ARCHS = arm64
export Alderis_XCODEOPTS = LD_DYLIB_INSTALL_NAME=@rpath/Alderis.framework/Alderis export Alderis_XCODEOPTS = LD_DYLIB_INSTALL_NAME=@rpath/Alderis.framework/Alderis
export Alderis_XCODEFLAGS = DYLIB_INSTALL_NAME_BASE=/Library/Frameworks BUILD_LIBRARY_FOR_DISTRIBUTION=YES ARCHS="$(ARCHS)" export Alderis_XCODEFLAGS = DYLIB_INSTALL_NAME_BASE=/Library/Frameworks BUILD_LIBRARY_FOR_DISTRIBUTION=YES ARCHS="$(ARCHS)"
export libcolorpicker_LDFLAGS = -F$(TARGET_PRIVATE_FRAMEWORK_PATH) -install_name @rpath/libcolorpicker.dylib export libcolorpicker_LDFLAGS = -F$(TARGET_PRIVATE_FRAMEWORK_PATH) -install_name @rpath/libcolorpicker.dylib
export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks/RemoteLog export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks/RemoteLog -I$(THEOS_PROJECT_DIR)/Tweaks
ifneq ($(JAILBROKEN),1) ifneq ($(JAILBROKEN),1)
export DEBUGFLAG = -ggdb -Wno-unused-command-line-argument -L$(THEOS_OBJ_DIR) -F$(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install/Library/Frameworks export DEBUGFLAG = -ggdb -Wno-unused-command-line-argument -L$(THEOS_OBJ_DIR) -F$(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install/Library/Frameworks
@@ -14,10 +14,10 @@ MODULES = jailed
endif endif
ifndef YOUTUBE_VERSION ifndef YOUTUBE_VERSION
YOUTUBE_VERSION = 19.02.1 YOUTUBE_VERSION = 19.06.2
endif endif
ifndef UYOU_VERSION ifndef UYOU_VERSION
UYOU_VERSION = 3.0.1 UYOU_VERSION = 3.0.3
endif endif
PACKAGE_VERSION = $(YOUTUBE_VERSION)-$(UYOU_VERSION) PACKAGE_VERSION = $(YOUTUBE_VERSION)-$(UYOU_VERSION)
@@ -29,7 +29,7 @@ BUNDLE_ID = com.google.ios.youtube
$(TWEAK_NAME)_FILES := $(wildcard Sources/*.xm) $(wildcard Sources/*.x) $(TWEAK_NAME)_FILES := $(wildcard Sources/*.xm) $(wildcard Sources/*.x)
$(TWEAK_NAME)_FRAMEWORKS = UIKit Security $(TWEAK_NAME)_FRAMEWORKS = UIKit Security
$(TWEAK_NAME)_CFLAGS = -fobjc-arc -DTWEAK_VERSION=\"$(PACKAGE_VERSION)\" $(TWEAK_NAME)_CFLAGS = -fobjc-arc -DTWEAK_VERSION=\"$(PACKAGE_VERSION)\"
$(TWEAK_NAME)_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib $(THEOS_OBJ_DIR)/libFLEX.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib $(THEOS_OBJ_DIR)/IAmYouTube.dylib $(THEOS_OBJ_DIR)/YTClassicVideoQuality.dylib $(THEOS_OBJ_DIR)/NoYTPremium.dylib $(THEOS_OBJ_DIR)/YTSpeed.dylib $(TWEAK_NAME)_INJECT_DYLIBS = Tweaks/uYou/Library/MobileSubstrate/DynamicLibraries/uYou.dylib $(THEOS_OBJ_DIR)/libFLEX.dylib $(THEOS_OBJ_DIR)/iSponsorBlock.dylib $(THEOS_OBJ_DIR)/YouTubeDislikesReturn.dylib $(THEOS_OBJ_DIR)/YouPiP.dylib $(THEOS_OBJ_DIR)/YTABConfig.dylib $(THEOS_OBJ_DIR)/YTUHD.dylib $(THEOS_OBJ_DIR)/DontEatMyContent.dylib $(THEOS_OBJ_DIR)/YTVideoOverlay.dylib $(THEOS_OBJ_DIR)/YouMute.dylib $(THEOS_OBJ_DIR)/YouQuality.dylib $(THEOS_OBJ_DIR)/IAmYouTube.dylib $(THEOS_OBJ_DIR)/YTClassicVideoQuality.dylib $(THEOS_OBJ_DIR)/NoYTPremium.dylib $(THEOS_OBJ_DIR)/YoutubeSpeed.dylib
$(TWEAK_NAME)_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib $(TWEAK_NAME)_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib
$(TWEAK_NAME)_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework $(TWEAK_NAME)_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework
$(TWEAK_NAME)_EMBED_BUNDLES = $(wildcard Bundles/*.bundle) $(TWEAK_NAME)_EMBED_BUNDLES = $(wildcard Bundles/*.bundle)
+198 -180
View File
@@ -1,13 +1,14 @@
![IMG_2196](https://user-images.githubusercontent.com/52943116/189822859-8a0952db-9264-4b5b-9cbe-d0a87b2db5a0.PNG) # uYouPlus
![Image 2](https://github.com/qnblackcat/uYouPlus/assets/77606385/c1a1c58a-5d4d-48a6-bb98-d00086719ccc)
<!--![Image](https://github.com/therealFoxster/uYouPlus/assets/77606385/eb34d3e3-a679-45d0-b2e5-01fdd459ce63)-->
*** ***
<p align="center"> <p align="center">
<img src="https://img.shields.io/badge/Platform-iOS%20%7C%20iPadOS%2014.0%2B-yellow" alt="Badge"/> <img src="https://img.shields.io/badge/Platform-iOS%20%7C%20iPadOS%2014.0%2B-yellow" alt="Badge"/>
<a href="https://github.com/qnblackcat/uYouPlus/wiki/FAQ"><img src="https://img.shields.io/badge/Question%3F-FAQ-yellow" alt="Badge"></img></a> <a href="https://github.com/qnblackcat/uYouPlus/wiki/FAQ"><img src="https://img.shields.io/badge/Question%3F-FAQ-yellow" alt="Badge"></img></a>
<a href="https://github.com/qnblackcat/uYouPlus/wiki/FAQ"><img src="https://custom-icon-badges.demolab.com/badge/translate-blue.svg?logo=translate&logoColor=white" alt="Badge"></img></a> <a href="https://github.com/qnblackcat/uYouPlus/wiki/FAQ"><img src="https://custom-icon-badges.demolab.com/badge/translate-blue.svg?logo=translate&logoColor=white" alt="Badge"></img></a>
</p> </p>
<p align="center"> <p align="center">
@@ -24,218 +25,235 @@
<a href="https://github.com/qnblackcat/uYouPlus#support-the-developers"><img src="https://img.shields.io/badge/-Support-lightgrey?style=social&logo=paypal" alt="Badge"></img></a> <a href="https://github.com/qnblackcat/uYouPlus#support-the-developers"><img src="https://img.shields.io/badge/-Support-lightgrey?style=social&logo=paypal" alt="Badge"></img></a>
</p> </p>
# Table of Contents > [!NOTE]
> uYouPlus is a **modified version** of uYou. **Please DO NOT bother MiRO92 with issues unrelated to uYou!**
## Table of contents
* [Credits](#credits)
* [Features](#features)
* [Known issues](#known-issues)
* [Download](#download) * [Download](#download)
* [Installation](#installation) * [Installation](#installation)
* [Features](#features)
* [Credits](#credits)
* [Support the developers!](#support-the-developers) * [Support the developers!](#support-the-developers)
* [FAQ](#faq) * [FAQs](#faqs)
* [Building](#building-optional) * [Building](#building)
# Credits ## Download
- Special thanks to all the developers who have contributed to uYouPlus!
<table id='credit'> - The latest version of **uYouPlus** can be found under [Releases](https://github.com/qnblackcat/uYouPlus/releases/latest).
<tr> - **Compatibility:** Requires iOS/iPadOS 14.0 or later.
<td id='miro92'>
<a href='https://github.com/MiRO92'>
<img src='https://github.com/MiRO92.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/miro92'>MiRO92</a></h4>
</td>
<td id='poomsmart'>
<a href='https://github.com/PoomSmart'>
<img src='https://github.com/PoomSmart.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/poomsmart'>PoomSmart</a></h4>
</td>
<td id='level3tjg'>
<a href='https://github.com/level3tjg'>
<img src='https://github.com/level3tjg.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/level3tjg'>level3tjg</a></h4>
</td>
<td id='bandarHL'>
<a href='https://github.com/BandarHL'>
<img src='https://github.com/BandarHL.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/bandarhl'>BandarHelal</a></h4>
</td>
<td id='galactic-dev'>
<a href='https://github.com/Galactic-Dev'>
<img src='https://github.com/Galactic-Dev.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/dev_galactic'>galactic</a></h4>
</td>
</tr>
<tr>
<td id='julioverne'>
<a href='https://github.com/julioverne'>
<img src='https://github.com/julioverne.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/ijulioverne'>julioverne</a></h4>
</td>
<td id='hbang'>
<a href='https://github.com/hbang'>
<img src='https://github.com/hbang.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/hashbang'>HASHBANG</a></h4>
</td>
<td id='lyvendia'>
<a href='https://github.com/Lyvendia'>
<img src='https://github.com/Lyvendia.png' width='140px;'>
</a>
<h4 align='center'><a href='https://github.com/Lyvendia'>Lyvendia</a></h4>
</td>
<td id='foxster'>
<a href='https://github.com/therealFoxster'>
<img src='https://github.com/therealFoxster.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/therealFoxster'>Foxster</a></h4>
</td>
<td id='ichitaso'>
<a href='https://github.com/ichitaso'>
<img src='https://github.com/ichitaso.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/ichitaso'>ichitaso</a></h4>
</td>
</tr>
<tr>
<td id='ahmed-bafkir'>
<a href='https://github.com/AhmedBafkir'>
<img src='https://github.com/AhmedBafkir.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/Peaceful_0'>Ahmed Bafkir</a></h4>
</td>
<td id='cokepokes'>
<a href='https://github.com/CokePokes'>
<img src='https://github.com/CokePokes.png' width='140px;'>
</a>
<h4 align='center'><a href='https://twitter.com/cokepokes'>CokePokes</a></h4>
</td>
<td id='isnackable'>
<a href='https://github.com/ISnackable'>
<img src='https://github.com/ISnackable.png' width='140px;'>
</a>
<h4 align='center'><a href='https://isnackable.me/'>Tommy Teo</a></h4>
</td>
<td id='theos-team'>
<a href='https://github.com/theos/theos'>
<img src='https://github.com/theos.png' width='140px;'>
</a>
<h4 align='center'><a href='https://theos.dev'>theos</a></h4>
</td>
</tr>
</table>
# Features
1. **uYou:** uYou has a ton of features that I can't list them all. Visit [here](https://miro92.com/repo/depictions/?p=com.miro.uyou) for more info!
2. **iSponsorBlock:** Skips annoying sponsor ads inside videos. iSponsorBlock is based on [SponsorBlock engine](https://sponsor.ajay.app/). Basically, this is the iOS version of the SponsorBlock extension.
3. **YouPiP:** enable YouTube's **native PiP**. More options are in YouTube Settings - General.
4. **YTUHD:** unlock VP9 codec and in effect, enables video quality of 2K and 4K. You can enable/disable YTUHD in YouTube Settings - Video quality preferences.
<details>
<summary>And many more...!</summary>
5. **YTClassicVideoQuality:** since YouTube v16.xx, you need one more step to change the video quality. YTClassicVideoQuality brings back the old video quality selector, which is a lot better than the new one.
6. **YTNoHoverCards:** offer an option to enable/disable the annoying suggested videos show up at the end of the videos.
7. **YouRememberCaption**: make YouTube remember your video caption setting (if not already).
8. **NoYTPremium**: remove YouTube Premium upsells.
9. **YTSpeed**: add 2.25, 2.5, 2.75, and 3x playback speed
10. **YTMiniplayerEnabler**: enable Miniplayer for all YouTube videos.
11. **DontEatMyContent**: prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube.
12. **YTABConfig**: allow user to control over YouTube A/B testing flags.
13. **YouMute**: mute YouTube videos via a button.
14. **YouQuality**: change video quality via a button.
15. **YTVideoOverlay**: add buttons to overlay the video.
</details>
# Known issues
- **uYou**: all the known-issues of uYou are listed [here](https://github.com/MiRO92/uYou-for-YouTube/issues). Make sure you take a look at it before reporting any bugs! ***Also, keep in mind that uYou+ is a modified version of uYou, DO NOT bother MiRO92 with problems unrelated to uYou!!!***
- Issues that related to **uYouPlus** are [here](https://github.com/qnblackcat/uYouPlus/issues/)
# Download
- **uYouPlus** (or you can call it uYou+) requires iOS or iPadOS 14.0 or later. The latest version of **uYouPlus** can be found in the [Release tab](https://github.com/qnblackcat/uYouPlus/releases/latest).
<!-- - For AltStore user: <!-- - For AltStore user:
- My official AltStore repo: https://qnblackcat.github.io/AltStore/ - My official AltStore repo: https://qnblackcat.github.io/AltStore/
- [Open in AltStore (v18.14.1-3.0)](https://tinyurl.com/yv6wrxjz) - It will take a while to install because AltStore needs to download the IPA first. --> - [Open in AltStore (v19.02.1-3.0.1)](http://tinyurl.com/z7hm2sar) - It will take a while to install because AltStore needs to download the IPA first. -->
- Version info: _(last update: Aug 5)_
<details> <details>
<summary>Expand </summary> <summary>Version information (last updated: Jan 29, 2024)</summary>
| **Tweaks/App** | **Developer** | **Version** | **Open source** | | **Tweaks/App** | **Developer** | **Version** | **Open source** |
| - | - | :-: | :-: | | - | - | :-: | :-: |
| **YouTube** | Google Inc | 18.30.7 | ✖︎ | | **YouTube** | Google Inc | 19.02.1 | ✖︎ |
| [uYou](https://github.com/MiRO92/uYou-for-YouTube) | [MiRO92](https://twitter.com/miro92) | 3.0 | ✖︎ | | [uYou](https://github.com/MiRO92/uYou-for-YouTube) | [MiRO92](https://twitter.com/miro92) | 3.0.1 | ✖︎ |
| **Open in YouTube** | [CokePokes](https://github.com/CokePokes) | 1.2 | [✔︎](https://github.com/CokePokes/YoutubeExtensions) | | **Open in YouTube** | [CokePokes](https://github.com/CokePokes) | 1.2 | [✔︎](https://github.com/CokePokes/YoutubeExtensions) |
| **iSponsorBlock** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-15 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) | | **iSponsorBlock** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.2.1 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
| **BigYTMiniPlayer** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) | | **BigYTMiniPlayer** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) |
| **YTNoHoverCards** | [level3tjg](https://twitter.com/level3tjg) | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) | | **YTNoHoverCards** | [level3tjg](https://twitter.com/level3tjg) | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
| **YTMiniplayerEnabler** | [level3tjg](https://twitter.com/level3tjg) | 0.0.2 | [✔︎](https://github.com/level3tjg/YTMiniplayerEnabler) | | **YTMiniplayerEnabler** | [level3tjg](https://twitter.com/level3tjg) | 0.0.2 | [✔︎](https://github.com/level3tjg/YTMiniplayerEnabler) |
| **DontEatMyContent** | [therealFoxster](https://github.com/therealFoxster) | 1.0.6 | [✔︎](https://github.com/therealFoxster/DontEatMyContent) | | **DontEatMyContent** | [therealFoxster](https://github.com/therealFoxster) | 1.1.3 | [✔︎](https://github.com/therealFoxster/DontEatMyContent) |
| **YTSpeed** | [Lyvendia](https://github.com/Lyvendia) | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) | | **YTSpeed** | [Lyvendia](https://github.com/Lyvendia) | 1.0.1 | [✔︎](https://github.com/Lyvendia/YTSpeed) |
| **YTCastConfirm** | [JamieBerghmans](https://github.com/JamieBerghmans) | 1.0.0 | [✔︎](https://github.com/JamieBerghmans/YTCastConfirm) | | **YTCastConfirm** | [JamieBerghmans](https://github.com/JamieBerghmans) | 1.0.0 | [✔︎](https://github.com/JamieBerghmans/YTCastConfirm) |
| **Alderis Color Picker** | [HASHBANG Productions](https://github.com/hbang) | 1.2| [✔︎](https://github.com/hbang/Alderis) | | **Alderis Color Picker** | [HASHBANG Productions](https://github.com/hbang) | 1.2.3 | [✔︎](https://github.com/hbang/Alderis) |
| **YTUHD** | [PoomSmart](https://twitter.com/poomsmart) | 1.3.5-1 | [✔︎](https://github.com/PoomSmart/YTUHD) | | **YTUHD** | [PoomSmart](https://twitter.com/poomsmart) | 1.4.2 | [✔︎](https://github.com/PoomSmart/YTUHD) |
| **YouPiP** | [PoomSmart](https://twitter.com/poomsmart) | 1.7.19-1 | [✔︎](https://github.com/PoomSmart/YouPiP) | | **YouPiP** | [PoomSmart](https://twitter.com/poomsmart) | 1.8.2 | [✔︎](https://github.com/PoomSmart/YouPiP) |
| **IAmYouTube** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) | | **IAmYouTube** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
| **YTABConfig** | [PoomSmart](https://twitter.com/poomsmart) | 1.5.0 | [✔︎](https://github.com/PoomSmart/YTABConfig) | | **YTABConfig** | [PoomSmart](https://twitter.com/poomsmart) | 1.5.1 | [✔︎](https://github.com/PoomSmart/YTABConfig) |
| **YTReExplore** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) | | **YTReExplore** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
| **NoYTPremium** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium) | | **NoYTPremium** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium) |
| **YTNoPaidPromo** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://github.com/PoomSmart/YTNoPaidPromo) | | **YTNoPaidPromo** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://github.com/PoomSmart/YTNoPaidPromo) |
| **YouRememberCaption** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) | | **YouRememberCaption** | [PoomSmart](https://twitter.com/poomsmart) | 1.0.0 | [✔︎](https://poomsmart.github.io/repo/depictions/youremembercaption.html) |
| **Return YouTube Dislike** | [PoomSmart](https://twitter.com/poomsmart) | 1.11.3 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) | | **Return YouTube Dislike** | [PoomSmart](https://twitter.com/poomsmart) | 1.11.6 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
| **YouMute** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.1-2 | [✔︎](https://github.com/PoomSmart/YouMute) | | **YouMute** | [PoomSmart](https://twitter.com/poomsmart) | 1.2.1-3 | [✔︎](https://github.com/PoomSmart/YouMute) |
| **YouQuality** | [PoomSmart](https://twitter.com/poomsmart) | 1.1.4 | [✔︎](https://github.com/PoomSmart/YouQuality) | | **YouQuality** | [PoomSmart](https://twitter.com/poomsmart) | 1.1.4-2 | [✔︎](https://github.com/PoomSmart/YouQuality) |
| **YTVideoOverlay** | [PoomSmart](https://twitter.com/poomsmart) | 1.1.0-2 | [✔︎](https://github.com/PoomSmart/YTVideoOverlay) | | **YTVideoOverlay** | [PoomSmart](https://twitter.com/poomsmart) | 1.1.4 | [✔︎](https://github.com/PoomSmart/YTVideoOverlay) |
</details> </details>
# Installation ## Installation
See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installation). See [Installation - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Installation).
# Support the developers ## Features
- [**MiRO92**](https://twitter.com/miro92): https://github.com/MiRO92/uYou-for-YouTube#support
- [**Poomsmart**](https://twitter.com/poomsmart): https://poomsmart.github.io 1. **[uYou](https://miro92.com/repo/depictions/?p=com.miro.uyou):** Enhance your YouTube experience.
- [**level3tjg**](https://twitter.com/level3tjg): https://ko-fi.com/level3tjg
- [**BandarHL**](https://twitter.com/bandarhl): https://www.paypal.com/paypalme/BandarHL 2. **[iSponsorBlock](https://github.com/Galactic-Dev/iSponsorBlock):** A jailbreak tweak that implements the SponsorBlock API to skip sponsorships in YouTube vidoes.
- [**julioverne**](https://twitter.com/ijulioverne): https://www.patreon.com/julioverne
- [**Galactic-dev**](https://twitter.com/dev_galactic): 3. **[YouPiP](https://poomsmart.github.io/repo/depictions/youpip):** Enable **native PiP** in iOS YouTube app.
4. **[YTUHD](https://poomsmart.github.io/repo/depictions/ytuhd):** Unlock 1440p (2K) and 2160p (4K) resolutions in iOS YouTube app.
<details>
<summary>And many more!</summary>
5. **[YTClassicVideoQuality](https://poomsmart.github.io/repo/depictions/ytclassicvideoquality):** Revert to the original video quality selector in YouTube app.
6. **[YTNoHoverCards](https://level3tjg.me/repo/depictions/?p=com.level3tjg.ytnohovercards):** Disable overlay at the end of YouTube videos.
7. **[YouRememberCaption](https://poomsmart.github.io/repo/depictions/youremembercaption)**: Make YouTube remember your video caption setting, if not already.
8. **[NoYTPremium](https://poomsmart.github.io/repo/depictions/noytpremium)**: Remove YouTube Premium upsell alerts.
9. **[YTSpeed](http://cydia.saurik.com/package/com.lyvendia.ytspeed/)**: Simple playback speed tweak for the YouTube app on jailbroken iOS/iPadOS devices.
10. **[YTMiniplayerEnabler](https://level3tjg.me/repo/depictions/?p=com.level3tjg.ytminiplayerenabler)**: Enable Miniplayer for all YouTube videos.
11. **[DontEatMyContent](https://github.com/therealFoxster/DontEatMyContent)**: Prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube.
12. **[YTABConfig](https://poomsmart.github.io/repo/depictions/ytabconfig)**: Configure A/B settings in iOS YouTube app.
13. **[YouMute](https://poomsmart.github.io/repo/depictions/youmute)**: Mute/unmute videos in iOS YouTube directly.
14. **[YouQuality](https://poomsmart.github.io/repo/depictions/youquality)**: View and change video quality in YouTube app from the video overlay.
</details>
## Credits
- Special thanks to all the developers who have contributed to uYouPlus!
<table id='credits'>
<tr align='center'>
<td id='miro92'>
<a href='https://github.com/MiRO92'>
<img src='https://github.com/MiRO92.png' width='140px;' style='border-radius: 99999px;'>
</a>
<br>
<a href='https://twitter.com/miro92'>MiRO92</a>
</td>
<td id='poomsmart'>
<a href='https://github.com/PoomSmart'>
<img src='https://github.com/PoomSmart.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/poomsmart'>PoomSmart</a>
</td>
<td id='level3tjg'>
<a href='https://github.com/level3tjg'>
<img src='https://github.com/level3tjg.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/level3tjg'>level3tjg</a>
</td>
<td id='bandarHL'>
<a href='https://github.com/BandarHL'>
<img src='https://github.com/BandarHL.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/bandarhl'>BandarHelal</a>
</td>
<td id='galactic-dev'>
<a href='https://github.com/Galactic-Dev'>
<img src='https://github.com/Galactic-Dev.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/dev_galactic'>galactic</a>
</td>
</tr>
<tr align='center'>
<td id='julioverne'>
<a href='https://github.com/julioverne'>
<img src='https://github.com/julioverne.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/ijulioverne'>julioverne</a>
</td>
<td id='hbang'>
<a href='https://github.com/hbang'>
<img src='https://github.com/hbang.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/hashbang'>HASHBANG</a>
</td>
<td id='lyvendia'>
<a href='https://github.com/Lyvendia'>
<img src='https://github.com/Lyvendia.png' width='140px;'>
</a>
<br>
<a href='https://github.com/Lyvendia'>Lyvendia</a>
</td>
<td id='foxster'>
<a href='https://github.com/therealFoxster'>
<img src='https://github.com/therealFoxster.png' width='140px;'>
</a>
<br>
<a href='https://github.com/therealFoxster'>Foxster</a>
</td>
<td id='ichitaso'>
<a href='https://github.com/ichitaso'>
<img src='https://github.com/ichitaso.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/ichitaso'>ichitaso</a>
</td>
</tr>
<tr align='center'>
<td id='ahmed-bafkir'>
<a href='https://github.com/AhmedBafkir'>
<img src='https://github.com/AhmedBafkir.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/Peaceful_0'>Ahmed Bafkir</a>
</td>
<td id='cokepokes'>
<a href='https://github.com/CokePokes'>
<img src='https://github.com/CokePokes.png' width='140px;'>
</a>
<br>
<a href='https://twitter.com/cokepokes'>CokePokes</a>
</td>
<td id='isnackable'>
<a href='https://github.com/ISnackable'>
<img src='https://github.com/ISnackable.png' width='140px;'>
</a>
<br>
<a href='https://isnackable.me/'>Tommy Teo</a>
</td>
<td id='theos-team'>
<a href='https://github.com/theos/theos'>
<img src='https://github.com/theos.png' width='140px;'>
</a>
<br>
<a href='https://theos.dev'>theos</a>
</td>
<td id='qnblackcat'>
<a href='https://github.com/qnblackcat'>
<img src='https://github.com/qnblackcat.png' width='140px;'>
</a>
<br>
<a href='https://https://twitter.com/t70438299'>qnblackcat</a>
</td>
</tr>
</table>
## Support the developers!
- **MiRO92**: https://github.com/MiRO92/uYou-for-YouTube#support
- **PoomSmart**: https://poomsmart.github.io
- **level3tjg**: https://ko-fi.com/level3tjg
- **BandarHL**: https://www.paypal.com/paypalme/BandarHL
- **julioverne**: https://www.patreon.com/julioverne
- **Galactic-Dev**:
- Paypal: https://www.paypal.com/paypalme/DBrett684 - Paypal: https://www.paypal.com/paypalme/DBrett684
- Venmo: https://venmo.com/u/DavidBrett - Venmo: https://venmo.com/u/DavidBrett
# FAQ ## FAQs
See [FAQ - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/FAQ). See [FAQs - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/FAQs).
# Building (optional) ## Building
See [Building - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Building). See [Building - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Building).
-21
View File
@@ -1,21 +0,0 @@
#import "../Tweaks/YouTubeHeader/YTAlertView.h"
#import "uYouPlus.h"
extern NSBundle *uYouPlusBundle();
// YTCastConfirm: https://github.com/JamieBerghmans/YTCastConfirm
%hook MDXPlaybackRouteButtonController
- (void)didPressButton:(id)arg1 {
if (IS_ENABLED(@"castConfirm_enabled")) {
NSBundle *tweakBundle = uYouPlusBundle();
YTAlertView *alertView = [%c(YTAlertView) confirmationDialogWithAction:^{
%orig;
} actionTitle:LOC(@"MSG_YES")];
alertView.title = LOC(@"CASTING");
alertView.subtitle = LOC(@"MSG_ARE_YOU_SURE");
[alertView show];
} else {
return %orig;
}
}
%end
+2 -2
View File
@@ -1,5 +1,5 @@
#import "../Tweaks/YouTubeHeader/YTPlayerOverlayProvider.h" #import <YouTubeHeader/YTPlayerOverlayProvider.h>
#import "../Tweaks/YouTubeHeader/YTPlayerOverlay.h" #import <YouTubeHeader/YTPlayerOverlay.h>
#import "uYouPlus.h" #import "uYouPlus.h"
// YTNoPaidPromo: https://github.com/PoomSmart/YTNoPaidPromo // YTNoPaidPromo: https://github.com/PoomSmart/YTNoPaidPromo
+4 -4
View File
@@ -1,7 +1,7 @@
#import "../Tweaks/YouTubeHeader/YTIPivotBarRenderer.h" #import <YouTubeHeader/YTIPivotBarRenderer.h>
#import "../Tweaks/YouTubeHeader/YTIGuideResponse.h" #import <YouTubeHeader/YTIGuideResponse.h>
#import "../Tweaks/YouTubeHeader/YTIGuideResponseSupportedRenderers.h" #import <YouTubeHeader/YTIGuideResponseSupportedRenderers.h>
#import "../Tweaks/YouTubeHeader/YTIBrowseRequest.h" #import <YouTubeHeader/YTIBrowseRequest.h>
#import "uYouPlus.h" #import "uYouPlus.h"
%group YTReExplore // https://github.com/PoomSmart/YTReExplore/ %group YTReExplore // https://github.com/PoomSmart/YTReExplore/
-21
View File
@@ -1,21 +0,0 @@
#import "uYouPlus.h"
%group YTStockVolumeHUD // https://github.com/lilacvibes/YTStockVolumeHUD
%hook YTVolumeBarView
- (void)volumeChanged:(id)arg1 {
%orig(nil);
}
%end
%hook UIApplication
- (void)setSystemVolumeHUDEnabled:(BOOL)arg1 forAudioCategory:(id)arg2 {
%orig(true, arg2);
}
%end
%end
%ctor {
if (IS_ENABLED(@"stockVolumeHUD_enabled")) {
%init(YTStockVolumeHUD);
}
}
+4 -2
View File
@@ -7,8 +7,10 @@
#import <rootless.h> #import <rootless.h>
#import "uYouPlusThemes.h" // Hide "Buy Super Thanks" banner (_ASDisplayView) #import "uYouPlusThemes.h" // Hide "Buy Super Thanks" banner (_ASDisplayView)
#import "../Tweaks/YouTubeHeader/YTAppDelegate.h" // Activate FLEX #import <YouTubeHeader/YTAppDelegate.h> // Activate FLEX
// #import "../Tweaks/YouTubeHeader/YTISectionListRenderer.h" // Hide search ads by @PoomSmart - https://github.com/PoomSmart/YouTube-X #import <YouTubeHeader/YTIMenuConditionalServiceItemRenderer.h>
// #import <YouTubeHeader/YTISectionListRenderer.h> // Hide search ads by @PoomSmart - https://github.com/PoomSmart/YouTube-X
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil] #define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
#define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k] #define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k]
+51 -29
View File
@@ -27,11 +27,12 @@ NSBundle *tweakBundle = uYouPlusBundle();
%end %end
// Disable double tap to seek // Disable double tap to seek
%hook YTDoubleTapToSeekController // Not needed anymore because uYou v3.0.3+ added this feature
- (void)enableDoubleTapToSeek:(BOOL)arg1 { // %hook YTDoubleTapToSeekController
return IS_ENABLED(@"doubleTapToSeek_disabled") ? %orig(NO) : %orig; // - (void)enableDoubleTapToSeek:(BOOL)arg1 {
} // return IS_ENABLED(@"doubleTapToSeek_disabled") ? %orig(NO) : %orig;
%end // }
// %end
// Disable snap to chapter // Disable snap to chapter
%hook YTSegmentableInlinePlayerBarView %hook YTSegmentableInlinePlayerBarView
@@ -54,7 +55,12 @@ NSBundle *tweakBundle = uYouPlusBundle();
// See YTMiniPlayerEnabler.x // See YTMiniPlayerEnabler.x
// Use stock iOS volume HUD // Use stock iOS volume HUD
// See YTStockVolumeHUD.xm // Use YTColdConfig's method instead of YTStockVolumeHUD.xm, see https://x.com/PoomSmart/status/1756904290445332653
%hook YTColdConfig
- (BOOL)iosUseSystemVolumeControlInFullscreen {
return IS_ENABLED(@"stockVolumeHUD_enabled") ? YES : %orig;
}
%end
# pragma mark - Video control overlay options # pragma mark - Video control overlay options
@@ -87,22 +93,29 @@ NSBundle *tweakBundle = uYouPlusBundle();
else { return %orig; } else { return %orig; }
} }
%end %end
%hook YTColdConfig
- (BOOL)iosEnableFeaturedChannelWatermarkOverlayFix {
return IS_ENABLED(@"hideChannelWatermark_enabled") ? NO : %orig;
}
%end
// Hide next and previous buttons // Hide next and previous buttons
%group gHidePreviousAndNextButton // Not needed anymore because uYou v3.0.3+ added this feature
%hook YTColdConfig // %group gHidePreviousAndNextButton
- (BOOL)removeNextPaddleForSingletonVideos { return YES; } // %hook YTColdConfig
- (BOOL)removePreviousPaddleForSingletonVideos { return YES; } // - (BOOL)removeNextPaddleForSingletonVideos { return YES; }
%end // - (BOOL)removePreviousPaddleForSingletonVideos { return YES; }
%end // %end
// %end
// Replace next and previous buttons with fast forward and rewind // Replace next and previous buttons with fast forward and rewind
%group gReplacePreviousAndNextButton // Not needed anymore because uYou v3.0.2+ added this feature
%hook YTColdConfig // %group gReplacePreviousAndNextButton
- (BOOL)replaceNextPaddleWithFastForwardButtonForSingletonVods { return YES; } // %hook YTColdConfig
- (BOOL)replacePreviousPaddleWithRewindButtonForSingletonVods { return YES; } // - (BOOL)replaceNextPaddleWithFastForwardButtonForSingletonVods { return YES; }
%end // - (BOOL)replacePreviousPaddleWithRewindButtonForSingletonVods { return YES; }
%end // %end
// %end
// Bring back the red progress bar - Broken?! // Bring back the red progress bar - Broken?!
%hook YTInlinePlayerBarContainerView %hook YTInlinePlayerBarContainerView
@@ -147,11 +160,12 @@ NSBundle *tweakBundle = uYouPlusBundle();
%end %end
// Disable resume to Shorts // Disable resume to Shorts
%hook YTShortsStartupCoordinator // Not needed anymore because uYou v3.0.3+ added this feature
- (id)evaluateResumeToShorts { // %hook YTShortsStartupCoordinator
return IS_ENABLED(@"disableResumeToShorts") ? nil : %orig; // - (id)evaluateResumeToShorts {
} // return IS_ENABLED(@"disableResumeToShorts") ? nil : %orig;
%end // }
// %end
# pragma mark - Miscellaneous # pragma mark - Miscellaneous
@@ -166,6 +180,7 @@ NSBundle *tweakBundle = uYouPlusBundle();
// YTCastConfirm // YTCastConfirm
// See YTCastConfirm.xm // See YTCastConfirm.xm
// Not needed anymore because uYou v3.0.2+ added this feature
// Disable hints - https://github.com/LillieH001/YouTube-Reborn/blob/v4/ // Disable hints - https://github.com/LillieH001/YouTube-Reborn/blob/v4/
%group gDisableHints %group gDisableHints
@@ -209,6 +224,13 @@ NSBundle *tweakBundle = uYouPlusBundle();
%end %end
%end %end
// Hide "Play next in queue" - qnblackcat/uYouPlus#1138
%hook YTMenuItemVisibilityHandler
- (BOOL)shouldShowServiceItemRenderer:(YTIMenuConditionalServiceItemRenderer *)renderer {
return IS_ENABLED(@"hidePlayNextInQueue_enabled") && renderer.icon.iconType == 251 ? NO : %orig;
}
%end
// Force iPhone layout // Force iPhone layout
%group giPhoneLayout %group giPhoneLayout
%hook UIDevice %hook UIDevice
@@ -310,12 +332,12 @@ NSBundle *tweakBundle = uYouPlusBundle();
// dlopen([[NSString stringWithFormat:@"%@/Frameworks/uYou.dylib", [[NSBundle mainBundle] bundlePath]] UTF8String], RTLD_LAZY); // dlopen([[NSString stringWithFormat:@"%@/Frameworks/uYou.dylib", [[NSBundle mainBundle] bundlePath]] UTF8String], RTLD_LAZY);
%init; %init;
if (IS_ENABLED(@"hidePreviousAndNextButton_enabled")) { // if (IS_ENABLED(@"hidePreviousAndNextButton_enabled")) {
%init(gHidePreviousAndNextButton); // %init(gHidePreviousAndNextButton);
} // }
if (IS_ENABLED(@"replacePreviousAndNextButton_enabled")) { // if (IS_ENABLED(@"replacePreviousAndNextButton_enabled")) {
%init(gReplacePreviousAndNextButton); // %init(gReplacePreviousAndNextButton);
} // }
if (IS_ENABLED(@"disableHints_enabled")) { if (IS_ENABLED(@"disableHints_enabled")) {
%init(gDisableHints); %init(gDisableHints);
} }
+1 -1
View File
@@ -1,4 +1,4 @@
#import "../Tweaks/YouTubeHeader/YTCommonColorPalette.h" #import <YouTubeHeader/YTCommonColorPalette.h>
#import "uYouPlus.h" #import "uYouPlus.h"
@interface YTSingleVideoController : NSObject @interface YTSingleVideoController : NSObject
+44 -42
View File
@@ -62,36 +62,36 @@
%end %end
// iOS 16 uYou crash fix - @level3tjg: https://github.com/qnblackcat/uYouPlus/pull/224 // iOS 16 uYou crash fix - @level3tjg: https://github.com/qnblackcat/uYouPlus/pull/224
%group iOS16 // %group iOS16
%hook OBPrivacyLinkButton // %hook OBPrivacyLinkButton
%new // %new
- (instancetype)initWithCaption:(NSString *)caption // - (instancetype)initWithCaption:(NSString *)caption
buttonText:(NSString *)buttonText // buttonText:(NSString *)buttonText
image:(UIImage *)image // image:(UIImage *)image
imageSize:(CGSize)imageSize // imageSize:(CGSize)imageSize
useLargeIcon:(BOOL)useLargeIcon { // useLargeIcon:(BOOL)useLargeIcon {
return [self initWithCaption:caption // return [self initWithCaption:caption
buttonText:buttonText // buttonText:buttonText
image:image // image:image
imageSize:imageSize // imageSize:imageSize
useLargeIcon:useLargeIcon // useLargeIcon:useLargeIcon
displayLanguage:[NSLocale currentLocale].languageCode]; // displayLanguage:[NSLocale currentLocale].languageCode];
} // }
%end // %end
%end // %end
// Fix uYou playback speed crashes YT v18.49.3+, see https://github.com/iCrazeiOS/uYouCrashFix // Fix uYou playback speed crashes YT v18.49.3+, see https://github.com/iCrazeiOS/uYouCrashFix
%hook YTPlayerViewController // %hook YTPlayerViewController
%new // %new
-(float)currentPlaybackRateForVarispeedSwitchController:(id)arg1 { // -(float)currentPlaybackRateForVarispeedSwitchController:(id)arg1 {
return [[self activeVideo] playbackRate]; // return [[self activeVideo] playbackRate];
} // }
%new // %new
-(void)varispeedSwitchController:(id)arg1 didSelectRate:(float)arg2 { // -(void)varispeedSwitchController:(id)arg1 didSelectRate:(float)arg2 {
[[self activeVideo] setPlaybackRate:arg2]; // [[self activeVideo] setPlaybackRate:arg2];
} // }
%end // %end
// Fix streched artwork in uYou's player view - https://github.com/MiRO92/uYou-for-YouTube/issues/287 // Fix streched artwork in uYou's player view - https://github.com/MiRO92/uYou-for-YouTube/issues/287
%hook ArtworkImageView %hook ArtworkImageView
@@ -116,8 +116,17 @@
%end %end
// Fix uYou's appearance not updating if the app is backgrounded // Fix uYou's appearance not updating if the app is backgrounded
DownloadsPagerVC *downloadsPagerVC; static DownloadsPagerVC *downloadsPagerVC;
NSUInteger selectedTabIndex; static NSUInteger selectedTabIndex;
%hook DownloadsPagerVC
- (id)init {
downloadsPagerVC = %orig;
return downloadsPagerVC;
}
- (void)viewPager:(id)viewPager didChangeTabToIndex:(NSUInteger)arg1 fromTabIndex:(NSUInteger)arg2 {
%orig; selectedTabIndex = arg1;
}
%end
static void refreshUYouAppearance() { static void refreshUYouAppearance() {
if (!downloadsPagerVC) return; if (!downloadsPagerVC) return;
// View pager // View pager
@@ -156,19 +165,12 @@ static void refreshUYouAppearance() {
} }
} }
} }
%hook DownloadsPagerVC
- (instancetype)init {
downloadsPagerVC = %orig;
return downloadsPagerVC;
}
- (void)viewPager:(id)viewPager didChangeTabToIndex:(NSUInteger)arg1 fromTabIndex:(NSUInteger)arg2 {
%orig; selectedTabIndex = arg1;
}
%end
%hook UIViewController %hook UIViewController
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection { - (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
%orig; %orig;
refreshUYouAppearance(); dispatch_async(dispatch_get_main_queue(), ^{
refreshUYouAppearance();
});
} }
%end %end
@@ -196,9 +198,9 @@ static void refreshUYouAppearance() {
%ctor { %ctor {
%init; %init;
if (@available(iOS 16, *)) { // if (@available(iOS 16, *)) {
%init(iOS16); // %init(iOS16);
} // }
// Disable broken options // Disable broken options
+6 -6
View File
@@ -1,9 +1,9 @@
#import "../Tweaks/YouTubeHeader/YTSettingsViewController.h" #import <YouTubeHeader/YTSettingsViewController.h>
#import "../Tweaks/YouTubeHeader/YTSearchableSettingsViewController.h" #import <YouTubeHeader/YTSearchableSettingsViewController.h>
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItem.h" #import <YouTubeHeader/YTSettingsSectionItem.h>
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h" #import <YouTubeHeader/YTSettingsSectionItemManager.h>
#import "../Tweaks/YouTubeHeader/YTUIUtils.h" #import <YouTubeHeader/YTUIUtils.h>
#import "../Tweaks/YouTubeHeader/YTSettingsPickerViewController.h" #import <YouTubeHeader/YTSettingsPickerViewController.h>
#import "uYouPlus.h" #import "uYouPlus.h"
// For displaying snackbars // For displaying snackbars
+4 -7
View File
@@ -164,11 +164,11 @@ extern NSBundle *uYouPlusBundle();
SECTION_HEADER(LOC(@"VIDEO_PLAYER_OPTIONS")); SECTION_HEADER(LOC(@"VIDEO_PLAYER_OPTIONS"));
SWITCH_ITEM2(LOC(@"SLIDE_TO_SEEK"), LOC(@"SLIDE_TO_SEEK_DESC"), @"slideToSeek_enabled"); SWITCH_ITEM2(LOC(@"SLIDE_TO_SEEK"), LOC(@"SLIDE_TO_SEEK_DESC"), @"slideToSeek_enabled");
SWITCH_ITEM(LOC(@"DISABLE_DOUBLE_TAP_TO_SEEK"), LOC(@"DISABLE_DOUBLE_TAP_TO_SEEK_DESC"), @"doubleTapToSeek_disabled"); // SWITCH_ITEM(LOC(@"DISABLE_DOUBLE_TAP_TO_SEEK"), LOC(@"DISABLE_DOUBLE_TAP_TO_SEEK_DESC"), @"doubleTapToSeek_disabled");
SWITCH_ITEM2(LOC(@"SNAP_TO_CHAPTER"), LOC(@"SNAP_TO_CHAPTER_DESC"), @"snapToChapter_enabled"); SWITCH_ITEM2(LOC(@"SNAP_TO_CHAPTER"), LOC(@"SNAP_TO_CHAPTER_DESC"), @"snapToChapter_enabled");
SWITCH_ITEM2(LOC(@"PINCH_TO_ZOOM"), LOC(@"PINCH_TO_ZOOM_DESC"), @"pinchToZoom_enabled"); SWITCH_ITEM2(LOC(@"PINCH_TO_ZOOM"), LOC(@"PINCH_TO_ZOOM_DESC"), @"pinchToZoom_enabled");
SWITCH_ITEM(LOC(@"YT_MINIPLAYER"), LOC(@"YT_MINIPLAYER_DESC"), @"ytMiniPlayer_enabled"); SWITCH_ITEM(LOC(@"YT_MINIPLAYER"), LOC(@"YT_MINIPLAYER_DESC"), @"ytMiniPlayer_enabled");
SWITCH_ITEM(LOC(@"STOCK_VOLUME_HUD"), LOC(@"STOCK_VOLUME_HUD_DESC"), @"stockVolumeHUD_enabled"); SWITCH_ITEM2(LOC(@"STOCK_VOLUME_HUD"), LOC(@"STOCK_VOLUME_HUD_DESC"), @"stockVolumeHUD_enabled");
# pragma mark - Video controls overlay options # pragma mark - Video controls overlay options
SECTION_HEADER(LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS")); SECTION_HEADER(LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS"));
@@ -178,8 +178,7 @@ extern NSBundle *uYouPlusBundle();
SWITCH_ITEM(LOC(@"HIDE_HUD_MESSAGES"), LOC(@"HIDE_HUD_MESSAGES_DESC"), @"hideHUD_enabled"); SWITCH_ITEM(LOC(@"HIDE_HUD_MESSAGES"), LOC(@"HIDE_HUD_MESSAGES_DESC"), @"hideHUD_enabled");
SWITCH_ITEM(LOC(@"HIDE_PAID_PROMOTION_CARDS"), LOC(@"HIDE_PAID_PROMOTION_CARDS_DESC"), @"hidePaidPromotionCard_enabled"); SWITCH_ITEM(LOC(@"HIDE_PAID_PROMOTION_CARDS"), LOC(@"HIDE_PAID_PROMOTION_CARDS_DESC"), @"hidePaidPromotionCard_enabled");
SWITCH_ITEM2(LOC(@"HIDE_CHANNEL_WATERMARK"), LOC(@"HIDE_CHANNEL_WATERMARK_DESC"), @"hideChannelWatermark_enabled"); SWITCH_ITEM2(LOC(@"HIDE_CHANNEL_WATERMARK"), LOC(@"HIDE_CHANNEL_WATERMARK_DESC"), @"hideChannelWatermark_enabled");
SWITCH_ITEM(LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON"), LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC"), @"hidePreviousAndNextButton_enabled"); // SWITCH_ITEM(LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON"), LOC(@"HIDE_PREVIOUS_AND_NEXT_BUTTON_DESC"), @"hidePreviousAndNextButton_enabled");
SWITCH_ITEM2(LOC(@"REPLACE_PREVIOUS_NEXT_BUTTON"), LOC(@"REPLACE_PREVIOUS_NEXT_BUTTON_DESC"), @"replacePreviousAndNextButton_enabled");
SWITCH_ITEM2(LOC(@"RED_PROGRESS_BAR"), LOC(@"RED_PROGRESS_BAR_DESC"), @"redProgressBar_enabled"); SWITCH_ITEM2(LOC(@"RED_PROGRESS_BAR"), LOC(@"RED_PROGRESS_BAR_DESC"), @"redProgressBar_enabled");
SWITCH_ITEM(LOC(@"HIDE_HOVER_CARD"), LOC(@"HIDE_HOVER_CARD_DESC"), @"hideHoverCards_enabled"); SWITCH_ITEM(LOC(@"HIDE_HOVER_CARD"), LOC(@"HIDE_HOVER_CARD_DESC"), @"hideHoverCards_enabled");
SWITCH_ITEM2(LOC(@"HIDE_RIGHT_PANEL"), LOC(@"HIDE_RIGHT_PANEL_DESC"), @"hideRightPanel_enabled"); SWITCH_ITEM2(LOC(@"HIDE_RIGHT_PANEL"), LOC(@"HIDE_RIGHT_PANEL_DESC"), @"hideRightPanel_enabled");
@@ -189,14 +188,12 @@ extern NSBundle *uYouPlusBundle();
SWITCH_ITEM(LOC(@"HIDE_SUPER_THANKS"), LOC(@"HIDE_SUPER_THANKS_DESC"), @"hideBuySuperThanks_enabled"); SWITCH_ITEM(LOC(@"HIDE_SUPER_THANKS"), LOC(@"HIDE_SUPER_THANKS_DESC"), @"hideBuySuperThanks_enabled");
SWITCH_ITEM(LOC(@"HIDE_SUBCRIPTIONS"), LOC(@"HIDE_SUBCRIPTIONS_DESC"), @"hideSubcriptions_enabled"); SWITCH_ITEM(LOC(@"HIDE_SUBCRIPTIONS"), LOC(@"HIDE_SUBCRIPTIONS_DESC"), @"hideSubcriptions_enabled");
SWITCH_ITEM(LOC(@"DISABLE_RESUME_TO_SHORTS"), LOC(@"DISABLE_RESUME_TO_SHORTS_DESC"), @"disableResumeToShorts"); // SWITCH_ITEM(LOC(@"DISABLE_RESUME_TO_SHORTS"), LOC(@"DISABLE_RESUME_TO_SHORTS_DESC"), @"disableResumeToShorts");
# pragma mark - Miscellaneous # pragma mark - Miscellaneous
SECTION_HEADER(LOC(@"MISCELLANEOUS")); SECTION_HEADER(LOC(@"MISCELLANEOUS"));
// SWITCH_ITEM2(LOC(@"HIDE_UYOU"), nil, @"hideUYouTab_enabled"); // We stay on 19.02.1 until MiRO92 update uYou?
SWITCH_ITEM2(LOC(@"HIDE_ISPONSORBLOCK"), nil, @"hideiSponsorBlockButton_enabled"); SWITCH_ITEM2(LOC(@"HIDE_ISPONSORBLOCK"), nil, @"hideiSponsorBlockButton_enabled");
SWITCH_ITEM(LOC(@"CAST_CONFIRM"), LOC(@"CAST_CONFIRM_DESC"), @"castConfirm_enabled");
SWITCH_ITEM(LOC(@"DISABLE_HINTS"), LOC(@"DISABLE_HINTS_DESC"), @"disableHints_enabled"); SWITCH_ITEM(LOC(@"DISABLE_HINTS"), LOC(@"DISABLE_HINTS_DESC"), @"disableHints_enabled");
SWITCH_ITEM(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled"); SWITCH_ITEM(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled");
SWITCH_ITEM(LOC(@"HIDE_CHIP_BAR"), LOC(@"HIDE_CHIP_BAR_DESC"), @"hideChipBar_enabled"); SWITCH_ITEM(LOC(@"HIDE_CHIP_BAR"), LOC(@"HIDE_CHIP_BAR_DESC"), @"hideChipBar_enabled");
+12 -11
View File
@@ -1,9 +1,10 @@
#import "../Tweaks/YouTubeHeader/YTCommonColorPalette.h" #import <YouTubeHeader/YTCommonColorPalette.h>
#import "../Tweaks/YouTubeHeader/ASCollectionView.h" #import <YouTubeHeader/ASCollectionView.h>
#import <YouTubeHeader/_ASDisplayView.h>
#import "uYouPlus.h" #import "uYouPlus.h"
@interface YCHLiveChatView : UIView // @interface YCHLiveChatView : UIView
@end // @end
@interface YTFullscreenEngagementOverlayView : UIView @interface YTFullscreenEngagementOverlayView : UIView
@end @end
@@ -11,8 +12,8 @@
@interface YTRelatedVideosView : UIView @interface YTRelatedVideosView : UIView
@end @end
@interface ELMView : UIView // @interface ELMView : UIView
@end // @end
@interface ASWAppSwitcherCollectionViewCell : UIView @interface ASWAppSwitcherCollectionViewCell : UIView
@end @end
@@ -26,11 +27,8 @@
@interface UIKeyboardDockView : UIView @interface UIKeyboardDockView : UIView
@end @end
@interface _ASDisplayView : UIView // @interface YTCommentDetailHeaderCell : UIView
@end // @end
@interface YTCommentDetailHeaderCell : UIView
@end
@interface SponsorBlockSettingsController : UITableViewController @interface SponsorBlockSettingsController : UITableViewController
@end @end
@@ -44,6 +42,9 @@
@interface UIPredictionViewController : UIViewController @interface UIPredictionViewController : UIViewController
@end @end
@interface TUIEmojiSearchView : UIView
@end
@interface FRPreferences : UITableViewController @interface FRPreferences : UITableViewController
@end @end
+48 -107
View File
@@ -118,27 +118,25 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
- (void)didMoveToWindow { - (void)didMoveToWindow {
%orig; %orig;
if (IS_DARK_APPEARANCE_ENABLED) { if (IS_DARK_APPEARANCE_ENABLED) {
self.backgroundColor = [UIColor clearColor]; self.backgroundColor = [UIColor blackColor];
} }
} }
%end %end
// Your videos // Download sort
%hook GOODialogView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
// Playlist sort
%hook ASCollectionView %hook ASCollectionView
- (void)didMoveToWindow { - (void)didMoveToWindow {
%orig; %orig;
if (IS_DARK_APPEARANCE_ENABLED && [self.nextResponder isKindOfClass:%c(_ASDisplayView)]) { if (IS_DARK_APPEARANCE_ENABLED && [self.nextResponder isKindOfClass:%c(_ASDisplayView)]) {
self.superview.backgroundColor = [UIColor blackColor]; self.superview.backgroundColor = [UIColor blackColor];
} self.backgroundColor = [UIColor clearColor];
}
%end
// Sub menu?
%hook ELMView
- (void)didMoveToWindow {
%orig;
if (IS_DARK_APPEARANCE_ENABLED) {
// self.subviews[0].backgroundColor = [UIColor clearColor];
} }
} }
%end %end
@@ -162,111 +160,48 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
} }
%end %end
// Search view
%hook YTSearchBarView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
// History search view
%hook YTSearchBoxView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
// Comment view
%hook YTCommentView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCreateCommentAccessoryView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCreateCommentTextView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
- (void)setTextColor:(UIColor *)color { // fix black text in #Shorts video's comment
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor whiteColor]) : %orig;
}
%end
%hook YTCommentDetailHeaderCell
- (void)didMoveToWindow {
%orig;
if (IS_DARK_APPEARANCE_ENABLED) {
// self.subviews[2].backgroundColor = [UIColor blackColor];
}
}
%end
%hook YTFormattedStringLabel // YT is werid...
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor clearColor]) : %orig;
}
%end
// Live chat comment
%hook YCHLiveChatActionPanelView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTEmojiTextView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YCHLiveChatView
- (void)didMoveToWindow {
%orig;
if (IS_DARK_APPEARANCE_ENABLED) {
// self.subviews[1].backgroundColor = [UIColor blackColor];
}
}
%end
%hook YTCollectionView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
//
%hook YTBackstageCreateRepostDetailView
- (void)setBackgroundColor:(UIColor *)color {
return IS_DARK_APPEARANCE_ENABLED ? %orig([UIColor blackColor]) : %orig;
}
%end
// Others // Others
%hook _ASDisplayView %hook _ASDisplayView
- (void)didMoveToWindow { - (void)didMoveToWindow {
%orig; %orig;
if (IS_DARK_APPEARANCE_ENABLED) { if (IS_DARK_APPEARANCE_ENABLED) {
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = [UIColor blackColor]; } //
UIResponder *responder = self.nextResponder;
UIViewController *closestViewController = nil;
while (responder != nil) {
if ([responder isKindOfClass:[UIViewController class]]) {
closestViewController = (UIViewController *)responder;
break;
}
responder = responder.nextResponder;
}
if ([NSStringFromClass([closestViewController class]) isEqualToString:@"YTActionSheetDialogViewController"] &&
(([NSStringFromClass([self.superview class]) isEqualToString:@"YTELMView"]) ||
[NSStringFromClass([self.superview class]) isEqualToString:@"_ASDisplayView"] ||
[NSStringFromClass([self.superview class]) isEqualToString:@"ELMView"])) {
self.backgroundColor = [UIColor clearColor];
}
// Save video bottom
if ([NSStringFromClass([closestViewController class]) isEqualToString:@"YTBottomSheetController"]) { self.backgroundColor = [UIColor clearColor]; }
// Subcriptions header
if ([NSStringFromClass([closestViewController class]) isEqualToString:@"YTMySubsFilterHeaderViewController"] &&
([NSStringFromClass([self.superview class]) isEqualToString:@"YTELMView"])) {
self.backgroundColor = [UIColor clearColor];
}
if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.backgroundColor = [UIColor blackColor]; } if ([self.accessibilityIdentifier isEqualToString:@"eml.live_chat_text_message"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = [UIColor blackColor]; } if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = [UIColor blackColor]; } if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = [UIColor blackColor]; } if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = [UIColor blackColor]; } if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = [UIColor blackColor]; } if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.comment_group_detail_container"]) { self.backgroundColor = [UIColor clearColor]; } if ([self.accessibilityIdentifier isEqualToString:@"id.comment.comment_group_detail_container"]) { self.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier hasPrefix:@"id.elements.components.overflow_menu_item_"]) { self.backgroundColor = [UIColor clearColor]; }
} }
} }
%end %end
@@ -289,7 +224,6 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
%orig; %orig;
if (IS_DARK_APPEARANCE_ENABLED) { if (IS_DARK_APPEARANCE_ENABLED) {
self.backgroundColor = raisedColor; self.backgroundColor = raisedColor;
// self.subviews[1].backgroundColor = raisedColor;
self.superview.backgroundColor = raisedColor; self.superview.backgroundColor = raisedColor;
} }
} }
@@ -304,6 +238,13 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
# pragma mark - OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e # pragma mark - OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
%group gOLEDKB %group gOLEDKB
%hook TUIEmojiSearchView
- (void)didMoveToWindow {
%orig;
self.backgroundColor = [UIColor blackColor];
}
%end
%hook UIPredictionViewController %hook UIPredictionViewController
- (void)loadView { - (void)loadView {
%orig; %orig;
@@ -347,4 +288,4 @@ UIColor* raisedColor = [UIColor colorWithRed:0.035 green:0.035 blue:0.035 alpha:
if (IS_ENABLED(@"oledKeyBoard_enabled")) { if (IS_ENABLED(@"oledKeyBoard_enabled")) {
%init(gOLEDKB); %init(gOLEDKB);
} }
} }
Submodule Tweaks/PSHeader deleted from b836acf9c1