diff --git a/apps/mobile/app/hooks/use-feature-manager.ts b/apps/mobile/app/hooks/use-feature-manager.ts
index ed625760e..f173477fa 100644
--- a/apps/mobile/app/hooks/use-feature-manager.ts
+++ b/apps/mobile/app/hooks/use-feature-manager.ts
@@ -69,36 +69,6 @@ export default function useFeatureManager() {
db.settings.setDefaultTag(undefined);
}
}
- const isAppLocked = useUserStore.getState().appLocked;
- let unsub: () => void;
-
- if (isAppLocked) {
- unsub = useUserStore.subscribe((state) => {
- if (!state.appLocked && !features?.appLock?.isAllowed) {
- unsub();
- SettingsService.setProperty("appLockEnabled", false);
- setTimeout(() => {
- presentDialog({
- title: "App Lock Disabled",
- paragraph: features?.appLock?.error,
- positiveText: strings.upgrade(),
- negativeText: strings.cancel(),
- positivePress: async () => {
- eSendEvent(eCloseSimpleDialog);
- if (SettingsService.getProperty("serverUrls")) return;
- Navigation.navigate("PayWall", {
- context: "logged-in"
- });
- }
- });
- }, 1000);
- }
- });
- }
-
- return () => {
- unsub?.();
- };
}, [features, plan]);
return true;
diff --git a/apps/mobile/app/stores/use-user-store.ts b/apps/mobile/app/stores/use-user-store.ts
index cc5c74fc0..0fe90866b 100644
--- a/apps/mobile/app/stores/use-user-store.ts
+++ b/apps/mobile/app/stores/use-user-store.ts
@@ -17,8 +17,15 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see .
*/
+import { isFeatureAvailable } from "@notesnook/common";
import { Profile, User } from "@notesnook/core";
import create, { State } from "zustand";
+import SettingsService from "../services/settings";
+import { presentDialog } from "../components/dialog/functions";
+import { strings } from "@notesnook/intl";
+import { eSendEvent } from "../services/event-manager";
+import { eCloseSimpleDialog } from "../utils/events";
+import Navigation from "../services/navigation";
export enum SyncStatus {
Passed,
@@ -57,6 +64,28 @@ export const useUserStore = create((set) => ({
setLastSynced: (lastSynced) => set({ lastSynced: lastSynced }),
lockApp: (appLocked) => {
set({ appLocked });
+ if (!appLocked) {
+ isFeatureAvailable("appLock").then((feature) => {
+ if (!feature.isAllowed) {
+ SettingsService.setProperty("appLockEnabled", false);
+ setTimeout(() => {
+ presentDialog({
+ title: "App Lock Disabled",
+ paragraph: feature?.error,
+ positiveText: strings.upgrade(),
+ negativeText: strings.cancel(),
+ positivePress: async () => {
+ eSendEvent(eCloseSimpleDialog);
+ if (SettingsService.getProperty("serverUrls")) return;
+ Navigation.navigate("PayWall", {
+ context: "logged-in"
+ });
+ }
+ });
+ }, 1000);
+ }
+ });
+ }
},
lastSyncStatus: SyncStatus.Never,
disableAppLockRequests: false,