From bdb8d98eb130b64cd2482e462a7a0dd035f92fbc Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Mon, 8 Oct 2018 10:31:11 +0200 Subject: [PATCH] show snackbar for remote server timeout in mucs --- .../java/eu/siacs/conversations/entities/MucOptions.java | 1 + .../java/eu/siacs/conversations/parser/PresenceParser.java | 2 ++ .../eu/siacs/conversations/ui/ConversationFragment.java | 7 +++++++ src/main/res/values/strings.xml | 1 + 4 files changed, 11 insertions(+) diff --git a/src/main/java/eu/siacs/conversations/entities/MucOptions.java b/src/main/java/eu/siacs/conversations/entities/MucOptions.java index ef2e7243cae71070fc95c68f95c159969179ee7a..631987706fac5aab084a630f83d19eeb610d9382 100644 --- a/src/main/java/eu/siacs/conversations/entities/MucOptions.java +++ b/src/main/java/eu/siacs/conversations/entities/MucOptions.java @@ -644,6 +644,7 @@ public class MucOptions { public enum Error { NO_RESPONSE, SERVER_NOT_FOUND, + REMOTE_SERVER_TIMEOUT, NONE, NICK_IN_USE, PASSWORD_REQUIRED, diff --git a/src/main/java/eu/siacs/conversations/parser/PresenceParser.java b/src/main/java/eu/siacs/conversations/parser/PresenceParser.java index 1208c21136e1fc13319b74febea7a0607dc561ad..201ea1c94b02c07ff1f2e521202224149cae37e1 100644 --- a/src/main/java/eu/siacs/conversations/parser/PresenceParser.java +++ b/src/main/java/eu/siacs/conversations/parser/PresenceParser.java @@ -188,6 +188,8 @@ public class PresenceParser extends AbstractParser implements mucOptions.setError(MucOptions.Error.MEMBERS_ONLY); } else if (error.hasChild("resource-constraint")) { mucOptions.setError(MucOptions.Error.RESOURCE_CONSTRAINT); + } else if (error.hasChild("remote-server-timeout")) { + mucOptions.setError(MucOptions.Error.REMOTE_SERVER_TIMEOUT); } else if (error.hasChild("gone")) { final String gone = error.findChildContent("gone"); final Jid alternate; diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java index 6b63ac0f20a072c704628006569f539814a3d5e2..f1f8a44e88349f10617f697df7a51fb7d9b84620 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/main/java/eu/siacs/conversations/ui/ConversationFragment.java @@ -2111,6 +2111,13 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke showSnackbar(R.string.remote_server_not_found, R.string.leave, leaveMuc); } break; + case REMOTE_SERVER_TIMEOUT: + if (conversation.receivedMessagesCount() > 0) { + showSnackbar(R.string.remote_server_timeout, R.string.try_again, joinMuc); + } else { + showSnackbar(R.string.remote_server_timeout, R.string.leave, leaveMuc); + } + break; case PASSWORD_REQUIRED: showSnackbar(R.string.conference_requires_password, R.string.enter_password, enterPassword); break; diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index a729a134dc9a7601ff78338c496f3d20433c019b..7876525ba1c4f1fa26f6aab523a0b3d52997254d 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -561,6 +561,7 @@ Allow No permission to access %s Remote server not found + Remote server timeout Unable to update account Report this JID as sending unwanted messages. Delete OMEMO identities