diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3d54f09..94022f6 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" package="uk.org.openseizuredetector" android:versionCode="114" - android:versionName="4.1.2a"> + android:versionName="4.1.2b"> diff --git a/app/src/main/assets/cnn_v0.23.tflite b/app/src/main/assets/cnn_v0.23.tflite new file mode 100644 index 0000000..3830690 Binary files /dev/null and b/app/src/main/assets/cnn_v0.23.tflite differ diff --git a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java index f81af9f..94b3e79 100644 --- a/app/src/main/java/uk/org/openseizuredetector/MainActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/MainActivity.java @@ -231,7 +231,7 @@ public class MainActivity extends AppCompatActivity { if (actionStr.equals("showDataSharingDialog")) { showDataSharingDialog(); } - Log.i(TAG, "onNewIntent - extra actionstr is "+actionStr); + Log.i(TAG, "onNewIntent - extra actionstr is " + actionStr); } else { Log.i(TAG, "onNewIntent - extra actionstr is null - starting normally"); } @@ -517,14 +517,14 @@ public class MainActivity extends AppCompatActivity { if (mConnection.mBound) { if (mConnection.mSdServer.mSdDataSourceName.equals("Phone")) { if (mConnection.mSdServer.mLogNDA) - tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + "Phone" + "\n" + "(Demo Mode)"+"\nNDA Logging"); + tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + "Phone" + "\n" + "(Demo Mode)" + "\nNDA Logging"); else tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + "Phone" + "\n" + "(Demo Mode)"); tv.setBackgroundColor(warnColour); tv.setTextColor(warnTextColour); } else { if (mConnection.mSdServer.mLogNDA) - tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + mConnection.mSdServer.mSdDataSourceName+"\nNDA Logging"); + tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + mConnection.mSdServer.mSdDataSourceName + "\nNDA Logging"); else tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + mConnection.mSdServer.mSdDataSourceName); tv.setBackgroundColor(okColour); @@ -645,23 +645,23 @@ public class MainActivity extends AppCompatActivity { // Pebble Connected Phrase - use for HR if active instead. tv = (TextView) findViewById(R.id.pebbleTv); //if (mConnection.mSdServer.mSdData.mHRAlarmActive) { - if (mConnection.mSdServer.mSdData.mO2Sat>0) { - tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n" - + "O2 Sat = " + mConnection.mSdServer.mSdData.mO2Sat + "%"); - } else { - tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n" - + "O2 Sat = ---%"); - } - if (mConnection.mSdServer.mSdData.mHRAlarmStanding || mConnection.mSdServer.mSdData.mO2SatAlarmStanding) { - tv.setBackgroundColor(alarmColour); - tv.setTextColor(alarmTextColour); - } else if (mConnection.mSdServer.mSdData.mHRFaultStanding || mConnection.mSdServer.mSdData.mO2SatFaultStanding) { - tv.setBackgroundColor(warnColour); - tv.setTextColor(warnTextColour); - } else { - tv.setBackgroundColor(okColour); - tv.setTextColor(okTextColour); - } + if (mConnection.mSdServer.mSdData.mO2Sat > 0) { + tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n" + + "O2 Sat = " + mConnection.mSdServer.mSdData.mO2Sat + "%"); + } else { + tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR + " bpm\n" + + "O2 Sat = ---%"); + } + if (mConnection.mSdServer.mSdData.mHRAlarmStanding || mConnection.mSdServer.mSdData.mO2SatAlarmStanding) { + tv.setBackgroundColor(alarmColour); + tv.setTextColor(alarmTextColour); + } else if (mConnection.mSdServer.mSdData.mHRFaultStanding || mConnection.mSdServer.mSdData.mO2SatFaultStanding) { + tv.setBackgroundColor(warnColour); + tv.setTextColor(warnTextColour); + } else { + tv.setBackgroundColor(okColour); + tv.setTextColor(okTextColour); + } /*} else { if (mConnection.mSdServer.mSdData.watchConnected) { tv.setText(R.string.HRAlarmOff); @@ -706,9 +706,15 @@ public class MainActivity extends AppCompatActivity { // We start off with it set to OK, then check for several different abnormal conditions // in turn - the last one that is active is the one that is displayed. tv = (TextView) findViewById(R.id.remoteDbTv); - tv.setText(getString(R.string.data_sharing_status) - + ": " - + getString(R.string.data_sharing_setup_ok)); + if (mConnection.mSdServer.mLogNDA) + tv.setText(getString(R.string.data_sharing_status) + + ": " + + getString(R.string.data_sharing_setup_ok) + + ": " + "NDA Logging"); + else + tv.setText(getString(R.string.data_sharing_status) + + ": " + + getString(R.string.data_sharing_setup_ok)); tv.setBackgroundColor(okColour); tv.setTextColor(okTextColour); @@ -784,13 +790,13 @@ public class MainActivity extends AppCompatActivity { specRatio = 0; long pSeizurePc; - pSeizurePc = (long)(mConnection.mSdServer.mSdData.mPseizure * 100); - Log.d(TAG,"pSeizurePc="+pSeizurePc+", mPseizure="+mConnection.mSdServer.mSdData.mPseizure); + pSeizurePc = (long) (mConnection.mSdServer.mSdData.mPseizure * 100); + Log.d(TAG, "pSeizurePc=" + pSeizurePc + ", mPseizure=" + mConnection.mSdServer.mSdData.mPseizure); ((TextView) findViewById(R.id.powerTv)).setText(getString(R.string.PowerEquals) + mConnection.mSdServer.mSdData.roiPower + " (" + getString(R.string.Threshold) + "=" + mConnection.mSdServer.mSdData.alarmThresh + ")"); ((TextView) findViewById(R.id.spectrumTv)).setText(getString(R.string.SpectrumRatioEquals) + specRatio + " (" + getString(R.string.Threshold) + "=" + mConnection.mSdServer.mSdData.alarmRatioThresh + ")"); - ((TextView) findViewById(R.id.pSeizureTv)).setText("Seizure Probability = "+pSeizurePc+"%"); + ((TextView) findViewById(R.id.pSeizureTv)).setText("Seizure Probability = " + pSeizurePc + "%"); ProgressBar pb; Drawable pbDrawable; @@ -830,7 +836,6 @@ public class MainActivity extends AppCompatActivity { pb.setProgressDrawable(pbDrawable); - // Fault Conditions - We override the values in the UI because we do not know // if the stored ones are correct or not with a fault present. if ((mConnection.mSdServer.mSdData.alarmState == 4) || @@ -1074,24 +1079,24 @@ public class MainActivity extends AppCompatActivity { } }); builder.setPositiveButton("Privacy Policy", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.cancel(); - String url = OsdUtil.PRIVACY_POLICY_URL; - Intent i = new Intent(Intent.ACTION_VIEW); - i.setData(Uri.parse(url)); - startActivity(i); - dialog.cancel(); - } - }); + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + String url = OsdUtil.PRIVACY_POLICY_URL; + Intent i = new Intent(Intent.ACTION_VIEW); + i.setData(Uri.parse(url)); + startActivity(i); + dialog.cancel(); + } + }); builder.setNegativeButton("Data Sharing", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.cancel(); - String url = OsdUtil.DATA_SHARING_URL; - Intent i = new Intent(Intent.ACTION_VIEW); - i.setData(Uri.parse(url)); - startActivity(i); - dialog.cancel(); - } + public void onClick(DialogInterface dialog, int id) { + dialog.cancel(); + String url = OsdUtil.DATA_SHARING_URL; + Intent i = new Intent(Intent.ACTION_VIEW); + i.setData(Uri.parse(url)); + startActivity(i); + dialog.cancel(); + } }); builder.setView(aboutView); builder.create(); diff --git a/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java b/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java index e3ea483..e42f4e9 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdAlgNn.java @@ -25,7 +25,7 @@ import java.util.Map; public class SdAlgNn { private final static String TAG = "SdAlgNn"; - private final static String MODEL_PATH = "cnn_v0.22.tflite"; + private final static String MODEL_PATH = "cnn_v0.23.tflite"; private String mUrlBase = "https://osdApi.ddns.net"; private InterpreterApi interpreter; private Context mContext; diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8a7ec86..50465f0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -3,7 +3,7 @@ OpenSeizureDetector "\n - \nV4.1.0 - Added Machine Learning (Artificial Intelligence) Detection Algorithm Option (CNN V0.12) + \nV4.1.2 - Added Machine Learning (Artificial Intelligence) Detection Algorithm Option (CNN V0.23) and 'Normal Daily Activity (NDA) logging function \nV4.0.7 - Improvements to Data Sharing data log manager screen. - Introduced the <b>Data Sharing</b> feature to allow users to share their seizure and false alarm data with researchers to help improve the system.<br/>