package
com.gtappdevelopers.kotlingfgproject
import
android.os.Bundle
import
android.widget.Button
import
android.widget.EditText
import
android.widget.ImageView
import
android.widget.Toast
import
androidx.appcompat.app.AppCompatActivity
import
androidx.recyclerview.widget.RecyclerView
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
java.lang.reflect.Type
class
MainActivity : AppCompatActivity() {
lateinit var androidIV: ImageView
lateinit var cIV: ImageView
lateinit var javaIV: ImageView
lateinit var jsIV: ImageView
lateinit var pythonIV: ImageView
lateinit var languageRV: RecyclerView
lateinit var saveBtn: Button
lateinit var lngEdt: EditText
lateinit var courseList: ArrayList<CourseRVModal>
lateinit var courseRVAdapter: CourseRVAdapter
override fun onCreate(savedInstanceState: Bundle?) {
super
.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
androidIV = findViewById(R.id.idIVAndroid)
cIV = findViewById(R.id.idIVC)
javaIV = findViewById(R.id.idIVJava)
jsIV = findViewById(R.id.idIVJs)
pythonIV = findViewById(R.id.idIVPython)
languageRV = findViewById(R.id.idRVLanguages)
saveBtn = findViewById(R.id.idBtnSaveList)
lngEdt = findViewById(R.id.idEdtLanguage)
val sharedPreferences = getSharedPreferences(
"shared preferences"
, MODE_PRIVATE)
val gson = Gson()
val json = sharedPreferences.getString(
"courses"
,
null
)
val type: Type = object : TypeToken<ArrayList<CourseRVModal?>?>() {}.type
courseList = gson.fromJson<Any>(json, type) as ArrayList<CourseRVModal>
if
(courseList ==
null
) {
courseList = ArrayList()
}
courseRVAdapter = CourseRVAdapter(courseList)
languageRV.adapter = courseRVAdapter
androidIV.setOnClickListener {
if
(lngEdt.text.toString().isNotEmpty()) {
addItemToList(lngEdt.text.toString(), R.drawable.android)
}
}
cIV.setOnClickListener {
if
(lngEdt.text.toString().isNotEmpty()) {
addItemToList(lngEdt.text.toString(), R.drawable.c)
}
}
javaIV.setOnClickListener {
if
(lngEdt.text.toString().isNotEmpty()) {
addItemToList(lngEdt.text.toString(), R.drawable.java)
}
}
jsIV.setOnClickListener {
if
(lngEdt.text.toString().isNotEmpty()) {
addItemToList(lngEdt.text.toString(), R.drawable.js)
}
}
pythonIV.setOnClickListener {
if
(lngEdt.text.toString().isNotEmpty()) {
addItemToList(lngEdt.text.toString(), R.drawable.python)
}
}
saveBtn.setOnClickListener {
val sharedPreferences = getSharedPreferences(
"shared preferences"
, MODE_PRIVATE)
val editor = sharedPreferences.edit()
val gson = Gson()
val json: String = gson.toJson(courseList)
editor.putString(
"courses"
, json)
editor.apply()
Toast.makeText(
this
,
"Saved Array List to Shared preferences. "
, Toast.LENGTH_SHORT)
.show()
}
}
private
fun addItemToList(lngName: String, lngImg: Int) {
courseList.add(CourseRVModal(lngName, lngImg))
courseRVAdapter.notifyDataSetChanged()
}
}