From 4263ed4e4ddf49bcb40d8821544a14e83e2463a2 Mon Sep 17 00:00:00 2001 From: Riccardo Lattarulo Date: Mon, 17 Jan 2022 13:04:22 +0100 Subject: [PATCH 1/3] Fix TimelineDecorator not using the correct values when TimelineAdapter is not implemented --- .../main/java/com/lriccardo/timelineview/TimelineDecorator.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt b/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt index 8667f9e..8fd691c 100644 --- a/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt +++ b/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt @@ -64,7 +64,8 @@ class TimelineDecorator( return val timelineView = TimelineView(context = parent.context) - (parent.adapter as? TimelineAdapter)?.run { + + (parent.adapter as? TimelineAdapter ?: object : TimelineAdapter {}).run { getTimelineViewType(itemPosition)?.let { timelineView.viewType = it } ?: timelineView.setType(itemPosition, parent.adapter?.itemCount ?: -1) From baa948ed39a327acd7c13c951b8834f8913cad19 Mon Sep 17 00:00:00 2001 From: Riccardo Lattarulo Date: Mon, 17 Jan 2022 13:05:34 +0100 Subject: [PATCH 2/3] Draw TimelineDecorator inside the RecyclerView paddings --- .../java/com/lriccardo/timelineview/TimelineDecorator.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt b/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt index 8fd691c..0076784 100644 --- a/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt +++ b/TimelineView/src/main/java/com/lriccardo/timelineview/TimelineDecorator.kt @@ -57,6 +57,9 @@ class TimelineDecorator( } override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) { + c.save() + c.clipRect(parent.paddingLeft, parent.paddingTop, parent.width, parent.height-parent.paddingBottom) + parent.children.forEach { val itemPosition = parent.getChildAdapterPosition(it) @@ -96,6 +99,7 @@ class TimelineDecorator( timelineView.linePadding = it } } + timelineView.indicatorSize = indicatorSize timelineView.indicatorYPosition = indicatorYPosition @@ -128,16 +132,17 @@ class TimelineDecorator( c.save() when (position) { Position.Left -> { - c.translate(padding, it.top.toFloat()) + c.translate(padding+parent.paddingLeft, it.top.toFloat()) timelineView.layout(0, 0, timelineView.measuredWidth, it.measuredHeight) } Position.Right -> { - c.translate(it.measuredWidth + padding, it.top.toFloat()) + c.translate(it.measuredWidth + padding + parent.paddingLeft, it.top.toFloat()) timelineView.layout(0, 0, timelineView.measuredWidth, it.measuredHeight) } } timelineView.draw(c) c.restore() } + c.restore() } } \ No newline at end of file From f759c773e809108d478a555e8e442a4af7305b32 Mon Sep 17 00:00:00 2001 From: Riccardo Lattarulo Date: Sat, 22 Jan 2022 15:50:01 +0100 Subject: [PATCH 3/3] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index eb8d9c4..7e382ce 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ allprojects { ```gradle dependencies { - implementation 'com.github.lriccardo:TimelineView:1.1.0' + implementation 'com.github.lriccardo:TimelineView:1.1.1' } ```