diff --git a/apps/ios/SimpleXChat/APITypes.swift b/apps/ios/SimpleXChat/APITypes.swift index ad641810c2..635534fea0 100644 --- a/apps/ios/SimpleXChat/APITypes.swift +++ b/apps/ios/SimpleXChat/APITypes.swift @@ -1468,6 +1468,7 @@ public enum StoreError: Decodable { case userNotFoundByContactRequestId(contactRequestId: Int64) case contactNotFound(contactId: Int64) case contactNotFoundByName(contactName: ContactName) + case contactNotFoundByMemberId(groupMemberId: Int64) case contactNotReady(contactName: ContactName) case duplicateContactLink case userContactLinkNotFound @@ -1495,6 +1496,7 @@ public enum StoreError: Decodable { case rcvFileNotFoundXFTP(agentRcvFileId: String) case connectionNotFound(agentConnId: String) case connectionNotFoundById(connId: Int64) + case connectionNotFoundByMemberId(groupMemberId: Int64) case pendingConnectionNotFound(connId: Int64) case introNotFound case uniqueID diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt index 0a178ca2f7..3e2c79185f 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/model/SimpleXAPI.kt @@ -3911,6 +3911,7 @@ sealed class StoreError { is UserNotFoundByContactRequestId -> "userNotFoundByContactRequestId" is ContactNotFound -> "contactNotFound" is ContactNotFoundByName -> "contactNotFoundByName" + is ContactNotFoundByMemberId -> "contactNotFoundByMemberId" is ContactNotReady -> "contactNotReady" is DuplicateContactLink -> "duplicateContactLink" is UserContactLinkNotFound -> "userContactLinkNotFound" @@ -3938,6 +3939,7 @@ sealed class StoreError { is RcvFileNotFoundXFTP -> "rcvFileNotFoundXFTP" is ConnectionNotFound -> "connectionNotFound" is ConnectionNotFoundById -> "connectionNotFoundById" + is ConnectionNotFoundByMemberId -> "connectionNotFoundByMemberId" is PendingConnectionNotFound -> "pendingConnectionNotFound" is IntroNotFound -> "introNotFound" is UniqueID -> "uniqueID" @@ -3966,6 +3968,7 @@ sealed class StoreError { @Serializable @SerialName("userNotFoundByContactRequestId") class UserNotFoundByContactRequestId(val contactRequestId: Long): StoreError() @Serializable @SerialName("contactNotFound") class ContactNotFound(val contactId: Long): StoreError() @Serializable @SerialName("contactNotFoundByName") class ContactNotFoundByName(val contactName: String): StoreError() + @Serializable @SerialName("contactNotFoundByMemberId") class ContactNotFoundByMemberId(val groupMemberId: Long): StoreError() @Serializable @SerialName("contactNotReady") class ContactNotReady(val contactName: String): StoreError() @Serializable @SerialName("duplicateContactLink") object DuplicateContactLink: StoreError() @Serializable @SerialName("userContactLinkNotFound") object UserContactLinkNotFound: StoreError() @@ -3993,6 +3996,7 @@ sealed class StoreError { @Serializable @SerialName("rcvFileNotFoundXFTP") class RcvFileNotFoundXFTP(val agentRcvFileId: String): StoreError() @Serializable @SerialName("connectionNotFound") class ConnectionNotFound(val agentConnId: String): StoreError() @Serializable @SerialName("connectionNotFoundById") class ConnectionNotFoundById(val connId: Long): StoreError() + @Serializable @SerialName("connectionNotFoundByMemberId") class ConnectionNotFoundByMemberId(val groupMemberId: Long): StoreError() @Serializable @SerialName("pendingConnectionNotFound") class PendingConnectionNotFound(val connId: Long): StoreError() @Serializable @SerialName("introNotFound") object IntroNotFound: StoreError() @Serializable @SerialName("uniqueID") object UniqueID: StoreError() diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt index f71ec865f7..d8a14cb510 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt @@ -76,6 +76,7 @@ fun ChatListView(chatModel: ChatModel, settingsState: SettingsViewState, setPerf scaffoldState = scaffoldState, drawerContent = { SettingsView(chatModel, setPerformLA, scaffoldState.drawerState) }, drawerScrimColor = MaterialTheme.colors.onSurface.copy(alpha = if (isInDarkTheme()) 0.16f else 0.32f), + drawerGesturesEnabled = appPlatform.isAndroid, floatingActionButton = { if (searchInList.isEmpty()) { FloatingActionButton( diff --git a/src/Simplex/Chat.hs b/src/Simplex/Chat.hs index 2e1d427af8..d96baba18c 100644 --- a/src/Simplex/Chat.hs +++ b/src/Simplex/Chat.hs @@ -2857,7 +2857,7 @@ processAgentMsgRcvFile _corrId aFileId msg = liftIO $ updateFileCancelled db user fileId CIFSRcvError getChatItemByFileId db user fileId agentXFTPDeleteRcvFile aFileId fileId - toView $ CRRcvFileError user ci + toView $ CRRcvFileError user ci e processAgentMessageConn :: forall m. ChatMonad m => User -> ACorrId -> ConnId -> ACommand 'Agent 'AEConn -> m () processAgentMessageConn user _ agentConnId END = diff --git a/src/Simplex/Chat/Controller.hs b/src/Simplex/Chat/Controller.hs index af9aa964cf..b2403e8587 100644 --- a/src/Simplex/Chat/Controller.hs +++ b/src/Simplex/Chat/Controller.hs @@ -506,7 +506,7 @@ data ChatResponse | CRRcvFileComplete {user :: User, chatItem :: AChatItem} | CRRcvFileCancelled {user :: User, chatItem :: AChatItem, rcvFileTransfer :: RcvFileTransfer} | CRRcvFileSndCancelled {user :: User, chatItem :: AChatItem, rcvFileTransfer :: RcvFileTransfer} - | CRRcvFileError {user :: User, chatItem :: AChatItem} + | CRRcvFileError {user :: User, chatItem :: AChatItem, agentError :: AgentErrorType} | CRSndFileStart {user :: User, chatItem :: AChatItem, sndFileTransfer :: SndFileTransfer} | CRSndFileComplete {user :: User, chatItem :: AChatItem, sndFileTransfer :: SndFileTransfer} | CRSndFileRcvCancelled {user :: User, chatItem :: AChatItem, sndFileTransfer :: SndFileTransfer} diff --git a/src/Simplex/Chat/View.hs b/src/Simplex/Chat/View.hs index ce3da51c84..65e90c096b 100644 --- a/src/Simplex/Chat/View.hs +++ b/src/Simplex/Chat/View.hs @@ -178,7 +178,7 @@ responseToView user_ ChatConfig {logLevel, showReactions, showReceipts, testView CRRcvFileStart u ci -> ttyUser u $ receivingFile_' "started" ci CRRcvFileComplete u ci -> ttyUser u $ receivingFile_' "completed" ci CRRcvFileSndCancelled u _ ft -> ttyUser u $ viewRcvFileSndCancelled ft - CRRcvFileError u ci -> ttyUser u $ receivingFile_' "error" ci + CRRcvFileError u ci e -> ttyUser u $ receivingFile_' "error" ci <> [sShow e] CRSndFileStart u _ ft -> ttyUser u $ sendingFile_ "started" ft CRSndFileComplete u _ ft -> ttyUser u $ sendingFile_ "completed" ft CRSndFileStartXFTP {} -> [] diff --git a/tests/ChatTests/Files.hs b/tests/ChatTests/Files.hs index 927705f4dd..9b4c466726 100644 --- a/tests/ChatTests/Files.hs +++ b/tests/ChatTests/Files.hs @@ -1368,6 +1368,7 @@ testXFTPRcvError tmp = do "started receiving file 1 (test.pdf) from alice" ] bob <## "error receiving file 1 (test.pdf) from alice" + _ <- getTermLine bob bob ##> "/fs 1" bob <## "receiving file 1 (test.pdf) error" diff --git a/website/src/img/simplex-desktop-dark-1.png b/website/src/img/simplex-desktop-dark-1.png new file mode 100644 index 0000000000..c0b441f623 Binary files /dev/null and b/website/src/img/simplex-desktop-dark-1.png differ diff --git a/website/src/img/simplex-desktop-dark-2.png b/website/src/img/simplex-desktop-dark-2.png new file mode 100644 index 0000000000..2a9d9b8fe2 Binary files /dev/null and b/website/src/img/simplex-desktop-dark-2.png differ diff --git a/website/src/img/simplex-desktop-light.png b/website/src/img/simplex-desktop-light.png new file mode 100644 index 0000000000..d28b7b88ca Binary files /dev/null and b/website/src/img/simplex-desktop-light.png differ diff --git a/website/src/img/simplex-desktop-linux-dark-1.png b/website/src/img/simplex-desktop-linux-dark-1.png new file mode 100644 index 0000000000..c14b3cb52c Binary files /dev/null and b/website/src/img/simplex-desktop-linux-dark-1.png differ diff --git a/website/src/img/simplex-desktop-linux-dark-2.png b/website/src/img/simplex-desktop-linux-dark-2.png new file mode 100644 index 0000000000..2b4c73b7a9 Binary files /dev/null and b/website/src/img/simplex-desktop-linux-dark-2.png differ diff --git a/website/src/img/simplex-desktop-linux-light.png b/website/src/img/simplex-desktop-linux-light.png new file mode 100644 index 0000000000..132920c71d Binary files /dev/null and b/website/src/img/simplex-desktop-linux-light.png differ