From c8eea0a0e4c2327193c5ed7182c191577cf4dc8b Mon Sep 17 00:00:00 2001 From: Ammar Ahmed Date: Tue, 5 Dec 2023 08:47:17 +0500 Subject: [PATCH] mobile: stop bg fetch events when toggled off --- apps/mobile/app/screens/settings/section-item.tsx | 2 +- apps/mobile/app/screens/settings/settings-data.tsx | 10 +++++++++- apps/mobile/app/services/background-sync.ts | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/mobile/app/screens/settings/section-item.tsx b/apps/mobile/app/screens/settings/section-item.tsx index 164025f33..664b175e4 100644 --- a/apps/mobile/app/screens/settings/section-item.tsx +++ b/apps/mobile/app/screens/settings/section-item.tsx @@ -57,10 +57,10 @@ const _SectionItem = ({ item }: { item: SettingSection }) => { return; } if (!item.property) return; + item.onChange?.(!settings[item.property]); SettingsService.set({ [item.property]: !settings[item.property] }); - item.onChange?.(!settings[item.property]); }; const styles = diff --git a/apps/mobile/app/screens/settings/settings-data.tsx b/apps/mobile/app/screens/settings/settings-data.tsx index 46950b80d..bf5b8f2d4 100644 --- a/apps/mobile/app/screens/settings/settings-data.tsx +++ b/apps/mobile/app/screens/settings/settings-data.tsx @@ -70,6 +70,7 @@ import { SettingSection } from "./types"; import { getTimeLeft } from "./user-section"; import { AppLockPassword } from "../../components/dialogs/applock-password"; import { validateAppLockPassword } from "../../common/database/encryption"; +import { BackgroundSync } from "../../services/background-sync"; type User = any; export const settingsGroups: SettingSection[] = [ @@ -406,7 +407,14 @@ export const settingsGroups: SettingSection[] = [ description: "Periodically wake up the app in background to sync your notes from other devices.", type: "switch", - property: "backgroundSync" + property: "backgroundSync", + onChange: (value) => { + if (value) { + BackgroundSync.start(); + } else { + BackgroundSync.stop(); + } + } }, { id: "sync-issues-fix", diff --git a/apps/mobile/app/services/background-sync.ts b/apps/mobile/app/services/background-sync.ts index c8fae2308..f30d42fd6 100644 --- a/apps/mobile/app/services/background-sync.ts +++ b/apps/mobile/app/services/background-sync.ts @@ -87,6 +87,7 @@ async function start() { onEvent, onTimeout ); + DatabaseLogger.info(`[BackgroundFetch] configure status: ${status}`); } @@ -159,7 +160,10 @@ const registerHeadlessTask = () => ); export const BackgroundSync = { start, - registerHeadlessTask + registerHeadlessTask, + stop: () => { + BackgroundFetch.stop(); + } }; export default { doInBackground };