diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 997f0e1..eefcbda 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -6,6 +6,7 @@ + foreground(getString(R.string.websocket_closed))) .onBadRequest(this::onBadRequest) - .onFailure((min) -> foreground(getString(R.string.websocket_failed, min))) + .onNetworkFailure( + (min) -> foreground(getString(R.string.websocket_failed, min))) + .onDisconnect(this::onDisconnect) .onMessage(this::onMessage) .onReconnected(this::notifyMissedNotifications) .start(); + + IntentFilter intentFilter = new IntentFilter(); + intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); + ReconnectListener receiver = new ReconnectListener(this::doReconnect); + registerReceiver(receiver, intentFilter); + } + + private void onDisconnect() { + foreground(getString(R.string.websocket_no_network)); + } + + private void doReconnect() { + if (connection == null) { + return; + } + + connection.scheduleReconnect(TimeUnit.SECONDS.toMillis(5)); } private void onBadRequest(String message) { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bdba0b9..c55b3ab 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -57,4 +57,5 @@ Warning Using http is insecure and it\'s recommend to use https instead. Use your favorite search engine to get more information about this topic. I Understand + Waiting for network