From 00cbc70133cb415448738f12d8c6e29c6866f685 Mon Sep 17 00:00:00 2001
From: Pfuster12
Date: Mon, 22 Jun 2020 09:36:25 +0100
Subject: [PATCH] fix(overlay): convert x pixels to point value
Touch listener returns X Point value instead of pixels in screen.
Fixes #13
---
.../java/com/yabu/livechart/view/LiveChartTouchOverlay.kt | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt b/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt
index 0c7c6d3..116073e 100644
--- a/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt
+++ b/livechart/src/main/java/com/yabu/livechart/view/LiveChartTouchOverlay.kt
@@ -238,6 +238,10 @@ class LiveChartTouchOverlay(context: Context, attrs: AttributeSet?)
}
}
+ private fun Float.xPixelsToPoint(): Float {
+ return this*xBoundsToPixels()
+ }
+
/**
* Transform a X Axis data point to screen pixels.
*/
@@ -264,7 +268,7 @@ class LiveChartTouchOverlay(context: Context, attrs: AttributeSet?)
overlayPoint.y = coordinates[1] - (chartStyle.overlayCircleDiameter/2)
touchListener?.onTouchCallback(DataPoint(
- x = coordinates[0],
+ x = coordinates[0].xPixelsToPoint(),
y = coordinates[1].yPixelsToPoint()
))
@@ -285,7 +289,7 @@ class LiveChartTouchOverlay(context: Context, attrs: AttributeSet?)
overlayPoint.y = coordinates[1] - (chartStyle.overlayCircleDiameter/2)
touchListener?.onTouchCallback(DataPoint(
- x = coordinates[0],
+ x = coordinates[0].xPixelsToPoint(),
y = coordinates[1].yPixelsToPoint()
))