From 2b5d03093bff177f5e1b71e017a12419f991ff60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deniz=20D=C3=BCzg=C3=B6ren?= Date: Tue, 23 Jul 2019 21:42:56 +0200 Subject: [PATCH] Removed outdated Q1 Matchmaker easter egg, fixed a few warnings in the SettingsFragment --- app/build.gradle | 4 +- .../denizd/substitutionplan/DataFetcher.kt | 63 ++++---- .../com/denizd/substitutionplan/MiscData.kt | 3 - .../substitutionplan/SettingsFragment.kt | 53 +----- app/src/main/res/layout/dating_dialog.xml | 151 ------------------ app/src/main/res/values-v21/styles.xml | 3 - app/src/main/res/values-w820dp/dimens.xml | 5 - app/src/main/res/values/colors.xml | 2 - app/src/main/res/values/dimens.xml | 5 - app/src/main/res/values/styles.xml | 8 - 10 files changed, 34 insertions(+), 263 deletions(-) delete mode 100644 app/src/main/res/layout/dating_dialog.xml delete mode 100644 app/src/main/res/values-v21/styles.xml delete mode 100644 app/src/main/res/values-w820dp/dimens.xml delete mode 100644 app/src/main/res/values/dimens.xml diff --git a/app/build.gradle b/app/build.gradle index f86311a..b881d2b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.denizd.substitutionplan" minSdkVersion 21 targetSdkVersion 28 - versionCode 16 - versionName "2.0.4" + versionCode 17 + versionName "2.0.5" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt b/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt index 3c53f4f..449c1b0 100644 --- a/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt +++ b/app/src/main/java/com/denizd/substitutionplan/DataFetcher.kt @@ -25,6 +25,7 @@ import org.jsoup.select.Elements import java.lang.IndexOutOfBoundsException import java.net.URL import java.net.URLConnection +import java.text.DateFormat import java.text.SimpleDateFormat import java.util.* import kotlin.collections.ArrayList @@ -35,7 +36,7 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte private var plan = isplan private var menu = ismenu - /* booleans to improve performance when fetching data + /* booleans to improve speed when fetching data "plan" = true is required to fetch the substitution data "menu" = true is required to fetch the food menu "jobservice" = true is required to send a notification @@ -48,7 +49,6 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte private var priority = 200 private var notifText = "" private var informational = "" - private var foodList = ArrayList() private lateinit var connection: URLConnection private lateinit var rows: Elements private lateinit var paragraphs: Elements @@ -154,16 +154,16 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte doc = Jsoup.connect("https://djd4rkn355.github.io/subst").get() connection = URL("https://djd4rkn355.github.io/subst").openConnection() edit.putString("time", connection.getHeaderField("Last-Modified")).apply() - d = Date(connection.getHeaderField("Last-Modified")) + d = sdf.parse(connection.getHeaderField("Last-Modified")) rows = doc.select("tr") paragraphs = doc.select("p") - val groupS = arrayOfNulls(rows.size) - val dateS = arrayOfNulls(rows.size) - val timeS = arrayOfNulls(rows.size) - val courseS = arrayOfNulls(rows.size) - val roomS = arrayOfNulls(rows.size) - val additionalS = arrayOfNulls(rows.size) + val groupS = ArrayList() + val dateS = ArrayList() + val timeS = ArrayList() + val courseS = ArrayList() + val roomS = ArrayList() + val additionalS = ArrayList() mView?.let { progressBar.max = rows.size @@ -186,38 +186,38 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte val row = rows[i] val cols = row.select("th") as Elements - groupS[i] = cols[0].text() - dateS[i] = cols[1].text() - timeS[i] = cols[2].text() - courseS[i] = cols[3].text() - roomS[i] = cols[4].text() - additionalS[i] = cols[5].text() + groupS.add(cols[0].text()) + dateS.add(cols[1].text()) + timeS.add(cols[2].text()) + courseS.add(cols[3].text()) + roomS.add(cols[4].text()) + additionalS.add(cols[5].text()) if (!jobservice) { mView?.let { progressBar.incrementProgressBy(1) } } - val drawable = md.getIcon(courseS[i].toString()) - val subst = Subst(drawable, groupS[i].toString(), dateS[i].toString(), timeS[i].toString(), courseS[i].toString(), - roomS[i].toString(), additionalS[i].toString(), priority) + val drawable = md.getIcon(courseS[i]) + val subst = Subst(drawable, groupS[i], dateS[i], timeS[i], courseS[i], + roomS[i], additionalS[i], priority) priority-- substViewModel.insertSubst(subst) if (jobservice) { - if (prefs.getString("courses", "").isEmpty() && prefs.getString("classes", "").isNotEmpty()) { - if (groupS[i].toString().isNotEmpty() && !groupS[i].equals("")) { - if (prefs.getString("classes", "").contains(groupS[i].toString()) || groupS[i].toString().contains(prefs.getString("classes", "").toString())) { + if ((prefs.getString("courses", "") ?: "").isEmpty() && (prefs.getString("classes", "") ?: "").isNotEmpty()) { + if (groupS[i].isNotEmpty() && groupS[i] != "") { + if ((prefs.getString("classes", "") ?: "").contains(groupS[i]) || groupS[i].contains((prefs.getString("classes", "") ?: "").toString())) { if (notifText.isNotEmpty()) { notifText += ", " } notifText += courseS[i] + ": " + additionalS[i] } } - } else if (prefs.getString("classes", "").isNotEmpty() && prefs.getString("courses", "").isNotEmpty()) { - if (!groupS[i].equals("") && !courseS[i].equals("")) { - if (prefs.getString("courses", "").contains(courseS[i].toString())) { - if (prefs.getString("classes", "").contains(groupS[i].toString()) || groupS[i].toString().contains(prefs.getString("classes", "").toString())) { + } else if ((prefs.getString("classes", "") ?: "").isNotEmpty() && (prefs.getString("courses", "") ?: "").isNotEmpty()) { + if (groupS[i] != "" && courseS[i] != "") { + if ((prefs.getString("courses", "") ?: "").contains(courseS[i])) { + if ((prefs.getString("classes", "") ?: "").contains(groupS[i]) || groupS[i].contains((prefs.getString("classes", "") ?: "").toString())) { if (notifText.isNotEmpty()) { notifText += ", " } @@ -242,11 +242,10 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte val manager = mContext.getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager val channelId = "general" val channelName = mContext.getString(R.string.general) - val importance = NotificationManager.IMPORTANCE_DEFAULT lateinit var channel: NotificationChannel if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - channel = NotificationChannel(channelId, channelName, importance) + channel = NotificationChannel(channelId, channelName, NotificationManager.IMPORTANCE_DEFAULT) channel.enableLights(true) channel.lightColor = Color.BLUE manager.createNotificationChannel(channel) @@ -286,11 +285,11 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte }) pullToRefresh.isRefreshing = false if (plan) { - val snackbarview = v.findViewById(R.id.coordination) + val snackBarView = v.findViewById(R.id.coordination) sdf.applyPattern(newDateFormat) val sb = StringBuilder() - val lastupdated = sb.append(mContext.getText(R.string.lastupdatedK)).append(sdf.format(d)).toString() - Snackbar.make(snackbarview, lastupdated, Snackbar.LENGTH_LONG).show() + val lastUpdated = sb.append(mContext.getText(R.string.lastupdatedK)).append(sdf.format(d)).toString() + Snackbar.make(snackBarView, lastUpdated, Snackbar.LENGTH_LONG).show() } } } @@ -300,8 +299,8 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte try { pullToRefresh.isRefreshing = false } catch (ignored: Exception) {} - val snackbarview = v.findViewById(R.id.coordination) - Snackbar.make(snackbarview, mContext.getText(R.string.nointernet), Snackbar.LENGTH_LONG).show() + val snackBarView = v.findViewById(R.id.coordination) + Snackbar.make(snackBarView, mContext.getText(R.string.nointernet), Snackbar.LENGTH_LONG).show() } } return null diff --git a/app/src/main/java/com/denizd/substitutionplan/MiscData.kt b/app/src/main/java/com/denizd/substitutionplan/MiscData.kt index ef8831b..f6ea1dc 100644 --- a/app/src/main/java/com/denizd/substitutionplan/MiscData.kt +++ b/app/src/main/java/com/denizd/substitutionplan/MiscData.kt @@ -2,9 +2,6 @@ package com.denizd.substitutionplan class MiscData { - var boy = arrayOf("Cedric Grislawski", "Dawid Kniola", "Jonas Köstergarten", "Jakob Moerschner", "Siamak Nemati", "Hendrik Plönnings", "Jan Rohmann", "Anton Rosenberger", "Christoph Senft", "Jan Mika Sieckendieck", "Alexander Sinaj", "Nico Tischer", "Nhat Vinh Tran", "Leon Becker", "Youssef Beltagi", "Erich Kerkesner", "Alex Lick", "Oskar Piskorz", "Theo Recktor", "Eray Vatansever", "Dennis Wojciechowski", "Übeydullah Alkan", "Yahya Almarashli", "Sinan Aydin", "Rick Büteröwe", "Levin Dropp", "Silvester Jermolajew", "Tolgay Kekilli", "Dennis Lange", "Aras Mahmoud", "Batuhan Özcan", "Michael Rek", "Khabat Sharif", "Anbinh Tran", "Bastian Westerboer", "Abdulwahab Alshebli", "Kelechi Gaius", "Armin Großmann", "Anes Halep", "Marco Jankowski", "Emirhan Kaplan", "Alexander Kofmann", "Tobi Derek Köhler", "Vasilije Nedeljkovic", "Batu Öcal", "Paul Rehbohm") - var girl = arrayOf("Mayra Dronia", "Shalin Ramadan", "Nigina Amin", "Mariya Kheder", "Niegen Khosrawi", "Dayana Osipova", "Julia Petri", "Laura Pister", "Dana Alyoussef", "Ilkem Kahramanoglu", "Rozita Amiri", "Mirja Arneke", "Nastasja Banik", "Anni Kienke", "Benedite Mateta", "Leonie Pohl", "Cecillia Sawires", "Patrycja Smółka", "Elif Zencirkiran", "Nusyba Al Semadi", "Vivien Bruns", "Yasemin Dal", "Svenja Demuth", "Nina Groß", "Kim Lahmeyer", "Luca Minschke", "Kim Reschke", "Amélie Schnellecke", "Delal Secer", "Xenia Segijanski", "Melisa Tas", "Kim Völker", "Banu Yari", "Zeinab Ali", "Mariam Bannout", "Stefanie Fahl", "Yamaty Gaye", "Anna-Sophia Haeberle", "Finja Hastedt", "Viktoria Hammermeister", "Isabel Horn", "Laura Kern", "Melanie Kleinermann", "Målin Kollhoff", "Darja Maier", "Lisa Maier", "Naura Nadzifah", "Janina Roelfs", "Vanessa Scheifler", "Mara Thies", "Lieli Umar", "Leonie Welk", "Betraben Yacoub") - fun emoji(unicode: Int): String { return String(Character.toChars(unicode)) } fun getIcon(course: String): Int { diff --git a/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt b/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt index 888243c..32845f6 100644 --- a/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt +++ b/app/src/main/java/com/denizd/substitutionplan/SettingsFragment.kt @@ -23,9 +23,6 @@ import com.google.android.material.bottomnavigation.BottomNavigationView import com.google.android.material.button.MaterialButton import com.google.android.material.textfield.TextInputEditText import com.jaredrummler.android.device.DeviceName -import java.lang.NullPointerException -import java.text.DecimalFormat -import java.util.* class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListener { @@ -288,7 +285,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen val layout = item.findViewById(R.id.item_layout) itemText.text = courses[i] - itemImage.setImageDrawable(resources.getDrawable(coursesIcons[i])) + itemImage.setImageDrawable(ContextCompat.getDrawable(mContext, coursesIcons[i])) val courseNoLangTxt = coursesNoLang[i] val courseTxt = courses[i] @@ -393,54 +390,6 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen Toast.makeText(mContext, R.string.noyoutube, Toast.LENGTH_LONG).show() } } - "Q1 Matchmaker" -> { - val gen = Random() - val alertDialogDate = AlertDialog.Builder(mContext, R.style.AlertDialog) - val dateDialogView = LayoutInflater.from(mContext).inflate(R.layout.dating_dialog, null) - val datingBtn = dateDialogView.findViewById