From c1540c1b1d8e6e4f07010a8c04fba6c78344df55 Mon Sep 17 00:00:00 2001 From: ChronosX88 Date: Sun, 26 May 2019 21:22:02 +0400 Subject: [PATCH] Fixed bug with long authentication --- .../influence/views/LoginActivity.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/app/src/main/java/io/github/chronosx88/influence/views/LoginActivity.java b/app/src/main/java/io/github/chronosx88/influence/views/LoginActivity.java index d480673..8990844 100644 --- a/app/src/main/java/io/github/chronosx88/influence/views/LoginActivity.java +++ b/app/src/main/java/io/github/chronosx88/influence/views/LoginActivity.java @@ -36,6 +36,9 @@ import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; import org.greenrobot.eventbus.ThreadMode; +import java.util.Timer; +import java.util.TimerTask; + import io.github.chronosx88.influence.R; import io.github.chronosx88.influence.XMPPConnectionService; import io.github.chronosx88.influence.contracts.CoreContracts; @@ -51,6 +54,7 @@ public class LoginActivity extends AppCompatActivity implements CoreContracts.IL private TextInputLayout passwordInputLayout; private Button signInButton; private ProgressDialog progressDialog; + private Timer timer = new Timer(true); @Override protected void onCreate(Bundle savedInstanceState) { @@ -155,6 +159,23 @@ public class LoginActivity extends AppCompatActivity implements CoreContracts.IL } }); bindService(new Intent(this, XMPPConnectionService.class), AppHelper.getServiceConnection(), Context.BIND_AUTO_CREATE); + timer.schedule(new TimerTask() { + @Override + public void run() { + if(AppHelper.getXmppConnection() != null) { + if(AppHelper.getXmppConnection().isConnectionAlive()) { + EventBus.getDefault().post(new AuthenticationStatusEvent(AuthenticationStatusEvent.CONNECT_AND_LOGIN_SUCCESSFUL)); + } else { + EventBus.getDefault().post(new AuthenticationStatusEvent(AuthenticationStatusEvent.INCORRECT_LOGIN_OR_PASSWORD)); + } + } else { + EventBus.getDefault().post(new AuthenticationStatusEvent(AuthenticationStatusEvent.NETWORK_ERROR)); + } + timer.cancel(); + timer.purge(); + timer = new Timer(); + } + }, 10000); } @Subscribe(threadMode = ThreadMode.MAIN)