Skip to content

Commit 65363e8

Browse files
committed
Fix background drawable
1 parent d3d19ac commit 65363e8

File tree

3 files changed

+33
-35
lines changed

3 files changed

+33
-35
lines changed

sample/src/main/java/com/kizitonwose/calendar/sample/view/Example4Fragment.kt

+22-20
Original file line numberDiff line numberDiff line change
@@ -142,22 +142,18 @@ class Example4Fragment : BaseFragment(R.layout.example_4_fragment), HasToolbar,
142142
}
143143

144144
private fun configureBinders() {
145-
val clipLevelHalf = 5000
146-
val ctx = requireContext()
147-
val rangeStartBackground =
148-
ctx.getDrawableCompat(R.drawable.example_4_continuous_selected_bg_start).also {
145+
class DayViewContainer(view: View) : ViewContainer(view) {
146+
val clipLevelHalf = 5000
147+
val rangeStartBackground = view.context.getDrawableCompat(R.drawable.example_4_continuous_selected_bg_start).also {
149148
it.level = clipLevelHalf // Used by ClipDrawable
150149
}
151-
val rangeEndBackground =
152-
ctx.getDrawableCompat(R.drawable.example_4_continuous_selected_bg_end).also {
150+
val rangeEndBackground = view.context.getDrawableCompat(R.drawable.example_4_continuous_selected_bg_end).also {
153151
it.level = clipLevelHalf // Used by ClipDrawable
154152
}
155-
val rangeMiddleBackground =
156-
ctx.getDrawableCompat(R.drawable.example_4_continuous_selected_bg_middle)
157-
val singleBackground = ctx.getDrawableCompat(R.drawable.example_4_single_selected_bg)
158-
val todayBackground = ctx.getDrawableCompat(R.drawable.example_4_today_bg)
153+
val rangeMiddleBackground = view.context.getDrawableCompat(R.drawable.example_4_continuous_selected_bg_middle)
154+
val singleBackground = view.context.getDrawableCompat(R.drawable.example_4_single_selected_bg)
155+
val todayBackground = view.context.getDrawableCompat(R.drawable.example_4_today_bg)
159156

160-
class DayViewContainer(view: View) : ViewContainer(view) {
161157
lateinit var day: CalendarDay // Will be set when this container is bound.
162158
val binding = Example4CalendarDayBinding.bind(view)
163159

@@ -200,26 +196,31 @@ class Example4Fragment : BaseFragment(R.layout.example_4_fragment), HasToolbar,
200196
when {
201197
startDate == data.date && endDate == null -> {
202198
textView.setTextColorRes(R.color.white)
203-
roundBgView.applyBackground(singleBackground)
199+
roundBgView.applyBackground(container.singleBackground)
204200
}
201+
205202
data.date == startDate -> {
206203
textView.setTextColorRes(R.color.white)
207-
continuousBgView.applyBackground(rangeStartBackground)
208-
roundBgView.applyBackground(singleBackground)
204+
continuousBgView.applyBackground(container.rangeStartBackground)
205+
roundBgView.applyBackground(container.singleBackground)
209206
}
207+
210208
startDate != null && endDate != null && (data.date > startDate && data.date < endDate) -> {
211209
textView.setTextColorRes(R.color.example_4_grey)
212-
continuousBgView.applyBackground(rangeMiddleBackground)
210+
continuousBgView.applyBackground(container.rangeMiddleBackground)
213211
}
212+
214213
data.date == endDate -> {
215214
textView.setTextColorRes(R.color.white)
216-
continuousBgView.applyBackground(rangeEndBackground)
217-
roundBgView.applyBackground(singleBackground)
215+
continuousBgView.applyBackground(container.rangeEndBackground)
216+
roundBgView.applyBackground(container.singleBackground)
218217
}
218+
219219
data.date == today -> {
220220
textView.setTextColorRes(R.color.example_4_grey)
221-
roundBgView.applyBackground(todayBackground)
221+
roundBgView.applyBackground(container.todayBackground)
222222
}
223+
223224
else -> textView.setTextColorRes(R.color.example_4_grey)
224225
}
225226
}
@@ -231,14 +232,15 @@ class Example4Fragment : BaseFragment(R.layout.example_4_fragment), HasToolbar,
231232
endDate != null &&
232233
isInDateBetweenSelection(data.date, startDate, endDate)
233234
) {
234-
continuousBgView.applyBackground(rangeMiddleBackground)
235+
continuousBgView.applyBackground(container.rangeMiddleBackground)
235236
}
237+
236238
DayPosition.OutDate ->
237239
if (startDate != null &&
238240
endDate != null &&
239241
isOutDateBetweenSelection(data.date, startDate, endDate)
240242
) {
241-
continuousBgView.applyBackground(rangeMiddleBackground)
243+
continuousBgView.applyBackground(container.rangeMiddleBackground)
242244
}
243245
}
244246
}

view/src/main/java/com/kizitonwose/calendar/view/internal/DayHolder.kt

+10-13
Original file line numberDiff line numberDiff line change
@@ -27,23 +27,20 @@ internal class DayHolder<Day>(private val config: DayConfig<Day>) {
2727
return parent.inflate(config.dayViewRes).apply {
2828
dayView = this
2929
layoutParams = DayLinearLayoutParams(layoutParams).apply {
30-
weight = 1f // The parent's wightSum is set to 7.
30+
if (config.daySize.parentDecidesWidth) {
31+
width = 0
32+
weight = 1f
33+
}
3134
when (config.daySize) {
32-
DaySize.Square -> {
33-
width = MATCH_PARENT
34-
height = MATCH_PARENT
35-
}
36-
37-
DaySize.Rectangle -> {
38-
width = MATCH_PARENT
35+
DaySize.Square,
36+
DaySize.Rectangle,
37+
-> {
3938
height = MATCH_PARENT
4039
}
4140

42-
DaySize.SeventhWidth -> {
43-
width = MATCH_PARENT
44-
}
45-
46-
DaySize.FreeForm -> {}
41+
DaySize.SeventhWidth,
42+
DaySize.FreeForm,
43+
-> Unit
4744
}
4845
}
4946
}

view/src/main/java/com/kizitonwose/calendar/view/internal/WeekHolder.kt

+1-2
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,10 @@ internal class WeekHolder<Day>(
4747
return WidthDivisorLinearLayout(parent.context).apply {
4848
weekContainer = this
4949
val width = if (daySize.parentDecidesWidth) MATCH_PARENT else WRAP_CONTENT
50-
val height = if (daySize.parentDecidesHeight) MATCH_PARENT else WRAP_CONTENT
50+
val height = if (daySize.parentDecidesHeight) 0 else WRAP_CONTENT
5151
val weight = if (daySize.parentDecidesHeight) 1f else 0f
5252
layoutParams = LinearLayout.LayoutParams(width, height, weight)
5353
orientation = LinearLayout.HORIZONTAL
54-
weightSum = dayHolders.count().toFloat()
5554
widthDivisorForHeight = if (daySize == DaySize.Square) dayHolders.count() else 0
5655
for (holder in dayHolders) {
5756
addView(holder.inflateDayView(this))

0 commit comments

Comments
 (0)