Version 2.0.2 - card background now customisable, tablet layout changed

This commit is contained in:
Deniz Düzgören
2019-06-02 17:57:57 +02:00
parent abc3309acd
commit d4cef4f25d
23 changed files with 379 additions and 450 deletions
@@ -8,11 +8,12 @@ import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.card.MaterialCardView
class CardAdapter(private var mSubst: List<Subst>) : RecyclerView.Adapter<CardAdapter.CardViewHolder>() {
var colour = 0
var colorCheck = ""
private var colour = 0
private var colorCheck = ""
class CardViewHolder (view: View) : RecyclerView.ViewHolder(view) {
var mImageView: ImageView = itemView.findViewById(R.id.iconView)
@@ -22,10 +23,7 @@ class CardAdapter(private var mSubst: List<Subst>) : RecyclerView.Adapter<CardAd
var mCourse: TextView = itemView.findViewById(R.id.course)
var mRoom: TextView = itemView.findViewById(R.id.room)
var mAdditional: TextView = itemView.findViewById(R.id.additional)
}
fun CardAdapter(subst: ArrayList<Subst>) {
mSubst = subst
var mCard = itemView.findViewById<MaterialCardView>(R.id.planCard)
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CardViewHolder {
@@ -35,7 +33,7 @@ class CardAdapter(private var mSubst: List<Subst>) : RecyclerView.Adapter<CardAd
fun getSubstAt(i: Int): Subst {
return mSubst[i]
}
} // do I need this in Kotlin?
override fun onBindViewHolder(holder: CardViewHolder, position: Int) {
val currentItem = mSubst[position]
@@ -52,52 +50,51 @@ class CardAdapter(private var mSubst: List<Subst>) : RecyclerView.Adapter<CardAd
try {
colorCheck = holder.mCourse.text.toString().toLowerCase().substring(0, 3)
colour = when (colorCheck) {
"deu", "dep", "daz", "fda" -> prefs.getInt("colGerman", 0)
"mat", "map" -> prefs.getInt("colMaths", 0)
"eng", "enp", "ena" -> prefs.getInt("colEnglish", 0)
"spo", "spp", "spth" -> prefs.getInt("colPhysEd", 0)
"pol", "pop" -> prefs.getInt("colPolitics", 0)
"dar", "dap" -> prefs.getInt("colTheatre", 0)
"phy", "php" -> prefs.getInt("colPhysics", 0)
"bio", "bip" -> prefs.getInt("colBiology", 0)
"che", "chp" -> prefs.getInt("colChemistry", 0)
"phi", "psp" -> prefs.getInt("colPhilosophy", 0)
"laa", "laf", "lat" -> prefs.getInt("colLatin", 0)
"spa", "spf" -> prefs.getInt("colSpanish", 0)
"fra", "frf", "frz" -> prefs.getInt("colFrench", 0)
"inf" -> prefs.getInt("colCompsci", 0)
"ges" -> prefs.getInt("colHistory", 0)
"rel" -> prefs.getInt("colReligion", 0)
"geg" -> prefs.getInt("colGeography", 0)
"kun" -> prefs.getInt("colArts", 0)
"mus" -> prefs.getInt("colMusic", 0)
"tue" -> prefs.getInt("colTurkish", 0)
"chi" -> prefs.getInt("colChinese", 0)
"gll" -> prefs.getInt("colGLL", 0)
"wat" -> prefs.getInt("colWAT", 0)
"för" -> prefs.getInt("colForder", 0)
"met" -> prefs.getInt("colWP", 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 (e: StringIndexOutOfBoundsException) {
try {
colorCheck = holder.mCourse.text.toString().toLowerCase().substring(0, 2)
colour = when (colorCheck) {
"nw" -> prefs.getInt("colBiology", 0)
"wp" -> prefs.getInt("colWP", 0)
"nw" -> prefs.getInt("bgBiology", 0)
"wp" -> prefs.getInt("bgWP", 0)
else -> 0
}
} catch (e2: StringIndexOutOfBoundsException) {
colour = 0
}
} finally {
if (colour == 0) {
colour = R.color.textcolor
}
}
holder.mImageView.drawable.setTint(ContextCompat.getColor(holder.mImageView.context, colour))
holder.mCourse.setTextColor(ContextCompat.getColor(holder.mCourse.context, colour))
if (colour != 0) {
holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mCourse.context, colour))
} else {
holder.mCard.setCardBackgroundColor(ContextCompat.getColor(holder.mCourse.context, R.color.lightbackground))
}
}
override fun getItemCount(): Int = mSubst.size
@@ -38,9 +38,9 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
private var menu = ismenu
/* booleans to improve performance when fetching data
"plan" is required to fetch the substitution data
"menu" is required to fetch the food menu
"jobservice" is required to send a notification
"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
"jobservice" = true has no effect unless "plan" is also true
*/
@@ -77,7 +77,6 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
private val handler = Handler(Looper.getMainLooper())
override fun doInBackground(vararg params: Void?): Void? {
try {
mView?.let { v: View ->
pullToRefresh = v.findViewById(R.id.pullToRefresh)
@@ -209,7 +208,7 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
val subst = Subst(drawable, groupS[i].toString(), dateS[i].toString(), timeS[i].toString(), courseS[i].toString(),
roomS[i].toString(), additionalS[i].toString(), priority)
priority--
substViewModel.insert(subst)
substViewModel.insertSubst(subst)
if (jobservice) {
if (prefs.getString("courses", "").isEmpty() && prefs.getString("classes", "").isNotEmpty()) {
@@ -296,9 +295,11 @@ class DataFetcher(isplan: Boolean, ismenu: Boolean, isjobservice: Boolean, conte
}
} catch (e: NullPointerException) {
} catch (e: Exception) {
mView?.let { v: View ->
pullToRefresh.isRefreshing = false
try {
pullToRefresh.isRefreshing = false
} catch (ignored: Exception) {}
val snackbarview = v.findViewById<View>(R.id.coordination)
Snackbar.make(snackbarview, mContext.getText(R.string.nointernet), Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
@@ -129,11 +129,7 @@ class FirstTime : AppCompatActivity(R.layout.activity_first_time) {
}
private fun createDialog(title: String, text: String) {
val alertDialog = if (prefs.getInt("themeInt", 0) == 1) {
AlertDialog.Builder(context, R.style.AlertDialogCustomDark)
} else {
AlertDialog.Builder(context, R.style.AlertDialogCustomLight)
}
val alertDialog = AlertDialog.Builder(context, R.style.AlertDialog)
val dialogView = LayoutInflater.from(context).inflate(R.layout.simple_dialog, null)
val dialogTitle = dialogView.findViewById<TextView>(R.id.textviewtitle)
val dialogText = dialogView.findViewById<TextView>(R.id.dialogtext)
@@ -15,6 +15,7 @@ import androidx.fragment.app.Fragment
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import com.google.android.material.snackbar.Snackbar
import com.madapps.prefrences.EasyPrefrences
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
@@ -79,6 +80,7 @@ class FoodFragment : Fragment(R.layout.food_layout) {
adapter: FoodAdapter, foodArrayList: ArrayList<Food>,
swipeRefreshLayout: SwipeRefreshLayout, rootView: View) : AsyncTask<Void, Void, Void>() {
private val mContext = context
private val mRecyclerView = recyclerView
private val mEasyPrefs = easyPrefs
private val mAdapter = adapter
@@ -91,96 +93,107 @@ class FoodFragment : Fragment(R.layout.food_layout) {
val mRootView = rootView
private val fadeOut = AnimationUtils.loadAnimation(context, R.anim.fade_out)
private val handler = Handler(Looper.getMainLooper())
private var exceptionOccured = false
override fun doInBackground(vararg params: Void?): Void? {
docFood = Jsoup.connect("https://djd4rkn355.github.io/food.html").get()
foodElements = docFood.select("th")
try {
docFood = Jsoup.connect("https://djd4rkn355.github.io/food.html").get()
foodElements = docFood.select("th")
progressBar = mRootView.findViewById(R.id.progressBar)
progressBar = mRootView.findViewById(R.id.progressBar)
progressBar.max = foodElements.size
progressBar.max = foodElements.size
var foodInt = 0
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
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")) {
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")) {
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")) {
foodList.add(foodElements[foodInt].text() + "\n"
+ foodElements[foodInt + 1].text() + "\n"
+ foodElements[foodInt + 2].text())
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")) {
foodList.add(foodElements[foodInt].text() + "\n"
+ foodElements[foodInt + 1].text())
foodInt += 1
}
} else {
foodList.add(foodElements[foodInt].text())
}
} catch (e: IndexOutOfBoundsException) {
try {
foodList.add(foodElements[foodInt].text() + "\n"
+ foodElements[foodInt + 1].text() + "\n"
+ foodElements[foodInt + 2].text())
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) {
foodList.add(foodElements[foodInt].text() + "\n"
+ foodElements[foodInt + 1].text())
foodInt += 1
break
}
} else {
foodList.add(foodElements[foodInt].text())
}
} catch (e: IndexOutOfBoundsException) {
try {
foodList.add(foodElements[foodInt].text() + "\n"
+ foodElements[foodInt + 1].text() + "\n"
+ foodElements[foodInt + 2].text())
break
} catch (e1: IndexOutOfBoundsException) {
foodList.add(foodElements[foodInt].text() + "\n"
+ foodElements[foodInt + 1].text())
break
}
foodInt++
progressBar.progress = foodInt
}
foodInt++
progressBar.progress = foodInt
}
progressBar.progress = 100
progressBar.progress = 100
mEasyPrefs.putListString("foodListPrefs", foodList)
mEasyPrefs.putListString("foodListPrefs", foodList)
} catch (e: Exception) { exceptionOccured = true }
return null
}
override fun onPostExecute(result: Void?) {
super.onPostExecute(result)
try {
mRecyclerView.removeAllViews()
mFoodArrayList.removeAll(mFoodArrayList)
} catch (ignored: NullPointerException) {}
if (!exceptionOccured) {
try {
mRecyclerView.removeAllViews()
mFoodArrayList.removeAll(mFoodArrayList)
} catch (ignored: NullPointerException) {}
val foodListPopulation = ArrayList(mEasyPrefs.getListString("foodListPrefs"))
val foodListPopulation = ArrayList(mEasyPrefs.getListString("foodListPrefs"))
for (i in 0 until foodListPopulation.size) {
mFoodArrayList.add(Food(foodListPopulation[i]))
mAdapter.setFood(mFoodArrayList)
}
mRecyclerView.scheduleLayoutAnimation()
pullToRefresh.isRefreshing = false
handler.postDelayed({ progressBar.startAnimation(fadeOut) }, 200)
fadeOut.setAnimationListener(object: Animation.AnimationListener {
override fun onAnimationStart(arg0: Animation) {}
override fun onAnimationRepeat(arg0: Animation) {}
override fun onAnimationEnd(arg0: Animation) {
progressBar.progress = 0
for (i in 0 until foodListPopulation.size) {
mFoodArrayList.add(Food(foodListPopulation[i]))
mAdapter.setFood(mFoodArrayList)
}
})
mRecyclerView.scheduleLayoutAnimation()
pullToRefresh.isRefreshing = false
handler.postDelayed({ progressBar.startAnimation(fadeOut) }, 200)
fadeOut.setAnimationListener(object: Animation.AnimationListener {
override fun onAnimationStart(arg0: Animation) {}
override fun onAnimationRepeat(arg0: Animation) {}
override fun onAnimationEnd(arg0: Animation) {
progressBar.progress = 0
}
})
} else {
pullToRefresh.isRefreshing = false
val snackbarview = mRootView.findViewById<View>(R.id.coordination)
Snackbar.make(snackbarview, mContext.getText(R.string.nointernet), Snackbar.LENGTH_LONG)
.setAction("Action", null).show()
}
}
}
@@ -42,8 +42,8 @@ import java.util.*
class Main : AppCompatActivity(R.layout.activity_main) {
var bottomSheetExpanded = false
lateinit var bottomSheetBehaviour: BottomSheetBehavior<*>
private var bottomSheetExpanded = false
private lateinit var bottomSheetBehaviour: BottomSheetBehavior<*>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -144,10 +144,7 @@ class Main : AppCompatActivity(R.layout.activity_main) {
if (info.manufacturer.contains("Huawei") ||
info.manufacturer.contains("Honor") ||
info.manufacturer.contains("Xiaomi")) {
val alertDialog = when (prefs.getInt("themeInt", 0)) {
1 -> AlertDialog.Builder(context, R.style.AlertDialogCustomDark)
else -> AlertDialog.Builder(context, R.style.AlertDialogCustomLight)
}
val alertDialog = AlertDialog.Builder(context, R.style.AlertDialog)
val dialogView = LayoutInflater.from(context).inflate(R.layout.secret_dialog, null)
val title = dialogView.findViewById<TextView>(R.id.textviewtitle)
title.text = getString(R.string.chinaTitle)
@@ -160,13 +157,6 @@ class Main : AppCompatActivity(R.layout.activity_main) {
}
}
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val statusMobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).state
val statusWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).state
if (statusMobile != NetworkInfo.State.CONNECTED && statusWifi != NetworkInfo.State.CONNECTED) {
Snackbar.make(contextView, getText(R.string.nointernet), Snackbar.LENGTH_LONG).show()
}
if (prefs.getBoolean("greeting", false)) {
if (prefs.getString("username", "").isNotEmpty()) {
val animationIn = AnimationUtils.loadAnimation(context, R.anim.chip_slide_in)
@@ -192,7 +182,7 @@ class Main : AppCompatActivity(R.layout.activity_main) {
else -> greetings[1] + prefs.getString("username", "") + "."
}
}
else -> getString(R.string.error)
else -> ";)" // getString(R.string.error)
}
handler.postDelayed({
@@ -293,26 +283,32 @@ class Main : AppCompatActivity(R.layout.activity_main) {
bottomNav.setOnNavigationItemReselectedListener { item: MenuItem ->
when (item.itemId) {
R.id.plan, R.id.personal-> {
val recyclerView = findViewById<RecyclerView>(R.id.linearRecycler)
recyclerView.post {
recyclerView.smoothScrollToPosition(0)
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
}
R.id.plan, R.id.personal -> {
try {
val recyclerView = findViewById<RecyclerView>(R.id.linearRecycler)
recyclerView.post {
recyclerView.smoothScrollToPosition(0)
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
}
} catch (e: NullPointerException) {}
}
R.id.menu -> {
val recyclerView = findViewById<RecyclerView>(R.id.linear_food)
recyclerView.post {
recyclerView.smoothScrollToPosition(0)
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
}
try {
val recyclerView = findViewById<RecyclerView>(R.id.linear_food)
recyclerView.post {
recyclerView.smoothScrollToPosition(0)
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
}
} catch (e: NullPointerException) {}
}
R.id.settings -> {
val nsv = findViewById<NestedScrollView>(R.id.nsvsettings)
nsv.post {
nsv.smoothScrollTo(0, 0)
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
}
try {
val nsv = findViewById<NestedScrollView>(R.id.nsvsettings)
nsv.post {
nsv.smoothScrollTo(0, 0)
bottomSheetBehaviour.state = BottomSheetBehavior.STATE_COLLAPSED
}
} catch (e: NullPointerException) {}
}
}
appbarlayout.setExpanded(true)
@@ -2,7 +2,11 @@ package com.denizd.substitutionplan
import android.app.job.JobParameters
import android.app.job.JobService
import android.content.Context
import android.net.ConnectivityManager
import android.net.NetworkInfo
import android.preference.PreferenceManager
import com.google.android.material.snackbar.Snackbar
import java.io.IOException
import java.lang.NullPointerException
import java.net.MalformedURLException
@@ -26,10 +30,15 @@ class NotificationService : JobService() {
private fun doBackgroundWork(params: JobParameters) {
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
val edit = prefs.edit()
val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val statusMobile = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).state
val statusWifi = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).state
Thread(Runnable {
if (jobCancelled) {
return@Runnable
} else if (statusMobile != NetworkInfo.State.CONNECTED && statusWifi != NetworkInfo.State.CONNECTED) {
return@Runnable
}
if (prefs.getBoolean("notif", false)) {
edit.putInt("notificationTestNumberDev", prefs.getInt("notificationTestNumberDev", 0) + 1).apply()
@@ -40,9 +49,7 @@ class NotificationService : JobService() {
DataFetcher(true, true, true, context, application, null).execute()
edit.putString("time", connection.getHeaderField("Last-Modified")).apply()
}
} catch (ignored: NullPointerException) {}
catch (ignored: IOException) {}
catch (ignored: MalformedURLException) {}
} catch (ignored: Exception) {}
}
jobFinished(params, false)
}).start()
@@ -1,4 +0,0 @@
package com.denizd.substitutionplan
class PersonalFragment {
}
@@ -18,7 +18,9 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout
import java.util.*
import kotlin.collections.ArrayList
class PlanFragment() : Fragment(R.layout.plan) { // isPersonal: Boolean
class PlanFragment : Fragment(R.layout.plan) {
private lateinit var recyclerView: RecyclerView
private lateinit var mAdapter: CardAdapter
private lateinit var layoutManager: GridLayoutManager
@@ -45,10 +47,19 @@ class PlanFragment() : Fragment(R.layout.plan) { // isPersonal: Boolean
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
val grid = when (newConfig.orientation) {
Configuration.ORIENTATION_PORTRAIT -> 1
else -> 2
val tabletSize = resources.getBoolean(R.bool.isTablet)
val grid = if (tabletSize) {
when (newConfig.orientation) {
Configuration.ORIENTATION_PORTRAIT -> 2
else -> 3
}
} else {
when (newConfig.orientation) {
Configuration.ORIENTATION_PORTRAIT -> 1
else -> 2
}
}
layoutManager = GridLayoutManager(mContext, grid)
recyclerView.layoutManager = layoutManager
}
@@ -68,10 +79,19 @@ class PlanFragment() : Fragment(R.layout.plan) { // isPersonal: Boolean
recyclerView = view.findViewById(R.id.linearRecycler)
recyclerView.hasFixedSize()
val grid = when (resources.configuration.orientation) {
Configuration.ORIENTATION_PORTRAIT -> 1
else -> 2
val tabletSize = resources.getBoolean(R.bool.isTablet)
val grid = if (tabletSize) {
when (resources.configuration.orientation) {
Configuration.ORIENTATION_PORTRAIT -> 2
else -> 3
}
} else {
when (resources.configuration.orientation) {
Configuration.ORIENTATION_PORTRAIT -> 1
else -> 2
}
}
layoutManager = GridLayoutManager(mContext, grid)
recyclerView.layoutManager = layoutManager
@@ -260,11 +260,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
}
private fun createDialog(title: String, text: String) {
val alertDialog = if (prefs.getInt("themeInt", 0) == 1) {
AlertDialog.Builder(mContext, R.style.AlertDialogCustomDark)
} else {
AlertDialog.Builder(mContext, R.style.AlertDialogCustomLight)
}
val alertDialog = AlertDialog.Builder(mContext, R.style.AlertDialog)
val dialogView = LayoutInflater.from(mContext).inflate(R.layout.simple_dialog, null)
val dialogTitle = dialogView.findViewById<TextView>(R.id.textviewtitle)
val dialogText = dialogView.findViewById<TextView>(R.id.dialogtext)
@@ -279,10 +275,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
val courses = arrayOf(getString(R.string.courseDeu), getString(R.string.courseEng), getString(R.string.courseFra), getString(R.string.courseSpa), getString(R.string.courseLat), getString(R.string.courseTue), getString(R.string.courseChi), getString(R.string.courseKun), getString(R.string.courseMus), getString(R.string.courseDar), getString(R.string.courseGeg), getString(R.string.courseGes), getString(R.string.coursePol), getString(R.string.coursePhi), getString(R.string.courseRel), getString(R.string.courseMat), getString(R.string.courseBio), getString(R.string.courseChe), getString(R.string.coursePhy), getString(R.string.courseInf), getString(R.string.courseSpo), getString(R.string.courseGll), getString(R.string.courseWat), getString(R.string.courseFor), getString(R.string.courseWp))
val coursesIcons = intArrayOf(R.drawable.ic_german, R.drawable.ic_english, R.drawable.ic_french, R.drawable.ic_spanish, R.drawable.ic_latin, R.drawable.ic_turkish, R.drawable.ic_chinese, R.drawable.ic_arts, R.drawable.ic_music, R.drawable.ic_drama, R.drawable.ic_geography, R.drawable.ic_history, R.drawable.ic_politics, R.drawable.ic_philosophy, R.drawable.ic_religion, R.drawable.ic_maths, R.drawable.ic_biology, R.drawable.ic_chemistry, R.drawable.ic_physics, R.drawable.ic_compsci, R.drawable.ic_pe, R.drawable.ic_gll, R.drawable.ic_wat, R.drawable.ic_help, R.drawable.ic_pencil)
val colourCustomiserBuilder = when (prefs.getInt("themeInt", 0)) {
1 -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomDark)
else -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomLight)
}
val colourCustomiserBuilder = AlertDialog.Builder(mContext, R.style.AlertDialog)
val dialogView = LayoutInflater.from(mContext).inflate(R.layout.empty_dialog, null)
val titleText = dialogView.findViewById<TextView>(R.id.empty_textviewtitle)
@@ -301,32 +294,29 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
val courseNoLangTxt = coursesNoLang[i]
val courseTxt = courses[i]
if (prefs.getInt("col" + coursesNoLang[i], 0) != 0) {
itemText.setTextColor(ContextCompat.getColor(mContext, prefs.getInt("col$courseNoLangTxt", 0)))
itemImage.drawable.setTint(ContextCompat.getColor(mContext, prefs.getInt("col$courseNoLangTxt", 0)))
if (prefs.getInt("bg" + coursesNoLang[i], 0) != 0) {
// itemText.setTextColor(ContextCompat.getColor(mContext, prefs.getInt("col$courseNoLangTxt", 0)))
itemImage.drawable.setTint(ContextCompat.getColor(mContext, prefs.getInt("bg$courseNoLangTxt", 0)))
}
layout.setOnClickListener {
val colourPickerBuilder = when (prefs.getInt("themeInt", 0)) {
1 -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomDark)
else -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomLight)
}
val colourPickerBuilder = AlertDialog.Builder(mContext, R.style.AlertDialog)
val pickerDialogView = LayoutInflater.from(mContext).inflate(R.layout.empty_dialog, null)
val pickerTitleText = pickerDialogView.findViewById<TextView>(R.id.empty_textviewtitle)
val pickerLayout = pickerDialogView.findViewById<LinearLayout>(R.id.empty_linearlayout)
pickerTitleText.text = courseTxt
val picker = LayoutInflater.from(mContext).inflate(R.layout.colour_picker, null)
val picker = LayoutInflater.from(mContext).inflate(R.layout.bg_colour_picker, null)
pickerLayout.addView(picker)
colourPickerBuilder.setView(pickerDialogView)
val colourPickerDialog: AlertDialog = colourPickerBuilder.create()
val buttons = arrayOf<MaterialButton>(picker.findViewById(R.id.colourRed), picker.findViewById(R.id.colourPink), picker.findViewById(R.id.colourPurple), picker.findViewById(R.id.colourDeepPurple), picker.findViewById(R.id.colourLavender), picker.findViewById(R.id.colourIndigo), picker.findViewById(R.id.colourBlue), picker.findViewById(R.id.colourLightBlue), picker.findViewById(R.id.colourTeal), picker.findViewById(R.id.colourGreen), picker.findViewById(R.id.colourYellow), picker.findViewById(R.id.colourOrange), picker.findViewById(R.id.colourNeonRed), picker.findViewById(R.id.colourNeonPink), picker.findViewById(R.id.colourNeonPurple), picker.findViewById(R.id.colourNeonDeepPurple), picker.findViewById(R.id.colourNeonBlue), picker.findViewById(R.id.colourNeonGreen), picker.findViewById(R.id.colourNeonYellow), picker.findViewById(R.id.colourNeonOrange), picker.findViewById(R.id.colourNone))
val colours = intArrayOf(R.color.red, R.color.pink, R.color.purple, R.color.deeppurple, R.color.lavender, R.color.indigo, R.color.blue, R.color.lightblue, R.color.teal, R.color.green, R.color.yellow, R.color.orange, R.color.neonred, R.color.neonpink, R.color.neonpurple, R.color.neondeeppurple, R.color.neonblue, R.color.neongreen, R.color.neonyellow, R.color.neonorange, 0)
val buttons = arrayOf<MaterialButton>(picker.findViewById(R.id.def), picker.findViewById(R.id.red), picker.findViewById(R.id.orange), picker.findViewById(R.id.yellow), picker.findViewById(R.id.green), picker.findViewById(R.id.teal), picker.findViewById(R.id.cyan), picker.findViewById(R.id.blue), picker.findViewById(R.id.purple), picker.findViewById(R.id.pink), picker.findViewById(R.id.brown), picker.findViewById(R.id.grey))
val colours = intArrayOf(0, R.color.bgred, R.color.bgorange, R.color.bgyellow, R.color.bggreen, R.color.bgteal, R.color.bgcyan, R.color.bgblue, R.color.bgpurple, R.color.bgpink, R.color.bgbrown, R.color.bggrey)
for (i2 in 0 until buttons.size) {
buttons[i2].setOnClickListener {
edit.putInt("col$courseNoLangTxt", colours[i2]).apply()
edit.putInt("bg$courseNoLangTxt", colours[i2]).apply()
colourPickerDialog.dismiss()
}
}
@@ -344,7 +334,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
buttonClearAll.setOnClickListener {
for (course in coursesNoLang) {
edit.putInt("col$course", 0)
edit.putInt("bg$course", 0)
}
edit.apply()
Toast.makeText(mContext, getString(R.string.allcolourscleared),
@@ -363,10 +353,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
model = deviceInfo.model
}
val alertDialog = when (prefs.getInt("themeInt", 0)) {
1 -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomDark)
else -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomLight)
}
val alertDialog = AlertDialog.Builder(mContext, R.style.AlertDialog)
val dialogView = LayoutInflater.from(mContext).inflate(R.layout.edittext_dialog, null)
val dialogEditText = dialogView.findViewById<EditText>(R.id.dialog_edittext)
val dialogButton = dialogView.findViewById<Button>(R.id.dialog_button)
@@ -376,10 +363,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
dialogButton.setOnClickListener {
when (dialogEditText.text.toString()) {
"@DIAGNOSTICS" -> {
val alertDialogDev = when (prefs.getInt("themeInt", 0)) {
1 -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomDark)
else -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomLight)
}
val alertDialogDev = AlertDialog.Builder(mContext, R.style.AlertDialog)
val devDialogView = LayoutInflater.from(mContext).inflate(R.layout.diagnostics_dialog, null)
val devDialogText = devDialogView.findViewById<TextView>(R.id.dialogtext)
val resetLaunchBtn = devDialogView.findViewById<Button>(R.id.btnResetLaunch)
@@ -412,10 +396,7 @@ class SettingsFragment : Fragment(R.layout.content_settings), View.OnClickListen
}
"Q1 Matchmaker" -> {
val gen = Random()
val alertDialogDate = when (prefs.getInt("themeInt", 0)) {
1 -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomDark)
else -> AlertDialog.Builder(mContext, R.style.AlertDialogCustomLight)
}
val alertDialogDate = AlertDialog.Builder(mContext, R.style.AlertDialog)
val dateDialogView = LayoutInflater.from(mContext).inflate(R.layout.dating_dialog, null)
val datingBtn = dateDialogView.findViewById<Button>(R.id.dating_btn)
val boyTxt = dateDialogView.findViewById<TextInputEditText>(R.id.dating_txt1)
@@ -10,13 +10,13 @@ public interface SubstDao {
val allSubst: LiveData<List<Subst>>
@Insert
fun insert(subst: Subst)
fun insertSubst(subst: Subst)
@Update
fun update(subst: Subst)
fun updateSubst(subst: Subst)
@Delete
fun delete(subst: Subst)
fun deleteSubst(subst: Subst)
@Query("DELETE FROM subst_table")
fun deleteAllSubst()
@@ -35,7 +35,7 @@ public class SubstRepository(application: Application) {
class InsertSubstAsync(substDao: SubstDao?) : AsyncTask<Subst, Void, Void>() {
val mSubstDao = substDao
override fun doInBackground(vararg substs: Subst): Void? {
mSubstDao?.insert(substs[0])
mSubstDao?.insertSubst(substs[0])
return null
}
}
@@ -43,7 +43,7 @@ public class SubstRepository(application: Application) {
class UpdateSubstAsync(substDao: SubstDao?) : AsyncTask<Subst, Void, Void>() {
private val mSubstDao = substDao
override fun doInBackground(vararg substs: Subst): Void? {
mSubstDao?.update(substs[0])
mSubstDao?.updateSubst(substs[0])
return null
}
}
@@ -51,7 +51,7 @@ public class SubstRepository(application: Application) {
class DeleteSubstAsync(substDao: SubstDao?) : AsyncTask<Subst, Void, Void>() {
private val mSubstDao = substDao
override fun doInBackground(vararg substs: Subst): Void? {
mSubstDao?.delete(substs[0])
mSubstDao?.deleteSubst(substs[0])
return null
}
}
@@ -14,15 +14,15 @@ public class SubstViewModel(application: Application) : AndroidViewModel(applica
allSubst = repository.allSubst
}
fun insert(subst: Subst) {
fun insertSubst(subst: Subst) {
repository.insert(subst)
}
fun update(subst: Subst) {
fun updateSubst(subst: Subst) {
repository.update(subst)
}
fun delete(subst: Subst) {
fun deleteSubst(subst: Subst) {
repository.delete(subst)
}