"""
+ var column = tableNumber * columnsPerTable
+ // Loop until either all columns for the current table have been processed,
+ // or all columns have already been processed
+ while (column < (tableNumber + 1 ) * columnsPerTable && column < totalNumberOfColumns) {
+ var content = tableData[column][row]
+ if (URLUtil.isValidUrl(content)) {
+ content = """"""
+ }
+ htmlTable += "$content | "
+
+ column++
+ }
+ htmlTable += """"""
+ }
+
+ htmlTable += ""
+ htmlTable += ""
+ // Add additional spacing between tables
+ if (tableNumber < numberOfTables - 1) {
+ htmlTable += """
"""
+ }
+ }
+
+ return htmlTable
+ }
+
+ fun buildHtmlPageWithLoadingMessage() : String {
+ val loadingMessageHtml = "" + getString(R.string.menu_knmi_text_loading) + "
" + """
"""
+ return getHtmlPageWithContent(loadingMessageHtml)
+ }
+
+ fun buildHtmPageWithLoadingError() : String {
+ val errorMessageHtml = "" + getString(R.string.menu_knmi_text_failed) + "
" + """
"""
+ return getHtmlPageWithContent(errorMessageHtml)
+ }
+
+ private fun getHtmlPageWithContent(content: String) : String {
+ val webView = binding.webView
+ val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(webView.context)
+ val darkMode = sharedPreferences.getString("dark_mode", "dark_mode_no")
+ var backgroundColor = "rgb(250, 250, 250)"
+ var textColor = "black"
+ if (darkMode == "dark_mode_yes") {
+ backgroundColor = "rgb(48, 48, 48)" // Android dark mode color
+ textColor = "rgb(193, 193, 193)" // Android dark mode color
+ }
+
+ return """
+
+
+
+ """ + content + """
+ """.trimIndent() + getString(R.string.menu_knmi_text_source) + """
+ """.trimIndent()
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/KnmiTextFragment.kt b/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/KnmiTextFragment.kt
index 612ef32..ac60762 100644
--- a/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/KnmiTextFragment.kt
+++ b/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/KnmiTextFragment.kt
@@ -61,13 +61,13 @@ class KnmiTextFragment : Fragment() {
private fun loadPage() {
val root = binding.root
- val headers = arrayOf("Vandaag & Morgen", "Vooruitzichten", "", "Vooruitzichten lange termijn")
+ val headers = arrayOf("Vandaag & Morgen", "Vooruitzichten", "Vooruitzichten lange termijn")
root.findViewById(R.id.textViewHeader0).text = headers[0]
root.findViewById(R.id.textViewHeader1).text = headers[1]
- root.findViewById(R.id.textViewHeader3).text = headers[3]
+ root.findViewById(R.id.textViewHeader2).text = headers[2]
root.findViewById(R.id.textViewContent0).text = getString(R.string.menu_knmi_text_loading)
root.findViewById(R.id.textViewContent1).text = getString(R.string.menu_knmi_text_loading)
- root.findViewById(R.id.textViewContent3).text = getString(R.string.menu_knmi_text_loading)
+ root.findViewById(R.id.textViewContent2).text = getString(R.string.menu_knmi_text_loading)
RetrieveWebPage().execute(getURL())
}
@@ -84,11 +84,16 @@ class KnmiTextFragment : Fragment() {
// When complete: parses the result
override fun onPostExecute(htmlDocument: Document?) {
+ // It may be that the user has already moved on to the next fragment
+ if (_binding == null) {
+ return
+ }
+
val root = binding.root
if (htmlDocument == null) {
root.findViewById(R.id.textViewContent0).text = getString(R.string.menu_knmi_text_failed)
root.findViewById(R.id.textViewContent1).text = getString(R.string.menu_knmi_text_failed)
- root.findViewById(R.id.textViewContent3).text = getString(R.string.menu_knmi_text_failed)
+ root.findViewById(R.id.textViewContent2).text = getString(R.string.menu_knmi_text_failed)
return
}
val contents = arrayOf("", "", "", "")
@@ -114,32 +119,14 @@ class KnmiTextFragment : Fragment() {
}
}
- // The icons/numbers week overview
- if (index == 2) {
- group.select("div.weather-map__table-wrp").forEach { element ->
- element.select("li").forEach { column ->
- var tableData = ""
- column.select("span.weather-map__table-cell").forEachIndexed { index, item ->
- if (index == 0) {
- tableData += "[" + item.text() + "] "
- }
- else {
- tableData += item.text() + " "
- }
- }
- contents[2] += tableData + "\n\n"
- }
- }
- }
-
// The long term report
if (index == 3) {
group.select("div.col-sm-12.col-md-7").forEach { element ->
element.select("p").forEach { paragraph ->
- contents[3] += paragraph.text() + "\n\n"
+ contents[2] += paragraph.text() + "\n\n"
}
element.select("span.meta").forEach { paragraph ->
- contents[3] += "Laatste update: " + paragraph.text() + "\n\n"
+ contents[2] += "Laatste update: " + paragraph.text() + "\n\n"
}
}
}
@@ -149,8 +136,7 @@ class KnmiTextFragment : Fragment() {
// Displays the found data
root.findViewById(R.id.textViewContent0).text = contents[0].trimEnd()
root.findViewById(R.id.textViewContent1).text = contents[1].trimEnd()
- root.findViewById(R.id.textViewContent2).text = contents[2].trimEnd()
- root.findViewById(R.id.textViewContent3).text = contents[3].trimEnd() + "\n\n"
+ root.findViewById(R.id.textViewContent2).text = contents[2].trimEnd() + "\n\n"
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/SettingsFragment.kt b/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/SettingsFragment.kt
index 57c87d7..8532cc6 100644
--- a/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/SettingsFragment.kt
+++ b/app/src/main/java/foss/cnugteren/nlweer/ui/fragments/SettingsFragment.kt
@@ -145,7 +145,11 @@ class SettingsFragment : PreferenceFragmentCompat(),
defaultViewSelection.setDefaultValue(R.id.nav_knmi_rain_m1.toString())
}
- override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences, key: String) {
+ override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
+ if (sharedPreferences == null || key == null){
+ return
+ }
+
val pref = findPreference(key)
// If the value of the settings change, sets the new values as summaries
diff --git a/app/src/main/res/drawable/menu_sixdayforecast.xml b/app/src/main/res/drawable/menu_sixdayforecast.xml
new file mode 100644
index 0000000..9c03092
--- /dev/null
+++ b/app/src/main/res/drawable/menu_sixdayforecast.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_knmi_sixdayforecast.xml b/app/src/main/res/layout/fragment_knmi_sixdayforecast.xml
new file mode 100644
index 0000000..25aeac7
--- /dev/null
+++ b/app/src/main/res/layout/fragment_knmi_sixdayforecast.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_knmi_text.xml b/app/src/main/res/layout/fragment_knmi_text.xml
index 4705f4d..35a3f76 100644
--- a/app/src/main/res/layout/fragment_knmi_text.xml
+++ b/app/src/main/res/layout/fragment_knmi_text.xml
@@ -14,18 +14,6 @@
android:layout_height="wrap_content"
android:scrollbars="horizontal">
-
-
+ app:layout_constraintTop_toTopOf="parent" />
+ app:layout_constraintTop_toBottomOf="@+id/textViewHeader2" />
+ app:layout_constraintTop_toBottomOf="@+id/textViewContent2"/>
diff --git a/app/src/main/res/menu/activity_main_drawer.xml b/app/src/main/res/menu/activity_main_drawer.xml
index 6feb21a..b9510bd 100644
--- a/app/src/main/res/menu/activity_main_drawer.xml
+++ b/app/src/main/res/menu/activity_main_drawer.xml
@@ -106,6 +106,10 @@
android:id="@+id/nav_knmi_text"
android:icon="@drawable/menu_weather_report"
android:title="@string/menu_knmi_text" />
+
+
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 7e88d1b..479d627 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -41,6 +41,7 @@
Bulletin météo
Source:\nhttps://www.knmi.nl/nederland-nu/weer/verwachtingen
+ Prévisions à 6 jours
En cours de chargement…
Les données n\'ont pas pu être chargées
Pluim
@@ -118,7 +119,7 @@
Icônes d\'application et de menu
Icône principale de l\'application: Copyright Mozilla, CC BY 4.0, https://commons.wikimedia.org/w/index.php?curid=59726384\n
\nIcône de la lune: Copyright OOjs UI Team, licence MIT, https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/LICENSE-MIT\n
-\nIcônes de soleil, vent, plui, neige, vitesse du vent, grêle, nuage, bruine, graphique, humidité, brouillard, alerte, flèche, satellite et rapport: Copyright Icon Fonts, CC BY 3.0, http://www.onlinewebfonts.com/icon\n
+\nIcônes de soleil, vent, plui, neige, vitesse du vent, grêle, nuage, bruine, graphique, humidité, brouillard, alerte, flèche, satellite, prévisions et rapport: Copyright Icon Fonts, CC BY 3.0, http://www.onlinewebfonts.com/icon\n
\nIcônes de température, de isobars et de lever du soleil: Icônes créées par Hirschwolf et Freepik sur www.flaticon.com
Version de NLWeer
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index 0955f66..ac26aa8 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -42,6 +42,7 @@
Weerbericht
Bron:\nhttps://www.knmi.nl/nederland-nu/weer/verwachtingen
+ 6-Daagse verwachting
Data wordt geladen…
Data kon niet geladen worden
Pluim
@@ -119,7 +120,7 @@
App- en menu-iconen
Appicoon: Copyright Mozilla, CC BY 4.0, https://commons.wikimedia.org/w/index.php?curid=59726384\n
\nMaanicoon: Copyright OOjs UI Team, MIT licentie, https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/LICENSE-MIT\n
-\nZon-, wind-, regen-, sneeuw-, windsnelheid-, hagel-, wolk-, miezer-, grafiek-, vochtigheid-, mist-, waarschuwing-, pijl-, satelliet- en weerberichticonen: Copyright Icon Fonts, CC BY 3.0, http://www.onlinewebfonts.com/icon\n
+\nZon-, wind-, regen-, sneeuw-, windsnelheid-, hagel-, wolk-, miezer-, grafiek-, vochtigheid-, mist-, waarschuwing-, pijl-, satelliet-, 6-daagse verwachting- en weerberichticonen: Copyright Icon Fonts, CC BY 3.0, http://www.onlinewebfonts.com/icon\n
\nTemperatuur-, isolijn- en zonsopgangiconen: Gemaakt door Hirschwolf en Freepik van www.flaticon.com
NLWeer versie-informatie
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fc18edd..7e06721 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -41,6 +41,7 @@
Weather report
Source:\nhttps://www.knmi.nl/nederland-nu/weer/verwachtingen
+ 6-Day forecast
Data is being loaded…
Data could not be loaded
Pluim
@@ -118,7 +119,7 @@
App and menu icons
Main app icon: Copyright by Mozilla, CC BY 4.0, https://commons.wikimedia.org/w/index.php?curid=59726384\n
\nMoon icon: Copyright OOjs UI Team, MIT License, https://phabricator.wikimedia.org/diffusion/GOJU/browse/master/LICENSE-MIT\n
-\nSun, wind, rain, snow, wind speed, hail, cloud, drizzle, graph, humidity, fog, warning, arrow, satellite, and report icons: Copyright by Icon Fonts, CC BY 3.0, http://www.onlinewebfonts.com/icon\n
+\nSun, wind, rain, snow, wind speed, hail, cloud, drizzle, graph, humidity, fog, warning, arrow, satellite, 6-day forecast, and report icons: Copyright by Icon Fonts, CC BY 3.0, http://www.onlinewebfonts.com/icon\n
\nTemperature, isobar, and sunrise icons: Icons made by Hirschwolf and Freepik from www.flaticon.com
NLWeer version info