aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-02-09 15:22:29 +0100
committerChristian Schneppe <christian@pix-art.de>2019-02-09 15:22:29 +0100
commit163f5ae6229c99d72a73215ce1ba72827eefd93b (patch)
tree18004f07d09ab2e0af77dfdb4db7ca7f44b74006 /src/main/java/de/pixart/messenger
parent7aa49998425b768244715b19c9779202c0145230 (diff)
use the term channel in destroy dialog and some other strings
Diffstat (limited to 'src/main/java/de/pixart/messenger')
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java40
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java13
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationsActivity.java18
3 files changed, 43 insertions, 28 deletions
diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
index 551ff7818..3f9ac5f99 100644
--- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
+++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
@@ -3205,32 +3205,26 @@ public class XmppConnectionService extends Service {
});
}
- public void destroyRoom(final Conversation mSelectedConversation) {
- destroyRoom(mSelectedConversation, new OnRoomDestroy() {
- @Override
- public void onRoomDestroySucceeded(int resId) {
- Log.d(Config.LOGTAG, "Destroy succeed");
- showErrorToastInUi(resId);
- }
-
+ public void destroyRoom(final Conversation conversation, final OnRoomDestroy callback) {
+ IqPacket request = new IqPacket(IqPacket.TYPE.SET);
+ request.setTo(conversation.getJid().asBareJid());
+ request.query("http://jabber.org/protocol/muc#owner").addChild("destroy");
+ sendIqPacket(conversation.getAccount(), request, new OnIqPacketReceived() {
@Override
- public void onRoomDestroyFailed(int resId) {
- Log.d(Config.LOGTAG, "Destroy failed");
- showErrorToastInUi(resId);
+ public void onIqPacketReceived(Account account, IqPacket packet) {
+ if (packet.getType() == IqPacket.TYPE.RESULT) {
+ if (callback != null) {
+ callback.onRoomDestroySucceeded();
+ }
+ } else if (packet.getType() == IqPacket.TYPE.ERROR) {
+ if (callback != null) {
+ callback.onRoomDestroyFailed();
+ }
+ }
}
});
}
- public void destroyRoom(final Conversation conference, final OnRoomDestroy callback) {
- IqPacket request = this.mIqGenerator.destroyRoom(conference);
- sendIqPacket(conference.getAccount(), request, (account, packet) -> {
- if (packet.getType() == IqPacket.TYPE.RESULT) {
- callback.onRoomDestroySucceeded(R.string.destroy_muc_succeed);
- } else {
- callback.onRoomDestroyFailed(R.string.destroy_muc_failed);
- }
- });
- }
private void disconnect(Account account, boolean force) {
if ((account.getStatus() == Account.State.ONLINE)
@@ -4719,9 +4713,9 @@ public class XmppConnectionService extends Service {
}
public interface OnRoomDestroy {
- void onRoomDestroySucceeded(int resId);
+ void onRoomDestroySucceeded();
- void onRoomDestroyFailed(int resId);
+ void onRoomDestroyFailed();
}
public interface OnConversationUpdate {
diff --git a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
index 3d9e87b0d..cee5c20e1 100644
--- a/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ConferenceDetailsActivity.java
@@ -64,8 +64,9 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
public void onClick(View v) {
final AlertDialog.Builder DestroyMucDialog = new AlertDialog.Builder(ConferenceDetailsActivity.this);
DestroyMucDialog.setNegativeButton(getString(R.string.cancel), null);
- DestroyMucDialog.setTitle(getString(R.string.destroy_muc));
- DestroyMucDialog.setMessage(getString(R.string.destroy_muc_text, mConversation.getName()));
+ final boolean groupChat = mConversation != null && mConversation.isPrivateAndNonAnonymous();
+ DestroyMucDialog.setTitle(groupChat ? R.string.destroy_room : R.string.destroy_channel);
+ DestroyMucDialog.setMessage(getString(groupChat ? R.string.destroy_room_dialog : R.string.destroy_channel_dialog, mConversation.getName()));
DestroyMucDialog.setPositiveButton(getString(R.string.delete), (dialogInterface, i) -> {
Intent intent = new Intent(xmppConnectionService, ConversationsActivity.class);
intent.setAction(ConversationsActivity.ACTION_DESTROY_MUC);
@@ -388,9 +389,10 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
@Override
public boolean onCreateOptionsMenu(Menu menu) {
+ final boolean groupChat = mConversation != null && mConversation.isPrivateAndNonAnonymous();
getMenuInflater().inflate(R.menu.muc_details, menu);
final MenuItem share = menu.findItem(R.id.action_share);
- share.setVisible(mConversation != null && !mConversation.isPrivateAndNonAnonymous());
+ share.setVisible(groupChat);
return super.onCreateOptionsMenu(menu);
}
@@ -435,6 +437,11 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers
final int limit = GridManager.getCurrentColumnCount(this.binding.media);
xmppConnectionService.getAttachments(this.mConversation, limit, this);
this.binding.showMedia.setOnClickListener((v) -> MediaBrowserActivity.launch(this, mConversation));
+
+ final boolean groupChat = mConversation != null && mConversation.isPrivateAndNonAnonymous();
+ this.binding.destroy.setText(groupChat ? R.string.destroy_room : R.string.destroy_channel);
+ this.binding.leaveMuc.setText(groupChat ? R.string.action_end_conversation_muc : R.string.action_end_conversation_channel);
+ this.binding.autojoinCheckbox.setText(groupChat ? R.string.autojoin_group_chat : R.string.autojoin_channel);
}
updateView();
}
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java b/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java
index e7343ce63..e84e657b7 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationsActivity.java
@@ -96,7 +96,7 @@ import rocks.xmpp.addr.Jid;
import static de.pixart.messenger.ui.ConversationFragment.REQUEST_DECRYPT_PGP;
-public class ConversationsActivity extends XmppActivity implements OnConversationSelected, OnConversationArchived, OnConversationsListItemUpdated, OnConversationRead, XmppConnectionService.OnAccountUpdate, XmppConnectionService.OnConversationUpdate, XmppConnectionService.OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast, XmppConnectionService.OnAffiliationChanged {
+public class ConversationsActivity extends XmppActivity implements OnConversationSelected, OnConversationArchived, OnConversationsListItemUpdated, OnConversationRead, XmppConnectionService.OnAccountUpdate, XmppConnectionService.OnConversationUpdate, XmppConnectionService.OnRosterUpdate, OnUpdateBlocklist, XmppConnectionService.OnShowErrorToast, XmppConnectionService.OnAffiliationChanged, XmppConnectionService.OnRoomDestroy {
public static final String ACTION_VIEW_CONVERSATION = "de.pixart.messenger.VIEW";
public static final String EXTRA_CONVERSATION = "conversationUuid";
@@ -607,7 +607,7 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
Log.d(Config.LOGTAG, "Get " + intent.getAction() + " intent for " + extras.getString("MUC_UUID"));
Conversation conversation = xmppConnectionService.findConversationByUuid(extras.getString("MUC_UUID"));
ConversationsActivity.this.xmppConnectionService.clearConversationHistory(conversation);
- xmppConnectionService.destroyRoom(conversation);
+ xmppConnectionService.destroyRoom(conversation, ConversationsActivity.this);
endConversation(conversation);
}
}
@@ -932,4 +932,18 @@ public class ConversationsActivity extends XmppActivity implements OnConversatio
Log.d(Config.LOGTAG, "AppUpdater stopped");
}
}
+
+ @Override
+ public void onRoomDestroySucceeded() {
+ Conversation conversation = ConversationFragment.getConversationReliable(this);
+ final boolean groupChat = conversation != null && conversation.isPrivateAndNonAnonymous();
+ displayToast(getString(groupChat ? R.string.destroy_room_succeed : R.string.destroy_channel_succeed));
+ }
+
+ @Override
+ public void onRoomDestroyFailed() {
+ Conversation conversation = ConversationFragment.getConversationReliable(this);
+ final boolean groupChat = conversation != null && conversation.isPrivateAndNonAnonymous();
+ displayToast(getString(groupChat ? R.string.destroy_room_failed : R.string.destroy_channel_failed));
+ }
} \ No newline at end of file