Skip to content

Commit

Permalink
CHANGELOG: Return of Hide Navbar
Browse files Browse the repository at this point in the history
  • Loading branch information
siavash79 committed Dec 13, 2023
1 parent ccc3f3a commit 4209b75
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import static de.robv.android.xposed.XposedHelpers.getObjectField;
import static de.robv.android.xposed.XposedHelpers.setAdditionalInstanceField;
import static de.robv.android.xposed.XposedHelpers.setObjectField;
import static sh.siava.pixelxpert.modpacks.XPrefs.Xprefs;

import android.content.Context;
import android.graphics.Color;
Expand All @@ -23,7 +24,6 @@
import de.robv.android.xposed.callbacks.XC_LoadPackage;
import sh.siava.pixelxpert.modpacks.Constants;
import sh.siava.pixelxpert.modpacks.XPLauncher;
import sh.siava.pixelxpert.modpacks.XPrefs;
import sh.siava.pixelxpert.modpacks.XposedModPack;
import sh.siava.pixelxpert.modpacks.launcher.TaskbarActivator;
import sh.siava.pixelxpert.modpacks.utils.Helpers;
Expand Down Expand Up @@ -53,28 +53,34 @@ public class GestureNavbarManager extends XposedModPack {
private boolean colorReplaced = false;
private static boolean navPillColorAccent = false;
private static final int mLightColor = Color.parseColor("#EBffffff"), mDarkColor = Color.parseColor("#99000000"); //original navbar colors
private static boolean HideNavbar = false;
private Object NavigationBar;
//endregion

public GestureNavbarManager(Context context) {
super(context);
}

public void updatePrefs(String... Key) {
if (XPrefs.Xprefs == null) return;
if (Xprefs == null) return;

//region Back gesture
leftEnabled = XPrefs.Xprefs.getBoolean("BackFromLeft", true);
rightEnabled = XPrefs.Xprefs.getBoolean("BackFromRight", true);
backGestureHeightFractionLeft = XPrefs.Xprefs.getInt("BackLeftHeight", 100) / 100f;
backGestureHeightFractionRight = XPrefs.Xprefs.getInt("BackRightHeight", 100) / 100f;
leftEnabled = Xprefs.getBoolean("BackFromLeft", true);
rightEnabled = Xprefs.getBoolean("BackFromRight", true);
backGestureHeightFractionLeft = Xprefs.getInt("BackLeftHeight", 100) / 100f;
backGestureHeightFractionRight = Xprefs.getInt("BackRightHeight", 100) / 100f;
//endregion

//region hide navbar
HideNavbar = Xprefs.getBoolean("HideNavbar", false);
//endregion

//region pill size
widthFactor = XPrefs.Xprefs.getInt("GesPillWidthModPos", 50) * .02f;
GesPillHeightFactor = XPrefs.Xprefs.getInt("GesPillHeightFactor", 100);
widthFactor = Xprefs.getInt("GesPillWidthModPos", 50) * .02f;
GesPillHeightFactor = Xprefs.getInt("GesPillHeightFactor", 100);

int taskbarMode = TaskbarActivator.TASKBAR_DEFAULT;
String taskbarModeStr = XPrefs.Xprefs.getString("taskBarMode", "0");
String taskbarModeStr = Xprefs.getString("taskBarMode", "0");
try {
taskbarMode = Integer.parseInt(taskbarModeStr);
} catch (Exception ignored) {
Expand All @@ -85,17 +91,18 @@ public void updatePrefs(String... Key) {
}

if (Key.length > 0) {
refreshNavbar();

switch (Key[0]) {
case "GesPillWidthModPos":
case "GesPillHeightFactor":
refreshNavbar();
case "HideNavbar":
setNavbarVisibility();
break;
}
}
//endregion

//region pill color
navPillColorAccent = XPrefs.Xprefs.getBoolean("navPillColorAccent", false);
navPillColorAccent = Xprefs.getBoolean("navPillColorAccent", false);
//endregion
}

Expand All @@ -114,12 +121,22 @@ private void refreshNavbar() {
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
if (!lpparam.packageName.equals(listenPackage)) return;

Class<?> NavigationBarClass = findClass("com.android.systemui.navigationbar.NavigationBar", lpparam.classLoader);
Class<?> NavigationBarInflaterViewClass = findClass("com.android.systemui.navigationbar.NavigationBarInflaterView", lpparam.classLoader);
Class<?> NavigationHandleClass = findClass("com.android.systemui.navigationbar.gestural.NavigationHandle", lpparam.classLoader);
Class<?> EdgeBackGestureHandlerClass = findClassIfExists("com.android.systemui.navigationbar.gestural.EdgeBackGestureHandler", lpparam.classLoader);
Class<?> NavigationBarEdgePanelClass = findClassIfExists("com.android.systemui.navigationbar.gestural.NavigationBarEdgePanel", lpparam.classLoader);
Class<?> BackPanelControllerClass = findClass("com.android.systemui.navigationbar.gestural.BackPanelController", lpparam.classLoader);

hookAllMethods(NavigationBarClass, "onViewAttached", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
NavigationBar = param.thisObject;

setNavbarVisibility();
}
});

//region back gesture
//A14
hookAllConstructors(EdgeBackGestureHandlerClass, new XC_MethodHook() {
Expand Down Expand Up @@ -248,6 +265,16 @@ protected void afterHookedMethod(MethodHookParam param) throws Throwable {

}

private void setNavbarVisibility() {
((View) getObjectField(
NavigationBar,
"mFrame")
).setAlpha(
HideNavbar
? 0
: 1);
}

//region Back gesture
private boolean notWithinInsets(float x, float y, Point mDisplaySize, float mBottomGestureHeight) {
boolean isLeftSide = x < (mDisplaySize.x / 3f);
Expand Down
8 changes: 8 additions & 0 deletions app/src/main/res/xml/nav_prefs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,14 @@
android:title="@string/hide_navbar_title"
app:iconSpaceReserved="false" />

<sh.siava.pixelxpert.ui.preferences.MaterialSwitchPreference
android:defaultValue="false"
android:key="HideNavbar"
android:summaryOff="@string/general_off"
android:summaryOn="@string/general_on"
android:title="@string/hide_navbar_title"
app:iconSpaceReserved="false" />

<sh.siava.pixelxpert.ui.preferences.MaterialListPreference
android:defaultValue="0"
android:entries="@array/taskbar_option_names"
Expand Down

0 comments on commit 4209b75

Please sign in to comment.