From 74a9a5a9cd44ed4cd94ed69cc5021d3e0484d0a9 Mon Sep 17 00:00:00 2001 From: Zuria Date: Fri, 10 Feb 2023 22:33:15 +0300 Subject: [PATCH 1/2] fixed incorrect wall post open from conversation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed: при переходе по пересланному в чат сообщению из группы, которое было опубликовано в группе от имени участника, открывается неверный пост стены. --- .../twoeightnine/root/xvii/model/WallPost.kt | 2 +- .../root/xvii/wallpost/WallPostFragment.kt | 31 ++++++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/twoeightnine/root/xvii/model/WallPost.kt b/app/src/main/java/com/twoeightnine/root/xvii/model/WallPost.kt index c63e6378..8025b136 100644 --- a/app/src/main/java/com/twoeightnine/root/xvii/model/WallPost.kt +++ b/app/src/main/java/com/twoeightnine/root/xvii/model/WallPost.kt @@ -90,7 +90,7 @@ data class WallPost( ) : Parcelable { val stringId: String - get() = "${fromId}_$id" + get() = "${ownerId}_$id" fun getPhoto() = attachments?.mapNotNull { it.photo } ?: arrayListOf() diff --git a/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt b/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt index b41927dc..2317c4e3 100644 --- a/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt +++ b/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt @@ -33,6 +33,7 @@ import com.twoeightnine.root.xvii.base.FragmentPlacementActivity.Companion.start import com.twoeightnine.root.xvii.chats.attachments.AttachmentsInflater import com.twoeightnine.root.xvii.managers.Prefs import com.twoeightnine.root.xvii.model.Group +import com.twoeightnine.root.xvii.model.User import com.twoeightnine.root.xvii.model.WallPost import com.twoeightnine.root.xvii.model.attachments.Doc import com.twoeightnine.root.xvii.model.attachments.Video @@ -112,19 +113,30 @@ class WallPostFragment : BaseFragment() { } private fun putViews(holder: WallViewHolder, post: WallPost, level: Int = 0) { - val group = getGroup(-post.fromId) + + var (title, avatar) = when{ + post.fromId < 0 -> { + val group = getGroup(-post.fromId) + Pair(group.name, group.photo100) + } + else -> { + var user = getUser(post.fromId) + Pair(user.getTitle(), user.photo100) + } + } + if (level == 0) { - xviiToolbar.tvChatTitle.text = group.name + xviiToolbar.tvChatTitle.text = title xviiToolbar.tvChatTitle.lowerIf(Prefs.lowerTexts) - xviiToolbar.civAvatar.load(group.photo100) + xviiToolbar.civAvatar.load(avatar) xviiToolbar.tvSubtitle.text = getTime(post.date, withSeconds = Prefs.showSeconds) holder.rlHeader.hide() } else { - holder.tvTitle.text = group.name + holder.tvTitle.text = title holder.tvTitle.lowerIf(Prefs.lowerTexts) - holder.civAvatar.load(group.photo100) + holder.civAvatar.load(avatar) holder.tvDate.text = getTime(post.date, withSeconds = Prefs.showSeconds) } holder.tvPost.text = post.text @@ -137,6 +149,15 @@ class WallPostFragment : BaseFragment() { } } + private fun getUser(fromId: Int): User { + for (user in postResponse.profiles) { + if (user.id == fromId) { + return user + } + } + return User() + } + private fun getGroup(fromId: Int): Group { for (group in postResponse.groups) { if (group.id == fromId) { From b78e97b3d82905ebbfb291873dbf0774a6e7fa26 Mon Sep 17 00:00:00 2001 From: Zuria Date: Fri, 10 Feb 2023 22:53:47 +0300 Subject: [PATCH 2/2] fixed incorrect wall post open from conversation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixed: при переходе по пересланному в чат сообщению из группы, которое было опубликовано в группе от имени участника, открывается неверный пост стены. --- .../com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt b/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt index 2317c4e3..e376609d 100644 --- a/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt +++ b/app/src/main/java/com/twoeightnine/root/xvii/wallpost/WallPostFragment.kt @@ -114,13 +114,13 @@ class WallPostFragment : BaseFragment() { private fun putViews(holder: WallViewHolder, post: WallPost, level: Int = 0) { - var (title, avatar) = when{ + val (title, avatar) = when{ post.fromId < 0 -> { val group = getGroup(-post.fromId) Pair(group.name, group.photo100) } else -> { - var user = getUser(post.fromId) + val user = getUser(post.fromId) Pair(user.getTitle(), user.photo100) } }