Merge pull request #11098 from osmandapp/fix_10394

Fix_10394
This commit is contained in:
Vitaliy 2021-03-10 15:36:27 +02:00 committed by GitHub
commit c0e769b746
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1,9 +1,7 @@
package net.osmand.plus.mapcontextmenu.other;
import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Matrix;
import android.graphics.PointF;
import android.graphics.drawable.Drawable;
import android.util.Pair;
import android.view.MotionEvent;
@ -20,7 +18,6 @@ import com.github.mikephil.charting.data.Entry;
import com.github.mikephil.charting.data.LineData;
import com.github.mikephil.charting.highlight.Highlight;
import com.github.mikephil.charting.interfaces.datasets.ILineDataSet;
import com.github.mikephil.charting.listener.BarLineChartTouchListener;
import com.github.mikephil.charting.listener.ChartTouchListener.ChartGesture;
import com.github.mikephil.charting.listener.OnChartGestureListener;
import com.github.mikephil.charting.listener.OnChartValueSelectedListener;
@ -611,39 +608,39 @@ public class TrackDetailsMenu {
}
});
final float minDragTriggerDist = AndroidUtils.dpToPx(app, 3);
chart.setOnTouchListener(new BarLineChartTouchListener(chart, chart.getViewPortHandler().getMatrixTouch(), 3f) {
private PointF touchStartPoint = new PointF();
@SuppressLint("ClickableViewAccessibility")
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
saveTouchStart(event);
break;
case MotionEvent.ACTION_POINTER_DOWN:
if (event.getPointerCount() >= 2) {
saveTouchStart(event);
}
break;
case MotionEvent.ACTION_MOVE:
if (mTouchMode == NONE && mChart.hasNoDragOffset()) {
float touchDistance = distance(event.getX(), touchStartPoint.x, event.getY(), touchStartPoint.y);
if (Math.abs(touchDistance) > minDragTriggerDist) {
mTouchMode = DRAG;
}
}
break;
}
return super.onTouch(v, event);
}
private void saveTouchStart(MotionEvent event) {
touchStartPoint.x = event.getX();
touchStartPoint.y = event.getY();
}
});
// final float minDragTriggerDist = AndroidUtils.dpToPx(app, 3);
// chart.setOnTouchListener(new BarLineChartTouchListener(chart, chart.getViewPortHandler().getMatrixTouch(), 3f) {
// private PointF touchStartPoint = new PointF();
//
// @SuppressLint("ClickableViewAccessibility")
// @Override
// public boolean onTouch(View v, MotionEvent event) {
// switch (event.getAction() & MotionEvent.ACTION_MASK) {
// case MotionEvent.ACTION_DOWN:
// saveTouchStart(event);
// break;
// case MotionEvent.ACTION_POINTER_DOWN:
// if (event.getPointerCount() >= 2) {
// saveTouchStart(event);
// }
// break;
// case MotionEvent.ACTION_MOVE:
// if (mTouchMode == NONE && mChart.hasNoDragOffset()) {
// float touchDistance = distance(event.getX(), touchStartPoint.x, event.getY(), touchStartPoint.y);
// if (Math.abs(touchDistance) > minDragTriggerDist) {
// mTouchMode = DRAG;
// }
// }
// break;
// }
// return super.onTouch(v, event);
// }
//
// private void saveTouchStart(MotionEvent event) {
// touchStartPoint.x = event.getX();
// touchStartPoint.y = event.getY();
// }
// });
chart.setOnChartGestureListener(new OnChartGestureListener() {
boolean hasTranslated = false;
float highlightDrawX = -1;