Show linked device update message if we don't have the capability to join a group by link.
parent
34ef8b52f6
commit
d459c751be
|
@ -24,7 +24,9 @@ import org.thoughtcrime.securesms.components.AvatarImageView;
|
|||
import org.thoughtcrime.securesms.contacts.avatars.FallbackContactPhoto;
|
||||
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
|
||||
import org.thoughtcrime.securesms.conversation.ConversationActivity;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl;
|
||||
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob;
|
||||
import org.thoughtcrime.securesms.logging.Log;
|
||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
||||
|
@ -113,6 +115,13 @@ public final class GroupJoinBottomSheetDialogFragment extends BottomSheetDialogF
|
|||
});
|
||||
groupJoinButton.setVisibility(View.VISIBLE);
|
||||
break;
|
||||
case UPDATE_LINKED_DEVICE_TO_JOIN:
|
||||
groupJoinExplain.setText(R.string.GroupJoinUpdateRequiredBottomSheetDialogFragment_update_linked_device_message);
|
||||
groupCancelButton.setText(android.R.string.ok);
|
||||
groupJoinButton.setVisibility(View.GONE);
|
||||
ApplicationDependencies.getJobManager()
|
||||
.add(RetrieveProfileJob.forRecipient(Recipient.self().getId()));
|
||||
break;
|
||||
case LOCAL_CAN_JOIN:
|
||||
groupJoinExplain.setText(details.joinRequiresAdminApproval() ? R.string.GroupJoinBottomSheetDialogFragment_admin_approval_needed
|
||||
: R.string.GroupJoinBottomSheetDialogFragment_direct_join);
|
||||
|
@ -151,19 +160,21 @@ public final class GroupJoinBottomSheetDialogFragment extends BottomSheetDialogF
|
|||
);
|
||||
}
|
||||
|
||||
private static FeatureFlags.GroupJoinStatus getGroupJoinStatus() {
|
||||
private static ExtendedGroupJoinStatus getGroupJoinStatus() {
|
||||
FeatureFlags.GroupJoinStatus groupJoinStatus = FeatureFlags.clientLocalGroupJoinStatus();
|
||||
|
||||
if (groupJoinStatus == FeatureFlags.GroupJoinStatus.LOCAL_CAN_JOIN) {
|
||||
if (Recipient.self().getGroupsV2Capability() == Recipient.Capability.NOT_SUPPORTED) {
|
||||
// TODO [Alan] GV2 additional copy could be presented in these cases
|
||||
return FeatureFlags.GroupJoinStatus.UPDATE_TO_JOIN;
|
||||
}
|
||||
|
||||
return groupJoinStatus;
|
||||
}
|
||||
switch (groupJoinStatus) {
|
||||
case COMING_SOON : return ExtendedGroupJoinStatus.COMING_SOON;
|
||||
case UPDATE_TO_JOIN: return ExtendedGroupJoinStatus.UPDATE_TO_JOIN;
|
||||
case LOCAL_CAN_JOIN: {
|
||||
if (Recipient.self().getGroupsV2Capability() != Recipient.Capability.SUPPORTED) {
|
||||
return ExtendedGroupJoinStatus.UPDATE_LINKED_DEVICE_TO_JOIN;
|
||||
}
|
||||
|
||||
return groupJoinStatus;
|
||||
return ExtendedGroupJoinStatus.LOCAL_CAN_JOIN;
|
||||
}
|
||||
default: throw new AssertionError();
|
||||
}
|
||||
}
|
||||
|
||||
private @NonNull String errorToMessage(@NonNull FetchGroupDetailsError error) {
|
||||
|
@ -201,4 +212,18 @@ public final class GroupJoinBottomSheetDialogFragment extends BottomSheetDialogF
|
|||
return new ResourceContactPhoto(R.drawable.ic_group_outline_48);
|
||||
}
|
||||
}
|
||||
|
||||
public enum ExtendedGroupJoinStatus {
|
||||
/** No version of the client that can join V2 groups by link is in production. */
|
||||
COMING_SOON,
|
||||
|
||||
/** A newer version of the client is in production that will allow joining via GV2 group links. */
|
||||
UPDATE_TO_JOIN,
|
||||
|
||||
/** Locally we're using a version that can use group links, but one or more linked devices needs updating for GV2. */
|
||||
UPDATE_LINKED_DEVICE_TO_JOIN,
|
||||
|
||||
/** This version of the client allows joining via GV2 group links. */
|
||||
LOCAL_CAN_JOIN
|
||||
}
|
||||
}
|
||||
|
|
|
@ -727,6 +727,7 @@
|
|||
<string name="GroupJoinUpdateRequiredBottomSheetDialogFragment_coming_soon">Joining a group via a link is not yet supported by Signal. This feature will be released in an upcoming update.</string>
|
||||
<string name="GroupJoinUpdateRequiredBottomSheetDialogFragment_update_message">The version of Signal you’re using does not support group links. Update to the latest version to join this group via link.</string>
|
||||
<string name="GroupJoinUpdateRequiredBottomSheetDialogFragment_update_signal">Update Signal</string>
|
||||
<string name="GroupJoinUpdateRequiredBottomSheetDialogFragment_update_linked_device_message">One or more of your linked devices are running a version of Signal that doesn\'t support group links. Update Signal on your linked device(s) to join this group.</string>
|
||||
<string name="GroupJoinUpdateRequiredBottomSheetDialogFragment_group_link_is_not_valid">Group link is not valid</string>
|
||||
|
||||
<!-- GV2 Request confirmation dialog -->
|
||||
|
|
Loading…
Reference in New Issue