mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-04-28 01:56:25 +00:00
core, ui: group members permanent connection errors (#6662)
This commit is contained in:
+25
-17
@@ -1904,6 +1904,12 @@ data class Connection(
|
||||
val connInactive: Boolean
|
||||
get() = quotaErrCounter >= 5 // quotaErrInactiveCount in core
|
||||
|
||||
val connFailedErr: String?
|
||||
get() = when (connStatus) {
|
||||
is ConnStatus.Failed -> connStatus.connError
|
||||
else -> null
|
||||
}
|
||||
|
||||
val connPQEnabled: Boolean
|
||||
get() = pqSndEnabled == true && pqRcvEnabled == true
|
||||
|
||||
@@ -2638,25 +2644,27 @@ class PendingContactConnection(
|
||||
}
|
||||
|
||||
@Serializable
|
||||
enum class ConnStatus {
|
||||
@SerialName("new") New,
|
||||
@SerialName("prepared") Prepared,
|
||||
@SerialName("joined") Joined,
|
||||
@SerialName("requested") Requested,
|
||||
@SerialName("accepted") Accepted,
|
||||
@SerialName("snd-ready") SndReady,
|
||||
@SerialName("ready") Ready,
|
||||
@SerialName("deleted") Deleted;
|
||||
sealed class ConnStatus {
|
||||
@Serializable @SerialName("new") object New: ConnStatus()
|
||||
@Serializable @SerialName("prepared") object Prepared: ConnStatus()
|
||||
@Serializable @SerialName("joined") object Joined: ConnStatus()
|
||||
@Serializable @SerialName("requested") object Requested: ConnStatus()
|
||||
@Serializable @SerialName("accepted") object Accepted: ConnStatus()
|
||||
@Serializable @SerialName("sndReady") object SndReady: ConnStatus()
|
||||
@Serializable @SerialName("ready") object Ready: ConnStatus()
|
||||
@Serializable @SerialName("deleted") object Deleted: ConnStatus()
|
||||
@Serializable @SerialName("failed") class Failed(val connError: String): ConnStatus()
|
||||
|
||||
val initiated: Boolean? get() = when (this) {
|
||||
New -> true
|
||||
Prepared -> false
|
||||
Joined -> false
|
||||
Requested -> true
|
||||
Accepted -> true
|
||||
SndReady -> null
|
||||
Ready -> null
|
||||
Deleted -> null
|
||||
is New -> true
|
||||
is Prepared -> false
|
||||
is Joined -> false
|
||||
is Requested -> true
|
||||
is Accepted -> true
|
||||
is SndReady -> null
|
||||
is Ready -> null
|
||||
is Deleted -> null
|
||||
is Failed -> null
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+4
-2
@@ -878,9 +878,11 @@ fun MemberRow(member: GroupMember, user: Boolean = false, infoPage: Boolean = tr
|
||||
}
|
||||
|
||||
fun memberConnStatus(): String {
|
||||
return if (member.activeConn?.connDisabled == true) {
|
||||
generalGetString(MR.strings.member_info_member_disabled)
|
||||
return if (member.activeConn?.connStatus is ConnStatus.Failed) {
|
||||
generalGetString(MR.strings.member_info_member_failed)
|
||||
} else if (member.activeConn?.connDisabled == true) {
|
||||
generalGetString(MR.strings.member_info_member_disabled)
|
||||
} else if (member.activeConn?.connInactive == true) {
|
||||
generalGetString(MR.strings.member_info_member_inactive)
|
||||
} else {
|
||||
member.memberStatus.shortText
|
||||
|
||||
+8
@@ -562,6 +562,14 @@ fun GroupMemberInfoLayout(
|
||||
}
|
||||
}
|
||||
|
||||
val connFailedErr = member.activeConn?.connFailedErr
|
||||
if (connFailedErr != null) {
|
||||
SectionDividerSpaced()
|
||||
SectionView {
|
||||
InfoRow(stringResource(MR.strings.info_row_connection_failed), connFailedErr)
|
||||
}
|
||||
}
|
||||
|
||||
if (groupInfo.membership.memberRole >= GroupMemberRole.Moderator) {
|
||||
ModeratorDestructiveSection()
|
||||
} else {
|
||||
|
||||
+3
-1
@@ -162,7 +162,9 @@ private fun ModalData.MemberSupportViewLayout(
|
||||
@Composable
|
||||
fun SupportChatRow(member: GroupMember) {
|
||||
fun memberStatus(): String {
|
||||
return if (member.activeConn?.connDisabled == true) {
|
||||
return if (member.activeConn?.connStatus is ConnStatus.Failed) {
|
||||
generalGetString(MR.strings.member_info_member_failed)
|
||||
} else if (member.activeConn?.connDisabled == true) {
|
||||
generalGetString(MR.strings.member_info_member_disabled)
|
||||
} else if (member.activeConn?.connInactive == true) {
|
||||
generalGetString(MR.strings.member_info_member_inactive)
|
||||
|
||||
@@ -1906,6 +1906,7 @@
|
||||
<string name="member_blocked_by_admin">Blocked by admin</string>
|
||||
<string name="member_info_member_blocked">blocked</string>
|
||||
<string name="member_info_member_disabled">disabled</string>
|
||||
<string name="member_info_member_failed">failed</string>
|
||||
<string name="member_info_member_inactive">inactive</string>
|
||||
<string name="member_info_section_title_member">MEMBER</string>
|
||||
<string name="role_in_group">Role</string>
|
||||
@@ -1924,6 +1925,7 @@
|
||||
<string name="info_row_group">Group</string>
|
||||
<string name="info_row_chat">Chat</string>
|
||||
<string name="info_row_connection">Connection</string>
|
||||
<string name="info_row_connection_failed">Connection failed</string>
|
||||
<string name="conn_level_desc_direct">direct</string>
|
||||
<string name="conn_level_desc_indirect">indirect (%1$s)</string>
|
||||
<string name="message_queue_info">Message queue info</string>
|
||||
|
||||
Reference in New Issue
Block a user