package com.dollearn.student.dialog
|
|
import android.view.Gravity
|
import androidx.core.os.bundleOf
|
import androidx.fragment.app.FragmentManager
|
import cn.sinata.xldutils.utils.showAllowingStateLoss
|
import com.haibin.calendarview.Calendar
|
import com.haibin.calendarview.CalendarView
|
import com.dollearn.student.R
|
import com.dollearn.student.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.dialog_calendar.*
|
|
class CalendarDialog:BaseDialogFragment() {
|
override fun setContentView() = R.layout.dialog_calendar
|
|
var callback:StringCallback? = null
|
|
override fun setGravity() = Gravity.BOTTOM
|
|
override fun initView() {
|
tv_cancel.setOnClickListener { dismissAllowingStateLoss() }
|
calendar.setOnCalendarSelectListener(object :CalendarView.OnCalendarSelectListener{
|
override fun onCalendarOutOfRange(calendar: Calendar?) {
|
|
}
|
|
override fun onCalendarSelect(calendar: Calendar, isClick: Boolean) {
|
if (isClick){
|
callback?.onResult(calendar.timeInMillis.toString())
|
dismissAllowingStateLoss()
|
}
|
}
|
|
})
|
calendar.setOnMonthChangeListener { year, month ->
|
tv_date.text = "${year}年${month}月"
|
}
|
val c = java.util.Calendar.getInstance()
|
c.timeInMillis = System.currentTimeMillis()+ 10L*24*60*60*1000
|
calendar.setRange(calendar.curYear,calendar.curMonth,calendar.curDay,c.get(java.util.Calendar.YEAR),c.get(java.util.Calendar.MONTH)+1,c.get(java.util.Calendar.DAY_OF_MONTH))
|
val current = arguments?.getString("current")?:""
|
calendar.scrollToCalendar(current.split("-")[0].toInt(),current.split("-")[1].toInt(),current.split("-")[2].toInt())
|
}
|
|
companion object{
|
fun show(fm:FragmentManager,current:String,callback: StringCallback){
|
val calendarDialog = CalendarDialog()
|
calendarDialog.arguments = bundleOf("current" to current)
|
calendarDialog.callback = callback
|
calendarDialog.showAllowingStateLoss(fm,"calendar")
|
}
|
}
|
}
|