From dbea6a60eb094691f4af2798cbaf95f19e2e74fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deniz=20D=C3=BCzg=C3=B6ren?= Date: Wed, 31 Jul 2019 11:27:46 +0200 Subject: [PATCH] Added "Last updated" string to FoodFragment and info dialog, simplified "if-else" branch in MiscData.getIcon() to when-statement --- .../denizd/substitutionplan/DataFetcher.kt | 96 +++++++++---------- .../java/com/denizd/substitutionplan/Main.kt | 4 +- .../com/denizd/substitutionplan/MiscData.kt | 81 ++++++---------- .../denizd/substitutionplan/PlanFragment.kt | 1 - app/src/main/res/layout/app_bar_main.xml | 5 +- app/src/main/res/layout/course_card.xml | 8 +- app/src/main/res/values-de/strings.xml | 6 +- app/src/main/res/values/strings.xml | 9 +- 8 files changed, 89 insertions(+), 121 deletions(-) diff --git a/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt b/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt index 800e0b5..ffff0be 100644 --- a/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt +++ b/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt @@ -7,13 +7,8 @@ import android.graphics.Color import android.media.RingtoneManager import android.os.AsyncTask import android.os.Build -import android.os.Handler -import android.os.Looper import android.preference.PreferenceManager import android.view.View -import android.view.animation.Animation -import android.view.animation.AnimationUtils -import android.widget.ProgressBar import android.widget.RemoteViews import androidx.core.app.NotificationCompat import androidx.swiperefreshlayout.widget.SwipeRefreshLayout @@ -45,9 +40,8 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte private val prefs = PreferenceManager.getDefaultSharedPreferences(mContext) private val edit = prefs.edit() private lateinit var pullToRefresh: SwipeRefreshLayout - private val fadeOut = AnimationUtils.loadAnimation(mContext, R.anim.fade_out) - private val handler = Handler(Looper.getMainLooper()) var currentTime = "" + var currentFoodTime = "" val substUrl = "https://djd4rkn355.github.io/subst_test.html" val foodUrl = "https://djd4rkn355.github.io/food_test.html" @@ -60,56 +54,52 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte val foodViewModel = FoodViewModel(mApplication) val docFood = Jsoup.connect(foodUrl).get() val foodElements = docFood.select("th") + currentFoodTime = docFood.select("h1")[0].text() + if (currentFoodTime != prefs.getString("timeFood", "")) { - var foodInt = 0 - var priority = 0 - foodViewModel.deleteAll() - while (foodInt in 0 until foodElements.size) { - try { // what a mess this is! - if (foodElements[foodInt].text().contains("Montag") || - foodElements[foodInt].text().contains("Dienstag") || - foodElements[foodInt].text().contains("Mittwoch") || - foodElements[foodInt].text().contains("Donnerstag") || - foodElements[foodInt].text().contains("Freitag")) { + var foodInt = 0 + var priority = 0 + foodViewModel.deleteAll() + while (foodInt in 0 until foodElements.size) { + try { // what a mess this is! + with(foodElements[foodInt].text()) { + if (contains("Montag") || contains("Dienstag") || contains("Mittwoch") || + contains("Donnerstag") || contains("Freitag")) { + val three = foodElements[foodInt + 3].text() + val two = foodElements[foodInt + 2].text() + if (three.contains("Montag") || three.contains("Dienstag") || three.contains("Mittwoch") || + three.contains("Donnerstag") || three.contains("Freitag") || three.contains("von")) { + foodViewModel.insert(Food(foodElements[foodInt].text() + "\n" + + foodElements[foodInt + 1].text() + "\n" + + foodElements[foodInt + 2].text(), priority)) + foodInt += 2 + } else if (two.contains("Montag") || two.contains("Dienstag") || two.contains("Mittwoch") || + two.contains("Donnerstag") || two.contains("Freitag") || two.contains("von")) { + foodViewModel.insert(Food(foodElements[foodInt].text() + "\n" + + foodElements[foodInt + 1].text(), priority)) + foodInt += 1 + } + } else { + foodViewModel.insert(Food(foodElements[foodInt].text(), priority)) + } + } - if (foodElements[foodInt + 3].text().contains("Montag") || - foodElements[foodInt + 3].text().contains("Dienstag") || - foodElements[foodInt + 3].text().contains("Mittwoch") || - foodElements[foodInt + 3].text().contains("Donnerstag") || - foodElements[foodInt + 3].text().contains("Freitag") || - foodElements[foodInt + 3].text().contains("von")) { + } catch (e: IndexOutOfBoundsException) { + try { foodViewModel.insert(Food(foodElements[foodInt].text() + "\n" + foodElements[foodInt + 1].text() + "\n" + foodElements[foodInt + 2].text(), priority)) - foodInt += 2 - } else if (foodElements[foodInt + 2].text().contains("Montag") || - foodElements[foodInt + 2].text().contains("Dienstag") || - foodElements[foodInt + 2].text().contains("Mittwoch") || - foodElements[foodInt + 2].text().contains("Donnerstag") || - foodElements[foodInt + 2].text().contains("Freitag") || - foodElements[foodInt + 2].text().contains("von")) { + break + } catch (e1: IndexOutOfBoundsException) { foodViewModel.insert(Food(foodElements[foodInt].text() + "\n" + foodElements[foodInt + 1].text(), priority)) - foodInt += 1 + break } - - } else { - foodViewModel.insert(Food(foodElements[foodInt].text(), priority)) - } - } catch (e: IndexOutOfBoundsException) { - try { - foodViewModel.insert(Food(foodElements[foodInt].text() + "\n" - + foodElements[foodInt + 1].text() + "\n" - + foodElements[foodInt + 2].text(), priority)) - break - } catch (e1: IndexOutOfBoundsException) { - foodViewModel.insert(Food(foodElements[foodInt].text() + "\n" - + foodElements[foodInt + 1].text(), priority)) - break } + foodInt++ + priority++ } - foodInt++ - priority++ + edit.putString("timeFood", currentFoodTime).apply() } } @@ -227,12 +217,14 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte if (plan || menu) { mView?.let { v: View -> pullToRefresh.isRefreshing = false - if (plan) { - val snackBarView = v.findViewById(R.id.coordination) - val sb = StringBuilder() - val lastUpdated = sb.append(mContext.getText(R.string.lastupdatedK)).append(currentTime) - Snackbar.make(snackBarView, lastUpdated, Snackbar.LENGTH_LONG).show() + val snackBarView = v.findViewById(R.id.coordination) + val sb = StringBuilder() + val time = when { + menu -> currentFoodTime + else -> currentTime } + val lastUpdated = sb.append(mContext.getText(R.string.lastupdatedK)).append(time) + Snackbar.make(snackBarView, lastUpdated, Snackbar.LENGTH_LONG).show() } } diff --git a/app/src/main/java/com/denizd/substitutionplan/Main.kt b/app/src/main/java/com/denizd/substitutionplan/Main.kt index 1d3c4b8..6dfd917 100644 --- a/app/src/main/java/com/denizd/substitutionplan/Main.kt +++ b/app/src/main/java/com/denizd/substitutionplan/Main.kt @@ -253,7 +253,9 @@ class Main : AppCompatActivity(R.layout.app_bar_main) { val dialog = AlertDialog.Builder(context) val dialogView = LayoutInflater.from(context).inflate(R.layout.simple_dialog, null) dialogView.findViewById(R.id.textviewtitle).text = getString(R.string.information) - dialogView.findViewById(R.id.dialogtext).text = prefs.getString("informational", "") + val sb = StringBuilder() + val dialogText = sb.append(getText(R.string.lastupdatedK)).append((prefs.getString("time", "") ?: "") + "\n\n").append(prefs.getString("informational", "")) + dialogView.findViewById(R.id.dialogtext).text = dialogText dialog.setView(dialogView).show() } diff --git a/app/src/main/java/com/denizd/substitutionplan/MiscData.kt b/app/src/main/java/com/denizd/substitutionplan/MiscData.kt index 26fbf9a..304a994 100644 --- a/app/src/main/java/com/denizd/substitutionplan/MiscData.kt +++ b/app/src/main/java/com/denizd/substitutionplan/MiscData.kt @@ -5,58 +5,35 @@ object MiscData { fun emoji(unicode: Int): String { return String(Character.toChars(unicode)) } fun getIcon(course: String): Int { - return if (course.toLowerCase().contains("deu") || course.toLowerCase().contains("dep") || course.toLowerCase().contains("daz")) { - R.drawable.ic_german - } else if (course.toLowerCase().contains("mat") || course.toLowerCase().contains("map")) { - R.drawable.ic_maths - } else if (course.toLowerCase().contains("eng") || course.toLowerCase().contains("enp") || course.toLowerCase().contains("ena")) { - R.drawable.ic_english - } else if (course.toLowerCase().contains("spo") || course.toLowerCase().contains("spp") || course.toLowerCase().contains("spth")) { - R.drawable.ic_pe - } else if (course.toLowerCase().contains("pol") || course.toLowerCase().contains("pop")) { - R.drawable.ic_politics - } else if (course.toLowerCase().contains("dar") || course.toLowerCase().contains("dap")) { - R.drawable.ic_drama - } else if (course.toLowerCase().contains("phy") || course.toLowerCase().contains("php")) { - R.drawable.ic_physics - } else if (course.toLowerCase().contains("bio") || course.toLowerCase().contains("bip") || course.toLowerCase().contains("nw")) { - R.drawable.ic_biology - } else if (course.toLowerCase().contains("che") || course.toLowerCase().contains("chp")) { - R.drawable.ic_chemistry - } else if (course.toLowerCase().contains("phi") || course.toLowerCase().contains("psp")) { - R.drawable.ic_philosophy - } else if (course.toLowerCase().contains("laa") || course.toLowerCase().contains("laf") || course.toLowerCase().contains("lat")) { - R.drawable.ic_latin - } else if (course.toLowerCase().contains("spa") || course.toLowerCase().contains("spf")) { - R.drawable.ic_spanish - } else if (course.toLowerCase().contains("fra") || course.toLowerCase().contains("frf") || course.toLowerCase().contains("frz")) { - R.drawable.ic_french - } else if (course.toLowerCase().contains("inf")) { - R.drawable.ic_compsci - } else if (course.toLowerCase().contains("ges")) { - R.drawable.ic_history - } else if (course.toLowerCase().contains("rel")) { - R.drawable.ic_religion - } else if (course.toLowerCase().contains("geg") || course.toLowerCase().contains("wuk")) { - R.drawable.ic_geography - } else if (course.toLowerCase().contains("kun")) { - R.drawable.ic_arts - } else if (course.toLowerCase().contains("mus")) { - R.drawable.ic_music - } else if (course.toLowerCase().contains("tue")) { - R.drawable.ic_turkish - } else if (course.toLowerCase().contains("chi")) { - R.drawable.ic_chinese - } else if (course.toLowerCase().contains("gll")) { - R.drawable.ic_gll - } else if (course.toLowerCase().contains("wat")) { - R.drawable.ic_wat - } else if (course.toLowerCase().contains("för")) { - R.drawable.ic_help - } else if (course.toLowerCase().contains("wp") || course.toLowerCase().contains("met")) { - R.drawable.ic_pencil - } else { - R.drawable.ic_empty + return with (course.toLowerCase()) { + when { + contains("deu") || contains("dep") || contains("daz") -> R.drawable.ic_german + contains("mat") || contains("map") -> R.drawable.ic_maths + contains("eng") || contains("enp") || contains("ena") -> R.drawable.ic_english + contains("spo") || contains("spp") || contains("spth") -> R.drawable.ic_pe + contains("pol") || contains("pop") -> R.drawable.ic_politics + contains("dar") || contains("dap") -> R.drawable.ic_drama + contains("phy") || contains("php") -> R.drawable.ic_physics + contains("bio") || contains("bip") || contains("nw") -> R.drawable.ic_biology + contains("che") || contains("chp") -> R.drawable.ic_chemistry + contains("phi") || contains("psp") -> R.drawable.ic_philosophy + contains("laa") || contains("laf") || contains("lat") -> R.drawable.ic_latin + contains("spa") || contains("spf") -> R.drawable.ic_spanish + contains("fra") || contains("frf") || contains("frz") -> R.drawable.ic_french + contains("inf") -> R.drawable.ic_compsci + contains("ges") -> R.drawable.ic_history + contains("rel") -> R.drawable.ic_religion + contains("geg") || contains("wuk") -> R.drawable.ic_geography + contains("kun") -> R.drawable.ic_arts + contains("mus") -> R.drawable.ic_music + contains("tue") -> R.drawable.ic_turkish + contains("chi") -> R.drawable.ic_chinese + contains("gll") -> R.drawable.ic_gll + contains("wat") -> R.drawable.ic_wat + contains("för") -> R.drawable.ic_help + contains("wp") || contains("met") -> R.drawable.ic_pencil + else -> R.drawable.ic_empty + } } } } diff --git a/app/src/main/java/com/denizd/substitutionplan/PlanFragment.kt b/app/src/main/java/com/denizd/substitutionplan/PlanFragment.kt index f9f5bc4..a18974f 100644 --- a/app/src/main/java/com/denizd/substitutionplan/PlanFragment.kt +++ b/app/src/main/java/com/denizd/substitutionplan/PlanFragment.kt @@ -53,7 +53,6 @@ open class PlanFragment : Fragment(R.layout.plan) { else -> 2 } } - layoutManager = GridLayoutManager(mContext, grid) recyclerView.layoutManager = layoutManager } diff --git a/app/src/main/res/layout/app_bar_main.xml b/app/src/main/res/layout/app_bar_main.xml index 473e0ae..1e81750 100644 --- a/app/src/main/res/layout/app_bar_main.xml +++ b/app/src/main/res/layout/app_bar_main.xml @@ -17,7 +17,6 @@ android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="84dp" - app:popupTheme="@style/AppThemeLight.PopupOverlay" app:titleTextColor="@color/accent" app:contentInsetStart="0dp" android:elevation="0dp" @@ -29,7 +28,7 @@ + app:layout_constraintTop_toTopOf="@+id/course" /> diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index a1bb014..c27fecc 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -113,7 +113,7 @@ Wie geht\'s dir, %s? Gut geschlafen, %s? Hey, %s! - Hi, %s! + Hi %s! Schön dich zu sehen, %s. Wie geht\'s dir so, %s? @@ -123,7 +123,7 @@ Wie geht\'s dir, %s? Hoffe du hast einen schönen Tag, %s. Hey, %s! - Hi, %s! + Hi %s! Schön dich zu sehen, %s. Genieß\' deinen Tag, %s. @@ -133,7 +133,7 @@ Wie geht\'s dir, %s? Genieß\' deinen Abend, %s. Hey, %s! - Hi, %s! + Hi %s! Schlaf\' gut, %s. Bleib\' nicht zu lang wach, %s! diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 722b188..46a05aa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -127,7 +127,7 @@ How are you, %s? Slept well, %s? Hey, %s! - Hi, %s! + Hi %s! Nice to see you, %s. How\'ve you been, %s? @@ -137,7 +137,7 @@ How are you, %s? Enjoying your day, %s? Hey, %s! - Hi, %s! + Hi %s! Nice to see you, %s. Enjoy your day, %s! @@ -147,9 +147,8 @@ How are you, %s? Enjoying your evening, %s? Hey, %s! - Hi, %s! + Hi %s! Sleep tight, %s. - Stayin\' up late, %s? + Staying up late, %s? -