introduce dedicated channel binding error state

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/entities/Account.java    | 3 +++
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java | 2 +-
2 files changed, 4 insertions(+), 1 deletion(-)

Detailed changes

src/main/java/eu/siacs/conversations/entities/Account.java 🔗

@@ -793,6 +793,7 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable
         REGISTRATION_PASSWORD_TOO_WEAK(true, false),
         TLS_ERROR,
         TLS_ERROR_DOMAIN,
+        CHANNEL_BINDING,
         INCOMPATIBLE_SERVER,
         INCOMPATIBLE_CLIENT,
         TOR_NOT_AVAILABLE,
@@ -871,6 +872,8 @@ public class Account extends AbstractEntity implements AvatarService.Avatarable
                     return R.string.account_status_incompatible_server;
                 case INCOMPATIBLE_CLIENT:
                     return R.string.account_status_incompatible_client;
+                case CHANNEL_BINDING:
+                    return R.string.account_status_channel_binding;
                 case TOR_NOT_AVAILABLE:
                     return R.string.account_status_tor_unavailable;
                 case BIND_FAILURE:

src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java 🔗

@@ -1696,7 +1696,7 @@ public class XmppConnection implements Runnable {
                 return;
             }
             Log.d(Config.LOGTAG, account.getJid() + ": server did not offer channel binding");
-            throw new StateChangingException(Account.State.INCOMPATIBLE_SERVER);
+            throw new StateChangingException(Account.State.CHANNEL_BINDING);
         }
     }