prefill the months screen as soon as possible, even if without events

This commit is contained in:
tibbi 2016-09-20 18:41:35 +02:00
parent ead01b5926
commit c77b7e885f
2 changed files with 15 additions and 9 deletions

View File

@ -24,6 +24,7 @@ public class CalendarImpl implements DBHelper.DBOperationsListener {
mCallback = callback;
mContext = context;
mToday = new DateTime().toString(Formatter.DAYCODE_PATTERN);
mEvents = new ArrayList<>();
}
public void updateCalendar(DateTime targetDate) {
@ -33,6 +34,10 @@ public class CalendarImpl implements DBHelper.DBOperationsListener {
new DBHelper(mContext, this).getEvents(startTS, endTS);
}
public void setTargetDate(DateTime dateTime) {
mTargetDate = dateTime;
}
public void getPrevMonth() {
updateCalendar(mTargetDate.minusMonths(1));
}
@ -41,7 +46,7 @@ public class CalendarImpl implements DBHelper.DBOperationsListener {
updateCalendar(mTargetDate.plusMonths(1));
}
private void getDays() {
public void getDays() {
final List<Day> days = new ArrayList<>(DAYS_CNT);
final int currMonthDays = mTargetDate.dayOfMonth().getMaximumValue();

View File

@ -29,12 +29,12 @@ class MonthFragment : Fragment(), Calendar {
private var mSundayFirst: Boolean = false
private var mDayCode: String = ""
private var mCalendar: CalendarImpl? = null
private var mListener: NavigationListener? = null
lateinit var mRes: Resources
lateinit var mHolder: RelativeLayout
lateinit var mConfig: Config
lateinit var mCalendar: CalendarImpl
override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view = inflater!!.inflate(R.layout.month_fragment, container, false)
@ -51,22 +51,23 @@ class MonthFragment : Fragment(), Calendar {
mDayTextSize = mRes.getDimension(R.dimen.day_text_size) / mRes.displayMetrics.density
mTodayTextSize = mRes.getDimension(R.dimen.today_text_size) / mRes.displayMetrics.density
setupLabels()
mCalendar = CalendarImpl(this, context)
return view
}
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
mCalendar = CalendarImpl(this, context)
}
override fun onResume() {
super.onResume()
if (mConfig.isSundayFirst != mSundayFirst) {
mSundayFirst = mConfig.isSundayFirst
setupLabels()
}
mCalendar!!.updateCalendar(Formatter.getDateTimeFromCode(mDayCode))
mCalendar.apply {
targetDate = Formatter.getDateTimeFromCode(mDayCode)
getDays() // prefill the screen asap, even if without events
updateCalendar(Formatter.getDateTimeFromCode(mDayCode))
}
}
override fun updateCalendar(month: String, days: List<Day>) {
@ -112,7 +113,7 @@ class MonthFragment : Fragment(), Calendar {
val datePicker = view.findViewById(R.id.date_picker) as DatePicker
hideDayPicker(datePicker)
val dateTime = DateTime(mCalendar!!.targetDate.toString())
val dateTime = DateTime(mCalendar.targetDate.toString())
datePicker.init(dateTime.year, dateTime.monthOfYear - 1, 1, null)
alertDialog.apply {