aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian.schneppe@pix-art.de>2019-11-16 18:04:58 +0100
committerChristian Schneppe <christian.schneppe@pix-art.de>2019-11-16 18:04:58 +0100
commit7ea00aa98c048ac8a2d58b38b789326dd7a32035 (patch)
tree9064528716948b709ac5024356f75e5d782e56b6 /src/main/java/de/pixart/messenger/services/XmppConnectionService.java
parent14081b1f8556035fabd1df5d475e93112b937c3a (diff)
add possibility to block muc user from muc
Diffstat (limited to 'src/main/java/de/pixart/messenger/services/XmppConnectionService.java')
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
index a65c8ef1b..347406c60 100644
--- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
+++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java
@@ -4109,6 +4109,22 @@ public class XmppConnectionService extends Service {
mDatabaseWriterExecutor.execute(() -> databaseBackend.updateConversation(conversation));
}
+ private void reconnectAccount(final Account account) {
+ account.setOption(Account.OPTION_DISABLED, true);
+ if (!updateAccount(account)) {
+ Log.d(Config.LOGTAG, getString(R.string.unable_to_update_account));
+ }
+ account.setOption(Account.OPTION_DISABLED, false);
+ final XmppConnection connection = account.getXmppConnection();
+ if (connection != null) {
+ connection.resetEverything();
+ }
+ if (!updateAccount(account)) {
+ Log.d(Config.LOGTAG, getString(R.string.unable_to_update_account));
+ }
+ }
+
+
private void reconnectAccount(final Account account, final boolean force, final boolean interactive) {
synchronized (account) {
XmppConnection connection = account.getXmppConnection();
@@ -4278,6 +4294,7 @@ public class XmppConnectionService extends Service {
public boolean hideYouAreNotParticipating() {
return getBooleanPreference(SettingsActivity.HIDE_YOU_ARE_NOT_PARTICIPATING, R.bool.hide_you_are_not_participating);
}
+
public boolean broadcastLastActivity() {
return getBooleanPreference(SettingsActivity.BROADCAST_LAST_ACTIVITY, R.bool.last_activity);
}
@@ -4789,6 +4806,9 @@ public class XmppConnectionService extends Service {
if (packet.getType() == IqPacket.TYPE.RESULT) {
account.getBlocklist().remove(jid);
updateBlocklistUi(OnUpdateBlocklist.Status.UNBLOCKED);
+ if (blockable.getJid().isFullJid()) {
+ reconnectAccount(account);
+ }
}
}
});