diff --git a/apps/android/app/build.gradle b/apps/android/app/build.gradle index ca49f575c9..dce7c7f4d6 100644 --- a/apps/android/app/build.gradle +++ b/apps/android/app/build.gradle @@ -11,7 +11,7 @@ android { applicationId "chat.simplex.app" minSdk 29 targetSdk 32 - versionCode 41 + versionCode 42 versionName "3.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/database/ChatArchiveView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/database/ChatArchiveView.kt index f3c4fb5a66..b68a82b215 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/database/ChatArchiveView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/database/ChatArchiveView.kt @@ -64,7 +64,7 @@ fun ChatArchiveLayout( style = MaterialTheme.typography.h1 ) - SettingsSectionView(stringResource(R.string.chat_database_section)) { + SettingsSectionView(stringResource(R.string.chat_archive_section)) { SettingsActionItem( Icons.Outlined.IosShare, stringResource(R.string.save_archive), diff --git a/apps/android/app/src/main/java/chat/simplex/app/views/database/DatabaseView.kt b/apps/android/app/src/main/java/chat/simplex/app/views/database/DatabaseView.kt index e3d55c164b..8a23e304e8 100644 --- a/apps/android/app/src/main/java/chat/simplex/app/views/database/DatabaseView.kt +++ b/apps/android/app/src/main/java/chat/simplex/app/views/database/DatabaseView.kt @@ -43,7 +43,7 @@ fun DatabaseView( ) { val context = LocalContext.current val progressIndicator = remember { mutableStateOf(false) } - val runChat = remember { mutableStateOf(false) } + val runChat = remember { mutableStateOf(m.chatRunning.value ?: true) } val prefs = m.controller.appPrefs val chatArchiveName = remember { mutableStateOf(prefs.chatArchiveName.get()) } val chatArchiveTime = remember { mutableStateOf(prefs.chatArchiveTime.get()) } @@ -69,7 +69,7 @@ fun DatabaseView( chatArchiveName, chatArchiveTime, chatLastStart, - startChat = { startChat(m, runChat) }, + startChat = { startChat(m, runChat, chatLastStart) }, stopChatAlert = { stopChatAlert(m, runChat) }, exportArchive = { exportArchive(context, m, progressIndicator, chatArchiveName, chatArchiveTime, chatArchiveFile, saveArchiveLauncher) }, deleteChatAlert = { deleteChatAlert(m, progressIndicator) }, @@ -230,13 +230,15 @@ fun SettingsSectionFooter(text: String) { Text(text, color = HighOrLowlight, modifier = Modifier.padding(start = 16.dp, top = 5.dp).fillMaxWidth(0.9F), fontSize = 12.sp) } -private fun startChat(m: ChatModel, runChat: MutableState) { +private fun startChat(m: ChatModel, runChat: MutableState, chatLastStart: MutableState) { withApi { try { m.controller.apiStartChat() runChat.value = true m.chatRunning.value = true - m.controller.appPrefs.chatLastStart.set(Clock.System.now()) + val ts = Clock.System.now() + m.controller.appPrefs.chatLastStart.set(ts) + chatLastStart.value = ts } catch (e: Error) { runChat.value = false AlertManager.shared.showAlertMsg(generalGetString(R.string.error_starting_chat), e.toString()) diff --git a/apps/android/app/src/main/res/values-ru/strings.xml b/apps/android/app/src/main/res/values-ru/strings.xml index 9df9a051a9..1d048026ad 100644 --- a/apps/android/app/src/main/res/values-ru/strings.xml +++ b/apps/android/app/src/main/res/values-ru/strings.xml @@ -479,6 +479,7 @@ Архив чата + АРХИВ ЧАТА Сохранить архив Удалить архив Дата создания %1$s diff --git a/apps/android/app/src/main/res/values/strings.xml b/apps/android/app/src/main/res/values/strings.xml index eb30fbb86c..bdcf8e66bb 100644 --- a/apps/android/app/src/main/res/values/strings.xml +++ b/apps/android/app/src/main/res/values/strings.xml @@ -481,6 +481,7 @@ Chat archive + CHAT ARCHIVE Save archive Delete archive Created on %1$s diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index c5004171b4..eeb8c7778c 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -18,12 +18,12 @@ 5C063D2727A4564100AEC577 /* ChatPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C063D2627A4564100AEC577 /* ChatPreviewView.swift */; }; 5C116CDC27AABE0400E66D01 /* ContactRequestView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */; }; 5C13730B28156D2700F43030 /* ContactConnectionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C13730A28156D2700F43030 /* ContactConnectionView.swift */; }; - 5C14247E286DAC1D0004E3EE /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C142479286DAC1D0004E3EE /* libffi.a */; }; - 5C14247F286DAC1D0004E3EE /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C14247A286DAC1D0004E3EE /* libgmpxx.a */; }; - 5C142480286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C14247B286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj-ghc8.10.7.a */; }; - 5C142481286DAC1D0004E3EE /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C14247C286DAC1D0004E3EE /* libgmp.a */; }; - 5C142482286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C14247D286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj.a */; }; 5C1A4C1E27A715B700EAD5AD /* ChatItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */; }; + 5C1B209E2879B553002FF534 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1B20992879B553002FF534 /* libgmpxx.a */; }; + 5C1B209F2879B553002FF534 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1B209A2879B553002FF534 /* libgmp.a */; }; + 5C1B20A02879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1B209B2879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T-ghc8.10.7.a */; }; + 5C1B20A12879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1B209C2879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T.a */; }; + 5C1B20A22879B553002FF534 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C1B209D2879B553002FF534 /* libffi.a */; }; 5C2E260727A2941F00F70299 /* SimpleXAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260627A2941F00F70299 /* SimpleXAPI.swift */; }; 5C2E260B27A30CFA00F70299 /* ChatListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260A27A30CFA00F70299 /* ChatListView.swift */; }; 5C2E260F27A30FDC00F70299 /* ChatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C2E260E27A30FDC00F70299 /* ChatView.swift */; }; @@ -191,12 +191,12 @@ 5C116CDB27AABE0400E66D01 /* ContactRequestView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactRequestView.swift; sourceTree = ""; }; 5C13730A28156D2700F43030 /* ContactConnectionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactConnectionView.swift; sourceTree = ""; }; 5C13730C2815740A00F43030 /* DebugJSON.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = DebugJSON.playground; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; - 5C142479286DAC1D0004E3EE /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; - 5C14247A286DAC1D0004E3EE /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; - 5C14247B286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj-ghc8.10.7.a"; sourceTree = ""; }; - 5C14247C286DAC1D0004E3EE /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; - 5C14247D286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj.a"; sourceTree = ""; }; 5C1A4C1D27A715B700EAD5AD /* ChatItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatItemView.swift; sourceTree = ""; }; + 5C1B20992879B553002FF534 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; + 5C1B209A2879B553002FF534 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; + 5C1B209B2879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T-ghc8.10.7.a"; sourceTree = ""; }; + 5C1B209C2879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T.a"; sourceTree = ""; }; + 5C1B209D2879B553002FF534 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; 5C2E260627A2941F00F70299 /* SimpleXAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleXAPI.swift; sourceTree = ""; }; 5C2E260A27A30CFA00F70299 /* ChatListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListView.swift; sourceTree = ""; }; 5C2E260E27A30FDC00F70299 /* ChatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatView.swift; sourceTree = ""; }; @@ -327,12 +327,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5C14247F286DAC1D0004E3EE /* libgmpxx.a in Frameworks */, + 5C1B20A02879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T-ghc8.10.7.a in Frameworks */, + 5C1B209E2879B553002FF534 /* libgmpxx.a in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, - 5C142480286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj-ghc8.10.7.a in Frameworks */, - 5C14247E286DAC1D0004E3EE /* libffi.a in Frameworks */, - 5C142482286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj.a in Frameworks */, - 5C142481286DAC1D0004E3EE /* libgmp.a in Frameworks */, + 5C1B209F2879B553002FF534 /* libgmp.a in Frameworks */, + 5C1B20A22879B553002FF534 /* libffi.a in Frameworks */, + 5C1B20A12879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T.a in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; @@ -387,11 +387,11 @@ 5C764E5C279C70B7000C6508 /* Libraries */ = { isa = PBXGroup; children = ( - 5C142479286DAC1D0004E3EE /* libffi.a */, - 5C14247C286DAC1D0004E3EE /* libgmp.a */, - 5C14247A286DAC1D0004E3EE /* libgmpxx.a */, - 5C14247B286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj-ghc8.10.7.a */, - 5C14247D286DAC1D0004E3EE /* libHSsimplex-chat-2.2.0-B9XlcSXdcwBJ5TIVTDfRQj.a */, + 5C1B209D2879B553002FF534 /* libffi.a */, + 5C1B209A2879B553002FF534 /* libgmp.a */, + 5C1B20992879B553002FF534 /* libgmpxx.a */, + 5C1B209B2879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T-ghc8.10.7.a */, + 5C1B209C2879B553002FF534 /* libHSsimplex-chat-3.0.0-7lBlUBoHfjhHKgM9BErF7T.a */, ); path = Libraries; sourceTree = ""; @@ -1105,7 +1105,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 57; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1145,7 +1145,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 57; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1224,7 +1224,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 57; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1254,7 +1254,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 57; + CURRENT_PROJECT_VERSION = 58; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES;