Change invite cancel to invite revoke.

This commit is contained in:
Alan Evans
2020-08-05 10:27:50 -03:00
committed by Greyson Parrelli
parent b0650b926b
commit d53fd6a109
11 changed files with 63 additions and 63 deletions

View File

@@ -200,13 +200,13 @@ public final class GroupManager {
}
@WorkerThread
public static void cancelInvites(@NonNull Context context,
public static void revokeInvites(@NonNull Context context,
@NonNull GroupId.V2 groupId,
@NonNull Collection<UuidCiphertext> uuidCipherTexts)
throws GroupChangeFailedException, GroupInsufficientRightsException, IOException, GroupNotAMemberException, GroupChangeBusyException
{
try (GroupManagerV2.GroupEditor editor = new GroupManagerV2(context).edit(groupId.requireV2())) {
editor.cancelInvites(uuidCipherTexts);
editor.revokeInvites(uuidCipherTexts);
}
}

View File

@@ -258,7 +258,7 @@ final class GroupManagerV2 {
}
@WorkerThread
@NonNull GroupManager.GroupActionResult cancelInvites(@NonNull Collection<UuidCiphertext> uuidCipherTexts)
@NonNull GroupManager.GroupActionResult revokeInvites(@NonNull Collection<UuidCiphertext> uuidCipherTexts)
throws GroupChangeFailedException, GroupInsufficientRightsException, IOException, GroupNotAMemberException
{
return commitChangeWithConflictResolution(groupOperations.createRemoveInvitationChange(new HashSet<>(uuidCipherTexts)));
@@ -284,7 +284,7 @@ final class GroupManagerV2 {
if (selfPendingMember.isPresent()) {
try {
return cancelInvites(Collections.singleton(new UuidCiphertext(selfPendingMember.get().getUuidCipherText().toByteArray())));
return revokeInvites(Collections.singleton(new UuidCiphertext(selfPendingMember.get().getUuidCipherText().toByteArray())));
} catch (InvalidInputException e) {
throw new AssertionError(e);
}

View File

@@ -4,7 +4,7 @@ import androidx.annotation.NonNull;
public interface AdminActionsListener {
void onCancelInvite(@NonNull GroupMemberEntry.PendingMember pendingMember);
void onRevokeInvite(@NonNull GroupMemberEntry.PendingMember pendingMember);
void onCancelAllInvites(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers);
void onRevokeAllInvites(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers);
}

View File

@@ -324,8 +324,8 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
if (pendingMember.isCancellable() && adminActionsListener != null) {
popupMenu.setMenu(R.menu.own_invite_pending_menu,
item -> {
if (item == R.id.cancel_invite) {
adminActionsListener.onCancelInvite(pendingMember);
if (item == R.id.revoke_invite) {
adminActionsListener.onRevokeInvite(pendingMember);
return true;
}
return false;
@@ -360,16 +360,16 @@ final class GroupMemberListAdapter extends LifecycleRecyclerAdapter<GroupMemberL
if (pendingMembers.isCancellable() && adminActionsListener != null) {
popupMenu.setMenu(R.menu.others_invite_pending_menu,
item -> {
if (item.getItemId() == R.id.cancel_invites) {
item.setTitle(context.getResources().getQuantityString(R.plurals.PendingMembersActivity_cancel_d_invites, pendingMembers.getInviteCount(),
if (item.getItemId() == R.id.revoke_invites) {
item.setTitle(context.getResources().getQuantityString(R.plurals.PendingMembersActivity_revoke_d_invites, pendingMembers.getInviteCount(),
pendingMembers.getInviteCount()));
return true;
}
return true;
},
item -> {
if (item == R.id.cancel_invites) {
adminActionsListener.onCancelAllInvites(pendingMembers);
if (item == R.id.revoke_invites) {
adminActionsListener.onRevokeAllInvites(pendingMembers);
return true;
}
return false;

View File

@@ -8,40 +8,40 @@ import androidx.appcompat.app.AlertDialog;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.recipients.Recipient;
final class InviteCancelConfirmationDialog {
final class InviteRevokeConfirmationDialog {
private InviteCancelConfirmationDialog() {
private InviteRevokeConfirmationDialog() {
}
/**
* Confirms that you want to cancel an invite that you sent.
* Confirms that you want to revoke an invite that you sent.
*/
static AlertDialog showOwnInviteCancelConfirmationDialog(@NonNull Context context,
static AlertDialog showOwnInviteRevokeConfirmationDialog(@NonNull Context context,
@NonNull Recipient invitee,
@NonNull Runnable onCancel)
@NonNull Runnable onRevoke)
{
return new AlertDialog.Builder(context)
.setMessage(context.getString(R.string.GroupManagement_cancel_own_single_invite,
.setMessage(context.getString(R.string.InviteRevokeConfirmationDialog_revoke_own_single_invite,
invitee.getDisplayName(context)))
.setPositiveButton(R.string.yes, (dialog, which) -> onCancel.run())
.setPositiveButton(R.string.yes, (dialog, which) -> onRevoke.run())
.setNegativeButton(R.string.no, null)
.show();
}
/**
* Confirms that you want to cancel a number of invites that another member sent.
* Confirms that you want to revoke a number of invites that another member sent.
*/
static AlertDialog showOthersInviteCancelConfirmationDialog(@NonNull Context context,
static AlertDialog showOthersInviteRevokeConfirmationDialog(@NonNull Context context,
@NonNull Recipient inviter,
int numberOfInvitations,
@NonNull Runnable onCancel)
@NonNull Runnable onRevoke)
{
return new AlertDialog.Builder(context)
.setMessage(context.getResources().getQuantityString(R.plurals.GroupManagement_cancel_others_invites,
.setMessage(context.getResources().getQuantityString(R.plurals.InviteRevokeConfirmationDialog_revoke_others_invites,
numberOfInvitations,
inviter.getDisplayName(context),
numberOfInvitations))
.setPositiveButton(R.string.yes, (dialog, which) -> onCancel.run())
.setPositiveButton(R.string.yes, (dialog, which) -> onRevoke.run())
.setNegativeButton(R.string.no, null)
.show();
}

View File

@@ -50,12 +50,12 @@ public class PendingMemberInvitesFragment extends Fragment {
youInvited.setAdminActionsListener(new AdminActionsListener() {
@Override
public void onCancelInvite(@NonNull GroupMemberEntry.PendingMember pendingMember) {
viewModel.cancelInviteFor(pendingMember);
public void onRevokeInvite(@NonNull GroupMemberEntry.PendingMember pendingMember) {
viewModel.revokeInviteFor(pendingMember);
}
@Override
public void onCancelAllInvites(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers) {
public void onRevokeAllInvites(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers) {
throw new AssertionError();
}
});
@@ -63,13 +63,13 @@ public class PendingMemberInvitesFragment extends Fragment {
othersInvited.setAdminActionsListener(new AdminActionsListener() {
@Override
public void onCancelInvite(@NonNull GroupMemberEntry.PendingMember pendingMember) {
public void onRevokeInvite(@NonNull GroupMemberEntry.PendingMember pendingMember) {
throw new AssertionError();
}
@Override
public void onCancelAllInvites(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers) {
viewModel.cancelInvitesFor(pendingMembers);
public void onRevokeAllInvites(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers) {
viewModel.revokeInvitesFor(pendingMembers);
}
});

View File

@@ -56,27 +56,27 @@ public class PendingMemberInvitesViewModel extends ViewModel {
for (PendingMemberRepository.SinglePendingMemberInvitedByYou pendingMember : inviteeResult.getByMe()) {
byMe.add(new GroupMemberEntry.PendingMember(pendingMember.getInvitee(),
pendingMember.getInviteeCipherText(),
inviteeResult.isCanCancelInvites()));
inviteeResult.isCanRevokeInvites()));
}
for (PendingMemberRepository.MultiplePendingMembersInvitedByAnother pendingMembers : inviteeResult.getByOthers()) {
byOthers.add(new GroupMemberEntry.UnknownPendingMemberCount(pendingMembers.getInviter(),
pendingMembers.getUuidCipherTexts(),
inviteeResult.isCanCancelInvites()));
inviteeResult.isCanRevokeInvites()));
}
setInvitees(byMe, byOthers);
}
void cancelInviteFor(@NonNull GroupMemberEntry.PendingMember pendingMember) {
void revokeInviteFor(@NonNull GroupMemberEntry.PendingMember pendingMember) {
UuidCiphertext inviteeCipherText = pendingMember.getInviteeCipherText();
InviteCancelConfirmationDialog.showOwnInviteCancelConfirmationDialog(context, pendingMember.getInvitee(), () ->
InviteRevokeConfirmationDialog.showOwnInviteRevokeConfirmationDialog(context, pendingMember.getInvitee(), () ->
SimpleTask.run(
() -> {
pendingMember.setBusy(true);
try {
return pendingMemberRepository.cancelInvites(Collections.singleton(inviteeCipherText));
return pendingMemberRepository.revokeInvites(Collections.singleton(inviteeCipherText));
} finally {
pendingMember.setBusy(false);
}
@@ -100,13 +100,13 @@ public class PendingMemberInvitesViewModel extends ViewModel {
));
}
void cancelInvitesFor(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers) {
InviteCancelConfirmationDialog.showOthersInviteCancelConfirmationDialog(context, pendingMembers.getInviter(), pendingMembers.getInviteCount(),
void revokeInvitesFor(@NonNull GroupMemberEntry.UnknownPendingMemberCount pendingMembers) {
InviteRevokeConfirmationDialog.showOthersInviteRevokeConfirmationDialog(context, pendingMembers.getInviter(), pendingMembers.getInviteCount(),
() -> SimpleTask.run(
() -> {
pendingMembers.setBusy(true);
try {
return pendingMemberRepository.cancelInvites(pendingMembers.getCiphertexts());
return pendingMemberRepository.revokeInvites(pendingMembers.getCiphertexts());
} finally {
pendingMembers.setBusy(false);
}
@@ -131,7 +131,7 @@ public class PendingMemberInvitesViewModel extends ViewModel {
}
private void toastErrorCanceling(int quantity) {
Toast.makeText(context, context.getResources().getQuantityText(R.plurals.PendingMembersActivity_error_canceling_invite, quantity), Toast.LENGTH_SHORT)
Toast.makeText(context, context.getResources().getQuantityText(R.plurals.PendingMembersActivity_error_revoking_invite, quantity), Toast.LENGTH_SHORT)
.show();
}

View File

@@ -98,9 +98,9 @@ final class PendingMemberRepository {
}
@WorkerThread
boolean cancelInvites(@NonNull Collection<UuidCiphertext> uuidCipherTexts) {
boolean revokeInvites(@NonNull Collection<UuidCiphertext> uuidCipherTexts) {
try {
GroupManager.cancelInvites(context, groupId, uuidCipherTexts);
GroupManager.revokeInvites(context, groupId, uuidCipherTexts);
return true;
} catch (GroupChangeException | IOException e) {
Log.w(TAG, e);
@@ -111,15 +111,15 @@ final class PendingMemberRepository {
public static final class InviteeResult {
private final List<SinglePendingMemberInvitedByYou> byMe;
private final List<MultiplePendingMembersInvitedByAnother> byOthers;
private final boolean canCancelInvites;
private final boolean canRevokeInvites;
private InviteeResult(List<SinglePendingMemberInvitedByYou> byMe,
List<MultiplePendingMembersInvitedByAnother> byOthers,
boolean canCancelInvites)
boolean canRevokeInvites)
{
this.byMe = byMe;
this.byOthers = byOthers;
this.canCancelInvites = canCancelInvites;
this.canRevokeInvites = canRevokeInvites;
}
public List<SinglePendingMemberInvitedByYou> getByMe() {
@@ -130,8 +130,8 @@ final class PendingMemberRepository {
return byOthers;
}
public boolean isCanCancelInvites() {
return canCancelInvites;
public boolean isCanRevokeInvites() {
return canRevokeInvites;
}
}