diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f0ae23e..e119b00 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -37,6 +37,10 @@ android:name=".SettingsActivity" android:label="@string/action_settings" > + diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java new file mode 100644 index 0000000..e1d364d --- /dev/null +++ b/app/src/main/java/de/apps4ics/mountainnavigation/DownloadActivity.java @@ -0,0 +1,89 @@ +package de.apps4ics.mountainnavigation; + +import android.app.Activity; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.AdapterView; +import android.widget.ArrayAdapter; +import android.widget.Button; +import android.widget.LinearLayout; +import android.widget.SeekBar; +import android.widget.Spinner; +import android.widget.TextView; + +import de.apps4ics.mountainnavigation.handlers.WeatherHandler; + +/** + * Created by Vinz on 18.03.2016. + */ +public class DownloadActivity extends Activity { + LinearLayout dayLayout; + SeekBar dayPicker; + TextView dayDisplay; + Button startDownload; + int nrOfForecastDays; + String currentSelected; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_download); + dayLayout = (LinearLayout) findViewById(R.id.forecastNrOfDaysLayout); + dayPicker = (SeekBar) findViewById(R.id.forecastNrOfDaysSeek); + dayDisplay = (TextView) findViewById(R.id.forecastNrOfDays); + dayPicker.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { + nrOfForecastDays = progress; + dayDisplay.setText(String.valueOf(nrOfForecastDays)); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + }); + + startDownload = (Button) findViewById(R.id.download_start); + startDownload.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + WeatherHandler weatherHandler = MainActivity.getWeatherHandler(); + if(currentSelected.equals(getString(R.string.download_forecast_key))) { + weatherHandler.getForecast(nrOfForecastDays); + } else if(currentSelected.equals(getString(R.string.download_current_key))) { + weatherHandler.getCurrentWeather(); + } else if(currentSelected.equals(getString(R.string.download_day_key))) { + //TODO + } + } + }); + + Spinner dlCategory = (Spinner) findViewById(R.id.downloadCategory); + ArrayAdapter adapter = ArrayAdapter.createFromResource(this, + R.array.download_categories, android.R.layout.simple_spinner_item); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + dlCategory.setAdapter(adapter); + dlCategory.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { + @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 { + dayLayout.setVisibility(View.INVISIBLE); + } + } + @Override + public void onNothingSelected(AdapterView parent) { + } + }); + } +} diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 2e4055c..bdcdd76 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -87,7 +87,7 @@ private DatabaseHandler dbHandler; private PoiHandler poiHandler; - private WeatherHandler weatherHandler; + private static WeatherHandler weatherHandler; private long lastWeatherInformation; private long lastPoiInformation; @@ -199,6 +199,9 @@ } else if(key.equals(getString(R.string.menu_title_settings_key))) { Intent settings = new Intent(MainActivity.this, SettingsActivity.class); startActivity(settings); + } else if(key.equals(getString(R.string.menu_title_download_key))) { + Intent download = new Intent(MainActivity.this, DownloadActivity.class); + startActivity(download); } } }); @@ -469,7 +472,7 @@ if(currentTime - lastWeatherInformation >= MIN_WEATHER_RELOAD_TIME || distance >= MIN_WEATHER_RELOAD_DIST) { lastWeatherInformation = currentTime; - weatherHandler.getForecast(location.getLatitude(), location.getLongitude()); + weatherHandler.getCurrentWeather(location); } if(currentTime - lastPoiInformation >= MIN_POI_RELOAD_TIME || distance >= MIN_POI_RELOAD_DIST) { //5 minutes lastPoiInformation = currentTime; @@ -505,6 +508,8 @@ Log.d(TAG, "onProviderDisabled: " + provider); } + public static WeatherHandler getWeatherHandler() { return weatherHandler; } + public static NetworkInfo getActiveNetwork() { return activeNetwork; } diff --git a/app/src/main/res/layout/activity_download.xml b/app/src/main/res/layout/activity_download.xml new file mode 100644 index 0000000..3ad808f --- /dev/null +++ b/app/src/main/res/layout/activity_download.xml @@ -0,0 +1,38 @@ + + + + + + + + + +