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.FallbackContactPhoto;
|
||||||
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
|
import org.thoughtcrime.securesms.contacts.avatars.ResourceContactPhoto;
|
||||||
import org.thoughtcrime.securesms.conversation.ConversationActivity;
|
import org.thoughtcrime.securesms.conversation.ConversationActivity;
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl;
|
import org.thoughtcrime.securesms.groups.v2.GroupInviteLinkUrl;
|
||||||
|
import org.thoughtcrime.securesms.jobs.RetrieveProfileJob;
|
||||||
import org.thoughtcrime.securesms.logging.Log;
|
import org.thoughtcrime.securesms.logging.Log;
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient;
|
import org.thoughtcrime.securesms.recipients.Recipient;
|
||||||
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
import org.thoughtcrime.securesms.util.BottomSheetUtil;
|
||||||
|
@ -113,6 +115,13 @@ public final class GroupJoinBottomSheetDialogFragment extends BottomSheetDialogF
|
||||||
});
|
});
|
||||||
groupJoinButton.setVisibility(View.VISIBLE);
|
groupJoinButton.setVisibility(View.VISIBLE);
|
||||||
break;
|
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:
|
case LOCAL_CAN_JOIN:
|
||||||
groupJoinExplain.setText(details.joinRequiresAdminApproval() ? R.string.GroupJoinBottomSheetDialogFragment_admin_approval_needed
|
groupJoinExplain.setText(details.joinRequiresAdminApproval() ? R.string.GroupJoinBottomSheetDialogFragment_admin_approval_needed
|
||||||
: R.string.GroupJoinBottomSheetDialogFragment_direct_join);
|
: 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();
|
FeatureFlags.GroupJoinStatus groupJoinStatus = FeatureFlags.clientLocalGroupJoinStatus();
|
||||||
|
|
||||||
if (groupJoinStatus == FeatureFlags.GroupJoinStatus.LOCAL_CAN_JOIN) {
|
switch (groupJoinStatus) {
|
||||||
if (Recipient.self().getGroupsV2Capability() == Recipient.Capability.NOT_SUPPORTED) {
|
case COMING_SOON : return ExtendedGroupJoinStatus.COMING_SOON;
|
||||||
// TODO [Alan] GV2 additional copy could be presented in these cases
|
case UPDATE_TO_JOIN: return ExtendedGroupJoinStatus.UPDATE_TO_JOIN;
|
||||||
return FeatureFlags.GroupJoinStatus.UPDATE_TO_JOIN;
|
case LOCAL_CAN_JOIN: {
|
||||||
}
|
if (Recipient.self().getGroupsV2Capability() != Recipient.Capability.SUPPORTED) {
|
||||||
|
return ExtendedGroupJoinStatus.UPDATE_LINKED_DEVICE_TO_JOIN;
|
||||||
return groupJoinStatus;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return groupJoinStatus;
|
return ExtendedGroupJoinStatus.LOCAL_CAN_JOIN;
|
||||||
|
}
|
||||||
|
default: throw new AssertionError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private @NonNull String errorToMessage(@NonNull FetchGroupDetailsError error) {
|
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);
|
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_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_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_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>
|
<string name="GroupJoinUpdateRequiredBottomSheetDialogFragment_group_link_is_not_valid">Group link is not valid</string>
|
||||||
|
|
||||||
<!-- GV2 Request confirmation dialog -->
|
<!-- GV2 Request confirmation dialog -->
|
||||||
|
|
Loading…
Reference in New Issue