diff --git a/app/src/main/java/com/shatyuka/zhiliao/Hooks.java b/app/src/main/java/com/shatyuka/zhiliao/Hooks.java
index 3491499..5b9ec23 100644
--- a/app/src/main/java/com/shatyuka/zhiliao/Hooks.java
+++ b/app/src/main/java/com/shatyuka/zhiliao/Hooks.java
@@ -23,6 +23,7 @@
import com.shatyuka.zhiliao.hooks.NavButton;
import com.shatyuka.zhiliao.hooks.NavRes;
import com.shatyuka.zhiliao.hooks.NextAnswer;
+import com.shatyuka.zhiliao.hooks.FullScreen;
import com.shatyuka.zhiliao.hooks.RedDot;
import com.shatyuka.zhiliao.hooks.SearchAd;
import com.shatyuka.zhiliao.hooks.ShareAd;
@@ -66,6 +67,7 @@ public class Hooks {
new HeadZoneBanner(),
new MineHybridView(),
new FollowButton(),
+ new FullScreen(),
};
public static void init(final ClassLoader classLoader) {
diff --git a/app/src/main/java/com/shatyuka/zhiliao/hooks/FullScreen.java b/app/src/main/java/com/shatyuka/zhiliao/hooks/FullScreen.java
new file mode 100644
index 0000000..99941ad
--- /dev/null
+++ b/app/src/main/java/com/shatyuka/zhiliao/hooks/FullScreen.java
@@ -0,0 +1,37 @@
+package com.shatyuka.zhiliao.hooks;
+
+import com.shatyuka.zhiliao.Helper;
+
+import de.robv.android.xposed.XC_MethodHook;
+import de.robv.android.xposed.XposedHelpers;
+
+public class FullScreen implements IHook {
+ static Class> ClearScreenHelper_lambda;
+
+ @Override
+ public String getName() {
+ return "禁止进入全屏模式";
+ }
+
+ @Override
+ public void init(ClassLoader classLoader) throws Throwable {
+ try {
+ ClearScreenHelper_lambda = classLoader.loadClass("com.zhihu.android.feature.short_container_feature.ui.widget.toolbar.clearscreen.d$c");
+ } catch (ClassNotFoundException ignored) {
+ }
+ }
+
+ @Override
+ public void hook() throws Throwable {
+ if (ClearScreenHelper_lambda != null) {
+ XposedHelpers.findAndHookMethod(ClearScreenHelper_lambda, "invoke", new XC_MethodHook() {
+ @Override
+ protected void beforeHookedMethod(MethodHookParam param) {
+ if (Helper.prefs.getBoolean("switch_fullscreen", false)) {
+ param.setResult(null);
+ }
+ }
+ });
+ }
+ }
+}
diff --git a/app/src/main/java/com/shatyuka/zhiliao/hooks/ZhihuPreference.java b/app/src/main/java/com/shatyuka/zhiliao/hooks/ZhihuPreference.java
index c0288ea..8cef249 100644
--- a/app/src/main/java/com/shatyuka/zhiliao/hooks/ZhihuPreference.java
+++ b/app/src/main/java/com/shatyuka/zhiliao/hooks/ZhihuPreference.java
@@ -492,6 +492,7 @@ protected Object replaceHookedMethod(MethodHookParam param) throws Throwable {
setIcon.invoke(findPreference.invoke(thisObject, "switch_colormode"), Helper.modRes.getDrawable(R.drawable.ic_color));
setIcon.invoke(switch_tag, Helper.modRes.getDrawable(R.drawable.ic_label));
setIcon.invoke(findPreference.invoke(thisObject, "switch_statusbar"), Helper.modRes.getDrawable(R.drawable.ic_fullscreen));
+ setIcon.invoke(findPreference.invoke(thisObject, "switch_fullscreen"), Helper.modRes.getDrawable(R.drawable.ic_fullscreen_exit));
setIcon.invoke(switch_thirdpartylogin, Helper.modRes.getDrawable(R.drawable.ic_login));
setIcon.invoke(switch_livebutton, Helper.modRes.getDrawable(R.drawable.ic_live_tv));
setIcon.invoke(switch_reddot, Helper.modRes.getDrawable(R.drawable.ic_mark_chat_unread));
diff --git a/app/src/main/res/drawable/ic_fullscreen_exit.xml b/app/src/main/res/drawable/ic_fullscreen_exit.xml
new file mode 100644
index 0000000..1c2e25f
--- /dev/null
+++ b/app/src/main/res/drawable/ic_fullscreen_exit.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/app/src/main/res/xml/preferences_zhihu.xml b/app/src/main/res/xml/preferences_zhihu.xml
index 431a77c..dfc37a5 100644
--- a/app/src/main/res/xml/preferences_zhihu.xml
+++ b/app/src/main/res/xml/preferences_zhihu.xml
@@ -143,6 +143,12 @@
android:key="switch_statusbar"
android:title="状态栏沉浸"
android:summary="沉浸式状态栏"/>
+