Connection error management

This commit is contained in:
Daniele 2021-09-10 19:02:28 +02:00
parent e558fa28b5
commit 6bca4462a3
4 changed files with 22 additions and 3 deletions

View File

@ -113,17 +113,26 @@ public class GeofavoriteDetailActivity extends AppCompatActivity implements Loca
call.enqueue(new Callback<Geofavorite>() { call.enqueue(new Callback<Geofavorite>() {
@Override @Override
public void onResponse(Call<Geofavorite> call, Response<Geofavorite> response) { public void onResponse(Call<Geofavorite> call, Response<Geofavorite> response) {
finish(); if (response.isSuccessful())
finish();
else
onGeofavoriteSaveFailed();
} }
@Override @Override
public void onFailure(Call<Geofavorite> call, Throwable t) { public void onFailure(Call<Geofavorite> call, Throwable t) {
Toast.makeText(GeofavoriteDetailActivity.this, R.string.error_saving_geofavorite, Toast.LENGTH_SHORT).show(); onGeofavoriteSaveFailed();
Log.e(TAG, "Unable to update geofavorite: " + t.getMessage()); Log.e(TAG, "Unable to update geofavorite: " + t.getMessage());
} }
}); });
} }
private void onGeofavoriteSaveFailed() {
runOnUiThread(() ->
Toast.makeText(GeofavoriteDetailActivity.this, R.string.error_saving_geofavorite, Toast.LENGTH_SHORT).show()
);
}
/** /**
* Obtains the current location (requesting user's permission, if necessary) * Obtains the current location (requesting user's permission, if necessary)
* and calls updateLocationField() * and calls updateLocationField()

View File

@ -22,6 +22,7 @@ import android.content.Intent;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.widget.Toast; import android.widget.Toast;
import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AlertDialog;
@ -65,6 +66,8 @@ public class MainActivity extends AppCompatActivity implements MainView, OnSorti
private static final int INTENT_ADD = 100; private static final int INTENT_ADD = 100;
private static final int INTENT_EDIT = 200; private static final int INTENT_EDIT = 200;
private static final String TAG = "MainActivity";
private static final String NAVIGATION_KEY_ADD_GEOFAVORITE = "add"; private static final String NAVIGATION_KEY_ADD_GEOFAVORITE = "add";
private static final String NAVIGATION_KEY_SHOW_ABOUT = "about"; private static final String NAVIGATION_KEY_SHOW_ABOUT = "about";
private static final String NAVIGATION_KEY_SWITCH_ACCOUNT = "switch_account"; private static final String NAVIGATION_KEY_SWITCH_ACCOUNT = "switch_account";
@ -292,7 +295,8 @@ public class MainActivity extends AppCompatActivity implements MainView, OnSorti
@Override @Override
public void onErrorLoading(String message) { public void onErrorLoading(String message) {
Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show(); Toast.makeText(MainActivity.this, R.string.list_geofavorite_connection_error, Toast.LENGTH_LONG).show();
Log.e(TAG, "Unable to obtain geofavorites list: " + message);
} }
@Override @Override

View File

@ -50,6 +50,11 @@ public class MainPresenter {
view.hideLoading(); view.hideLoading();
if (response.isSuccessful() && response.body() != null) { if (response.isSuccessful() && response.body() != null) {
view.onGetResult(response.body()); view.onGetResult(response.body());
} else {
((AppCompatActivity) view).runOnUiThread(() -> {
view.hideLoading();
view.onErrorLoading(response.raw().message());
});
} }
}); });
} }

View File

@ -38,6 +38,7 @@
<string name="dialog_delete_delete">Delete</string> <string name="dialog_delete_delete">Delete</string>
<string name="dialog_delete_cancel">Maintain</string> <string name="dialog_delete_cancel">Maintain</string>
<string name="list_geofavorite_deleted">Geofavorite deleted</string> <string name="list_geofavorite_deleted">Geofavorite deleted</string>
<string name="list_geofavorite_connection_error">Unable to obtain geofavorites list</string>
<!-- Sort dialog --> <!-- Sort dialog -->
<string name="sort_by">Sort by</string> <string name="sort_by">Sort by</string>