Untitled
unknown
plain_text
2 years ago
2.7 kB
15
Indexable
package com.example.alarmclock.fragment.alarnlistfragment
import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.Fragment
import androidx.lifecycle.Observer
import androidx.lifecycle.ViewModelProviders
import androidx.navigation.Navigation.findNavController
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.example.alarmclock.*
import com.example.alarmclock.adapter.AlarmRecyclerViewAdapter
import com.example.alarmclock.databinding.FragmentListalarmsBinding
import com.example.alarmclock.utils.Alarm
import com.example.alarmclock.utils.OnToggleAlarmListener
import com.example.alarmclock.viewmodel.AlarmsListViewModel
import com.google.android.material.floatingactionbutton.FloatingActionButton
class AlarmsListFragment : Fragment(), OnToggleAlarmListener {
private var alarmRecyclerViewAdapter: AlarmRecyclerViewAdapter? = null
private var alarmsListViewModel: AlarmsListViewModel? = null
private var alarmsRecyclerView: RecyclerView? = null
private val TAG = "AlarmsListFragment"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
alarmRecyclerViewAdapter = AlarmRecyclerViewAdapter(this)
alarmsListViewModel = ViewModelProviders.of(this).get(AlarmsListViewModel::class.java)
alarmsListViewModel?.alarmsLiveData?.observe(
this
) { alarms ->
if (alarms != null) {
alarmRecyclerViewAdapter!!.setAlarms(alarms)
}
}
}
lateinit var binding: FragmentListalarmsBinding
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
binding = FragmentListalarmsBinding.inflate(layoutInflater)
binding.fragmentListalarmsRecylerView.adapter = alarmRecyclerViewAdapter
alarmsRecyclerView?.adapter = alarmRecyclerViewAdapter
binding.fragmentListalarmsAddAlarm.setOnClickListener(View.OnClickListener { v ->
findNavController(v).navigate(R.id.addAlarmFragment)
})
return binding.root
}
override fun onToggle(alarm: Alarm?) {
if (alarm!!.isStarted) {
alarm.cancelAlarm(requireContext())
alarmsListViewModel?.update(alarm)
} else {
alarm.schedule(requireContext())
alarmsListViewModel?.update(alarm)
}
}
override fun onDelete(alarm: Alarm?) {
alarmsListViewModel?.delete(alarm!!)
}
}Editor is loading...
Leave a Comment