From 0c0a98605d27e132699f9b66523fe29e1c9ce3da Mon Sep 17 00:00:00 2001 From: Stanislav Dmitrenko <7953703+avently@users.noreply.github.com> Date: Fri, 5 May 2023 16:39:25 +0300 Subject: [PATCH] android: progress indicator on migrations w/t confirmation (#2393) Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com> --- .../java/chat/simplex/app/MainActivity.kt | 26 +++++++++++++++++++ .../app/src/main/res/values/strings.xml | 3 +++ 2 files changed, 29 insertions(+) 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