From d64210c904b271dc01f7c6f5cd3206dd5e6fcdda Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 7 Oct 2017 23:58:18 +0200 Subject: [PATCH] fix a glitch at updating today indicator height --- .../calendar/fragments/MonthFragment.kt | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt index a3ff293b9..6a4fe9bc9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/fragments/MonthFragment.kt @@ -37,6 +37,7 @@ class MonthFragment : Fragment(), MonthlyCalendar { private var mDayCode = "" private var mPackageName = "" private var dividerMargin = 0 + private var dayLabelHeight = 0 var listener: NavigationListener? = null @@ -205,21 +206,28 @@ class MonthFragment : Fragment(), MonthlyCalendar { if (day.isToday) { val primaryColor = context.config.primaryColor setTextColor(primaryColor.getContrastColor().adjustAlpha(MEDIUM_ALPHA)) - - onGlobalLayout { - val height = this@apply.height - if (height > 0) { - val baseDrawable = mRes.getDrawable(R.drawable.monthly_today_circle) - val bitmap = (baseDrawable as BitmapDrawable).bitmap - val scaledDrawable = BitmapDrawable(mRes, Bitmap.createScaledBitmap(bitmap, height, height, true)) - scaledDrawable.mutate().setColorFilter(primaryColor, PorterDuff.Mode.SRC_IN) - background = scaledDrawable + if (dayLabelHeight == 0) { + onGlobalLayout { + if (this@apply.height > 0) { + dayLabelHeight = this@apply.height + updateDayLabelHeight(this, primaryColor) + } } + } else { + updateDayLabelHeight(this, primaryColor) } } } } + private fun updateDayLabelHeight(textView: TextView, primaryColor: Int) { + val baseDrawable = mRes.getDrawable(R.drawable.monthly_today_circle) + val bitmap = (baseDrawable as BitmapDrawable).bitmap + val scaledDrawable = BitmapDrawable(mRes, Bitmap.createScaledBitmap(bitmap, dayLabelHeight, dayLabelHeight, true)) + scaledDrawable.mutate().setColorFilter(primaryColor, PorterDuff.Mode.SRC_IN) + textView.background = scaledDrawable + } + private fun addDayEvents(day: DayMonthly, linearLayout: LinearLayout) { day.dayEvents.forEach { val backgroundDrawable = mRes.getDrawable(R.drawable.day_monthly_event_background)