From af7d52dc46a7365fac22398dbe177a298ded1e1a Mon Sep 17 00:00:00 2001 From: evilbunny2008 <34211365+evilbunny2008@users.noreply.github.com> Date: Wed, 21 Nov 2018 21:04:18 +1100 Subject: [PATCH] Added code to handle WMO Forecasts, squashed BoM bugs --- app/build.gradle | 4 +- .../com/odiousapps/weewxweather/Common.java | 114 ++++++++++++++++-- .../com/odiousapps/weewxweather/Forecast.java | 44 ++++++- .../odiousapps/weewxweather/MainActivity.java | 18 ++- .../com/odiousapps/weewxweather/Weather.java | 19 +++ app/src/main/res/drawable/i01.png | Bin 0 -> 8226 bytes app/src/main/res/drawable/i02.png | Bin 0 -> 7278 bytes app/src/main/res/drawable/i03.png | Bin 0 -> 8076 bytes app/src/main/res/drawable/i04.png | Bin 0 -> 7915 bytes app/src/main/res/drawable/i05.png | Bin 0 -> 5610 bytes app/src/main/res/drawable/i06.png | Bin 0 -> 8803 bytes app/src/main/res/drawable/i07.png | Bin 0 -> 5518 bytes app/src/main/res/drawable/i08.png | Bin 0 -> 5255 bytes app/src/main/res/drawable/i09.png | Bin 0 -> 6396 bytes app/src/main/res/drawable/i10.png | Bin 0 -> 6883 bytes app/src/main/res/drawable/i11.png | Bin 0 -> 5602 bytes app/src/main/res/drawable/i12.png | Bin 0 -> 4677 bytes app/src/main/res/drawable/i13.png | Bin 0 -> 5208 bytes app/src/main/res/drawable/i14.png | Bin 0 -> 3932 bytes app/src/main/res/drawable/i15.png | Bin 0 -> 2958 bytes app/src/main/res/drawable/i16.png | Bin 0 -> 10312 bytes app/src/main/res/drawable/i17.png | Bin 0 -> 6663 bytes app/src/main/res/drawable/i18.png | Bin 0 -> 40295 bytes app/src/main/res/drawable/i19.png | Bin 0 -> 7912 bytes app/src/main/res/drawable/i20.png | Bin 0 -> 3748 bytes app/src/main/res/drawable/i21.png | Bin 0 -> 5356 bytes app/src/main/res/drawable/i21a.png | Bin 0 -> 5523 bytes app/src/main/res/drawable/i21b.png | Bin 0 -> 3397 bytes app/src/main/res/drawable/i22.png | Bin 0 -> 5345 bytes app/src/main/res/drawable/i22a.png | Bin 0 -> 5345 bytes app/src/main/res/drawable/i22b.png | Bin 0 -> 3471 bytes app/src/main/res/drawable/i23.png | Bin 0 -> 2575 bytes app/src/main/res/drawable/i23a.png | Bin 0 -> 2575 bytes app/src/main/res/drawable/i23b.png | Bin 0 -> 2734 bytes app/src/main/res/drawable/i24.png | Bin 0 -> 3859 bytes app/src/main/res/drawable/i24a.png | Bin 0 -> 3859 bytes app/src/main/res/drawable/i24b.png | Bin 0 -> 4162 bytes app/src/main/res/drawable/i25.png | Bin 0 -> 3859 bytes app/src/main/res/drawable/i25a.png | Bin 0 -> 3859 bytes app/src/main/res/drawable/i25b.png | Bin 0 -> 4162 bytes app/src/main/res/drawable/i26.png | Bin 0 -> 7235 bytes app/src/main/res/drawable/i27.png | Bin 0 -> 5071 bytes app/src/main/res/drawable/i28.png | Bin 0 -> 13059 bytes app/src/main/res/drawable/i29.png | Bin 0 -> 9233 bytes app/src/main/res/drawable/i30.png | Bin 0 -> 57239 bytes app/src/main/res/drawable/i31.png | Bin 0 -> 7661 bytes app/src/main/res/drawable/i32.png | Bin 0 -> 8034 bytes app/src/main/res/drawable/i33.png | Bin 0 -> 4399 bytes app/src/main/res/drawable/i34.png | Bin 0 -> 4318 bytes app/src/main/res/drawable/i35.png | Bin 0 -> 37690 bytes app/src/main/res/drawable/wmo.png | Bin 0 -> 101608 bytes 51 files changed, 187 insertions(+), 12 deletions(-) create mode 100644 app/src/main/res/drawable/i01.png create mode 100644 app/src/main/res/drawable/i02.png create mode 100644 app/src/main/res/drawable/i03.png create mode 100644 app/src/main/res/drawable/i04.png create mode 100644 app/src/main/res/drawable/i05.png create mode 100644 app/src/main/res/drawable/i06.png create mode 100644 app/src/main/res/drawable/i07.png create mode 100644 app/src/main/res/drawable/i08.png create mode 100644 app/src/main/res/drawable/i09.png create mode 100644 app/src/main/res/drawable/i10.png create mode 100644 app/src/main/res/drawable/i11.png create mode 100644 app/src/main/res/drawable/i12.png create mode 100644 app/src/main/res/drawable/i13.png create mode 100644 app/src/main/res/drawable/i14.png create mode 100644 app/src/main/res/drawable/i15.png create mode 100644 app/src/main/res/drawable/i16.png create mode 100644 app/src/main/res/drawable/i17.png create mode 100644 app/src/main/res/drawable/i18.png create mode 100644 app/src/main/res/drawable/i19.png create mode 100644 app/src/main/res/drawable/i20.png create mode 100644 app/src/main/res/drawable/i21.png create mode 100644 app/src/main/res/drawable/i21a.png create mode 100644 app/src/main/res/drawable/i21b.png create mode 100644 app/src/main/res/drawable/i22.png create mode 100644 app/src/main/res/drawable/i22a.png create mode 100644 app/src/main/res/drawable/i22b.png create mode 100644 app/src/main/res/drawable/i23.png create mode 100644 app/src/main/res/drawable/i23a.png create mode 100644 app/src/main/res/drawable/i23b.png create mode 100644 app/src/main/res/drawable/i24.png create mode 100644 app/src/main/res/drawable/i24a.png create mode 100644 app/src/main/res/drawable/i24b.png create mode 100644 app/src/main/res/drawable/i25.png create mode 100644 app/src/main/res/drawable/i25a.png create mode 100644 app/src/main/res/drawable/i25b.png create mode 100644 app/src/main/res/drawable/i26.png create mode 100644 app/src/main/res/drawable/i27.png create mode 100644 app/src/main/res/drawable/i28.png create mode 100644 app/src/main/res/drawable/i29.png create mode 100644 app/src/main/res/drawable/i30.png create mode 100644 app/src/main/res/drawable/i31.png create mode 100644 app/src/main/res/drawable/i32.png create mode 100644 app/src/main/res/drawable/i33.png create mode 100644 app/src/main/res/drawable/i34.png create mode 100644 app/src/main/res/drawable/i35.png create mode 100644 app/src/main/res/drawable/wmo.png diff --git a/app/build.gradle b/app/build.gradle index b026db7..e364680 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -6,8 +6,8 @@ android { applicationId "com.odiousapps.weewxweather" minSdkVersion 19 targetSdkVersion 28 - versionCode 6002 - versionName "0.6.2" + versionCode 6003 + versionName "0.6.3" } buildTypes { release { diff --git a/app/src/main/java/com/odiousapps/weewxweather/Common.java b/app/src/main/java/com/odiousapps/weewxweather/Common.java index 15aee40..066e196 100644 --- a/app/src/main/java/com/odiousapps/weewxweather/Common.java +++ b/app/src/main/java/com/odiousapps/weewxweather/Common.java @@ -21,6 +21,7 @@ import android.widget.RemoteViews; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import java.io.BufferedReader; @@ -321,6 +322,97 @@ RemoteViews buildUpdate(Context context) return views; } + String[] processWMO(String data) + { + return processWMO(data, false); + } + + String[] processWMO(String data, boolean showHeader) + { + if(data == null || data.equals("")) + return null; + + String desc = ""; + StringBuilder out = new StringBuilder(); + boolean metric = GetBoolPref("metric", true); + + try + { + JSONObject jobj = new JSONObject(data); + + desc = jobj.getJSONObject("city").getString("cityName") + ", " + jobj.getJSONObject("city").getJSONObject("member").getString("memName"); + String tmp = jobj.getJSONObject("city").getJSONObject("forecast").getString("issueDate"); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault()); + long mdate = sdf.parse(tmp).getTime(); + sdf = new SimpleDateFormat("dd MMM yyyy HH:mm", Locale.getDefault()); + String date = sdf.format(mdate); + + tmp = "
" + " | "; + out.append(tmp); + + tmp = "" + date + " | "; + out.append(tmp); + + if(!max.equals("")) + tmp = "" + max + " | "; + out.append(tmp); + + tmp = " | |
" + text + " | "; + out.append(tmp); + + if(!min.equals("")) + tmp = "" + min + " | "; + out.append(tmp); + + if(showHeader) + { + tmp = " | ||