diff --git a/app/src/main/java/fr/romanet/vj/apps/myweather/ShowTemparature.java b/app/src/main/java/fr/romanet/vj/apps/myweather/ShowTemparature.java index a21ce95..9cd3eae 100644 --- a/app/src/main/java/fr/romanet/vj/apps/myweather/ShowTemparature.java +++ b/app/src/main/java/fr/romanet/vj/apps/myweather/ShowTemparature.java @@ -70,7 +70,10 @@ public class ShowTemparature extends AppCompatActivity { // - If it's all right, update Activity Objects with JSON parsed answer Weather weather = response.body(); - textView2.append(weather.get_temps().get_temp_feels_like()); +// textView2.append(weather.get_temps().get_temp_feels_like()); + + updateCity(weather); + updateActivityObjectsFromDB(); } @@ -85,6 +88,53 @@ public class ShowTemparature extends AppCompatActivity { } + + @Override + protected void onResume() { + super.onResume(); + + // - Build Retrofit API tool + Retrofit retrofit = new Retrofit.Builder() + .baseUrl("https://api.openweathermap.org/data/2.5/") + .addConverterFactory(GsonConverterFactory.create()) + .build(); + + // - Build Interface with Retrofit + JsonApiInterfce jsonApiInterfce = retrofit.create(JsonApiInterfce.class); + Call call = jsonApiInterfce.getPost(currentCityName, "metric", "0ac5802392867db8e1ae4f91529f7890"); + + // - 'Execute' the GET query with 'enqueue' method, Retrofit will create an AsyncTask that avoids UI Thread freeze Exception. + call.enqueue(new Callback() { + + // - If GET has an answer... + @Override + public void onResponse(Call call, Response response) { + + // - Check if that answer is not an error (like 500, 404, etc) + if(! response.isSuccessful()){ + textView2.setText("Code: " + response.code()); + return; + } + + // - If it's all right, update Activity Objects with JSON parsed answer + Weather weather = response.body(); +// textView2.append(weather.get_temps().get_temp_feels_like()); + + updateCity(weather); + updateActivityObjectsFromDB(); + + } + + // - If GET has no answer... + @Override + public void onFailure(Call call, Throwable t) { + + // - Display error message + textView2.setText("Error: " + t.getMessage()); + } + }); + } + @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_items, menu); @@ -116,4 +166,30 @@ public class ShowTemparature extends AppCompatActivity { } } } + + public void updateCity(Weather weather){ + City updated_city = new City(currentCityName); + updated_city.setW_temp(weather.get_temps().get_temp()); + updated_city.setW_feelsliketemp(weather.get_temps().get_temp_feels_like()); + updated_city.setW_icon(weather.get_weatherDescription().get_icon()); + updated_city.setW_maxtemp(weather.get_temps().get_temp_max()); + updated_city.setW_mintemp(weather.get_temps().get_temp_min()); + + CityRepository.getInstance(this).updateCity(updated_city); + } + + public void updateActivityObjectsFromDB(){ + final List city = CityRepository.getInstance(this).getCity(); + String temp; + for(int i = 0; i < city.size(); i++) + { + if(city.get(i).nameCity.equals(currentCityName)) + { + temp = city.get(i).nameCity; + Log.d("DEBUG1", "---------------------------------------->" + temp); + textView2.setText(temp); + CityRepository.getInstance(this).deleteCity(city.get(i)); + } + } + } } \ No newline at end of file