From 28f26f8d38972e84cc63b6440921aab64d5a5669 Mon Sep 17 00:00:00 2001 From: Graham Jones Date: Mon, 9 May 2016 22:48:41 +0100 Subject: [PATCH] Chnaged main screen graph to bar chart. --- CHANGELOG.md | 9 ++- .../org/openseizuredetector/MainActivity.java | 60 ++++++++++++++----- .../uk/org/openseizuredetector/SdData.java | 2 + app/src/main/res/layout/main.xml | 2 +- .../main/res/menu/main_activity_actions.xml | 16 +++-- 5 files changed, 67 insertions(+), 22 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9150234..e6e3e37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,17 @@ OpenSeizureDetector Android App - Change Log ============================================ + V2.0.4 - 09 May 2016 + Improved handling of watch app settings to make sure + they are loaded correctly without having to re-start app. + Added watch app to Andid phone app package so watch app can be + installed directly from phone rather than using pebble store. + Changed main screen graph to bar chart. + V2.0.3 - 23 April 2016 Further modification to beep code to avoid occasional crashes if system tries to beep during a re-start. - Log faults to alarm log on SD Card. + Log faults to alarm log on SD Card. V2.0.2 - 13 April 2016 Modified 'beep' code to try to avoid crashes on some systems. diff --git a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java index 7a8cc45..0435a10 100644 --- a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java @@ -54,10 +54,16 @@ import java.util.Timer; import java.util.TimerTask; //MPAndroidChart +import com.github.mikephil.charting.charts.BarChart; import com.github.mikephil.charting.charts.LineChart; +import com.github.mikephil.charting.components.XAxis; +import com.github.mikephil.charting.data.BarData; +import com.github.mikephil.charting.data.BarDataSet; +import com.github.mikephil.charting.data.BarEntry; import com.github.mikephil.charting.data.Entry; import com.github.mikephil.charting.data.LineData; import com.github.mikephil.charting.data.LineDataSet; +import com.github.mikephil.charting.utils.ColorTemplate; public class MainActivity extends Activity { static final String TAG = "MainActivity"; @@ -162,6 +168,9 @@ public class MainActivity extends Activity { Log.v(TAG, "action_launch_pebble_app"); mUtil.startPebbleApp(); return true; + case R.id.action_instal_watch_app: + Log.v(TAG, "action_install_watch_app"); + mConnection.mSdServer.mSdDataSource.installWatchApp(); case R.id.action_accept_alarm: Log.v(TAG, "action_accept_alarm"); @@ -499,33 +508,56 @@ public class MainActivity extends Activity { //////////////////////////////////////////////////////////// // Produce graph - LineChart mChart = (LineChart) findViewById(R.id.chart1); - mChart.setDescription(""); + BarChart mChart = (BarChart) findViewById(R.id.chart1); + mChart.setDescription("Simple Spectrum"); + mChart.setDrawBarShadow(false); mChart.setNoDataTextDescription("You need to provide data for the chart."); // X Values ArrayList xVals = new ArrayList(); for (int i = 0; i < 10; i++) { xVals.add((i) + ""); } + XAxis xAxis = mChart.getXAxis(); + xAxis.setPosition(XAxis.XAxisPosition.BOTTOM); + xAxis.setTextSize(10f); + xAxis.setDrawAxisLine(true); + xAxis.setDrawLabels(true); + xAxis.setEnabled(true); // Y Values - ArrayList yVals = new ArrayList(); + //ArrayList yVals = new ArrayList(); + ArrayList yBarVals = new ArrayList(); for (int i = 0; i < 10; i++) { - if (mConnection.mSdServer != null) - yVals.add(new Entry(mConnection.mSdServer.mSdData.simpleSpec[i], i)); - else - yVals.add(new Entry(i, i)); + if (mConnection.mSdServer != null) { + //yVals.add(new Entry(mConnection.mSdServer.mSdData.simpleSpec[i], i)); + yBarVals.add(new BarEntry(mConnection.mSdServer.mSdData.simpleSpec[i], i)); + } + else { + //yVals.add(new Entry(i, i)); + yBarVals.add(new BarEntry(i,i)); + } } // create a dataset and give it a type - LineDataSet set1 = new LineDataSet(yVals, "DataSet 1"); - set1.setColor(Color.BLACK); - set1.setLineWidth(1f); + //LineDataSet set1 = new LineDataSet(yVals, "DataSet 1"); + //set1.setColor(Color.BLACK); + //set1.setLineWidth(1f); + + //ArrayList dataSets = new ArrayList(); + //dataSets.add(set1); // add the datasets + //LineData data = new LineData(xVals, dataSets); + + BarDataSet barDataSet = new BarDataSet(yBarVals,"Spectrum"); + barDataSet.setColor(Color.GRAY); + barDataSet.setBarSpacePercent(20f); + barDataSet.setBarShadowColor(Color.WHITE); + ArrayList barDataSets = new ArrayList(); + barDataSets.add(barDataSet); + BarData barData = new BarData(xVals,barDataSets); + mChart.setData(barData); + - ArrayList dataSets = new ArrayList(); - dataSets.add(set1); // add the datasets - LineData data = new LineData(xVals, dataSets); //data.setValueTextSize(10f); - mChart.setData(data); + //mChart.setData(data); mChart.invalidate(); } }; diff --git a/app/src/main/java/uk/org/openseizuredetector/SdData.java b/app/src/main/java/uk/org/openseizuredetector/SdData.java index fde9b08..3959504 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdData.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdData.java @@ -148,6 +148,8 @@ public class SdData implements Parcelable { jsonObj.put("haveSettings", haveSettings); jsonObj.put("alarmState", alarmState); jsonObj.put("alarmPhrase", alarmPhrase); + jsonObj.put("alarmFreqMin",alarmFreqMin); + jsonObj.put("alarmFreqMax",alarmFreqMax); jsonObj.put("alarmThresh", alarmThresh); jsonObj.put("alarmRatioThresh", alarmRatioThresh); JSONArray arr = new JSONArray(); diff --git a/app/src/main/res/layout/main.xml b/app/src/main/res/layout/main.xml index 591abb3..0cfbf24 100644 --- a/app/src/main/res/layout/main.xml +++ b/app/src/main/res/layout/main.xml @@ -131,7 +131,7 @@ android:text="Cancel Audible (temporarily)" /> - diff --git a/app/src/main/res/menu/main_activity_actions.xml b/app/src/main/res/menu/main_activity_actions.xml index 33f47e6..04321e1 100644 --- a/app/src/main/res/menu/main_activity_actions.xml +++ b/app/src/main/res/menu/main_activity_actions.xml @@ -5,12 +5,6 @@ android:title="Accept Alarm" /> - - --> + + + +