Advertisement
Guest User

HomeFragment.kt

a guest
Feb 6th, 2021
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. package hu.crm.myapplication.ui.home
  2.  
  3. import android.os.Bundle
  4. import android.view.LayoutInflater
  5. import android.view.View
  6. import android.view.ViewGroup
  7. import androidx.fragment.app.Fragment
  8. import androidx.lifecycle.ViewModelProvider
  9. import androidx.recyclerview.widget.GridLayoutManager
  10. import hu.crm.myapplication.CalendarItemModel
  11. import hu.crm.myapplication.databinding.FragmentHomeBinding
  12. import java.util.*
  13.  
  14. class HomeFragment : Fragment() {
  15.  
  16. private lateinit var homeViewModel: HomeViewModel
  17. private val adapter = CalenderAdapter { dateClick(it) }
  18. private var actualNumberOfMonth = Calendar.getInstance().get(Calendar.MONTH) + 1
  19. private var actualYear = Calendar.getInstance().get(Calendar.YEAR)
  20. private lateinit var binding: FragmentHomeBinding
  21.  
  22. override fun onCreateView(
  23. inflater: LayoutInflater,
  24. container: ViewGroup?,
  25. savedInstanceState: Bundle?
  26. ): View {
  27. binding = FragmentHomeBinding.inflate(inflater, container, false)
  28. return binding.root
  29. }
  30.  
  31. override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
  32. super.onViewCreated(view, savedInstanceState)
  33.  
  34. homeViewModel = ViewModelProvider(this).get(HomeViewModel::class.java)
  35.  
  36. binding.fragmentCalendarRecyclerView.layoutManager = GridLayoutManager(context, 7)
  37. binding.fragmentCalendarRecyclerView.adapter = adapter
  38.  
  39. binding.fragmentCalendarNextButton.setOnClickListener {
  40. actualNumberOfMonth++
  41. handleButtons()
  42. }
  43.  
  44. binding.fragmentCalendarBackButton.setOnClickListener {
  45. actualNumberOfMonth--
  46. handleButtons()
  47. }
  48.  
  49. handleButtons()
  50. }
  51.  
  52. private fun dateClick(calendar: Calendar) {
  53. //view?.showSnackBar("Kattintás a ${calendar.time} elemre")
  54. }
  55.  
  56. private fun handleButtons() {
  57. if (actualNumberOfMonth < 1) {
  58. actualNumberOfMonth = 12
  59. actualYear--
  60. }
  61.  
  62. if (actualNumberOfMonth > 12) {
  63. actualNumberOfMonth = 1
  64. actualYear++
  65. }
  66.  
  67. binding.numberOfMonth = actualNumberOfMonth
  68. binding.year = actualYear
  69. adapter.submitList(createMonthDateList())
  70. }
  71.  
  72. private fun createMonthDateList(): List<CalendarItemModel> {
  73. val models: MutableList<CalendarItemModel> = mutableListOf()
  74.  
  75. val calendar = Calendar.getInstance()
  76. calendar.set(Calendar.HOUR, 0)
  77. calendar.set(Calendar.MINUTE, 0)
  78. calendar.set(Calendar.MILLISECOND, 0)
  79. calendar.set(Calendar.SECOND, 0)
  80.  
  81. calendar.set(Calendar.MONTH, actualNumberOfMonth - 1)
  82. calendar.set(Calendar.YEAR, actualYear)
  83. calendar.set(Calendar.DAY_OF_MONTH, 1)
  84. calendar.add(Calendar.DAY_OF_MONTH, 2 - calendar[Calendar.DAY_OF_WEEK])
  85.  
  86. while (models.size < 35) {
  87. models.add(
  88. CalendarItemModel(
  89. calendar.clone() as Calendar,
  90. models.size,
  91. models.size,
  92. actualNumberOfMonth
  93. )
  94. )
  95. calendar.add(Calendar.DAY_OF_MONTH, 1)
  96. }
  97.  
  98. return models
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement