From ff19ceeae885484c862e1b155f23b3844b923191 Mon Sep 17 00:00:00 2001 From: Kamalei Zestri <38802353+KamaleiZestri@users.noreply.github.com> Date: Thu, 16 Mar 2023 15:46:56 -0500 Subject: [PATCH] Add "Showed Cached Weather" function to Debug menu --- .../activities/DebugActivity.java | 53 +++++++++++++++++++ app/src/main/res/layout/activity_debug.xml | 8 +++ 2 files changed, 61 insertions(+) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java index e89d2300e..a5b7b44fa 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/DebugActivity.java @@ -115,6 +115,7 @@ import nodomain.freeyourgadget.gadgetbridge.model.NotificationType; import nodomain.freeyourgadget.gadgetbridge.model.RecordedDataTypes; import nodomain.freeyourgadget.gadgetbridge.model.Weather; import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec; +import nodomain.freeyourgadget.gadgetbridge.model.WeatherSpec.Forecast; import nodomain.freeyourgadget.gadgetbridge.service.serial.GBDeviceProtocol; import nodomain.freeyourgadget.gadgetbridge.util.DeviceHelper; import nodomain.freeyourgadget.gadgetbridge.util.GB; @@ -376,6 +377,25 @@ public class DebugActivity extends AbstractGBActivity { } }); + Button showCachedWeatherButton = findViewById(R.id.showCachedWeatherButton); + showCachedWeatherButton.setOnClickListener(new View.OnClickListener(){ + @Override + public void onClick(View v) { + String weatherInfo = getWeatherInfo(); + + new AlertDialog.Builder(DebugActivity.this) + .setCancelable(false) + .setTitle("Cached Weather Data") + .setMessage(weatherInfo) + .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + } + }) + .show(); + } + }); + Button setMusicInfoButton = findViewById(R.id.setMusicInfoButton); setMusicInfoButton.setOnClickListener(new View.OnClickListener() { @Override @@ -1015,6 +1035,39 @@ public class DebugActivity extends AbstractGBActivity { return TextUtils.join(separator, mac).toUpperCase(Locale.ROOT); } + private String getWeatherInfo() { + Prefs prefs = new Prefs(PreferenceManager.getDefaultSharedPreferences(DebugActivity.this)); + String info = ""; + Weather weather = Weather.getInstance(); + weather.setCacheFile(getCacheDir(), prefs.getBoolean("cache_weather", true)); + WeatherSpec weatherSpec = weather.getWeatherSpec(); + + if (weatherSpec == null) + return "Weather cache is empty..."; + + info += "Location: " + weatherSpec.location + "\n"; + info += "Timestamp: " + weatherSpec.timestamp + "\n"; + info += "Current Temp: " + weatherSpec.currentTemp + " K\n"; + info += "Max Temp: " + weatherSpec.todayMaxTemp + " K\n"; + info += "Min Temp: " + weatherSpec.location + "\n"; + info += "Condition: " + weatherSpec.currentCondition + "\n"; + info += "Condition Code: " + weatherSpec.currentConditionCode + "\n"; + info += "Humidity: " + weatherSpec.currentHumidity + "\n"; + info += "Wind Speed: " + weatherSpec.windSpeed + " kmph\n"; + info += "Wind Direction: " + weatherSpec.windDirection + " deg\n"; + for (int i=0;i> newMap = new LinkedHashMap<>(1); GBApplication app = (GBApplication) appContext; diff --git a/app/src/main/res/layout/activity_debug.xml b/app/src/main/res/layout/activity_debug.xml index d913beddc..5da8528e4 100644 --- a/app/src/main/res/layout/activity_debug.xml +++ b/app/src/main/res/layout/activity_debug.xml @@ -131,6 +131,14 @@ grid:layout_gravity="fill_horizontal" android:text="Set Weather" /> +