fix a glitch at updating today indicator height

This commit is contained in:
tibbi 2017-10-07 23:58:18 +02:00
parent 901684e152
commit d64210c904

View File

@ -37,6 +37,7 @@ class MonthFragment : Fragment(), MonthlyCalendar {
private var mDayCode = "" private var mDayCode = ""
private var mPackageName = "" private var mPackageName = ""
private var dividerMargin = 0 private var dividerMargin = 0
private var dayLabelHeight = 0
var listener: NavigationListener? = null var listener: NavigationListener? = null
@ -205,21 +206,28 @@ class MonthFragment : Fragment(), MonthlyCalendar {
if (day.isToday) { if (day.isToday) {
val primaryColor = context.config.primaryColor val primaryColor = context.config.primaryColor
setTextColor(primaryColor.getContrastColor().adjustAlpha(MEDIUM_ALPHA)) setTextColor(primaryColor.getContrastColor().adjustAlpha(MEDIUM_ALPHA))
if (dayLabelHeight == 0) {
onGlobalLayout { onGlobalLayout {
val height = this@apply.height if (this@apply.height > 0) {
if (height > 0) { dayLabelHeight = this@apply.height
val baseDrawable = mRes.getDrawable(R.drawable.monthly_today_circle) updateDayLabelHeight(this, primaryColor)
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
} }
} 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) { private fun addDayEvents(day: DayMonthly, linearLayout: LinearLayout) {
day.dayEvents.forEach { day.dayEvents.forEach {
val backgroundDrawable = mRes.getDrawable(R.drawable.day_monthly_event_background) val backgroundDrawable = mRes.getDrawable(R.drawable.day_monthly_event_background)