From 52db4b20bb9188e262bc13cae1d84a6618570c6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Deniz=20D=C3=BCzg=C3=B6ren?= Date: Tue, 6 Aug 2019 17:08:43 +0200 Subject: [PATCH] Added PSA feature that allows for delivering a message or a link to users --- .../denizd/substitutionplan/CardAdapter.kt | 118 +++++++++++------- .../substitutionplan/PersonalPlanFragment.kt | 6 +- app/src/main/res/layout/plan.xml | 3 +- 3 files changed, 79 insertions(+), 48 deletions(-) diff --git a/app/src/main/java/com/denizd/substitutionplan/CardAdapter.kt b/app/src/main/java/com/denizd/substitutionplan/CardAdapter.kt index 540de36..629b10d 100644 --- a/app/src/main/java/com/denizd/substitutionplan/CardAdapter.kt +++ b/app/src/main/java/com/denizd/substitutionplan/CardAdapter.kt @@ -1,11 +1,15 @@ package com.denizd.substitutionplan +import android.content.ActivityNotFoundException +import android.net.Uri import android.preference.PreferenceManager import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.ImageView import android.widget.TextView +import android.widget.Toast +import androidx.browser.customtabs.CustomTabsIntent import androidx.core.content.ContextCompat import androidx.recyclerview.widget.RecyclerView import com.google.android.material.card.MaterialCardView @@ -34,68 +38,92 @@ class CardAdapter(private var mSubst: List) : RecyclerView.Adapter prefs.getInt("bgGerman", 0) - "mat", "map" -> prefs.getInt("bgMaths", 0) - "eng", "enp", "ena" -> prefs.getInt("bgEnglish", 0) - "spo", "spp", "spth" -> prefs.getInt("bgPhysEd", 0) - "pol", "pop" -> prefs.getInt("bgPolitics", 0) - "dar", "dap" -> prefs.getInt("bgTheatre", 0) - "phy", "php" -> prefs.getInt("bgPhysics", 0) - "bio", "bip", "nw1", "nw2", "nw3", "nw4" -> prefs.getInt("bgBiology", 0) - "che", "chp" -> prefs.getInt("bgChemistry", 0) - "phi", "psp" -> prefs.getInt("bgPhilosophy", 0) - "laa", "laf", "lat" -> prefs.getInt("bgLatin", 0) - "spa", "spf" -> prefs.getInt("bgSpanish", 0) - "fra", "frf", "frz" -> prefs.getInt("bgFrench", 0) - "inf" -> prefs.getInt("bgCompsci", 0) - "ges" -> prefs.getInt("bgHistory", 0) - "rel" -> prefs.getInt("bgReligion", 0) - "geg" -> prefs.getInt("bgGeography", 0) - "kun" -> prefs.getInt("bgArts", 0) - "mus" -> prefs.getInt("bgMusic", 0) - "tue" -> prefs.getInt("bgTurkish", 0) - "chi" -> prefs.getInt("bgChinese", 0) - "gll" -> prefs.getInt("bgGLL", 0) - "wat" -> prefs.getInt("bgWAT", 0) - "för" -> prefs.getInt("bgForder", 0) - "met", "wpb" -> prefs.getInt("bgWP", 0) - else -> 0 + if (currentItem.date.isNotEmpty() && currentItem.date.substring(0, 3) == "psa") { + psa = true + holder.mDate.text = "" + holder.mImageView.setImageResource(R.drawable.ic_idea) + holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mImageView.context, R.color.colorAccent)) + if (currentItem.date.substring(3, 7) == "http") { + holder.mCard.setOnClickListener { + try { + CustomTabsIntent.Builder().build().launchUrl(holder.mCard.context, + Uri.parse(currentItem.date.substring(3))) + } catch (e: ActivityNotFoundException) { + Toast.makeText(holder.mCard.context, holder.mCard.context.getString(R.string.chromeCompatibleNotFound), Toast.LENGTH_LONG).show() + } + } } - } catch (e: StringIndexOutOfBoundsException) { + } else { + holder.mDate.text = currentItem.date + } + + if (!psa) { try { - colorCheck = holder.mCourse.text.toString().toLowerCase().substring(0, 2) + colorCheck = holder.mCourse.text.toString().toLowerCase().substring(0, 3) colour = when (colorCheck) { - "nw" -> prefs.getInt("bgBiology", 0) - "wp" -> prefs.getInt("bgWP", 0) + "deu", "dep", "daz", "fda" -> prefs.getInt("bgGerman", 0) + "mat", "map" -> prefs.getInt("bgMaths", 0) + "eng", "enp", "ena" -> prefs.getInt("bgEnglish", 0) + "spo", "spp", "spth" -> prefs.getInt("bgPhysEd", 0) + "pol", "pop" -> prefs.getInt("bgPolitics", 0) + "dar", "dap" -> prefs.getInt("bgTheatre", 0) + "phy", "php" -> prefs.getInt("bgPhysics", 0) + "bio", "bip", "nw1", "nw2", "nw3", "nw4" -> prefs.getInt("bgBiology", 0) + "che", "chp" -> prefs.getInt("bgChemistry", 0) + "phi", "psp" -> prefs.getInt("bgPhilosophy", 0) + "laa", "laf", "lat" -> prefs.getInt("bgLatin", 0) + "spa", "spf" -> prefs.getInt("bgSpanish", 0) + "fra", "frf", "frz" -> prefs.getInt("bgFrench", 0) + "inf" -> prefs.getInt("bgCompsci", 0) + "ges" -> prefs.getInt("bgHistory", 0) + "rel" -> prefs.getInt("bgReligion", 0) + "geg" -> prefs.getInt("bgGeography", 0) + "kun" -> prefs.getInt("bgArts", 0) + "mus" -> prefs.getInt("bgMusic", 0) + "tue" -> prefs.getInt("bgTurkish", 0) + "chi" -> prefs.getInt("bgChinese", 0) + "gll" -> prefs.getInt("bgGLL", 0) + "wat" -> prefs.getInt("bgWAT", 0) + "för" -> prefs.getInt("bgForder", 0) + "met", "wpb" -> prefs.getInt("bgWP", 0) else -> 0 } - } catch (e2: StringIndexOutOfBoundsException) { - colour = 0 + } catch (e: StringIndexOutOfBoundsException) { + try { + colorCheck = holder.mCourse.text.toString().toLowerCase().substring(0, 2) + colour = when (colorCheck) { + "nw" -> prefs.getInt("bgBiology", 0) + "wp" -> prefs.getInt("bgWP", 0) + else -> 0 + } + } catch (e2: StringIndexOutOfBoundsException) { + colour = 0 + } + } + if (colour != 0) { + holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mCourse.context, colour)) + } else { + holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mCourse.context, R.color.colorBackgroundLight)) } } - if (colour != 0) { - holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mCourse.context, colour)) + val textColor = if (psa) { + R.color.colorBackground } else { - holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mCourse.context, R.color.colorBackgroundLight)) - } - - val textColor = when (colour) { - R.color.bgPureWhite -> R.color.colorTextDark - R.color.bgPureBlack -> R.color.colorTextLight - else -> R.color.colorText + when (colour) { + R.color.bgPureWhite -> R.color.colorTextDark + R.color.bgPureBlack -> R.color.colorTextLight + else -> R.color.colorText + } } holder.mImageView.setColorFilter(ContextCompat.getColor(holder.mImageView.context, textColor)) holder.mGroup.setTextColor(ContextCompat.getColor(holder.mImageView.context, textColor)) diff --git a/app/src/main/java/com/denizd/substitutionplan/PersonalPlanFragment.kt b/app/src/main/java/com/denizd/substitutionplan/PersonalPlanFragment.kt index b02e95e..a480475 100644 --- a/app/src/main/java/com/denizd/substitutionplan/PersonalPlanFragment.kt +++ b/app/src/main/java/com/denizd/substitutionplan/PersonalPlanFragment.kt @@ -21,7 +21,9 @@ class PersonalPlanFragment : PlanFragment() { persPlanEmpty = true recyclerView.visibility = View.VISIBLE for (i in 0 until it.size) { - if ((prefs.getString("courses", "") ?: "").isEmpty() && (prefs.getString("classes", "") ?: "").isNotEmpty()) { + if (it[i].date.isNotEmpty() && it[i].date.substring(0, 3) == "psa") { + planCardList.add(it[i]) + } else if ((prefs.getString("courses", "") ?: "").isEmpty() && (prefs.getString("classes", "") ?: "").isNotEmpty()) { if (it[i].group.isNotEmpty() && it[i].group != "") { if ((prefs.getString("classes", "") ?: "").contains(it[i].group) || it[i].group.contains((prefs.getString("classes", "") ?: "").toString())) { planCardList.add(it[i]) @@ -45,7 +47,7 @@ class PersonalPlanFragment : PlanFragment() { handler.postDelayed({ if (persPlanEmpty) { - recyclerView.visibility = View.GONE +// recyclerView.visibility = View.GONE smileydown.visibility = View.VISIBLE smileydowntext.visibility = View.VISIBLE linearsmiley.visibility = View.VISIBLE diff --git a/app/src/main/res/layout/plan.xml b/app/src/main/res/layout/plan.xml index 0c7c027..3e32d58 100644 --- a/app/src/main/res/layout/plan.xml +++ b/app/src/main/res/layout/plan.xml @@ -37,7 +37,8 @@ app:layout_anchor="@+id/smileydown" android:layout_gravity="bottom|center_horizontal" android:textColor="@color/colorHint" - android:visibility="gone"/> + android:visibility="gone" + android:layout_marginBottom="16dp"/>