Skip to content
Snippets Groups Projects
Select Git revision
  • f2d5b06fcaad42a1153d10a9085efbeab9bc5376
  • main default protected
2 results

CityFragment.kt

Blame
  • CityFragment.kt 1.96 KiB
    package com.example.tp4
    
    import android.os.Bundle
    import android.view.*
    import android.widget.Toast
    import androidx.fragment.app.Fragment
    import com.example.tp4.city.City
    import com.example.tp4.city.CreateCityDialogFragment
    
    class CityFragment : Fragment() {
        private lateinit var database: Database
        private lateinit var cities: MutableList<City>
    
        override fun onCreate(savedInstanceState: Bundle?){
            super.onCreate(savedInstanceState)
            database=App.database
            cities=mutableListOf()
            setHasOptionsMenu(true)
        }
        override fun onCreateView(
            inflater: LayoutInflater,
            container: ViewGroup?,
            savedInstanceState: Bundle?
        ): View {
            val view=inflater.inflate(R.layout.fragment_city,container,false)
            return view
        }
        override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
            inflater.inflate(R.menu.fragment_city, menu)
        }
        override fun onOptionsItemSelected(item: MenuItem): Boolean {
            when (item.itemId) {
                R.id.action_create_city -> {
                    showCreateCityDialog()
                    return true
                }
            }
            return super.onOptionsItemSelected(item)
        }
    
        private fun showCreateCityDialog() {
            val createCityFragment = CreateCityDialogFragment()
            createCityFragment.listener = object : CreateCityDialogFragment.CreateCityDialogListener {
                override fun onDialogPositiveClick(cityName: String) {
                    saveCity(City(cityName))
                }
                override fun onDialogNegativeClick() {}
            }
    
            createCityFragment.show(parentFragmentManager, "CreateCityDialogFragment")
        }
        private fun saveCity(city: City) {
            // on ecrit dans la bdd => on a besoin de la reférence de la base de donnée
            if (database.createCity(city)) {
                cities.add(city)
            } else {
                Toast.makeText(context, "Could not create city", Toast.LENGTH_SHORT).show()
            }
        }
    }