Increased minimum SDK to Android 5 because of errors compiling for Android 4. Fixed web interface javascript (broken by V3.1.13). Separated Start-up and Main activity UI strings to resources so we can add translations
This commit is contained in:
@@ -1,5 +1,13 @@
|
||||
OpenSeizureDetector Android App - Change Log
|
||||
============================================
|
||||
V3.1.14 - 27feb2020
|
||||
- Fixed the web interface, which stopped working in V3.1.13
|
||||
- Separated the user interface text into separate strings.xml file so we can
|
||||
have multi-lingual versions of the app (if people offer to do the translations
|
||||
for me, because I can't do it myself!)
|
||||
- Note that I think Google has forced me to drop support for Android 4.x in a recent
|
||||
update - I could only get it to compoile if I increased the minimum android version
|
||||
to Android 5.0. This is a shame because I am one of the 3 Android 4 users....
|
||||
|
||||
V3.1.13 - 16feb2020
|
||||
- Fixed problem with NetworkDataSource not responding to FAULT conditions properly.
|
||||
|
||||
@@ -6,7 +6,7 @@ android {
|
||||
|
||||
defaultConfig {
|
||||
applicationId "uk.org.openseizuredetector"
|
||||
minSdkVersion 14
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 28
|
||||
multiDexEnabled true
|
||||
}
|
||||
@@ -52,4 +52,5 @@ dependencies {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url "https://oss.sonatype.org/content/groups/public/" }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="uk.org.openseizuredetector"
|
||||
android:versionCode="67"
|
||||
android:versionName="3.1.13"
|
||||
android:versionCode="68"
|
||||
android:versionName="3.1.14"
|
||||
>
|
||||
<!--android:allowBackup="false"-->
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@ function get_settings() {
|
||||
};
|
||||
|
||||
|
||||
function populate_settings(dataStr) {
|
||||
var dataObj = JSON.parse(dataStr);
|
||||
function populate_settings(dataObj) {
|
||||
//var dataObj = JSON.parse(dataStr);
|
||||
//alert (dataStr);
|
||||
var alarmFreqMin = dataObj['alarmFreqMin'];
|
||||
var alarmFreqMax = dataObj['alarmFreqMax'];
|
||||
@@ -40,8 +40,8 @@ function get_data() {
|
||||
$.ajax({url:"/data",success:process_data});
|
||||
};
|
||||
|
||||
function process_data(dataStr) {
|
||||
var dataObj = JSON.parse(dataStr);
|
||||
function process_data(dataObj) {
|
||||
//var dataObj = JSON.parse(dataStr);
|
||||
//alert (dataStr);
|
||||
var timeStr = dataObj['Time'];
|
||||
var maxFreq = dataObj['maxFreq'];
|
||||
@@ -109,8 +109,8 @@ function get_spectrum() {
|
||||
$.ajax({url:"/spectrum",success:process_spectrum});
|
||||
};
|
||||
|
||||
function process_spectrum(dataStr) {
|
||||
var dataObj = JSON.parse(dataStr);
|
||||
function process_spectrum(dataObj) {
|
||||
//var dataObj = JSON.parse(dataStr);
|
||||
|
||||
var chartData = {
|
||||
labels:["1","2","3","4","5","6","7","8","9","10"],
|
||||
|
||||
@@ -289,7 +289,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
TextView tv;
|
||||
tv = (TextView) findViewById(R.id.versionTv);
|
||||
String versionName = mUtil.getAppVersionName();
|
||||
tv.setText("OpenSeizureDetector Android App Version " + versionName);
|
||||
tv.setText(getString(R.string.AppTitleText) + versionName);
|
||||
|
||||
if (mUtil.isServerRunning()) {
|
||||
mUtil.writeToSysLogFile("MainActivity.onStart - Binding to Server");
|
||||
@@ -370,18 +370,18 @@ public class MainActivity extends AppCompatActivity {
|
||||
if (mUtil.isServerRunning()) {
|
||||
tv = (TextView) findViewById(R.id.serverStatusTv);
|
||||
if (mConnection.mBound)
|
||||
tv.setText("Server Running OK\n" + mConnection.mSdServer.mSdDataSourceName + " Data Source");
|
||||
tv.setText(getString(R.string.ServerRunningOK) + mConnection.mSdServer.mSdDataSourceName + " " +getString(R.string.DataSource));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
tv = (TextView) findViewById(R.id.serverIpTv);
|
||||
tv.setText("Access Server at http://"
|
||||
tv.setText(getString(R.string.AccessServerAt)+" http://"
|
||||
+ mUtil.getLocalIpAddress()
|
||||
+ ":8080");
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
} else {
|
||||
tv = (TextView) findViewById(R.id.serverStatusTv);
|
||||
tv.setText("Server Stopped");
|
||||
tv.setText(R.string.ServerStopped);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
tv = (TextView) findViewById(R.id.serverIpTv);
|
||||
@@ -397,29 +397,29 @@ public class MainActivity extends AppCompatActivity {
|
||||
if ((mConnection.mSdServer.mSdData.alarmState == 0)
|
||||
&& !mConnection.mSdServer.mSdData.alarmStanding
|
||||
&& !mConnection.mSdServer.mSdData.fallAlarmStanding) {
|
||||
tv.setText("OK");
|
||||
tv.setText(getString(R.string.okBtnTxt));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
}
|
||||
if ((mConnection.mSdServer.mSdData.alarmState == 1)
|
||||
&& !mConnection.mSdServer.mSdData.alarmStanding
|
||||
&& !mConnection.mSdServer.mSdData.fallAlarmStanding) {
|
||||
tv.setText("WARNING");
|
||||
tv.setText(R.string.Warning);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
if (mConnection.mSdServer.mSdData.alarmState == 6) {
|
||||
tv.setText("MUTE");
|
||||
tv.setText(R.string.Mute);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
if (mConnection.mSdServer.mSdData.alarmStanding) {
|
||||
tv.setText("**ALARM**");
|
||||
tv.setText(R.string.Alarm);
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
}
|
||||
if (mConnection.mSdServer.mSdData.fallAlarmStanding) {
|
||||
tv.setText("**FALL**");
|
||||
tv.setText(R.string.Fall);
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
}
|
||||
@@ -432,7 +432,7 @@ 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) {
|
||||
tv.setText("HR = " + mConnection.mSdServer.mSdData.mHR);
|
||||
tv.setText(getString(R.string.HR_Equals) + mConnection.mSdServer.mSdData.mHR);
|
||||
if (mConnection.mSdServer.mSdData.mHRAlarmStanding) {
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
@@ -445,28 +445,28 @@ public class MainActivity extends AppCompatActivity {
|
||||
}
|
||||
} else {
|
||||
if (mConnection.mSdServer.mSdData.watchConnected) {
|
||||
tv.setText("HR Alarm OFF");
|
||||
tv.setText(R.string.HRAlarmOff);
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
|
||||
} else {
|
||||
tv.setText("Watch NOT Connected");
|
||||
tv.setText(getString(R.string.WatchNotConnected));
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
}
|
||||
tv = (TextView) findViewById(R.id.appTv);
|
||||
if (mConnection.mSdServer.mSdData.watchAppRunning) {
|
||||
tv.setText("Watch App OK");
|
||||
tv.setText(R.string.WatchAppOK);
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
} else {
|
||||
tv.setText("Watch App NOT Running");
|
||||
tv.setText(R.string.WatchAppNotRunning);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
tv = (TextView) findViewById(R.id.battTv);
|
||||
tv.setText("Watch Battery = " + String.valueOf(mConnection.mSdServer.mSdData.batteryPc) + "%");
|
||||
tv.setText(getString(R.string.WatchBatteryEquals) + String.valueOf(mConnection.mSdServer.mSdData.batteryPc) + "%");
|
||||
if (mConnection.mSdServer.mSdData.batteryPc <= 10) {
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
@@ -503,10 +503,10 @@ public class MainActivity extends AppCompatActivity {
|
||||
} else
|
||||
specRatio = 0;
|
||||
|
||||
((TextView) findViewById(R.id.powerTv)).setText("Power = " + mConnection.mSdServer.mSdData.roiPower +
|
||||
" (threshold = " + mConnection.mSdServer.mSdData.alarmThresh + ")");
|
||||
((TextView) findViewById(R.id.spectrumTv)).setText("Spectrum Ratio = " + specRatio +
|
||||
" (threshold = " + mConnection.mSdServer.mSdData.alarmRatioThresh + ")");
|
||||
((TextView) findViewById(R.id.powerTv)).setText(getString(R.string.PowerEquals) + mConnection.mSdServer.mSdData.roiPower +
|
||||
getString(R.string.ThresholdEquals) + mConnection.mSdServer.mSdData.alarmThresh + ")");
|
||||
((TextView) findViewById(R.id.spectrumTv)).setText(getString(R.string.SpectrumRatioEquals) + specRatio +
|
||||
getString(R.string.ThresholdEquals) + mConnection.mSdServer.mSdData.alarmRatioThresh + ")");
|
||||
|
||||
ProgressBar pb;
|
||||
Drawable pbDrawable;
|
||||
@@ -541,12 +541,12 @@ public class MainActivity extends AppCompatActivity {
|
||||
(mConnection.mSdServer.mSdData.alarmState == 7)) {
|
||||
tv = (TextView) findViewById(R.id.alarmTv);
|
||||
if (mConnection.mSdServer.mSdData.alarmState == 4) {
|
||||
tv.setText("FAULT");
|
||||
tv.setText(R.string.Fault);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
if (mConnection.mSdServer.mSdData.alarmState == 7) {
|
||||
tv.setText("NET FAULT");
|
||||
tv.setText(R.string.NetFault);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
@@ -561,24 +561,24 @@ public class MainActivity extends AppCompatActivity {
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
tv = (TextView) findViewById(R.id.pebbleTv);
|
||||
tv.setText("HR = ---");
|
||||
tv.setText(getString(R.string.HR_Equals)+"---");
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
tv = (TextView) findViewById(R.id.appTv);
|
||||
tv.setText("Watch App -----");
|
||||
tv.setText(R.string.WatchApp+" ----");
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
tv = (TextView) findViewById(R.id.battTv);
|
||||
tv.setText("Watch Battery = ---%");
|
||||
tv.setText(getString(R.string.WatchBatteryEquals)+" ---%");
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
|
||||
} else { // Not bound to server
|
||||
tv = (TextView) findViewById(R.id.alarmTv);
|
||||
tv.setText("------");
|
||||
tv.setText(R.string.Dashes);
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
tv = (TextView) findViewById(R.id.pebTimeTv);
|
||||
@@ -592,17 +592,17 @@ public class MainActivity extends AppCompatActivity {
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
tv = (TextView) findViewById(R.id.pebbleTv);
|
||||
tv.setText("HR = ---");
|
||||
tv.setText(getString(R.string.HR_Equals)+"---");
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
tv = (TextView) findViewById(R.id.appTv);
|
||||
tv.setText("Watch App -----");
|
||||
tv.setText(getString(R.string.WatchApp)+" -----");
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
|
||||
tv = (TextView) findViewById(R.id.battTv);
|
||||
tv.setText("Watch Battery = ---%");
|
||||
tv.setText(getString(R.string.WatchBatteryEquals)+" ---%");
|
||||
tv.setBackgroundColor(warnColour);
|
||||
tv.setTextColor(warnTextColour);
|
||||
}
|
||||
@@ -617,13 +617,13 @@ public class MainActivity extends AppCompatActivity {
|
||||
if (mConnection.mBound) {
|
||||
if ((mConnection.mSdServer.mSmsTimer != null)
|
||||
&& (mConnection.mSdServer.mSmsTimer.mTimeLeft > 0)) {
|
||||
acceptAlarmButton.setText("SMS Will Be Sent in " +
|
||||
acceptAlarmButton.setText(getString(R.string.SMSWillBeSentIn) +
|
||||
mConnection.mSdServer.mSmsTimer.mTimeLeft / 1000 +
|
||||
" s - CANCEL?");
|
||||
" s - "+getString(R.string.Cancel));
|
||||
acceptAlarmButton.setBackgroundColor(alarmColour);
|
||||
acceptAlarmButton.setEnabled(true);
|
||||
} else {
|
||||
acceptAlarmButton.setText("Accept Alarm");
|
||||
acceptAlarmButton.setText(R.string.AcceptAlarm);
|
||||
acceptAlarmButton.setBackgroundColor(Color.DKGRAY);
|
||||
if (mConnection.mBound)
|
||||
if ((mConnection.mSdServer.isLatchAlarms())
|
||||
@@ -634,7 +634,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
}
|
||||
}
|
||||
} else {
|
||||
acceptAlarmButton.setText("Accept Alarm");
|
||||
acceptAlarmButton.setText(getString(R.string.AcceptAlarm));
|
||||
acceptAlarmButton.setBackgroundColor(Color.DKGRAY);
|
||||
acceptAlarmButton.setEnabled(false);
|
||||
}
|
||||
@@ -644,17 +644,16 @@ public class MainActivity extends AppCompatActivity {
|
||||
(Button) findViewById(R.id.cancelAudibleButton);
|
||||
if (mConnection.mBound)
|
||||
if (mConnection.mSdServer.isAudibleCancelled()) {
|
||||
cancelAudibleButton.setText("Audible Alarms Cancelled "
|
||||
+ "for "
|
||||
cancelAudibleButton.setText(getString(R.string.AudibleAlarmsCancelledFor)
|
||||
+ mConnection.mSdServer.
|
||||
cancelAudibleTimeRemaining()
|
||||
+ " sec."
|
||||
+ " Press to re-enable");
|
||||
+ getString(R.string.PressToReEnable));
|
||||
} else {
|
||||
if (mConnection.mSdServer.mAudibleAlarm) {
|
||||
cancelAudibleButton.setText("Cancel Audible Alarms (temporarily)");
|
||||
cancelAudibleButton.setText(R.string.CancelAudibleAlarms);
|
||||
} else {
|
||||
cancelAudibleButton.setText("Audible Alarms OFF");
|
||||
cancelAudibleButton.setText(R.string.AudibleAlarmsOff);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ public class StartupActivity extends Activity {
|
||||
;
|
||||
String dataSourceName = SP.getString("DataSource", "Pebble");
|
||||
tv = (TextView) findViewById(R.id.dataSourceTextView);
|
||||
tv.setText("DataSource = " + dataSourceName);
|
||||
tv.setText(String.format("%s = %s", getString(R.string.DataSource), dataSourceName));
|
||||
|
||||
|
||||
if (mUtil.isServerRunning()) {
|
||||
@@ -236,21 +236,21 @@ public class StartupActivity extends Activity {
|
||||
pb = (ProgressBar) findViewById(R.id.progressBar1);
|
||||
if (mUtil.arePermissionsOK()) {
|
||||
if (smsAlarmsActive && !mUtil.areSMSPermissionsOK()) {
|
||||
tv.setText("Problem with SMS Permissions");
|
||||
tv.setText(getString(R.string.SmsPermissionWarning));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
mUtil.requestSMSPermissions(StartupActivity.this);
|
||||
} else {
|
||||
tv.setText("App Permissions OK");
|
||||
tv.setText(getString(R.string.AppPermissionsOk));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
}
|
||||
} else {
|
||||
tv.setText("Problem with App Permissions");
|
||||
tv.setText(getString(R.string.AppPermissionsWarning));
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
pb.setIndeterminate(true);
|
||||
@@ -262,13 +262,13 @@ public class StartupActivity extends Activity {
|
||||
tv = (TextView) findViewById(R.id.textItem2);
|
||||
pb = (ProgressBar) findViewById(R.id.progressBar2);
|
||||
if (mConnection.mBound) {
|
||||
tv.setText("Bound to Service OK");
|
||||
tv.setText(getString(R.string.BoundToServiceOk));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
} else {
|
||||
tv.setText("Binding to Background Service...");
|
||||
tv.setText(getString(R.string.BindingToService));
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
pb.setIndeterminate(true);
|
||||
@@ -279,13 +279,13 @@ public class StartupActivity extends Activity {
|
||||
tv = (TextView) findViewById(R.id.textItem3);
|
||||
pb = (ProgressBar) findViewById(R.id.progressBar3);
|
||||
if (mConnection.watchConnected()) {
|
||||
tv.setText("Watch Connected OK");
|
||||
tv.setText(getString(R.string.WatchConnectedOk));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
} else {
|
||||
tv.setText("Watch Not Connected");
|
||||
tv.setText(getString(R.string.WatchNotConnected));
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
pb.setIndeterminate(true);
|
||||
@@ -298,13 +298,13 @@ public class StartupActivity extends Activity {
|
||||
tv = (TextView) findViewById(R.id.textItem5);
|
||||
pb = (ProgressBar) findViewById(R.id.progressBar5);
|
||||
if (mConnection.hasSdData()) {
|
||||
tv.setText("Seizure Detector Data Received OK");
|
||||
tv.setText(getString(R.string.SeizureDetectorDataReceived));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
} else {
|
||||
tv.setText("Waiting for Seizure Detector Data...");
|
||||
tv.setText(getString(R.string.WaitingForSeizureDetectorData));
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
pb.setIndeterminate(true);
|
||||
@@ -316,13 +316,13 @@ public class StartupActivity extends Activity {
|
||||
tv = (TextView) findViewById(R.id.textItem6);
|
||||
pb = (ProgressBar) findViewById(R.id.progressBar6);
|
||||
if (mConnection.hasSdSettings()) {
|
||||
tv.setText("Seizure Detector Settings Received OK");
|
||||
tv.setText(getString(R.string.SeizureDetectorSettingsReceived));
|
||||
tv.setBackgroundColor(okColour);
|
||||
tv.setTextColor(okTextColour);
|
||||
pb.setIndeterminateDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
pb.setProgressDrawable(getResources().getDrawable(R.drawable.start_server));
|
||||
} else {
|
||||
tv.setText("Waiting for Seizure Detector Settings...");
|
||||
tv.setText(getString(R.string.WaitingForSeizureDetectorSettings));
|
||||
tv.setBackgroundColor(alarmColour);
|
||||
tv.setTextColor(alarmTextColour);
|
||||
pb.setIndeterminate(true);
|
||||
@@ -402,24 +402,15 @@ public class StartupActivity extends Activity {
|
||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
|
||||
this);
|
||||
final SpannableString s = new SpannableString(
|
||||
"OpenSeizureDetector does not collect any personal data. "
|
||||
+ "This does mean that it is not possible for me to contact users if I find an "
|
||||
+ "issue with the app that you should be aware of. \nPlease subscribe to updates at "
|
||||
+ "http://openseizuredetector.org.uk, or the app Facebook page at https://www.facebook.com/openseizuredetector. "
|
||||
+ "so I can get in touch if necessary.\nThank you! Graham \ngraham@openseizuredetector.org.uk "
|
||||
+ "\n\nChanges in this version:"
|
||||
+ "\n V3.1.13 - Fixed ERR-400 display on garmin watch and associated problem with network datasource fault alerting."
|
||||
+ "\n V3.1.11 - Fixed issue that Nework data source did not display heart rate data"
|
||||
+ "\n V3.1.10 - Provided a user option to treat a null heart rate as a fault or an alarm condition"
|
||||
+ "\n V3.1.9 - Fixed issue with Garmin Seizure Detector not producing warnings. Added fault pips for missing heart rate data if heart rate alarm active"
|
||||
getString(R.string.FirstRunDlgMsg)
|
||||
);
|
||||
// This makes the links display as links, but they do not respond to clicks for some reason...
|
||||
Linkify.addLinks(s, Linkify.ALL);
|
||||
alertDialogBuilder
|
||||
.setTitle("Welcome to OpenSeizureDetector")
|
||||
.setTitle(getString(R.string.FirstRunDlgTitle))
|
||||
.setMessage(s)
|
||||
.setCancelable(false)
|
||||
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
|
||||
.setPositiveButton(getString(R.string.okBtnTxt), new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
mDialogDisplayed = false;
|
||||
@@ -435,25 +426,15 @@ public class StartupActivity extends Activity {
|
||||
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
|
||||
this);
|
||||
final SpannableString s = new SpannableString(
|
||||
"OpenSeizureDetector does not collect any personal data. "
|
||||
+ "This does mean that it is not possible for me to contact users if I find an "
|
||||
+ "issue with the app that you should be aware of. \nPlease subscribe to updates at "
|
||||
+ "http://openseizuredetector.org.uk, or the app Facebook page at https://www.facebook.com/openseizuredetector. "
|
||||
+ "so I can get in touch if necessary.\nThank you! Graham \ngraham@openseizuredetector.org.uk "
|
||||
+ "\n\nChanges in this version:"
|
||||
+ "\n V3.1.13 - Fixed ERR-400 display on garmin watch and associated problem with network datasource fault alerting."
|
||||
+ "\n V3.1.11 - Fixed issue that Nework data source did not display heart rate data"
|
||||
+ "\n V3.1.10 - Provided a user option to treat a null heart rate as a fault or an alarm condition"
|
||||
+ "\n V3.1.9 - Fixed issue with Garmin Seizure Detector not producing warnings. Added fault pips for missing heart rate data if heart rate alarm active"
|
||||
+ "\n "
|
||||
getString(R.string.UpgradeMsg)
|
||||
);
|
||||
// This makes the links display as links, but they do not respond to clicks for some reason...
|
||||
Linkify.addLinks(s, Linkify.ALL);
|
||||
alertDialogBuilder
|
||||
.setTitle("Thank you for Updating OpenSeizureDetector")
|
||||
.setTitle(getString(R.string.UpdateDialogTitleTxt))
|
||||
.setMessage(s)
|
||||
.setCancelable(false)
|
||||
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
|
||||
.setPositiveButton(getString(R.string.okBtnTxt), new DialogInterface.OnClickListener() {
|
||||
public void onClick(DialogInterface dialog, int id) {
|
||||
dialog.cancel();
|
||||
mDialogDisplayed = false;
|
||||
|
||||
@@ -4,4 +4,71 @@
|
||||
<string name="ask_for_error_log">Sorry, OpenSeizureDetector Has Crashed. Please Email this log file to us so we can work out what happened and fix it.\nThanks, Graham.</string>
|
||||
<string name="email_welcome_note">Dear OpenSeizureDetector,\n\nApplication is just crashed, please check following error log for more details.\n\n\n</string>
|
||||
<string name="copyright_info">OpenSeizureDetector (Using UCE Handler\nCopyright © 2018 Rohit Sahebrao Surwase.)</string>
|
||||
<string name="UpgradeMsg">
|
||||
OpenSeizureDetector does not collect any personal data.
|
||||
This does mean that it is not possible for me to contact users if I find an
|
||||
issue with the app that you should be aware of. \nPlease subscribe to updates at
|
||||
http://openseizuredetector.org.uk, or the app Facebook page at https://www.facebook.com/openseizuredetector.
|
||||
so I can get in touch if necessary.\nThank you! Graham \ngraham@openseizuredetector.org.uk
|
||||
\n\nChanges in this version:
|
||||
\n V3.1.13 - Fixed ERR-400 display on garmin watch and associated problem with network datasource fault alerting.
|
||||
\n V3.1.11 - Fixed issue that Nework data source did not display heart rate data
|
||||
\n V3.1.10 - Provided a user option to treat a null heart rate as a fault or an alarm condition
|
||||
\n V3.1.9 - Fixed issue with Garmin Seizure Detector not producing warnings. Added fault pips for missing heart rate data if heart rate alarm active
|
||||
\n
|
||||
</string>
|
||||
<string name="okBtnTxt">OK</string>
|
||||
<string name="UpdateDialogTitleTxt">Thank you for Updating OpenSeizureDetector</string>
|
||||
<string name="FirstRunDlgTitle">Welcome to OpenSeizureDetector</string>
|
||||
<string name="FirstRunDlgMsg">
|
||||
OpenSeizureDetector does not collect any personal data.
|
||||
This does mean that it is not possible for me to contact users if I find an
|
||||
issue with the app that you should be aware of. \nPlease subscribe to updates at
|
||||
http://openseizuredetector.org.uk, or the app Facebook page at https://www.facebook.com/openseizuredetector.
|
||||
so I can get in touch if necessary.\nThank you! Graham \ngraham@openseizuredetector.org.uk
|
||||
\n\nChanges in this version:
|
||||
\n V3.1.13 - Fixed ERR-400 display on garmin watch and associated problem with network datasource fault alerting.
|
||||
\n V3.1.11 - Fixed issue that Nework data source did not display heart rate data
|
||||
\n V3.1.10 - Provided a user option to treat a null heart rate as a fault or an alarm condition
|
||||
\n V3.1.9 - Fixed issue with Garmin Seizure Detector not producing warnings. Added fault pips for missing heart rate data if heart rate alarm active
|
||||
</string>
|
||||
<string name="SmsPermissionWarning">Problem with SMS Permissions</string>
|
||||
<string name="AppPermissionsOk">App Permissions OK</string>
|
||||
<string name="AppPermissionsWarning">Problem with App Permissions</string>
|
||||
<string name="BoundToServiceOk">Bound to Service OK</string>
|
||||
<string name="BindingToService">Binding to Background Service...</string>
|
||||
<string name="WatchConnectedOk">Watch Connected OK</string>
|
||||
<string name="WatchNotConnected">Watch Not Connected</string>
|
||||
<string name="SeizureDetectorDataReceived">Seizure Detector Data Received OK</string>
|
||||
<string name="WaitingForSeizureDetectorData">Waiting for Seizure Detector Data...</string>
|
||||
<string name="SeizureDetectorSettingsReceived">Seizure Detector Settings Received OK</string>
|
||||
<string name="WaitingForSeizureDetectorSettings">Waiting for Seizure Detector Settings...</string>
|
||||
<string name="DataSource">DataSource</string>
|
||||
<string name="AppTitleText">OpenSeizureDetector Android App Version </string>
|
||||
<string name="ServerRunningOK">Server Running OK\n</string>
|
||||
<string name="AccessServerAt">Access Server at </string>
|
||||
<string name="ServerStopped">Server Stopped</string>
|
||||
<string name="Warning">WARNING</string>
|
||||
<string name="Mute">MUTE</string>
|
||||
<string name="Alarm">**ALARM**</string>
|
||||
<string name="Fall">**FALL**</string>
|
||||
<string name="HR_Equals">\"HR = \"</string>
|
||||
<string name="HRAlarmOff">HR Alarm OFF</string>
|
||||
<string name="WatchAppOK">Watch App OK</string>
|
||||
<string name="WatchAppNotRunning">Watch App NOT Running</string>
|
||||
<string name="WatchBatteryEquals">Watch Battery = </string>
|
||||
<string name="PowerEquals">\"Power = \"</string>
|
||||
<string name="SpectrumRatioEquals">Spectrum Ratio = </string>
|
||||
<string name="ThresholdEquals"> (threshold = </string>
|
||||
<string name="NetFault">NET FAULT</string>
|
||||
<string name="WatchApp">Watch App -----</string>
|
||||
<string name="Dashes">------</string>
|
||||
<string name="SMSWillBeSentIn">SMS Will Be Sent in </string>
|
||||
<string name="Cancel">CANCEL?</string>
|
||||
<string name="AcceptAlarm">Accept Alarm</string>
|
||||
<string name="AudibleAlarmsCancelledFor">Audible Alarms Cancelled for </string>
|
||||
<string name="PressToReEnable"> Press to re-enable</string>
|
||||
<string name="CancelAudibleAlarms">Cancel Audible Alarms (temporarily)</string>
|
||||
<string name="AudibleAlarmsOff">Audible Alarms OFF</string>
|
||||
<string name="Fault">FAULT</string>
|
||||
</resources>
|
||||
|
||||
@@ -9,7 +9,7 @@ buildscript {
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.5.1'
|
||||
classpath 'com.android.tools.build:gradle:3.6.0'
|
||||
}
|
||||
}
|
||||
allprojects {
|
||||
@@ -27,3 +27,9 @@ allprojects {
|
||||
dependencies {
|
||||
}
|
||||
|
||||
if (hasProperty('buildScan')) {
|
||||
buildScan {
|
||||
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
|
||||
termsOfServiceAgree = 'yes'
|
||||
}
|
||||
}
|
||||
1
gradle.properties
Normal file
1
gradle.properties
Normal file
@@ -0,0 +1 @@
|
||||
android.useAndroidX = true
|
||||
4
gradle/wrapper/gradle-wrapper.properties
vendored
4
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,6 +1,6 @@
|
||||
#Wed Oct 23 19:45:23 BST 2019
|
||||
#Mon Feb 24 20:46:57 GMT 2020
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
|
||||
|
||||
Reference in New Issue
Block a user