Untitled
unknown
plain_text
a year ago
13 kB
3
Indexable
package com.example.alarmclock.fragment.addalaramfragmnet import android.annotation.SuppressLint import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.NumberPicker import androidx.fragment.app.Fragment import androidx.lifecycle.ViewModelProviders import androidx.navigation.fragment.findNavController import butterknife.ButterKnife import com.example.alarmclock.utils.Alarm import com.example.alarmclock.utils.AlarmDatabase import com.example.alarmclock.viewmodel.CreateAlarmViewModel import com.example.alarmclock.R import com.example.alarmclock.databinding.BottomSheetDialogBinding import com.example.alarmclock.databinding.DescBottomSheetBinding import com.example.alarmclock.databinding.FragmentAddAlarmBinding import com.example.alarmclock.databinding.RepeatBottomSheetBinding import com.google.android.material.bottomsheet.BottomSheetDialog import java.text.SimpleDateFormat import java.util.* class AddAlarmFragment : Fragment() { var recurring = false var monday = false var tuesday = false var wednesday = false var thursday = false var friday = false var saturday = false var sunday = false var isRun = false var count = 0 private var desc: String? = null var vibration = false private lateinit var binding: FragmentAddAlarmBinding private var createAlarmViewModel: CreateAlarmViewModel? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) createAlarmViewModel = ViewModelProviders.of(this)[CreateAlarmViewModel::class.java] } @SuppressLint("SoonBlockedPrivateApi") override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { binding = FragmentAddAlarmBinding.inflate(layoutInflater) hourPickerSetValue() minutePickerSetValue() setListeners() ButterKnife.bind(this, requireActivity()) return binding.root } private fun setListeners() { binding.saveBtn.setOnClickListener { val alarmId = Random().nextInt(Int.MAX_VALUE) isRun = true // region ::Class val alarm = Alarm( alarmId, binding.numberPicker1.value, binding.numberPicker2.value, desc, System.currentTimeMillis(), started = true, recurring = recurring, monday = monday, tuesday = tuesday, wednesday = wednesday, thursday = thursday, friday = friday, saturday = saturday, sunday = sunday, isVibration = vibration ) //endregion createAlarmViewModel?.insert(alarm) alarm.schedule(requireContext()) findNavController().popBackStack() } binding.layout1.setOnClickListener { val bottomSheetDialog = BottomSheetDialog(requireContext(), R.style.BottomSheetDialogTheme) val bottomView = layoutInflater.inflate(R.layout.bottom_sheet_dialog, null, false) bottomSheetDialog.setContentView(bottomView) bottomSheetDialog.show() val bind = BottomSheetDialogBinding.bind(bottomView) bind.layout1.setOnClickListener { count++ recurring = false setRepetitionValue(bind.text1.text.toString()) bottomSheetDialog.dismiss() } bind.layout2.setOnClickListener { recurring = true count++ monday = true tuesday = true wednesday = true thursday = true friday = true sunday = true saturday = true setRepetitionValue(bind.text2.text.toString()) bottomSheetDialog.dismiss() } bind.layout3.setOnClickListener { recurring = true count++ monday = true tuesday = true wednesday = true thursday = true friday = true setRepetitionValue(bind.text3.text.toString()) bottomSheetDialog.dismiss() } bind.layout4.setOnClickListener { setRepetitionValue(bind.text4.text.toString()) setSelectionType() bottomSheetDialog.dismiss() } } binding.closeBtn.setOnClickListener { requireActivity().onBackPressed() } binding.decsBtn.setOnClickListener { val bottomSheetDialog = BottomSheetDialog(requireContext(), R.style.BottomSheetDialogTheme) val bottomView = layoutInflater.inflate(R.layout.desc_bottom_sheet, null, false) bottomSheetDialog.setContentView(bottomView) bottomSheetDialog.show() val descBottomSheetBinding = DescBottomSheetBinding.bind(bottomView) setDescription(descBottomSheetBinding, bottomSheetDialog) } //region::Check binding.vibration.setOnCheckedChangeListener { p0, isChecked -> if (isChecked) { vibration = true } else { vibration } } binding.layout2.setOnClickListener { binding.vibration.isChecked = vibration if (vibration) { binding.vibration.isChecked = false vibration = false } else { binding.vibration.isChecked = true vibration = true } } } private fun setDescription( descBottomSheetBinding: DescBottomSheetBinding, bottomSheetDialog: BottomSheetDialog ) { descBottomSheetBinding.desc.setText(desc) descBottomSheetBinding.cancelButton.setOnClickListener { bottomSheetDialog.dismiss() } descBottomSheetBinding.positiveButton.setOnClickListener { binding.desc.text = descBottomSheetBinding.desc.text desc = descBottomSheetBinding.desc.text.toString() bottomSheetDialog.dismiss() } } private fun setSelectionType() { val bottomSheetDialog1 = BottomSheetDialog(requireContext(), R.style.BottomSheetDialogTheme) val bottomView1 = layoutInflater.inflate(R.layout.repeat_bottom_sheet, null, false) bottomSheetDialog1.setContentView(bottomView1) bottomSheetDialog1.show() val bind1 = RepeatBottomSheetBinding.bind(bottomView1) if (count > 0) { monday = false tuesday = false wednesday = false thursday = false friday = false sunday = false saturday = false } count = 0 setMonday(bind1) setTuesday(bind1) setWednesday(bind1) setThursday(bind1) setFriday(bind1) setSaturday(bind1) setSunday(bind1) bind1.cancelButton.setOnClickListener { bottomSheetDialog1.dismiss() } bind1.positiveButton.setOnClickListener { bottomSheetDialog1.dismiss() } } private fun setSunday(bind1: RepeatBottomSheetBinding) { var check = sunday bind1.sunday.isChecked = sunday bind1.sunday.setOnClickListener { if (check) { recurring = false bind1.sunday.isChecked = false check = false sunday = false } else { recurring = true sunday = true check = true bind1.sunday.isChecked = true } } } private fun setSaturday(bind1: RepeatBottomSheetBinding) { var check = saturday bind1.saturday.isChecked = saturday bind1.saturday.setOnClickListener { if (check) { recurring = false bind1.saturday.isChecked = false check = false saturday = false } else { recurring = true saturday = true check = true bind1.saturday.isChecked = true } } } private fun setFriday(bind1: RepeatBottomSheetBinding) { var check = friday bind1.friday.isChecked = friday bind1.friday.setOnClickListener { if (check) { recurring = false bind1.friday.isChecked = false check = false friday = false } else { recurring = true friday = true check = true bind1.friday.isChecked = true } } } private fun setThursday(bind1: RepeatBottomSheetBinding) { var check = thursday bind1.thursday.isChecked = thursday bind1.thursday.setOnClickListener { if (check) { recurring = false bind1.thursday.isChecked = false check = false thursday = false } else { recurring = true thursday = true check = true bind1.thursday.isChecked = true } } } private fun setWednesday(bind1: RepeatBottomSheetBinding) { var check = wednesday bind1.wednesday.isChecked = wednesday bind1.wednesday.setOnClickListener { if (check) { recurring = false bind1.wednesday.isChecked = false check = false wednesday = false } else { recurring = true wednesday = true check = true bind1.wednesday.isChecked = true } } } private fun setTuesday(bind1: RepeatBottomSheetBinding) { var check = tuesday bind1.tuesday.isChecked = tuesday bind1.tuesday.setOnClickListener { if (check) { recurring = false bind1.tuesday.isChecked = false check = false tuesday = false } else { recurring = true tuesday = true check = true bind1.tuesday.isChecked = true } } } private fun setMonday(bind1: RepeatBottomSheetBinding) { var check = monday bind1.monday.isChecked = monday bind1.monday.setOnClickListener { if (check) { recurring = false bind1.monday.isChecked = false check = false monday = false } else { recurring = true monday = true check = true bind1.monday.isChecked = true } } } @SuppressLint("SimpleDateFormat") private fun minutePickerSetValue() { binding.numberPicker2.setOnLongPressUpdateInterval(100) binding.numberPicker2.wrapSelectorWheel = true binding.numberPicker2.descendantFocusability = NumberPicker.FOCUS_BLOCK_DESCENDANTS binding.numberPicker2.isSoundEffectsEnabled = true binding.numberPicker2.minValue = 0 binding.numberPicker2.maxValue = 59 binding.numberPicker2.setFormatter { p0 -> var value = "" value = if (p0 < 10) { "0$p0" } else { p0.toString() } value } val minute = SimpleDateFormat("mm").format(Date()) binding.numberPicker2.value = minute.toInt() } @SuppressLint("SimpleDateFormat") private fun hourPickerSetValue() { binding.numberPicker1.descendantFocusability = NumberPicker.FOCUS_BLOCK_DESCENDANTS binding.numberPicker1.isSoundEffectsEnabled = true binding.numberPicker1.wrapSelectorWheel = true binding.numberPicker1.minValue = 0 binding.numberPicker1.maxValue = 23 binding.numberPicker1.setFormatter { p0 -> var value = "" value = if (p0 < 10) { "0$p0" } else { p0.toString() } value } val hour = SimpleDateFormat("HH").format(Date()) binding.numberPicker1.value = hour.toInt() } private fun setRepetitionValue(value: String?) { binding.selectionType.text = value } }
Editor is loading...
Leave a Comment