Skip to content

Commit a7d9712

Browse files
author
Takehiro
committed
Make axis dynamic according to the value. Implemented light, dark theme of chart.
1 parent 8640cb2 commit a7d9712

File tree

1 file changed

+65
-27
lines changed

1 file changed

+65
-27
lines changed

androidapp/app/src/main/java/com/cantech/cannect/Dashboard_chart.java

Lines changed: 65 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ public class Dashboard_chart extends AppCompatActivity {
6464
boolean flag = false;
6565
boolean once = true; //for deleting the (0, 0) input.
6666

67+
boolean lightFlag;
68+
6769
@Override
6870
protected void onCreate(Bundle savedInstanceState) {
6971
//load saved theme state
@@ -72,9 +74,11 @@ protected void onCreate(Bundle savedInstanceState) {
7274
if(sharedPref.loadDarkModeState()==true){
7375
setTheme(R.style.darkTheme);
7476
spinnerTextColor = "#FFFFFF";
77+
lightFlag = false;
7578
}else{
7679
setTheme(R.style.AppTheme);
7780
spinnerTextColor = "#000000";
81+
lightFlag = true;
7882
}
7983
super.onCreate(savedInstanceState);
8084
setContentView(R.layout.activity_dashboard_chart);
@@ -109,7 +113,7 @@ protected void onCreate(Bundle savedInstanceState) {
109113
@Override
110114
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
111115
toDisplay = adapterView.getItemAtPosition(i).toString();
112-
reDesignChart(lineDataSet, toDisplay);
116+
reDesignChart(lineDataSet, toDisplay, 0f);
113117
((TextView) view).setTextColor(Color.parseColor(spinnerTextColor));
114118
}
115119

@@ -164,6 +168,12 @@ public void onNothingSelected(AdapterView<?> adapterView) {
164168
mChart.getXAxis().setDrawGridLines(true);
165169
mChart.setDrawBorders(true);
166170

171+
if (lightFlag){
172+
mChart.setBackgroundColor(Color.WHITE);
173+
l.setTextColor(Color.BLACK);
174+
xl.setTextColor(Color.BLACK);
175+
leftAxis.setTextColor(Color.BLACK);
176+
}
167177

168178
Thread t = new Thread(){
169179
public void run(){
@@ -264,6 +274,7 @@ public void onReceive(Context context, Intent intent) {
264274
// mChart.setVisibleYRange(30, AxisDependency.LEFT);
265275
// move to the latest entry
266276
mChart.moveViewToX(lineData.getEntryCount());
277+
reDesignChart(lineDataSet, toDisplay, value);
267278
}
268279

269280
}else {
@@ -273,7 +284,7 @@ public void onReceive(Context context, Intent intent) {
273284
once = true;
274285
lineDataSet = new LineDataSet(data, toDisplay);
275286
data.add(new Entry(lineDataSet.getEntryCount(), value));
276-
reDesignChart(lineDataSet, toDisplay);
287+
reDesignChart(lineDataSet, toDisplay, value);
277288
lineData.clearValues();
278289
lineData.addDataSet(lineDataSet);
279290
mChart.setData(lineData);
@@ -292,82 +303,109 @@ public void onReceive(Context context, Intent intent) {
292303
}
293304
};
294305

295-
protected void reDesignChart(LineDataSet toChange, String str){
306+
protected void reDesignChart(LineDataSet toChange, String str, float value){
296307
toChange.setAxisDependency(YAxis.AxisDependency.LEFT);
297308
toChange.setLineWidth(1f);
298309
toChange.setHighlightEnabled(false);
299310
toChange.setDrawValues(false);
300311
toChange.setDrawCircles(false);
312+
float axisMax;
313+
float axisMin;
314+
301315
switch (str){
302316
case "ENGINE COOLANT TEMP":
303-
leftAxis.setAxisMaximum(100f);
304-
leftAxis.setAxisMinimum(-40f);
317+
axisMax = value + 50f;
318+
axisMin = value - 50f;
319+
leftAxis.setAxisMaximum(axisMax);
320+
leftAxis.setAxisMinimum(axisMin);
305321
lineDataSet.setColor(getResources().getColor(R.color.debug_red));
306322
lineDataSet.notifyDataSetChanged();
307323
BTPIDs = "05 ";
308324
break;
309325
case "VEHICLE SPEED":
310-
leftAxis.setAxisMaximum(255f);
311-
leftAxis.setAxisMinimum(0f);
326+
axisMax = value + 100f;
327+
axisMin = 0f;
328+
leftAxis.setAxisMaximum(axisMax);
329+
leftAxis.setAxisMinimum(axisMin);
312330
lineDataSet.setColor(getResources().getColor(R.color.debug_blue));
313331
lineDataSet.notifyDataSetChanged();
314332
BTPIDs = "0D ";
315333
break;
316334
case "ENGINE RPM":
317-
leftAxis.setAxisMaximum(10000f);
318-
leftAxis.setAxisMinimum(0f);
335+
axisMax = value + 5000f;
336+
axisMin = 0f;
337+
leftAxis.setAxisMaximum(axisMax);
338+
leftAxis.setAxisMinimum(axisMin);
319339
lineDataSet.setColor(getResources().getColor(R.color.debug_green));
320340
lineDataSet.notifyDataSetChanged();
321341
BTPIDs = "0C ";
322342
break;
323343

324344
case "MAF SENSOR":
325-
leftAxis.setAxisMinimum(0f);
326-
leftAxis.setAxisMaximum(100f);
345+
axisMax = value + 50f;
346+
axisMin = 0f;
347+
leftAxis.setAxisMaximum(axisMax);
348+
leftAxis.setAxisMinimum(axisMin);
327349
lineDataSet.setColor(getResources().getColor(R.color.LightCyan));
328350
lineDataSet.notifyDataSetChanged();
329351
BTPIDs = "10 ";
330352
break;
331353
case "ENGINE OIL TEMPERATURE":
332-
leftAxis.setAxisMinimum(-50f);
333-
leftAxis.setAxisMaximum(210f);
354+
axisMax = value + 50f;
355+
axisMin = value - 50f;
356+
leftAxis.setAxisMaximum(axisMax);
357+
leftAxis.setAxisMinimum(axisMin);
334358
BTPIDs = "5C ";
335359
break;
336360
case "INTAKE AIR TEMPERATURE":
337-
leftAxis.setAxisMinimum(-50f);
338-
leftAxis.setAxisMaximum(100f);
361+
axisMax = value + 50f;
362+
axisMin = value - 50f;
363+
leftAxis.setAxisMaximum(axisMax);
364+
leftAxis.setAxisMinimum(axisMin);
339365
BTPIDs = "0F ";
340366
break;
341367
case "THROTTLE POSITION":
342-
leftAxis.setAxisMinimum(0f);
343-
leftAxis.setAxisMaximum(100f);
368+
axisMax = value + 50f;
369+
axisMin = 0f;
370+
leftAxis.setAxisMaximum(axisMax);
371+
leftAxis.setAxisMinimum(axisMin);
344372
BTPIDs = "11 ";
345373
break;
346374
case "ABSOLUTE ENGINE LOAD":
347-
leftAxis.setAxisMinimum(0f);
348-
leftAxis.setAxisMaximum(100f);
375+
axisMax = value + 50f;
376+
axisMin = 0f;
377+
leftAxis.setAxisMaximum(axisMax);
378+
leftAxis.setAxisMinimum(axisMin);
349379
BTPIDs = "43 ";
350380
break;
351381
case "CALCULATED ENGINE LOAD":
352-
leftAxis.setAxisMinimum(0f);
353-
leftAxis.setAxisMaximum(100f);
382+
axisMax = value + 50f;
383+
axisMin = 0f;
384+
leftAxis.setAxisMaximum(axisMax);
385+
leftAxis.setAxisMinimum(axisMin);
354386
BTPIDs = "04 ";
355387
break;
356388
case "DEMAND ENGINE TORQUE":
357-
leftAxis.setAxisMinimum(-125f);
358-
leftAxis.setAxisMaximum(130f);
389+
axisMax = value + 100f;
390+
axisMin = value - 100f;
391+
leftAxis.setAxisMaximum(axisMax);
392+
leftAxis.setAxisMinimum(axisMin);
359393
lineDataSet.setColor(getResources().getColor(R.color.Orchid));
360394
BTPIDs = "61 ";
361395
break;
362396
case "FUEL PRESSURE":
363-
leftAxis.setAxisMaximum(765f);
364-
leftAxis.setAxisMinimum(0f);
397+
axisMax = value + 500;
398+
axisMin = 0f;
399+
leftAxis.setAxisMaximum(axisMax);
400+
leftAxis.setAxisMinimum(axisMin);
365401
lineDataSet.setColor(getResources().getColor(R.color.AntiqueWhite));
366402
BTPIDs = "0A ";
367403
break;
368404
case "ACTUAL ENGINE TORQUE":
369-
leftAxis.setAxisMinimum(-125f);
370-
leftAxis.setAxisMaximum(130f);
405+
axisMax = value + 100;
406+
axisMin = value - 100f;
407+
leftAxis.setAxisMaximum(axisMax);
408+
leftAxis.setAxisMinimum(axisMin);
371409
lineDataSet.setColor(getResources().getColor(R.color.debug_green));
372410
BTPIDs = "62 ";
373411
break;

0 commit comments

Comments
 (0)