Merge branch 'mobile-fix-android-nav-bar' into beta

This commit is contained in:
Ammar Ahmed
2025-07-15 10:58:07 +05:00
7 changed files with 55 additions and 12 deletions

View File

@@ -23,13 +23,11 @@ import { Platform, View } from "react-native";
import ActionSheet from "react-native-actions-sheet";
import useGlobalSafeAreaInsets from "../../../hooks/use-global-safe-area-insets";
import { useSettingStore } from "../../../stores/use-setting-store";
import { PremiumToast } from "../../premium/premium-toast";
import { Toast } from "../../toast";
import { useAppState } from "../../../hooks/use-app-state";
import SettingsService from "../../../services/settings";
import { useUserStore } from "../../../stores/use-user-store";
import { getContainerBorder } from "../../../utils/colors";
import { PremiumToast } from "../../premium/premium-toast";
import { Toast } from "../../toast";
import { NotesnookModule } from "../../../utils/notesnook-module";
/**
*
* @param {any} param0
@@ -63,6 +61,10 @@ const SheetWrapper = ({
const locked = useUserStore((state) => state.appLocked);
let width = dimensions.width > 600 ? 600 : 500;
const isGestureNavigationEnabled =
NotesnookModule.isGestureNavigationEnabled();
console.log(isGestureNavigationEnabled);
const style = React.useMemo(() => {
return {
@@ -77,14 +79,18 @@ const SheetWrapper = ({
borderBottomRightRadius: 0,
borderBottomLeftRadius: 0,
...getContainerBorder(colors.primary.border, 0.5),
borderBottomWidth: 0
borderBottomWidth: 0,
paddingBottom: isGestureNavigationEnabled
? insets.bottom
: insets.bottom || 48
};
}, [
colors.primary.background,
colors.primary.border,
largeTablet,
smallTablet,
width
width,
insets.bottom
]);
const _onOpen = () => {

View File

@@ -421,7 +421,6 @@ export const FluidPanelsView = React.memo(
height: "100%",
width: "100%",
backgroundColor: colors.primary.background,
paddingBottom: Platform.OS === "android" ? insets?.bottom : 0,
marginRight:
orientation === "LANDSCAPE-RIGHT" && Platform.OS === "ios"
? insets.right

View File

@@ -96,14 +96,16 @@ export const EditorWrapper = ({ widths }: { widths: any }) => {
minHeight: "100%",
backgroundColor: toolBarColors.primary.background,
borderLeftWidth: DDS.isTab ? 1 : 0,
borderLeftColor: DDS.isTab ? colors.secondary.background : "transparent"
borderLeftColor: DDS.isTab
? colors.secondary.background
: "transparent",
paddingBottom: insets.bottom
}}
>
{loading || !introCompleted ? null : (
<KeyboardAvoidingViewIOS
behavior="padding"
style={{
marginBottom: getMarginBottom(),
backgroundColor: colors.primary.background,
flex: 1
}}

View File

@@ -43,7 +43,7 @@ export function changeSystemBarColors() {
const isDark = useThemeStore.getState().colorScheme === "dark";
changeNavigationBarColor(
currTheme.scopes.base.primary.background,
isDark,
!isDark,
false
);
StatusBar.setBackgroundColor("transparent" as any);

View File

@@ -40,6 +40,7 @@ interface NotesnookModuleInterface {
hasWidgetNote: (noteId: string) => Promise<boolean>;
updateWidgetNote: (noteId: string, data: string) => void;
updateReminderWidget: () => void;
isGestureNavigationEnabled: () => boolean;
}
export const NotesnookModule: NotesnookModuleInterface = Platform.select({
@@ -59,7 +60,8 @@ export const NotesnookModule: NotesnookModuleInterface = Platform.select({
getWidgetNotes: () => {},
hasWidgetNote: () => {},
updateWidgetNote: () => {},
updateReminderWidget: () => {}
updateReminderWidget: () => {},
isGestureNavigationEnabled: () => true
},
android: NativeModules.NNativeModule
});

View File

@@ -7,7 +7,9 @@ import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.os.Build;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
import android.view.WindowManager;
import android.widget.RemoteViews;
@@ -217,4 +219,24 @@ public class RCTNNativeModule extends ReactContextBaseJavaModule {
wm.notifyAppWidgetViewDataChanged(id, R.id.widget_list_view);
}
}
@ReactMethod(isBlockingSynchronousMethod = true)
public boolean isGestureNavigationEnabled() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
try {
String navBarMode = Settings.Secure.getString(
mContext.getContentResolver(),
"navigation_mode"
);
return "2".equals(navBarMode);
} catch (Exception e) {
return false;
}
} else {
return false;
}
}
}

View File

@@ -0,0 +1,12 @@
diff --git a/node_modules/react-native-actions-sheet/dist/src/index.js b/node_modules/react-native-actions-sheet/dist/src/index.js
index 0e124da..3703153 100644
--- a/node_modules/react-native-actions-sheet/dist/src/index.js
+++ b/node_modules/react-native-actions-sheet/dist/src/index.js
@@ -1088,6 +1088,7 @@ export default forwardRef(function ActionSheet(_a, ref) {
* Always true, it causes issue with keyboard handling.
*/
statusBarTranslucent: true,
+ navigationBarTranslucent: true
}
: {
testID: ((_b = props.testIDs) === null || _b === void 0 ? void 0 : _b.root) || props.testID,