show the day picking dialog on day label click

This commit is contained in:
tibbi
2016-09-17 23:47:59 +02:00
parent 7520656d2c
commit ff9e691c68
2 changed files with 38 additions and 8 deletions

View File

@ -5,9 +5,11 @@ import android.graphics.Color
import android.graphics.PorterDuff import android.graphics.PorterDuff
import android.os.Bundle import android.os.Bundle
import android.support.v4.app.Fragment import android.support.v4.app.Fragment
import android.support.v7.app.AlertDialog
import android.view.* import android.view.*
import android.widget.AbsListView import android.widget.AbsListView
import android.widget.AdapterView import android.widget.AdapterView
import android.widget.DatePicker
import android.widget.RelativeLayout import android.widget.RelativeLayout
import com.simplemobiletools.calendar.* import com.simplemobiletools.calendar.*
import com.simplemobiletools.calendar.Formatter import com.simplemobiletools.calendar.Formatter
@ -41,6 +43,7 @@ class DayFragment : Fragment(), DBHelper.DBOperationsListener, AdapterView.OnIte
val day = Formatter.getEventDate(activity.applicationContext, mDayCode) val day = Formatter.getEventDate(activity.applicationContext, mDayCode)
mHolder.month_value.text = day mHolder.month_value.text = day
mHolder.month_value.setOnClickListener { pickDay() }
setupButtons() setupButtons()
return view return view
@ -78,6 +81,30 @@ class DayFragment : Fragment(), DBHelper.DBOperationsListener, AdapterView.OnIte
mListener = listener mListener = listener
} }
fun pickDay() {
val theme = if (mConfig.isDarkTheme) R.style.MyAlertDialog_Dark else R.style.MyAlertDialog
val alertDialog = AlertDialog.Builder(context, theme)
val view = getLayoutInflater(arguments).inflate(R.layout.date_picker, null)
val datePicker = view.findViewById(R.id.date_picker) as DatePicker
val dateTime = Formatter.getDateTimeFromCode(mDayCode)
datePicker.init(dateTime.year, dateTime.monthOfYear - 1, dateTime.dayOfMonth, null)
alertDialog.apply {
setView(view)
setNegativeButton(R.string.cancel, null)
setPositiveButton(R.string.ok) { dialog, id ->
val month = datePicker.month + 1
val year = datePicker.year
val day = datePicker.dayOfMonth
val newDateTime = dateTime.withDayOfMonth(day).withMonthOfYear(month).withYear(year)
mListener?.goToDateTime(newDateTime)
}
show()
}
}
private fun checkEvents() { private fun checkEvents() {
val startTS = Formatter.getDayStartTS(mDayCode) val startTS = Formatter.getDayStartTS(mDayCode)
val endTS = Formatter.getDayEndTS(mDayCode) val endTS = Formatter.getDayEndTS(mDayCode)

View File

@ -113,15 +113,18 @@ class MonthFragment : Fragment(), Calendar {
val dateTime = DateTime(mCalendar!!.targetDate.toString()) val dateTime = DateTime(mCalendar!!.targetDate.toString())
datePicker.init(dateTime.year, dateTime.monthOfYear - 1, 1, null) datePicker.init(dateTime.year, dateTime.monthOfYear - 1, 1, null)
alertDialog.setView(view) alertDialog.apply {
alertDialog.setNegativeButton(R.string.cancel, null) setView(view)
alertDialog.setPositiveButton(R.string.ok) { dialog, id -> setNegativeButton(R.string.cancel, null)
setPositiveButton(R.string.ok) { dialog, id ->
val month = datePicker.month + 1 val month = datePicker.month + 1
val year = datePicker.year val year = datePicker.year
mListener?.goToDateTime(DateTime().withMonthOfYear(month).withYear(year)) val newDateTime = dateTime.withMonthOfYear(month).withYear(year)
mListener?.goToDateTime(newDateTime)
} }
alertDialog.show() show()
}
} }
private fun hideDayPicker(datePicker: DatePicker) { private fun hideDayPicker(datePicker: DatePicker) {