From ceeb6f271e78dbe6e93fc8817bb8770684ce2d88 Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Wed, 17 Jan 2024 12:23:34 +0500 Subject: [PATCH] mobile: migrate app lock --- apps/mobile/app/app.tsx | 5 +- .../app/components/dialog/base-dialog.tsx | 3 +- .../mobile/app/components/dialog/functions.ts | 1 + apps/mobile/app/components/intro/index.js | 16 +- apps/mobile/app/components/ui/sheet/index.js | 2 +- apps/mobile/app/hooks/use-app-events.tsx | 24 +- .../mobile/app/navigation/navigation-stack.js | 1 - apps/mobile/app/screens/settings/app-lock.js | 194 +-- .../app/screens/settings/components.tsx | 6 +- .../app/screens/settings/picker/pickers.jsx | 20 + .../app/screens/settings/settings-data.tsx | 103 +- apps/mobile/app/services/settings.ts | 50 +- apps/mobile/app/stores/use-setting-store.ts | 5 +- apps/mobile/package-lock.json | 835 ++++++------ apps/web/package-lock.json | 1129 +---------------- packages/core/package-lock.json | 6 +- packages/editor-mobile/package-lock.json | 22 +- 17 files changed, 689 insertions(+), 1733 deletions(-) diff --git a/apps/mobile/app/app.tsx b/apps/mobile/app/app.tsx index e6c8897e3..fb951c0a3 100644 --- a/apps/mobile/app/app.tsx +++ b/apps/mobile/app/app.tsx @@ -53,10 +53,11 @@ import { themeTrpcClient } from "./screens/settings/theme-selector"; const App = () => { const init = useAppEvents(); useEffect(() => { - const { appLockMode } = SettingsService.get(); - if (appLockMode && appLockMode !== "none") { + const { appLockEnabled, appLockMode } = SettingsService.get(); + if (appLockEnabled || appLockMode !== "none") { useUserStore.getState().lockApp(true); } + //@ts-ignore globalThis["IS_MAIN_APP_RUNNING"] = true; init(); diff --git a/apps/mobile/app/components/dialog/base-dialog.tsx b/apps/mobile/app/components/dialog/base-dialog.tsx index edfe45a6d..f6be7ea6b 100644 --- a/apps/mobile/app/components/dialog/base-dialog.tsx +++ b/apps/mobile/app/components/dialog/base-dialog.tsx @@ -87,7 +87,8 @@ const BaseDialog = ({ useEffect(() => { if (useUserStore.getState().disableAppLockRequests) return; - if (SettingsService.get().appLockMode === "background") { + + if (SettingsService.canLockAppInBackground()) { if (appState === "background") { setIntervalVisible(false); if (useUserStore.getState().appLocked) { diff --git a/apps/mobile/app/components/dialog/functions.ts b/apps/mobile/app/components/dialog/functions.ts index e1c05c06f..8aaa1980e 100644 --- a/apps/mobile/app/components/dialog/functions.ts +++ b/apps/mobile/app/components/dialog/functions.ts @@ -42,6 +42,7 @@ type DialogInfo = { inputPlaceholder: string; defaultValue: string; context: "global" | "local"; + secureTextEntry?: boolean; }; export function presentDialog(data: Partial): void { diff --git a/apps/mobile/app/components/intro/index.js b/apps/mobile/app/components/intro/index.js index 449eb6f7c..6972edc33 100644 --- a/apps/mobile/app/components/intro/index.js +++ b/apps/mobile/app/components/intro/index.js @@ -36,6 +36,10 @@ import { SIZE } from "../../utils/size"; import { Button } from "../ui/button"; import Heading from "../ui/typography/heading"; import Paragraph from "../ui/typography/paragraph"; +import Navigation from "../../services/navigation"; +import { eOpenLoginDialog } from "../../utils/events"; +import { AuthMode } from "../auth"; +import { eSendEvent } from "../../services/event-manager"; const Intro = ({ navigation }) => { const { colors } = useThemeColors(); @@ -193,9 +197,15 @@ const Intro = ({ navigation }) => {