From 21ada2a50306e889a8f83c1c828d02acf2443416 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Mon, 24 Jun 2024 12:48:19 -0400 Subject: [PATCH] Fix request to rejoin after group updates bug. --- .../invitesandrequests/joining/GroupJoinRepository.java | 4 ++++ .../groups/v2/processing/GroupsV2StateProcessor.kt | 8 ++++++-- .../conversation_cannot_send_announcement_group.xml | 1 - .../main/res/layout/conversation_no_longer_a_member.xml | 1 - .../res/layout/conversation_requesting_bottom_banner.xml | 1 - 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/joining/GroupJoinRepository.java b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/joining/GroupJoinRepository.java index c135f1d0b1..52bf4c92a8 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/joining/GroupJoinRepository.java +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/ui/invitesandrequests/joining/GroupJoinRepository.java @@ -60,12 +60,16 @@ final class GroupJoinRepository { callback.onComplete(new JoinGroupSuccess(groupActionResult.getGroupRecipient(), groupActionResult.getThreadId())); } catch (IOException e) { + Log.w(TAG, "Network error", e); callback.onError(JoinGroupError.NETWORK_ERROR); } catch (GroupChangeBusyException e) { + Log.w(TAG, "Change error", e); callback.onError(JoinGroupError.BUSY); } catch (GroupLinkNotActiveException e) { + Log.w(TAG, "Inactive group error", e); callback.onError(e.getReason() == GroupLinkNotActiveException.Reason.BANNED ? JoinGroupError.BANNED : JoinGroupError.GROUP_LINK_NOT_ACTIVE); } catch (GroupChangeFailedException | MembershipNotSuitableForV2Exception e) { + Log.w(TAG, "Change failed", e); callback.onError(JoinGroupError.FAILED); } }); diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt index d75d5f7e56..445338c1cb 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/v2/processing/GroupsV2StateProcessor.kt @@ -158,7 +158,7 @@ class GroupsV2StateProcessor private constructor( when (serverUpdateResult) { InternalUpdateResult.NoUpdateNeeded -> return GroupUpdateResult.CONSISTENT_OR_AHEAD is InternalUpdateResult.Updated -> return GroupUpdateResult.updated(serverUpdateResult.updatedLocalState) - is InternalUpdateResult.UpdateFailed -> throw serverUpdateResult.throwable + is InternalUpdateResult.UpdateFailed, is InternalUpdateResult.NotAMember -> Unit } @@ -184,7 +184,11 @@ class GroupsV2StateProcessor private constructor( profileAndMessageHelper.leaveGroupLocally(serviceIds) } - throw GroupNotAMemberException(serverUpdateResult.exception) + throw when (serverUpdateResult) { + is InternalUpdateResult.NotAMember -> GroupNotAMemberException(serverUpdateResult.exception) + is InternalUpdateResult.UpdateFailed -> throw serverUpdateResult.throwable + else -> AssertionError("Should not reach here with ${serverUpdateResult::class.java.simpleName}") + } } private fun canApplyP2pChange( diff --git a/app/src/main/res/layout/conversation_cannot_send_announcement_group.xml b/app/src/main/res/layout/conversation_cannot_send_announcement_group.xml index da84790428..07c3303300 100644 --- a/app/src/main/res/layout/conversation_cannot_send_announcement_group.xml +++ b/app/src/main/res/layout/conversation_cannot_send_announcement_group.xml @@ -5,7 +5,6 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/signal_transparent_80" android:gravity="center" android:padding="17dp" style="@style/Signal.Text.Preview" diff --git a/app/src/main/res/layout/conversation_no_longer_a_member.xml b/app/src/main/res/layout/conversation_no_longer_a_member.xml index ba8661fe9c..d6833db45d 100644 --- a/app/src/main/res/layout/conversation_no_longer_a_member.xml +++ b/app/src/main/res/layout/conversation_no_longer_a_member.xml @@ -5,7 +5,6 @@ android:id="@+id/conversation_no_longer_member_banner" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@color/signal_background_tertiary" android:gravity="center" android:paddingStart="16dp" android:paddingTop="8dp" diff --git a/app/src/main/res/layout/conversation_requesting_bottom_banner.xml b/app/src/main/res/layout/conversation_requesting_bottom_banner.xml index 313999967c..693eb57ec1 100644 --- a/app/src/main/res/layout/conversation_requesting_bottom_banner.xml +++ b/app/src/main/res/layout/conversation_requesting_bottom_banner.xml @@ -10,7 +10,6 @@