From f4274ed03e87c30883f482b0c5f74e2ac59adabb Mon Sep 17 00:00:00 2001 From: Thibault Nocchi <1619359+ThibaultNocchi@users.noreply.github.com> Date: Tue, 7 Jul 2020 21:55:14 +0200 Subject: [PATCH] Fixed app crash when trying to connect without server address --- .../ui/activities/LoginActivity.java | 44 ++++++++++++------- app/src/main/res/values-fr/strings.xml | 2 + app/src/main/res/values/strings.xml | 2 + 3 files changed, 31 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java b/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java index aa28b59c..064d12cb 100644 --- a/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java +++ b/app/src/main/java/com/dkanada/gramophone/ui/activities/LoginActivity.java @@ -101,27 +101,37 @@ public class LoginActivity extends AbsBaseActivity implements View.OnClickListen credentialProvider = new AndroidCredentialProvider(jsonSerializer, this, logger); ConnectionManager connectionManager = App.getConnectionManager(context, jsonSerializer, logger, httpClient); - connectionManager.Connect(server.getText().toString(), new Response() { - @Override - public void onResponse(ConnectionResult result) { - App.setApiClient(result.getApiClient()); - ServerCredentials serverCredentials = new ServerCredentials(); - List servers = result.getServers(); - if (servers.size() < 1) { - return; - } + try { + connectionManager.Connect(server.getText().toString(), new Response() { + @Override + public void onResponse(ConnectionResult result) { + App.setApiClient(result.getApiClient()); + ServerCredentials serverCredentials = new ServerCredentials(); + List servers = result.getServers(); - serverCredentials.AddOrUpdateServer(servers.get(0)); - App.getApiClient().AuthenticateUserAsync(username.getText().toString(), password.getText().toString(), new Response() { - @Override - public void onResponse(AuthenticationResult result) { - if (result.getAccessToken() == null) return; - check(context, serverCredentials, result); + if (servers.size() < 1) { + return; } - }); + + serverCredentials.AddOrUpdateServer(servers.get(0)); + App.getApiClient().AuthenticateUserAsync(username.getText().toString(), password.getText().toString(), new Response() { + @Override + public void onResponse(AuthenticationResult result) { + if (result.getAccessToken() == null) return; + check(context, serverCredentials, result); + } + }); + } + }); + } catch (IllegalArgumentException e) { + if (e.getMessage().equals("address")) { + Toast.makeText(context, context.getResources().getString(R.string.error_login_empty_addr), Toast.LENGTH_SHORT).show(); + } else { + Toast.makeText(context, context.getResources().getString(R.string.error_unexpected), Toast.LENGTH_SHORT).show(); } - }); + } + } } diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 9f2b09eb..2038ef44 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -149,4 +149,6 @@ Artiste Album Année + Veuillez saisir l\'adresse du serveur. + Une erreur inattendue s\'est produite. diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1872ae32..2da38af5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -214,5 +214,7 @@ Cancel current timer Sleep timer canceled. Sleep timer set for %d minutes from now. + Please fill in the server address. + An unexpected error occurred.