Skip to content

Commit f9eef19

Browse files
committed
YouTube: Add Show video quality button
1 parent 9f8ade8 commit f9eef19

File tree

6 files changed

+70
-3
lines changed

6 files changed

+70
-3
lines changed

app/src/main/java/io/github/chsbuffer/revancedxposed/Helper.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.github.chsbuffer.revancedxposed
22

3-
import android.annotation.SuppressLint
43
import android.content.Context
54
import android.content.res.loader.ResourcesLoader
65
import android.content.res.loader.ResourcesProvider
@@ -124,7 +123,6 @@ fun Context.addModuleAssets() {
124123
resources.assets.callMethod("addAssetPath", XposedInit.modulePath)
125124
}
126125

127-
@SuppressLint("DiscouragedPrivateApi")
128126
fun injectHostClassLoaderToSelf(self: ClassLoader, host: ClassLoader) {
129127
val findClassMethod =
130128
XposedHelpers.findMethodExact(ClassLoader::class.java, "findClass", String::class.java)

app/src/main/java/io/github/chsbuffer/revancedxposed/youtube/YoutubeHook.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,6 @@ class YoutubeHook(
5555
app.addModuleAssets()
5656
StringRef.resources = app.resources
5757
StringRef.packageName = BuildConfig.APPLICATION_ID
58+
StringRef.packageName2 = app.packageName
5859
}
5960
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package io.github.chsbuffer.revancedxposed.youtube.video.quality
2+
3+
import app.revanced.extension.youtube.videoplayer.VideoQualityDialogButton
4+
import io.github.chsbuffer.revancedxposed.R
5+
import io.github.chsbuffer.revancedxposed.shared.misc.settings.preference.SwitchPreference
6+
import io.github.chsbuffer.revancedxposed.youtube.YoutubeHook
7+
import io.github.chsbuffer.revancedxposed.youtube.misc.playercontrols.ControlInitializer
8+
import io.github.chsbuffer.revancedxposed.youtube.misc.playercontrols.PlayerControls
9+
import io.github.chsbuffer.revancedxposed.youtube.misc.playercontrols.addBottomControl
10+
import io.github.chsbuffer.revancedxposed.youtube.misc.playercontrols.initializeBottomControl
11+
import io.github.chsbuffer.revancedxposed.youtube.misc.settings.PreferenceScreen
12+
13+
fun YoutubeHook.VideoQualityDialogButton() {
14+
dependsOn(
15+
::RememberVideoQuality,
16+
::PlayerControls,
17+
)
18+
19+
PreferenceScreen.PLAYER.addPreferences(
20+
SwitchPreference("revanced_video_quality_dialog_button"),
21+
)
22+
23+
addBottomControl(R.layout.revanced_video_quality_dialog_button_container)
24+
initializeBottomControl(
25+
ControlInitializer(
26+
R.id.revanced_video_quality_dialog_button_container,
27+
VideoQualityDialogButton::initializeButton,
28+
VideoQualityDialogButton::setVisibility,
29+
VideoQualityDialogButton::setVisibilityImmediate,
30+
VideoQualityDialogButton::setVisibilityNegatedImmediate
31+
)
32+
)
33+
}

app/src/main/java/io/github/chsbuffer/revancedxposed/youtube/video/quality/VideoQualityPatch.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ fun YoutubeHook.VideoQuality() {
1313
dependsOn(
1414
::RememberVideoQuality,
1515
::AdvancedVideoQualityMenu,
16+
::VideoQualityDialogButton
1617
)
1718

1819
PreferenceScreen.VIDEO.addPreferences(
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<merge xmlns:android="http://schemas.android.com/apk/res/android"
3+
xmlns:tools="http://schemas.android.com/tools"
4+
tools:ignore="MissingClass">
5+
6+
<FrameLayout
7+
android:id="@+id/revanced_video_quality_dialog_button_container"
8+
android:layout_width="48.0dip"
9+
android:layout_height="60.0dip">
10+
11+
<com.google.android.libraries.youtube.common.ui.TouchImageView
12+
android:id="@+id/revanced_video_quality_dialog_button"
13+
android:background="@null"
14+
android:clickable="true"
15+
android:focusable="true"
16+
android:layout_width="match_parent"
17+
android:layout_height="match_parent"
18+
android:longClickable="false"
19+
android:paddingTop="6.0dp"
20+
android:paddingBottom="0dp"
21+
android:scaleType="center"
22+
android:src="@drawable/revanced_video_quality_dialog_button_rectangle" />
23+
24+
<TextView
25+
android:id="@+id/revanced_video_quality_dialog_button_text"
26+
android:layout_width="wrap_content"
27+
android:layout_height="wrap_content"
28+
android:layout_gravity="center"
29+
android:fontFamily="sans-serif-condensed"
30+
android:paddingTop="5.5dp"
31+
android:textColor="@android:color/white"
32+
android:textSize="10dp" />
33+
</FrameLayout>
34+
</merge>

0 commit comments

Comments
 (0)