diff --git a/app/src/main/java/github/vatsal/easyweatherdemo/MainActivity.java b/app/src/main/java/github/vatsal/easyweatherdemo/MainActivity.java index 7a13322..f39320e 100644 --- a/app/src/main/java/github/vatsal/easyweatherdemo/MainActivity.java +++ b/app/src/main/java/github/vatsal/easyweatherdemo/MainActivity.java @@ -80,7 +80,7 @@ public void refresh() { } private void loadWeather(String city) { - WeatherMap weatherMap = new WeatherMap(this, APP_ID); + WeatherMap weatherMap = new WeatherMap(APP_ID); weatherMap.getCityWeather(city, new WeatherCallback() { @Override public void success(WeatherResponseModel response) { diff --git a/library/src/main/java/github/vatsal/easyweather/Helper/TempUnitConverter.java b/library/src/main/java/github/vatsal/easyweather/Helper/TempUnitConverter.java index 1d57a2c..c695a53 100644 --- a/library/src/main/java/github/vatsal/easyweather/Helper/TempUnitConverter.java +++ b/library/src/main/java/github/vatsal/easyweather/Helper/TempUnitConverter.java @@ -8,6 +8,8 @@ */ public class TempUnitConverter { + private static final double ABSOLUTE_ZERO = 273.15; + public static Double convertToCelsius(String kelvin) throws NumberFormatException { double inKelvin; try { @@ -15,7 +17,7 @@ public static Double convertToCelsius(String kelvin) throws NumberFormatExceptio } catch (NumberFormatException e) { throw e; } - return inKelvin - 273.15; + return inKelvin - ABSOLUTE_ZERO; } public static Double convertToFahrenheit(String kelvin) throws NumberFormatException { @@ -25,7 +27,7 @@ public static Double convertToFahrenheit(String kelvin) throws NumberFormatExcep } catch (NumberFormatException e) { throw e; } - return (inKelvin - 273.15) * 1.8000 + 32.00; + return (inKelvin - ABSOLUTE_ZERO) * 1.8000 + 32.00; } } diff --git a/library/src/main/java/github/vatsal/easyweather/WeatherMap.java b/library/src/main/java/github/vatsal/easyweather/WeatherMap.java index cd7384b..4d810a2 100644 --- a/library/src/main/java/github/vatsal/easyweather/WeatherMap.java +++ b/library/src/main/java/github/vatsal/easyweather/WeatherMap.java @@ -1,7 +1,5 @@ package github.vatsal.easyweather; -import android.content.Context; - import github.vatsal.easyweather.Helper.ForecastCallback; import github.vatsal.easyweather.Helper.WeatherCallback; import github.vatsal.easyweather.retrofit.api.ApiClient; @@ -18,26 +16,24 @@ * --2:44 AM in * --OpenWeatherMapDemo */ +@SuppressWarnings("unchecked") public class WeatherMap { - Context context; - String APP_ID; - + private String APP_ID; - public WeatherMap(Context context, String APP_ID) { - this.context = context; + public WeatherMap(String APP_ID) { this.APP_ID = APP_ID; } public void getCityWeather(String city, final WeatherCallback weatherCallback) { final ApiClient objApi = ApiClient.getInstance(); try { - Call objCall = null; + Call objCall; - objCall = objApi.getApi(context).getCityWeather(APP_ID, city); + objCall = objApi.getApi(APP_ID).getCityWeather(city); if (objCall != null) { - objCall.enqueue(new WeatherRetrofitCallback(context) { + objCall.enqueue(new WeatherRetrofitCallback() { @Override public void onFailure(Call call, Throwable t) { @@ -73,12 +69,12 @@ protected void common() { public void getLocationWeather(String latitude, String longitude, final WeatherCallback weatherCallback) { final ApiClient objApi = ApiClient.getInstance(); try { - Call objCall = null; + Call objCall; - objCall = objApi.getApi(context).getLocationWeather(APP_ID, latitude, longitude); + objCall = objApi.getApi(APP_ID).getLocationWeather(latitude, longitude); if (objCall != null) { - objCall.enqueue(new WeatherRetrofitCallback(context) { + objCall.enqueue(new WeatherRetrofitCallback() { @Override public void onFailure(Call call, Throwable t) { @@ -114,12 +110,12 @@ protected void common() { public void getCityForecast(String city, final ForecastCallback forecastCallback) { final ApiClient objApi = ApiClient.getInstance(); try { - Call objCall = null; + Call objCall; - objCall = objApi.getApi(context).getCityForcast(APP_ID, city); + objCall = objApi.getApi(APP_ID).getCityForcast(city); if (objCall != null) { - objCall.enqueue(new WeatherRetrofitCallback(context) { + objCall.enqueue(new WeatherRetrofitCallback() { @Override public void onFailure(Call call, Throwable t) { @@ -155,12 +151,12 @@ protected void common() { public void getLocationForecast(String latitude, String longitude, final ForecastCallback forecastCallback) { final ApiClient objApi = ApiClient.getInstance(); try { - Call objCall = null; + Call objCall; - objCall = objApi.getApi(context).getLocationForecast(APP_ID, latitude, longitude); + objCall = objApi.getApi(APP_ID).getLocationForecast(latitude, longitude); if (objCall != null) { - objCall.enqueue(new WeatherRetrofitCallback(context) { + objCall.enqueue(new WeatherRetrofitCallback() { @Override public void onFailure(Call call, Throwable t) { diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/api/ApiClient.java b/library/src/main/java/github/vatsal/easyweather/retrofit/api/ApiClient.java index 933652f..5f1304b 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/api/ApiClient.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/api/ApiClient.java @@ -1,9 +1,6 @@ package github.vatsal.easyweather.retrofit.api; -import android.content.Context; -import android.support.annotation.NonNull; - import java.io.IOException; import okhttp3.Interceptor; @@ -28,7 +25,7 @@ public static synchronized ApiClient getInstance() { return uniqInstance; } - private void ApiClient(@NonNull final Context currContext) { + private void ApiClient(final String appId) { try { HttpLoggingInterceptor logging = new HttpLoggingInterceptor(); // set your desired log level @@ -41,6 +38,7 @@ public Response intercept(Interceptor.Chain chain) throws IOException { Request.Builder builder = original.newBuilder(); builder.method(original.method(), original.body()); + builder.addHeader(WeatherInterface.FIELDS.APPID, appId); Request request = builder.build(); return chain.proceed(request); @@ -94,11 +92,11 @@ public Response intercept(Chain chain) throws IOException { } } - public WeatherInterface getApi(Context currContext) { + public WeatherInterface getApi(String appId) { if (uniqInstance == null) { getInstance(); } - uniqInstance.ApiClient(currContext); + uniqInstance.ApiClient(appId); return weatherInterface; } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherInterface.java b/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherInterface.java index a614c46..1cffd81 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherInterface.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherInterface.java @@ -9,21 +9,23 @@ public interface WeatherInterface { @GET("weather") - Call getCityWeather(@Query("appid") String appid, - @Query("q") String city); + Call getCityWeather(@Query(FIELDS.Q) String city); @GET("weather") - Call getLocationWeather(@Query("appid") String appid, - @Query("lat") String latitude, - @Query("lon") String longitude); + Call getLocationWeather(@Query(FIELDS.LAT) String latitude, + @Query(FIELDS.LON) String longitude); @GET("forecast") - Call getCityForcast(@Query("appid") String appid, - @Query("q") String city); + Call getCityForcast(@Query(FIELDS.Q) String city); @GET("forecast") - Call getLocationForecast(@Query("appid") String appid, - @Query("lat") String latitude, - @Query("lon") String longitude); + Call getLocationForecast(@Query(FIELDS.LAT) String latitude, + @Query(FIELDS.LON) String longitude); + interface FIELDS { + String APPID = "appid"; + String Q = "q"; + String LAT = "lat"; + String LON = "lon"; + } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherRetrofitCallback.java b/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherRetrofitCallback.java index 5f05efb..c638dd2 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherRetrofitCallback.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/api/WeatherRetrofitCallback.java @@ -1,8 +1,5 @@ package github.vatsal.easyweather.retrofit.api; -import android.app.Activity; -import android.content.Context; - import retrofit2.Call; import retrofit2.Callback; import retrofit2.Response; @@ -11,16 +8,6 @@ * Created by nuhbye on 07/03/16. */ public abstract class WeatherRetrofitCallback implements Callback { - Activity activity; - Context context; - - public WeatherRetrofitCallback(Activity activity) { - this.activity = activity; - } - - public WeatherRetrofitCallback(Context context) { - this.context = context; - } @Override public void onResponse(Call call, Response response) { diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/City.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/City.java index 6849cf6..0f2e64a 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/City.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/City.java @@ -71,6 +71,6 @@ public void setCountry(String country) { @Override public String toString() { - return "ClassPojo [coord = " + coord + ", id = " + id + ", sys = " + sys + ", name = " + name + ", population = " + population + ", country = " + country + "]"; + return String.format("ClassPojo [coord = %s, id = %s, sys = %s, name = %s, population = %s, country = %s]", coord, id, sys, name, population, country); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Clouds.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Clouds.java index a53df55..6779cf3 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Clouds.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Clouds.java @@ -21,6 +21,6 @@ public void setAll(String all) { @Override public String toString() { - return "ClassPojo [all = " + all + "]"; + return String.format("ClassPojo [all = %s]", all); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Coord.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Coord.java index 588740e..269f132 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Coord.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Coord.java @@ -31,6 +31,6 @@ public void setLat(String lat) { @Override public String toString() { - return "ClassPojo [lon = " + lon + ", lat = " + lat + "]"; + return String.format("ClassPojo [lon = %s, lat = %s]", lon, lat); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/ForecastResponseModel.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/ForecastResponseModel.java index 5a4da10..4954c24 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/ForecastResponseModel.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/ForecastResponseModel.java @@ -61,6 +61,6 @@ public void setCity(City city) { @Override public String toString() { - return "ClassPojo [message = " + message + ", cnt = " + cnt + ", cod = " + cod + ", list = " + list + ", city = " + city + "]"; + return String.format("ClassPojo [message = %s, cnt = %s, cod = %s, list = %s, city = %s]", message, cnt, cod, list, city); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/List.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/List.java index d010856..fc9bcdb 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/List.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/List.java @@ -91,6 +91,6 @@ public void setMain(Main main) { @Override public String toString() { - return "ClassPojo [clouds = " + clouds + ", dt = " + dt + ", wind = " + wind + ", sys = " + sys + ", weather = " + weather + ", dt_txt = " + dt_txt + ", rain = " + rain + ", main = " + main + "]"; + return String.format("ClassPojo [clouds = %s, dt = %s, wind = %s, sys = %s, weather = %s, dt_txt = %s, rain = %s, main = %s]", clouds, dt, wind, sys, weather, dt_txt, rain, main); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Main.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Main.java index 1fbe42d..f4176f4 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Main.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Main.java @@ -61,6 +61,6 @@ public void setTemp(String temp) { @Override public String toString() { - return "ClassPojo [humidity = " + humidity + ", pressure = " + pressure + ", temp_max = " + temp_max + ", temp_min = " + temp_min + ", temp = " + temp + "]"; + return String.format("ClassPojo [humidity = %s, pressure = %s, temp_max = %s, temp_min = %s, temp = %s]", humidity, pressure, temp_max, temp_min, temp); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Sys.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Sys.java index 50b5bcb..c513b20 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Sys.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Sys.java @@ -71,6 +71,6 @@ public void setCountry(String country) { @Override public String toString() { - return "ClassPojo [message = " + message + ", id = " + id + ", sunset = " + sunset + ", sunrise = " + sunrise + ", type = " + type + ", country = " + country + "]"; + return String.format("ClassPojo [message = %s, id = %s, sunset = %s, sunrise = %s, type = %s, country = %s]", message, id, sunset, sunrise, type, country); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Weather.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Weather.java index 821c4ad..a69617d 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Weather.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Weather.java @@ -9,6 +9,8 @@ * --OpenWeatherMapDemo */ public class Weather { + private static final String HTTP_OPENWEATHERMAP_ORG_IMG_W = "http://openweathermap.org/img/w/"; + private String id; private String icon; @@ -30,7 +32,7 @@ public String getIcon() { } public String getIconLink() { - return "http://openweathermap.org/img/w/" + icon + ".png"; + return String.format("%s%s.png", HTTP_OPENWEATHERMAP_ORG_IMG_W, icon); } public void setIcon(String icon) { @@ -55,6 +57,6 @@ public void setMain(String main) { @Override public String toString() { - return "ClassPojo [id = " + id + ", icon = " + icon + ", description = " + description + ", main = " + main + "]"; + return String.format("ClassPojo [id = %s, icon = %s, description = %s, main = %s]", id, icon, description, main); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/WeatherResponseModel.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/WeatherResponseModel.java index 86bca55..cd9d3c9 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/WeatherResponseModel.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/WeatherResponseModel.java @@ -1,6 +1,7 @@ package github.vatsal.easyweather.retrofit.models; import java.io.Serializable; +import java.util.Arrays; /** * Created by @@ -134,6 +135,7 @@ public void setMain(Main main) { @Override public String toString() { - return "ClassPojo [id = " + id + ", dt = " + dt + ", clouds = " + clouds + ", coord = " + coord + ", wind = " + wind + ", cod = " + cod + ", sys = " + sys + ", name = " + name + ", base = " + base + ", weather = " + weather + ", rain = " + rain + ", main = " + main + "]"; + return String.format("ClassPojo [id = %s, dt = %s, clouds = %s, coord = %s, wind = %s, cod = %s, sys = %s, name = %s, base = %s, weather = %s, rain = %s, main = %s]", + id, dt, clouds, coord, wind, cod, sys, name, base, Arrays.toString(weather), rain, main); } } diff --git a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Wind.java b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Wind.java index 715af6b..12ae4aa 100644 --- a/library/src/main/java/github/vatsal/easyweather/retrofit/models/Wind.java +++ b/library/src/main/java/github/vatsal/easyweather/retrofit/models/Wind.java @@ -31,6 +31,6 @@ public void setDeg(String deg) { @Override public String toString() { - return "ClassPojo [speed = " + speed + ", deg = " + deg + "]"; + return String.format("ClassPojo [speed = %s, deg = %s]", speed, deg); } }