mirror of
https://github.com/oxen-io/session-android.git
synced 2025-06-09 11:18:35 +00:00
Refactor group leave dialog out of conversation.
This commit is contained in:
parent
e02e4d52b4
commit
04bb4b351a
@ -149,7 +149,7 @@ import org.thoughtcrime.securesms.database.model.StickerRecord;
|
|||||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||||
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
import org.thoughtcrime.securesms.events.ReminderUpdateEvent;
|
||||||
import org.thoughtcrime.securesms.giph.ui.GiphyActivity;
|
import org.thoughtcrime.securesms.giph.ui.GiphyActivity;
|
||||||
import org.thoughtcrime.securesms.groups.GroupManager;
|
import org.thoughtcrime.securesms.groups.ui.LeaveGroupDialog;
|
||||||
import org.thoughtcrime.securesms.insights.InsightsLauncher;
|
import org.thoughtcrime.securesms.insights.InsightsLauncher;
|
||||||
import org.thoughtcrime.securesms.invites.InviteReminderModel;
|
import org.thoughtcrime.securesms.invites.InviteReminderModel;
|
||||||
import org.thoughtcrime.securesms.invites.InviteReminderRepository;
|
import org.thoughtcrime.securesms.invites.InviteReminderRepository;
|
||||||
@ -1118,25 +1118,10 @@ public class ConversationActivity extends PassphraseRequiredActionBarActivity
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
LeaveGroupDialog.handleLeavePushGroup(ConversationActivity.this,
|
||||||
builder.setTitle(getString(R.string.ConversationActivity_leave_group));
|
getLifecycle(),
|
||||||
builder.setIconAttribute(R.attr.dialog_info_icon);
|
getRecipient().requireGroupId().requirePush(),
|
||||||
builder.setCancelable(true);
|
this::initializeEnabledCheck);
|
||||||
builder.setMessage(getString(R.string.ConversationActivity_are_you_sure_you_want_to_leave_this_group));
|
|
||||||
builder.setPositiveButton(R.string.yes, (dialog, which) ->
|
|
||||||
SimpleTask.run(
|
|
||||||
getLifecycle(),
|
|
||||||
() -> GroupManager.leaveGroup(ConversationActivity.this, getRecipient()),
|
|
||||||
(success) -> {
|
|
||||||
if (success) {
|
|
||||||
initializeEnabledCheck();
|
|
||||||
} else {
|
|
||||||
Toast.makeText(ConversationActivity.this, R.string.ConversationActivity_error_leaving_group, Toast.LENGTH_LONG).show();
|
|
||||||
}
|
|
||||||
}));
|
|
||||||
|
|
||||||
builder.setNegativeButton(R.string.no, null);
|
|
||||||
builder.show();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleEditPushGroup() {
|
private void handleEditPushGroup() {
|
||||||
|
@ -50,10 +50,8 @@ public final class GroupManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
public static boolean leaveGroup(@NonNull Context context, @NonNull Recipient groupRecipient) {
|
public static boolean leaveGroup(@NonNull Context context, @NonNull GroupId.Push groupId) {
|
||||||
GroupId groupId = groupRecipient.requireGroupId();
|
return V1GroupManager.leaveGroup(context, groupId.requireV1());
|
||||||
|
|
||||||
return V1GroupManager.leaveGroup(context, groupId.requireV1(), groupRecipient);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class GroupActionResult {
|
public static class GroupActionResult {
|
||||||
|
@ -153,9 +153,10 @@ final class V1GroupManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@WorkerThread
|
@WorkerThread
|
||||||
static boolean leaveGroup(@NonNull Context context, @NonNull GroupId.V1 groupId, @NonNull Recipient groupRecipient) {
|
static boolean leaveGroup(@NonNull Context context, @NonNull GroupId.V1 groupId) {
|
||||||
long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(groupRecipient);
|
Recipient groupRecipient = Recipient.externalGroup(context, groupId);
|
||||||
Optional<OutgoingGroupMediaMessage> leaveMessage = GroupUtil.createGroupLeaveMessage(context, groupRecipient);
|
long threadId = DatabaseFactory.getThreadDatabase(context).getThreadIdFor(groupRecipient);
|
||||||
|
Optional<OutgoingGroupMediaMessage> leaveMessage = GroupUtil.createGroupLeaveMessage(context, groupRecipient);
|
||||||
|
|
||||||
if (threadId != -1 && leaveMessage.isPresent()) {
|
if (threadId != -1 && leaveMessage.isPresent()) {
|
||||||
try {
|
try {
|
||||||
|
@ -0,0 +1,45 @@
|
|||||||
|
package org.thoughtcrime.securesms.groups.ui;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.appcompat.app.AlertDialog;
|
||||||
|
import androidx.lifecycle.Lifecycle;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.R;
|
||||||
|
import org.thoughtcrime.securesms.groups.GroupId;
|
||||||
|
import org.thoughtcrime.securesms.groups.GroupManager;
|
||||||
|
import org.thoughtcrime.securesms.util.concurrent.SimpleTask;
|
||||||
|
|
||||||
|
public final class LeaveGroupDialog {
|
||||||
|
|
||||||
|
private LeaveGroupDialog() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void handleLeavePushGroup(@NonNull Context context,
|
||||||
|
@NonNull Lifecycle lifecycle,
|
||||||
|
@NonNull GroupId.Push groupId,
|
||||||
|
@Nullable Runnable onSuccess)
|
||||||
|
{
|
||||||
|
new AlertDialog.Builder(context)
|
||||||
|
.setTitle(context.getString(R.string.ConversationActivity_leave_group))
|
||||||
|
.setIconAttribute(R.attr.dialog_info_icon)
|
||||||
|
.setCancelable(true)
|
||||||
|
.setMessage(context.getString(R.string.ConversationActivity_are_you_sure_you_want_to_leave_this_group))
|
||||||
|
.setPositiveButton(R.string.yes, (dialog, which) ->
|
||||||
|
SimpleTask.run(
|
||||||
|
lifecycle,
|
||||||
|
() -> GroupManager.leaveGroup(context, groupId),
|
||||||
|
(success) -> {
|
||||||
|
if (success) {
|
||||||
|
if (onSuccess != null) onSuccess.run();
|
||||||
|
} else {
|
||||||
|
Toast.makeText(context, R.string.ConversationActivity_error_leaving_group, Toast.LENGTH_LONG).show();
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
.setNegativeButton(R.string.no, null)
|
||||||
|
.show();
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user