Archived
Changed card tinting method to use strings rather than raw integers to prevent mix-up of colours on app update; added migration strategy to convert old raw integer colours into string values
This commit is contained in:
@@ -19,6 +19,7 @@ import com.google.android.material.card.MaterialCardView
|
||||
class CardAdapter(private var mSubst: List<Subst>) : RecyclerView.Adapter<CardAdapter.CardViewHolder>() {
|
||||
|
||||
private var colour = 0
|
||||
private var colourString = ""
|
||||
private var colorCheck = ""
|
||||
|
||||
class CardViewHolder (view: View) : RecyclerView.ViewHolder(view), View.OnClickListener {
|
||||
@@ -83,46 +84,47 @@ class CardAdapter(private var mSubst: List<Subst>) : RecyclerView.Adapter<CardAd
|
||||
if (!psa) {
|
||||
try {
|
||||
colorCheck = holder.mCourse.text.toString().toLowerCase().substring(0, 3)
|
||||
colour = when (colorCheck) {
|
||||
"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
|
||||
colourString = when (colorCheck) {
|
||||
"deu", "dep", "daz", "fda" -> prefs.getString("cardGerman", "") ?: ""
|
||||
"mat", "map" -> prefs.getString("cardMaths", "") ?: ""
|
||||
"eng", "enp", "ena" -> prefs.getString("cardEnglish", "") ?: ""
|
||||
"spo", "spp", "spth" -> prefs.getString("cardPhysEd", "") ?: ""
|
||||
"pol", "pop" -> prefs.getString("cardPolitics", "") ?: ""
|
||||
"dar", "dap" -> prefs.getString("cardTheatre", "") ?: ""
|
||||
"phy", "php" -> prefs.getString("cardPhysics", "") ?: ""
|
||||
"bio", "bip", "nw1", "nw2", "nw3", "nw4" -> prefs.getString("cardBiology", "") ?: ""
|
||||
"che", "chp" -> prefs.getString("cardChemistry", "") ?: ""
|
||||
"phi", "psp" -> prefs.getString("cardPhilosophy", "") ?: ""
|
||||
"laa", "laf", "lat" -> prefs.getString("cardLatin", "") ?: ""
|
||||
"spa", "spf" -> prefs.getString("cardSpanish", "") ?: ""
|
||||
"fra", "frf", "frz" -> prefs.getString("cardFrench", "") ?: ""
|
||||
"inf" -> prefs.getString("cardCompsci", "") ?: ""
|
||||
"ges" -> prefs.getString("cardHistory", "") ?: ""
|
||||
"rel" -> prefs.getString("cardReligion", "") ?: ""
|
||||
"geg" -> prefs.getString("cardGeography", "") ?: ""
|
||||
"kun" -> prefs.getString("cardArts", "") ?: ""
|
||||
"mus" -> prefs.getString("cardMusic", "") ?: ""
|
||||
"tue" -> prefs.getString("cardTurkish", "") ?: ""
|
||||
"chi" -> prefs.getString("cardChinese", "") ?: ""
|
||||
"gll" -> prefs.getString("cardGLL", "") ?: ""
|
||||
"wat" -> prefs.getString("cardWAT", "") ?: ""
|
||||
"för" -> prefs.getString("cardForder", "") ?: ""
|
||||
"met", "wpb" -> prefs.getString("cardWP", "") ?: ""
|
||||
else -> ""
|
||||
}
|
||||
} 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
|
||||
colourString = when (colorCheck) {
|
||||
"nw" -> prefs.getString("cardBiology", "") ?: ""
|
||||
"wp" -> prefs.getString("cardWP", "") ?: ""
|
||||
else -> ""
|
||||
}
|
||||
} catch (e2: StringIndexOutOfBoundsException) {
|
||||
colour = 0
|
||||
colourString = ""
|
||||
}
|
||||
}
|
||||
colour = MiscData.getColourForString(colourString)
|
||||
if (colour != 0) {
|
||||
holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mCourse.context, colour))
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user