mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-16 07:43:06 +02:00
@@ -49,7 +49,8 @@ public class ChartValueSeriesTest {
|
|||||||
R.string.description_elevation_imperial,
|
R.string.description_elevation_imperial,
|
||||||
R.color.chart_elevation_fill,
|
R.color.chart_elevation_fill,
|
||||||
R.color.chart_elevation_border,
|
R.color.chart_elevation_border,
|
||||||
1) {
|
15,
|
||||||
|
18) {
|
||||||
@Override
|
@Override
|
||||||
double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
||||||
return chartPoint.getElevation();
|
return chartPoint.getElevation();
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ abstract class ChartValueSeries {
|
|||||||
* @param fillColor the fill color
|
* @param fillColor the fill color
|
||||||
* @param strokeColor the stroke color
|
* @param strokeColor the stroke color
|
||||||
*/
|
*/
|
||||||
ChartValueSeries(Context context, int absoluteMin, int absoluteMax, int[] intervalValues, int metricTitleId, int imperialTitleId, int fillColor, int strokeColor, float fontScale) {
|
ChartValueSeries(Context context, int absoluteMin, int absoluteMax, int[] intervalValues, int metricTitleId, int imperialTitleId, int fillColor, int strokeColor, int fontSizeSmall, int fontSizeMedium) {
|
||||||
this.absoluteMin = absoluteMin;
|
this.absoluteMin = absoluteMin;
|
||||||
this.absoluteMax = absoluteMax;
|
this.absoluteMax = absoluteMax;
|
||||||
this.intervalValues = intervalValues;
|
this.intervalValues = intervalValues;
|
||||||
@@ -87,12 +87,12 @@ abstract class ChartValueSeries {
|
|||||||
|
|
||||||
// Make copies of the stroke paint with the default thickness
|
// Make copies of the stroke paint with the default thickness
|
||||||
titlePaint = new Paint(strokePaint);
|
titlePaint = new Paint(strokePaint);
|
||||||
titlePaint.setTextSize(ChartView.MEDIUM_TEXT_SIZE * fontScale);
|
titlePaint.setTextSize(fontSizeMedium);
|
||||||
titlePaint.setTextAlign(Align.CENTER);
|
titlePaint.setTextAlign(Align.CENTER);
|
||||||
titlePaint.setStyle(Style.FILL_AND_STROKE);
|
titlePaint.setStyle(Style.FILL_AND_STROKE);
|
||||||
|
|
||||||
markerPaint = new Paint(strokePaint);
|
markerPaint = new Paint(strokePaint);
|
||||||
markerPaint.setTextSize(ChartView.SMALL_TEXT_SIZE * fontScale);
|
markerPaint.setTextSize(fontSizeSmall);
|
||||||
markerPaint.setTextAlign(Align.RIGHT);
|
markerPaint.setTextAlign(Align.RIGHT);
|
||||||
markerPaint.setStyle(Style.FILL_AND_STROKE);
|
markerPaint.setStyle(Style.FILL_AND_STROKE);
|
||||||
|
|
||||||
|
|||||||
@@ -59,9 +59,6 @@ import de.dennisguse.opentracks.util.UnitConversions;
|
|||||||
*/
|
*/
|
||||||
public class ChartView extends View {
|
public class ChartView extends View {
|
||||||
|
|
||||||
static final float MEDIUM_TEXT_SIZE = 18f;
|
|
||||||
static final float SMALL_TEXT_SIZE = 12f;
|
|
||||||
|
|
||||||
static final int Y_AXIS_INTERVALS = 5;
|
static final int Y_AXIS_INTERVALS = 5;
|
||||||
|
|
||||||
private static final int TARGET_X_AXIS_INTERVALS = 4;
|
private static final int TARGET_X_AXIS_INTERVALS = 4;
|
||||||
@@ -193,9 +190,8 @@ public class ChartView extends View {
|
|||||||
public ChartView(Context context, final boolean chartByDistance) {
|
public ChartView(Context context, final boolean chartByDistance) {
|
||||||
super(context);
|
super(context);
|
||||||
this.chartByDistance = chartByDistance;
|
this.chartByDistance = chartByDistance;
|
||||||
float fontScale = context.getResources().getDisplayMetrics().density
|
int fontSizeSmall = ThemeUtils.getFontSizeSmallInPx(context);
|
||||||
* context.getResources().getConfiguration().fontScale;
|
int fontSizeMedium = ThemeUtils.getFontSizeMediumInPx(context);
|
||||||
|
|
||||||
|
|
||||||
seriesList.add(new ChartValueSeries(context,
|
seriesList.add(new ChartValueSeries(context,
|
||||||
Integer.MIN_VALUE,
|
Integer.MIN_VALUE,
|
||||||
@@ -205,7 +201,8 @@ public class ChartView extends View {
|
|||||||
R.string.description_elevation_imperial,
|
R.string.description_elevation_imperial,
|
||||||
R.color.chart_elevation_fill,
|
R.color.chart_elevation_fill,
|
||||||
R.color.chart_elevation_border,
|
R.color.chart_elevation_border,
|
||||||
fontScale) {
|
fontSizeSmall,
|
||||||
|
fontSizeMedium) {
|
||||||
@Override
|
@Override
|
||||||
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
||||||
return chartPoint.getElevation();
|
return chartPoint.getElevation();
|
||||||
@@ -225,7 +222,8 @@ public class ChartView extends View {
|
|||||||
R.string.description_speed_imperial,
|
R.string.description_speed_imperial,
|
||||||
R.color.chart_speed_fill,
|
R.color.chart_speed_fill,
|
||||||
R.color.chart_speed_border,
|
R.color.chart_speed_border,
|
||||||
fontScale) {
|
fontSizeSmall,
|
||||||
|
fontSizeMedium) {
|
||||||
@Override
|
@Override
|
||||||
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
||||||
return chartPoint.getSpeed();
|
return chartPoint.getSpeed();
|
||||||
@@ -246,7 +244,8 @@ public class ChartView extends View {
|
|||||||
R.string.description_pace_imperial,
|
R.string.description_pace_imperial,
|
||||||
R.color.chart_pace_fill,
|
R.color.chart_pace_fill,
|
||||||
R.color.chart_pace_border,
|
R.color.chart_pace_border,
|
||||||
fontScale) {
|
fontSizeSmall,
|
||||||
|
fontSizeMedium) {
|
||||||
@Override
|
@Override
|
||||||
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
||||||
return chartPoint.getPace();
|
return chartPoint.getPace();
|
||||||
@@ -267,7 +266,8 @@ public class ChartView extends View {
|
|||||||
R.string.description_sensor_heart_rate,
|
R.string.description_sensor_heart_rate,
|
||||||
R.color.chart_heart_rate_fill,
|
R.color.chart_heart_rate_fill,
|
||||||
R.color.chart_heart_rate_border,
|
R.color.chart_heart_rate_border,
|
||||||
fontScale) {
|
fontSizeSmall,
|
||||||
|
fontSizeMedium) {
|
||||||
@Override
|
@Override
|
||||||
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
||||||
return chartPoint.getHeartRate();
|
return chartPoint.getHeartRate();
|
||||||
@@ -287,7 +287,8 @@ public class ChartView extends View {
|
|||||||
R.string.description_sensor_cadence,
|
R.string.description_sensor_cadence,
|
||||||
R.color.chart_cadence_fill,
|
R.color.chart_cadence_fill,
|
||||||
R.color.chart_cadence_border,
|
R.color.chart_cadence_border,
|
||||||
fontScale) {
|
fontSizeSmall,
|
||||||
|
fontSizeMedium) {
|
||||||
@Override
|
@Override
|
||||||
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
||||||
return chartPoint.getCadence();
|
return chartPoint.getCadence();
|
||||||
@@ -306,8 +307,8 @@ public class ChartView extends View {
|
|||||||
R.string.description_sensor_power,
|
R.string.description_sensor_power,
|
||||||
R.color.chart_power_fill,
|
R.color.chart_power_fill,
|
||||||
R.color.chart_power_border,
|
R.color.chart_power_border,
|
||||||
fontScale
|
fontSizeSmall,
|
||||||
) {
|
fontSizeMedium) {
|
||||||
@Override
|
@Override
|
||||||
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
protected double extractDataFromChartPoint(@NonNull ChartPoint chartPoint) {
|
||||||
return chartPoint.getPower();
|
return chartPoint.getPower();
|
||||||
@@ -325,7 +326,7 @@ public class ChartView extends View {
|
|||||||
axisPaint.setStyle(Style.FILL_AND_STROKE);
|
axisPaint.setStyle(Style.FILL_AND_STROKE);
|
||||||
axisPaint.setColor(ThemeUtils.getTextColorPrimary(context));
|
axisPaint.setColor(ThemeUtils.getTextColorPrimary(context));
|
||||||
axisPaint.setAntiAlias(true);
|
axisPaint.setAntiAlias(true);
|
||||||
axisPaint.setTextSize(SMALL_TEXT_SIZE * fontScale);
|
axisPaint.setTextSize(fontSizeSmall);
|
||||||
|
|
||||||
xAxisMarkerPaint = new Paint(axisPaint);
|
xAxisMarkerPaint = new Paint(axisPaint);
|
||||||
xAxisMarkerPaint.setTextAlign(Align.CENTER);
|
xAxisMarkerPaint.setTextAlign(Align.CENTER);
|
||||||
|
|||||||
@@ -2,10 +2,13 @@ package de.dennisguse.opentracks.util;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.Resources;
|
import android.content.res.Resources;
|
||||||
|
import android.content.res.TypedArray;
|
||||||
import android.util.TypedValue;
|
import android.util.TypedValue;
|
||||||
|
|
||||||
import androidx.core.content.ContextCompat;
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
||||||
|
import de.dennisguse.opentracks.R;
|
||||||
|
|
||||||
public class ThemeUtils {
|
public class ThemeUtils {
|
||||||
|
|
||||||
private ThemeUtils() {
|
private ThemeUtils() {
|
||||||
@@ -37,4 +40,18 @@ public class ThemeUtils {
|
|||||||
|
|
||||||
return ContextCompat.getColor(context, typedValue.resourceId);
|
return ContextCompat.getColor(context, typedValue.resourceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int getFontSizeSmallInPx(Context context) {
|
||||||
|
TypedArray typedArray = context.obtainStyledAttributes(R.style.TextSmall, new int[]{android.R.attr.textSize});
|
||||||
|
int fontSize = typedArray.getDimensionPixelSize(0, 12);
|
||||||
|
typedArray.recycle();
|
||||||
|
return fontSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getFontSizeMediumInPx(Context context) {
|
||||||
|
TypedArray typedArray = context.obtainStyledAttributes(R.style.TextMedium, new int[]{android.R.attr.textSize});
|
||||||
|
int fontSize = typedArray.getDimensionPixelSize(0, 15);
|
||||||
|
typedArray.recycle();
|
||||||
|
return fontSize;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user