core, ui: create dummy member record when admin forwards a message from an unknown member (#3651)

* core: create dummy member record when admin forwards a message from an unknown member

* comments

* update unknown member if announced

* change removed

* change unknown name, revert diff

* revert diff

* ios

* update ios library

* android

* remove changes in iOS project file

* rename event

* remove unknown category

* android

---------

Co-authored-by: Evgeny Poberezkin <2769109+epoberezkin@users.noreply.github.com>
This commit is contained in:
spaced4ndy
2024-01-11 17:55:13 +04:00
committed by GitHub
parent d9d270f00e
commit bfe5d51df7
9 changed files with 189 additions and 19 deletions
@@ -1268,12 +1268,19 @@ data class GroupMember (
val verified get() = activeConn?.connectionCode != null
val chatViewName: String
get() = memberProfile.localAlias.ifEmpty { displayName + (if (fullName == "" || fullName == displayName) "" else " / $fullName") }
get() {
val name = memberProfile.localAlias.ifEmpty { displayName + (if (fullName == "" || fullName == displayName) "" else " / $fullName") }
return if (memberStatus == GroupMemberStatus.MemUnknown)
String.format(generalGetString(MR.strings.previous_member_vName), name)
else
name
}
val memberActive: Boolean get() = when (this.memberStatus) {
GroupMemberStatus.MemRemoved -> false
GroupMemberStatus.MemLeft -> false
GroupMemberStatus.MemGroupDeleted -> false
GroupMemberStatus.MemUnknown -> false
GroupMemberStatus.MemInvited -> false
GroupMemberStatus.MemIntroduced -> false
GroupMemberStatus.MemIntroInvited -> false
@@ -1288,6 +1295,7 @@ data class GroupMember (
GroupMemberStatus.MemRemoved -> false
GroupMemberStatus.MemLeft -> false
GroupMemberStatus.MemGroupDeleted -> false
GroupMemberStatus.MemUnknown -> false
GroupMemberStatus.MemInvited -> false
GroupMemberStatus.MemIntroduced -> true
GroupMemberStatus.MemIntroInvited -> true
@@ -1377,6 +1385,7 @@ enum class GroupMemberStatus {
@SerialName("removed") MemRemoved,
@SerialName("left") MemLeft,
@SerialName("deleted") MemGroupDeleted,
@SerialName("unknown") MemUnknown,
@SerialName("invited") MemInvited,
@SerialName("introduced") MemIntroduced,
@SerialName("intro-inv") MemIntroInvited,
@@ -1390,6 +1399,7 @@ enum class GroupMemberStatus {
MemRemoved -> generalGetString(MR.strings.group_member_status_removed)
MemLeft -> generalGetString(MR.strings.group_member_status_left)
MemGroupDeleted -> generalGetString(MR.strings.group_member_status_group_deleted)
MemUnknown -> generalGetString(MR.strings.group_member_status_unknown)
MemInvited -> generalGetString(MR.strings.group_member_status_invited)
MemIntroduced -> generalGetString(MR.strings.group_member_status_introduced)
MemIntroInvited -> generalGetString(MR.strings.group_member_status_intro_invitation)
@@ -1404,6 +1414,7 @@ enum class GroupMemberStatus {
MemRemoved -> generalGetString(MR.strings.group_member_status_removed)
MemLeft -> generalGetString(MR.strings.group_member_status_left)
MemGroupDeleted -> generalGetString(MR.strings.group_member_status_group_deleted)
MemUnknown -> generalGetString(MR.strings.group_member_status_unknown_short)
MemInvited -> generalGetString(MR.strings.group_member_status_invited)
MemIntroduced -> generalGetString(MR.strings.group_member_status_connecting)
MemIntroInvited -> generalGetString(MR.strings.group_member_status_connecting)
@@ -1217,6 +1217,7 @@
<string name="group_member_status_removed">removed</string>
<string name="group_member_status_left">left</string>
<string name="group_member_status_group_deleted">group deleted</string>
<string name="group_member_status_unknown">unknown status</string>
<string name="group_member_status_invited">invited</string>
<string name="group_member_status_introduced">connecting (introduced)</string>
<string name="group_member_status_intro_invitation">connecting (introduction invitation)</string>
@@ -1227,6 +1228,9 @@
<string name="group_member_status_creator">creator</string>
<string name="group_member_status_connecting">connecting</string>
<string name="group_member_status_unknown_short">unknown</string>
<string name="previous_member_vName"><![CDATA[<i>Previous member</i> %1$s]]></string>
<!-- AddGroupMembersView.kt -->
<string name="no_contacts_to_add">No contacts to add</string>