diff options
author | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-11-16 18:04:58 +0100 |
---|---|---|
committer | Christian Schneppe <christian.schneppe@pix-art.de> | 2019-11-16 18:04:58 +0100 |
commit | 7ea00aa98c048ac8a2d58b38b789326dd7a32035 (patch) | |
tree | 9064528716948b709ac5024356f75e5d782e56b6 /src/main/java/de/pixart/messenger/services/XmppConnectionService.java | |
parent | 14081b1f8556035fabd1df5d475e93112b937c3a (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.java | 20 |
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); + } } } }); |