Refactoring, using view binding in all fragments, app now targets API 29, replaced deprecated support library PreferenceManager and Custom Tabs with AndroidX equivalents, version bump to 2.3.3

This commit is contained in:
Deniz Düzgören
2019-10-12 21:03:34 +02:00
parent f5666a20c6
commit 37cf130ba0
27 changed files with 827 additions and 801 deletions
@@ -18,16 +18,16 @@ import com.google.android.material.card.MaterialCardView
* @param colours a list of all courses and their associated colour
* @param onClickListener a reference to an OnClickListener
*/
internal class ColourAdapter(private var colours: List<Colour>, private val onClickListener: OnClickListener) : RecyclerView.Adapter<ColourAdapter.ColourViewHolder>() {
internal class ColourAdapter(private var colours: List<Colour>, private val onClickListener: OnColourClickListener) : RecyclerView.Adapter<ColourAdapter.ColourViewHolder>() {
internal class ColourViewHolder(view: View, private val clickListener: OnClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
internal class ColourViewHolder(view: View, private val clickListener: OnColourClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
val title: TextView = view.findViewById(R.id.item_text)
var image: ImageView = view.findViewById(R.id.item_image)
val titleNoLang: TextView = view.findViewById(R.id.item_text_no_lang)
var titleNoLang: String = ""
val cardView: MaterialCardView = view.findViewById(R.id.cardView)
init { view.setOnClickListener(this) }
override fun onClick(v: View?) { clickListener.onClick(adapterPosition, title.text.toString(), titleNoLang.text.toString()) }
override fun onClick(v: View?) { clickListener.onColourClick(adapterPosition, title.text.toString(), titleNoLang) }
}
@@ -40,7 +40,7 @@ internal class ColourAdapter(private var colours: List<Colour>, private val onCl
val currentItem = colours[position]
holder.title.text = currentItem.title
holder.titleNoLang.text = currentItem.titleNoLang
holder.titleNoLang = currentItem.titleNoLang
holder.image.setImageDrawable(ContextCompat.getDrawable(holder.image.context, currentItem.icon))
val colour = if (currentItem.colour != 0) {
currentItem.colour
@@ -60,7 +60,7 @@ internal class ColourAdapter(private var colours: List<Colour>, private val onCl
override fun getItemCount(): Int = colours.size
internal interface OnClickListener {
fun onClick(position: Int, title: String, titleNoLang: String)
internal interface OnColourClickListener {
fun onColourClick(position: Int, title: String, titleNoLang: String)
}
}
@@ -3,6 +3,7 @@ package com.denizd.substitutionplan.adapters
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
@@ -17,15 +18,16 @@ import com.google.android.material.card.MaterialCardView
* @param ringtones a list of all ringtones including their URI
* @param onClickListener a reference to an OnClickListener to set the ringtone
*/
internal class RingtoneAdapter(private val ringtones: List<Ringtone>, private val onClickListener: OnClickListener) : RecyclerView.Adapter<RingtoneAdapter.RingtoneViewHolder>() {
internal class RingtoneAdapter(private val ringtones: List<Ringtone>, private val onClickListener: OnRingtoneClickListener) : RecyclerView.Adapter<RingtoneAdapter.RingtoneViewHolder>() {
internal class RingtoneViewHolder(view: View, private val clickListener: OnClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
internal class RingtoneViewHolder(view: View, private val clickListener: OnRingtoneClickListener) : RecyclerView.ViewHolder(view), View.OnClickListener {
val name: TextView = view.findViewById(R.id.item_text)
val uri: TextView = view.findViewById(R.id.item_text_no_lang)
val imageView: ImageView = view.findViewById(R.id.item_image)
var uri: String = ""
val cardView: MaterialCardView = view.findViewById(R.id.cardView)
init { view.setOnClickListener(this) }
override fun onClick(v: View?) { clickListener.onRingtoneClick(adapterPosition, name.text.toString(), uri.text.toString()) }
override fun onClick(v: View?) { clickListener.onRingtoneClick(adapterPosition, name.text.toString(), uri) }
}
@@ -38,13 +40,14 @@ internal class RingtoneAdapter(private val ringtones: List<Ringtone>, private va
val currentItem = ringtones[position]
holder.name.text = currentItem.name
holder.uri.text = currentItem.uri
holder.cardView.setCardBackgroundColor(ContextCompat.getColor(holder.cardView.context, R.color.colorBackground))
holder.imageView.visibility = View.GONE
holder.uri = currentItem.uri
holder.cardView.setCardBackgroundColor(ContextCompat.getColor(holder.cardView.context, R.color.colorBackgroundLight))
}
override fun getItemCount(): Int = ringtones.size
internal interface OnClickListener {
internal interface OnRingtoneClickListener {
fun onRingtoneClick(position: Int, name: String, uri: String)
}
}