diff --git a/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt b/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt index 783b4a1bb4..a3bb82218c 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/MainActivity.kt @@ -30,6 +30,7 @@ import chat.simplex.app.views.SplashView import chat.simplex.app.views.call.ActiveCallView import chat.simplex.app.views.call.IncomingCallAlertView import chat.simplex.app.views.chat.ChatView +import chat.simplex.app.views.chat.group.ProgressIndicator import chat.simplex.app.views.chatlist.* import chat.simplex.app.views.database.DatabaseErrorView import chat.simplex.app.views.helpers.* @@ -443,7 +444,9 @@ fun MainPage( Box { val onboarding = chatModel.onboardingStage.value val userCreated = chatModel.userCreated.value + var showInitializationView by remember { mutableStateOf(false) } when { + chatModel.chatDbStatus.value == null && showInitializationView -> InitializationView() showChatDatabaseError -> { chatModel.chatDbStatus.value?.let { DatabaseErrorView(chatModel.chatDbStatus, chatModel.controller.appPrefs) @@ -525,6 +528,13 @@ fun MainPage( val invitation = chatModel.activeCallInvitation.value if (invitation != null) IncomingCallAlertView(invitation, chatModel) AlertManager.shared.showInView() + + LaunchedEffect(Unit) { + delay(1000) + if (chatModel.chatDbStatus.value == null) { + showInitializationView = true + } + } } DisposableEffectOnRotate { @@ -536,6 +546,22 @@ fun MainPage( } } +@Composable +private fun InitializationView() { + Box(Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Column(horizontalAlignment = Alignment.CenterHorizontally) { + CircularProgressIndicator( + Modifier + .padding(bottom = DEFAULT_PADDING) + .size(30.dp), + color = MaterialTheme.colors.secondary, + strokeWidth = 2.5.dp + ) + Text(stringResource(R.string.opening_database)) + } + } +} + fun processNotificationIntent(intent: Intent?, chatModel: ChatModel) { val userId = getUserIdFromIntent(intent) when (intent?.action) { diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index edad948c4f..e8628988d0 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -11,6 +11,9 @@ You will join a group this link refers to and connect to its group members. Connect + + Opening database… + connected error