mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-12-01 22:43:00 +01:00
Make Battery chart to use AbstractGBFragment with a bg thread
This commit is contained in:
parent
1f71a5e51f
commit
a6de25918b
@ -66,6 +66,8 @@ public class ActivitySummariesChartFragment extends AbstractChartFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void populate_charts_data() {
|
private void populate_charts_data() {
|
||||||
int LEGEND_TEXT_COLOR = 0;
|
int LEGEND_TEXT_COLOR = 0;
|
||||||
|
|
||||||
|
@ -24,7 +24,8 @@ import android.view.View;
|
|||||||
import android.view.ViewGroup;
|
import android.view.ViewGroup;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import com.github.mikephil.charting.charts.Chart;
|
import androidx.core.content.ContextCompat;
|
||||||
|
|
||||||
import com.github.mikephil.charting.charts.LineChart;
|
import com.github.mikephil.charting.charts.LineChart;
|
||||||
import com.github.mikephil.charting.components.Legend;
|
import com.github.mikephil.charting.components.Legend;
|
||||||
import com.github.mikephil.charting.components.MarkerView;
|
import com.github.mikephil.charting.components.MarkerView;
|
||||||
@ -52,19 +53,21 @@ import de.greenrobot.dao.query.QueryBuilder;
|
|||||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.R;
|
import nodomain.freeyourgadget.gadgetbridge.R;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.charts.AbstractChartFragment;
|
import nodomain.freeyourgadget.gadgetbridge.activities.charts.AbstractChartFragment;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsData;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.activities.charts.ChartsHost;
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
|
import nodomain.freeyourgadget.gadgetbridge.database.DBHandler;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
|
import nodomain.freeyourgadget.gadgetbridge.database.DBHelper;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.BatteryLevel;
|
import nodomain.freeyourgadget.gadgetbridge.entities.BatteryLevel;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.BatteryLevelDao;
|
import nodomain.freeyourgadget.gadgetbridge.entities.BatteryLevelDao;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.entities.Device;
|
import nodomain.freeyourgadget.gadgetbridge.entities.Device;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
import nodomain.freeyourgadget.gadgetbridge.impl.GBDevice;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivitySample;
|
|
||||||
|
|
||||||
|
|
||||||
public class BatteryInfoChartFragment extends AbstractChartFragment {
|
public class BatteryInfoChartFragment extends AbstractGBFragment {
|
||||||
private static final Logger LOG = LoggerFactory.getLogger(BatteryInfoChartFragment.class);
|
private static final Logger LOG = LoggerFactory.getLogger(BatteryInfoChartFragment.class);
|
||||||
|
protected int BACKGROUND_COLOR;
|
||||||
|
protected int DESCRIPTION_COLOR;
|
||||||
|
protected int CHART_TEXT_COLOR;
|
||||||
|
protected int LEGEND_TEXT_COLOR;
|
||||||
|
protected String BATTERY_LABEL;
|
||||||
|
|
||||||
private LineChart mChart;
|
private LineChart mChart;
|
||||||
private int startTime;
|
private int startTime;
|
||||||
@ -76,16 +79,17 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
this.endTime = (int) endTime;
|
this.endTime = (int) endTime;
|
||||||
this.gbDevice = gbDevice;
|
this.gbDevice = gbDevice;
|
||||||
try {
|
try {
|
||||||
//setupLegend(mChart);
|
|
||||||
populate_charts_data();
|
populate_charts_data();
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.debug("Unable to fill charts data right now:", e);
|
LOG.debug("Unable to fill charts data right now:", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populate_charts_data() {
|
|
||||||
int LEGEND_TEXT_COLOR = 0;
|
|
||||||
|
|
||||||
|
private void populate_charts_data() {
|
||||||
|
new Thread(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
try (DBHandler handler = GBApplication.acquireDB()) {
|
try (DBHandler handler = GBApplication.acquireDB()) {
|
||||||
List<? extends BatteryLevel> samples = getBatteryLevels(handler, gbDevice, startTime, endTime);
|
List<? extends BatteryLevel> samples = getBatteryLevels(handler, gbDevice, startTime, endTime);
|
||||||
DefaultBatteryChartsData dcd = null;
|
DefaultBatteryChartsData dcd = null;
|
||||||
@ -104,10 +108,14 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.error("Unable to get charts data:", e);
|
LOG.error("Unable to get charts data:", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}).start();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private DefaultBatteryChartsData fill_dcd(List<? extends BatteryLevel> samples) {
|
private DefaultBatteryChartsData fill_dcd(List<? extends BatteryLevel> samples) {
|
||||||
TimestampTranslation tsTranslation = new TimestampTranslation();
|
AbstractChartFragment.TimestampTranslation tsTranslation = new AbstractChartFragment.TimestampTranslation();
|
||||||
List<Entry> entries = new ArrayList<Entry>();
|
List<Entry> entries = new ArrayList<Entry>();
|
||||||
int firstTs = 0;
|
int firstTs = 0;
|
||||||
|
|
||||||
@ -118,7 +126,7 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LineDataSet dataSet = new LineDataSet(entries, getString(R.string.battery_level));
|
LineDataSet dataSet = new LineDataSet(entries, BATTERY_LABEL);
|
||||||
dataSet.setLineWidth(2.2f);
|
dataSet.setLineWidth(2.2f);
|
||||||
dataSet.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER);
|
dataSet.setMode(LineDataSet.Mode.HORIZONTAL_BEZIER);
|
||||||
dataSet.setCubicIntensity(0.1f);
|
dataSet.setCubicIntensity(0.1f);
|
||||||
@ -134,6 +142,14 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void init() {
|
||||||
|
BACKGROUND_COLOR = GBApplication.getBackgroundColor(getContext());
|
||||||
|
LEGEND_TEXT_COLOR = DESCRIPTION_COLOR = GBApplication.getTextColor(getContext());
|
||||||
|
CHART_TEXT_COLOR = ContextCompat.getColor(getContext(), R.color.secondarytext);
|
||||||
|
BATTERY_LABEL = getString(R.string.battery_level);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||||
Bundle savedInstanceState) {
|
Bundle savedInstanceState) {
|
||||||
@ -157,8 +173,8 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
mChart.getLegend().setTextColor(LEGEND_TEXT_COLOR);
|
mChart.getLegend().setTextColor(LEGEND_TEXT_COLOR);
|
||||||
mChart.setBackgroundColor(BACKGROUND_COLOR);
|
mChart.setBackgroundColor(BACKGROUND_COLOR);
|
||||||
mChart.getDescription().setTextColor(DESCRIPTION_COLOR);
|
mChart.getDescription().setTextColor(DESCRIPTION_COLOR);
|
||||||
configureBarLineChartDefaults(mChart);
|
|
||||||
mChart.setTouchEnabled(true);
|
mChart.setTouchEnabled(true);
|
||||||
|
mChart.getLegend().setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
|
||||||
|
|
||||||
XAxis x = mChart.getXAxis();
|
XAxis x = mChart.getXAxis();
|
||||||
x.setDrawLabels(true);
|
x.setDrawLabels(true);
|
||||||
@ -195,40 +211,12 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
return levels;
|
return levels;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void setupLegend(Chart chart) {
|
|
||||||
chart.getLegend().setHorizontalAlignment(Legend.LegendHorizontalAlignment.CENTER);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected ChartsData refreshInBackground(ChartsHost chartsHost, DBHandler db, GBDevice device) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void renderCharts() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected List<? extends ActivitySample> getSamples(DBHandler db, GBDevice device, int tsFrom, int tsTo) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Entry createLineEntry(float value, int xValue) {
|
|
||||||
return new Entry(xValue, value);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateChartsnUIThread(ChartsData chartsData) {
|
|
||||||
}
|
|
||||||
|
|
||||||
protected static class customFormatter extends ValueFormatter {
|
protected static class customFormatter extends ValueFormatter {
|
||||||
private final TimestampTranslation tsTranslation;
|
private final AbstractChartFragment.TimestampTranslation tsTranslation;
|
||||||
SimpleDateFormat annotationDateFormat = new SimpleDateFormat("dd.MM HH:mm");
|
SimpleDateFormat annotationDateFormat = new SimpleDateFormat("dd.MM HH:mm");
|
||||||
Calendar cal = GregorianCalendar.getInstance();
|
Calendar cal = GregorianCalendar.getInstance();
|
||||||
|
|
||||||
public customFormatter(TimestampTranslation tsTranslation) {
|
public customFormatter(AbstractChartFragment.TimestampTranslation tsTranslation) {
|
||||||
this.tsTranslation = tsTranslation;
|
this.tsTranslation = tsTranslation;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -242,7 +230,7 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private class DefaultBatteryChartsData extends DefaultChartsData {
|
private class DefaultBatteryChartsData extends AbstractChartFragment.DefaultChartsData {
|
||||||
public int firstTs;
|
public int firstTs;
|
||||||
|
|
||||||
public DefaultBatteryChartsData(ChartData data, ValueFormatter xValueFormatter, int ts) {
|
public DefaultBatteryChartsData(ChartData data, ValueFormatter xValueFormatter, int ts) {
|
||||||
@ -262,7 +250,7 @@ public class BatteryInfoChartFragment extends AbstractChartFragment {
|
|||||||
|
|
||||||
public batteryValuesAndDateMarker(Context context, int layoutResource, int ts) {
|
public batteryValuesAndDateMarker(Context context, int layoutResource, int ts) {
|
||||||
super(context, layoutResource);
|
super(context, layoutResource);
|
||||||
TimestampTranslation tsTranslation = new TimestampTranslation();
|
AbstractChartFragment.TimestampTranslation tsTranslation = new AbstractChartFragment.TimestampTranslation();
|
||||||
formatter = new customFormatter(tsTranslation);
|
formatter = new customFormatter(tsTranslation);
|
||||||
top_text = (TextView) findViewById(R.id.chart_marker_item_top);
|
top_text = (TextView) findViewById(R.id.chart_marker_item_top);
|
||||||
bottom_text = (TextView) findViewById(R.id.chart_marker_item_bottom);
|
bottom_text = (TextView) findViewById(R.id.chart_marker_item_bottom);
|
||||||
|
Loading…
Reference in New Issue
Block a user