package com.sinata.xqmuse.dialog
|
|
import android.os.Bundle
|
import android.view.Gravity
|
import android.view.LayoutInflater
|
import android.view.View
|
import android.view.ViewGroup
|
import androidx.fragment.app.DialogFragment
|
import com.sinata.xqmuse.R
|
import com.sinata.xqmuse.utils.interfaces.StringCallback
|
import kotlinx.android.synthetic.main.dialog_month.*
|
import org.jetbrains.anko.matchParent
|
import org.jetbrains.anko.wrapContent
|
import java.util.*
|
|
class ChooseMonthDialog : DialogFragment() {
|
private val years = arrayListOf<Int>()
|
private val months = arrayListOf<Int>()
|
|
override fun onCreateView(
|
inflater: LayoutInflater,
|
container: ViewGroup?,
|
savedInstanceState: Bundle?
|
): View? {
|
return inflater.inflate(R.layout.dialog_month, container, false)
|
}
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
super.onCreate(savedInstanceState)
|
setStyle(STYLE_NO_FRAME, R.style.Dialog)
|
}
|
|
override fun onActivityCreated(savedInstanceState: Bundle?) {
|
super.onActivityCreated(savedInstanceState)
|
dialog?.window?.setLayout(matchParent, wrapContent)
|
dialog?.window?.setGravity(Gravity.BOTTOM)
|
dialog?.setCanceledOnTouchOutside(true)
|
}
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
super.onViewCreated(view, savedInstanceState)
|
setYear()
|
setMonth(true)
|
|
wv_1.setOnWheelViewListener { _, _ ->
|
setMonth(false)
|
}
|
|
iv_close.setOnClickListener {
|
dismiss()
|
}
|
tv_action.setOnClickListener {
|
callback?.onResult(wv_1.seletedItem+"年"+wv_2.seletedItem+"月")
|
dismiss()
|
}
|
}
|
|
private fun setYear() {
|
val year = Calendar.getInstance().get(Calendar.YEAR)
|
years.addAll((year-3..year))
|
wv_1.setItems(years.map {
|
it.toString()
|
})
|
wv_1.setSeletion(years.lastIndex)
|
}
|
|
private fun setMonth(isFirst:Boolean) {
|
val month = Calendar.getInstance().get(Calendar.MONTH) + 1
|
val end = if (wv_1.seletedIndex == years.lastIndex) month else 12
|
months.clear()
|
months.addAll((1..end))
|
val list = months.map {
|
String.format("%02d",it)
|
}
|
wv_2.setItems(list)
|
wv_2.setSeletion(if (isFirst) months.lastIndex else 0)
|
}
|
|
|
private var callback: StringCallback? = null
|
|
fun setCallback(callback: StringCallback) {
|
this.callback = callback
|
}
|
}
|