From a29501bb7c3c5a9a512a28caf8af31795b11d495 Mon Sep 17 00:00:00 2001 From: devthejo Date: Fri, 26 Sep 2025 14:49:54 +0200 Subject: [PATCH] fix(android): permissions wizard --- src/containers/PermissionWizard/HeroMode.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/containers/PermissionWizard/HeroMode.js b/src/containers/PermissionWizard/HeroMode.js index 62ff74c..35d4800 100644 --- a/src/containers/PermissionWizard/HeroMode.js +++ b/src/containers/PermissionWizard/HeroMode.js @@ -111,24 +111,23 @@ const HeroMode = () => { // Don't change step immediately to avoid race conditions console.log("Starting permission requests..."); - // Request battery optimization FIRST (opens Android Settings) - // This prevents the bubbling issue by handling Settings-based permissions before in-app dialogs - const batteryOptDisabled = await handleBatteryOptimization(); - console.log("Battery optimization disabled:", batteryOptDisabled); + // Request background location last (after user returns from Settings if needed) + const locationGranted = await requestPermissionLocationBackground(); + permissionsActions.setLocationBackground(locationGranted); + console.log("Location background permission:", locationGranted); // Request motion permission second const motionGranted = await requestPermissionMotion.requestPermission(); permissionsActions.setMotion(motionGranted); console.log("Motion permission:", motionGranted); - // Request background location last (after user returns from Settings if needed) - const locationGranted = await requestPermissionLocationBackground(); - permissionsActions.setLocationBackground(locationGranted); - console.log("Location background permission:", locationGranted); - - // Only set step to tracking after all permission requests are complete permissionWizardActions.setCurrentStep("tracking"); + await new Promise((resolve) => setTimeout(resolve, 2000)); + + const batteryOptDisabled = await handleBatteryOptimization(); + console.log("Battery optimization disabled:", batteryOptDisabled); + // Check if we should proceed to success immediately if (locationGranted && motionGranted && batteryOptDisabled) { permissionWizardActions.setHeroPermissionsGranted(true);