android: onboarding notifications alert and restoring state (#2408)

* android: onboarding notifications alert and restoring state

* add comment

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
This commit is contained in:
Stanislav Dmitrenko 2023-05-08 15:16:07 +03:00 committed by GitHub
parent da7c408686
commit 27762492d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 13 additions and 4 deletions

View File

@ -78,9 +78,12 @@ class SimplexApp: Application(), LifecycleEventObserver {
savedOnboardingStage savedOnboardingStage
} }
chatController.startChat(user) chatController.startChat(user)
chatController.showBackgroundServiceNoticeIfNeeded() // Prevents from showing "Enable notifications" alert when onboarding wasn't complete yet
if (appPreferences.notificationsMode.get() == NotificationsMode.SERVICE.name) if (chatModel.onboardingStage.value == OnboardingStage.OnboardingComplete) {
SimplexService.start(applicationContext) chatController.showBackgroundServiceNoticeIfNeeded()
if (appPreferences.notificationsMode.get() == NotificationsMode.SERVICE.name)
SimplexService.start(applicationContext)
}
} }
} }
} }

View File

@ -127,12 +127,15 @@ fun createProfile(chatModel: ChatModel, displayName: String, fullName: String, c
chatModel.controller.startChat(user) chatModel.controller.startChat(user)
chatModel.controller.appPrefs.onboardingStage.set(OnboardingStage.Step3_CreateSimpleXAddress) chatModel.controller.appPrefs.onboardingStage.set(OnboardingStage.Step3_CreateSimpleXAddress)
chatModel.onboardingStage.value = OnboardingStage.Step3_CreateSimpleXAddress chatModel.onboardingStage.value = OnboardingStage.Step3_CreateSimpleXAddress
SimplexApp.context.chatModel.controller.ntfManager.createNtfChannelsMaybeShowAlert()
} else { } else {
val users = chatModel.controller.listUsers() val users = chatModel.controller.listUsers()
chatModel.users.clear() chatModel.users.clear()
chatModel.users.addAll(users) chatModel.users.addAll(users)
chatModel.controller.getUserChatData() chatModel.controller.getUserChatData()
// the next two lines are only needed for failure case when because of the database error the app gets stuck on on-boarding screen,
// this will get it unstuck.
chatModel.controller.appPrefs.onboardingStage.set(OnboardingStage.OnboardingComplete)
chatModel.onboardingStage.value = OnboardingStage.OnboardingComplete
close() close()
} }
} }

View File

@ -47,6 +47,9 @@ fun SetNotificationsMode(m: ChatModel) {
} }
Spacer(Modifier.fillMaxHeight().weight(1f)) Spacer(Modifier.fillMaxHeight().weight(1f))
} }
LaunchedEffect(Unit) {
m.controller.ntfManager.createNtfChannelsMaybeShowAlert()
}
} }
@Composable @Composable