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