diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java index 04f71ed..c6c8807 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java @@ -13,27 +13,26 @@ import android.widget.Spinner; import android.widget.TextView; +import java.util.Date; +import java.util.List; + import de.apps4ics.mountainnavigation.handlers.WeatherHandler; /** * Created by Vinz on 18.03.2016. */ -public class DownloadActivity extends Activity { +public class DownloadActivity extends Activity implements OnSingleWeatherRetrieved, OnWeatherRetrieved { LinearLayout dayLayout; SeekBar dayPicker; TextView dayDisplay; Button startDownload; int nrOfForecastDays; String currentSelected; - OnWeatherRetrievedCallback weatherListCallback; - OnSingleWeatherRetrievedCallback weatherCallback; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_download); - weatherListCallback = new OnWeatherRetrievedCallback(this); - weatherCallback = new OnSingleWeatherRetrievedCallback(MainActivity.getWeatherHandler(), this); dayLayout = (LinearLayout) findViewById(R.id.forecastNrOfDaysLayout); dayPicker = (SeekBar) findViewById(R.id.forecastNrOfDaysSeek); dayDisplay = (TextView) findViewById(R.id.forecastNrOfDays); @@ -67,9 +66,9 @@ return; } if(currentSelected.equals(getString(R.string.download_forecast_key))) { - weatherHandler.getForecast(l, nrOfForecastDays, weatherListCallback); + weatherHandler.getForecast(l, nrOfForecastDays, DownloadActivity.this); } else if(currentSelected.equals(getString(R.string.download_current_key))) { - weatherHandler.getCurrentWeather(l, weatherCallback); + weatherHandler.getCurrentWeather(l, DownloadActivity.this); } else if(currentSelected.equals(getString(R.string.download_day_key))) { //TODO } @@ -85,7 +84,6 @@ @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { String key = currentSelected = getResources().getStringArray(R.array.download_categories_keys)[position]; - Log.d(MainActivity.TAG, parent.getItemAtPosition(position)+""); if(key.equals(getString(R.string.download_forecast_key))) { dayLayout.setVisibility(View.VISIBLE); } else { @@ -97,4 +95,23 @@ } }); } + + @Override + public MyWeather postRetrieve(MyWeather weather) { + MainActivity.Toaster("Got current weather for current/stated location", this); + return null; + } + + @Override + public List postRetrieve(List weathers) { + if(weathers.size() == 0) { + MainActivity.Toaster("No forecasts found for this location!", this); + } else { + MainActivity.Toaster(weathers.size() + " forecasts found and added!", this); + } + for(MyWeather mw : weathers) { + Log.d(MainActivity.TAG, mw.getCity() + " (" + MainActivity.df_full.format(new Date(mw.getTimestamp()*1000)) + ")"); + } + return null; + } } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 0073268..62f3ca8 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -54,7 +54,7 @@ import de.apps4ics.mountainnavigation.pois.Poi; import de.apps4ics.mountainnavigation.pois.Types; -public class MainActivity extends AppCompatActivity implements LocationListener { +public class MainActivity extends AppCompatActivity implements LocationListener, OnSingleWeatherRetrieved { public static final String TAG = "MountainNavigation"; /** @@ -88,7 +88,6 @@ private DatabaseHandler dbHandler; private PoiHandler poiHandler; private static WeatherHandler weatherHandler; - private OnSingleWeatherRetrievedCallback callback; private long lastWeatherInformation; private long lastPoiInformation; @@ -145,7 +144,6 @@ dbHandler = new DatabaseHandler(this); poiHandler = new PoiHandler(this, res, mapView); weatherHandler = new WeatherHandler(this); - callback = new OnSingleWeatherRetrievedCallback(weatherHandler, this); lastWeatherInformation = lastPoiInformation = 0; @@ -474,7 +472,7 @@ if(currentTime - lastWeatherInformation >= MIN_WEATHER_RELOAD_TIME || distance >= MIN_WEATHER_RELOAD_DIST) { lastWeatherInformation = currentTime; - weatherHandler.getCurrentWeather(location, callback); + weatherHandler.getCurrentWeather(location, this); } if(currentTime - lastPoiInformation >= MIN_POI_RELOAD_TIME || distance >= MIN_POI_RELOAD_DIST) { //5 minutes lastPoiInformation = currentTime; @@ -569,4 +567,11 @@ protected void onDestroy() { super.onDestroy(); } + + @Override + public MyWeather postRetrieve(MyWeather weather) { + weatherHandler.displayHints(weather); + weatherHandler.displaySevereWeather(weather); + return null; + } } \ No newline at end of file diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/OnSingleWeatherRetrievedCallback.java b/app/src/main/java/de/apps4ics/mountainnavigation/OnSingleWeatherRetrievedCallback.java deleted file mode 100644 index 2353ec4..0000000 --- a/app/src/main/java/de/apps4ics/mountainnavigation/OnSingleWeatherRetrievedCallback.java +++ /dev/null @@ -1,25 +0,0 @@ -package de.apps4ics.mountainnavigation; - -import android.content.Context; - -import de.apps4ics.mountainnavigation.handlers.WeatherHandler; - -/** - * Created by Vinz on 18.03.2016. - */ -public class OnSingleWeatherRetrievedCallback implements OnSingleWeatherRetrieved { - WeatherHandler weatherHandler; - Context context; - - public OnSingleWeatherRetrievedCallback(WeatherHandler weatherHandler, Context context) { - this.weatherHandler = weatherHandler; - this.context = context; - } - - @Override - public MyWeather postRetrieve(MyWeather weather) { - weatherHandler.displayHints(weather); - weatherHandler.displaySevereWeather(weather); - return null; - } -} diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/OnWeatherRetrievedCallback.java b/app/src/main/java/de/apps4ics/mountainnavigation/OnWeatherRetrievedCallback.java deleted file mode 100644 index 380fa6f..0000000 --- a/app/src/main/java/de/apps4ics/mountainnavigation/OnWeatherRetrievedCallback.java +++ /dev/null @@ -1,31 +0,0 @@ -package de.apps4ics.mountainnavigation; - -import android.content.Context; -import android.util.Log; - -import java.util.Date; -import java.util.List; - -/** - * Created by Vinz on 18.03.2016. - */ -public class OnWeatherRetrievedCallback implements OnWeatherRetrieved { - Context context; - - public OnWeatherRetrievedCallback(Context context) { - this.context = context; - } - - @Override - public List postRetrieve(List weathers) { - if(weathers.size() == 0) { - MainActivity.Toaster("No forecasts found for this location!", context); - } else { - MainActivity.Toaster(weathers.size() + " forecasts found and added!", context); - } - for(MyWeather mw : weathers) { - Log.d(MainActivity.TAG, mw.getCity() + " (" + MainActivity.df_full.format(new Date(mw.getTimestamp()*1000)) + ")"); - } - return null; - } -}