Merge branch 'V3.6'
This commit is contained in:
@@ -1,5 +1,8 @@
|
|||||||
OpenSeizureDetector Android App - Change Log
|
OpenSeizureDetector Android App - Change Log
|
||||||
============================================
|
============================================
|
||||||
|
V3.6.2 - Nov 2020
|
||||||
|
- Extended Polish translation further
|
||||||
|
- Improved system log output to help with answering queries from users.
|
||||||
V3.6.1 - Nov 2020
|
V3.6.1 - Nov 2020
|
||||||
- Extended polish translation to all settings screens.
|
- Extended polish translation to all settings screens.
|
||||||
- Possible fix for issue with failing to shutdown system sometimes.
|
- Possible fix for issue with failing to shutdown system sometimes.
|
||||||
|
|||||||
BIN
app/release/app-release-3.6.2.apk
Normal file
BIN
app/release/app-release-3.6.2.apk
Normal file
Binary file not shown.
Binary file not shown.
BIN
app/release/old_versions/app-release-3.6.2a.apk
Normal file
BIN
app/release/old_versions/app-release-3.6.2a.apk
Normal file
Binary file not shown.
BIN
app/release/old_versions/app-release-3.6.2b.apk
Normal file
BIN
app/release/old_versions/app-release-3.6.2b.apk
Normal file
Binary file not shown.
BIN
app/release/old_versions/app-release-3.6.2c.apk
Normal file
BIN
app/release/old_versions/app-release-3.6.2c.apk
Normal file
Binary file not shown.
BIN
app/release/old_versions/app-release-3.6.2d.apk
Normal file
BIN
app/release/old_versions/app-release-3.6.2d.apk
Normal file
Binary file not shown.
@@ -10,8 +10,8 @@
|
|||||||
{
|
{
|
||||||
"type": "SINGLE",
|
"type": "SINGLE",
|
||||||
"filters": [],
|
"filters": [],
|
||||||
"versionCode": 83,
|
"versionCode": 87,
|
||||||
"versionName": "3.6.1",
|
"versionName": "3.6.2",
|
||||||
"outputFile": "app-release.apk"
|
"outputFile": "app-release.apk"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -2,8 +2,8 @@
|
|||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="uk.org.openseizuredetector"
|
package="uk.org.openseizuredetector"
|
||||||
android:versionCode="83"
|
android:versionCode="87"
|
||||||
android:versionName="3.6.1">
|
android:versionName="3.6.2">
|
||||||
<!-- android:allowBackup="false" -->
|
<!-- android:allowBackup="false" -->
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
if ((mConnection.mSdServer.mSmsTimer != null)
|
if ((mConnection.mSdServer.mSmsTimer != null)
|
||||||
&& (mConnection.mSdServer.mSmsTimer.mTimeLeft > 0 )){
|
&& (mConnection.mSdServer.mSmsTimer.mTimeLeft > 0 )){
|
||||||
Log.v(TAG, "acceptAlarmButton.onClick() - Stopping SMS Timer");
|
Log.v(TAG, "acceptAlarmButton.onClick() - Stopping SMS Timer");
|
||||||
mUtil.showToast("SMS Alarm Cancelled");
|
mUtil.showToast(getString(R.string.SMSAlarmCancelledMsg));
|
||||||
mConnection.mSdServer.stopSmsTimer();
|
mConnection.mSdServer.stopSmsTimer();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -357,7 +357,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
Log.v(TAG, "Changing menu icons");
|
Log.v(TAG, "Changing menu icons");
|
||||||
MenuItem menuItem = mOptionsMenu.findItem(R.id.action_start_stop);
|
MenuItem menuItem = mOptionsMenu.findItem(R.id.action_start_stop);
|
||||||
menuItem.setIcon(R.drawable.stop_server);
|
menuItem.setIcon(R.drawable.stop_server);
|
||||||
menuItem.setTitle("Stop Server");
|
menuItem.setTitle(R.string.StopServerTitle);
|
||||||
} else {
|
} else {
|
||||||
Log.v(TAG, "mOptionsMenu is null - not changing icons!");
|
Log.v(TAG, "mOptionsMenu is null - not changing icons!");
|
||||||
}
|
}
|
||||||
@@ -371,7 +371,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
if (mOptionsMenu != null) {
|
if (mOptionsMenu != null) {
|
||||||
Log.v(TAG, "Changing action bar icons");
|
Log.v(TAG, "Changing action bar icons");
|
||||||
mOptionsMenu.findItem(R.id.action_start_stop).setIcon(R.drawable.start_server);
|
mOptionsMenu.findItem(R.id.action_start_stop).setIcon(R.drawable.start_server);
|
||||||
mOptionsMenu.findItem(R.id.action_start_stop).setTitle("Start Server");
|
mOptionsMenu.findItem(R.id.action_start_stop).setTitle(R.string.StartServerTitle);
|
||||||
} else {
|
} else {
|
||||||
Log.v(TAG, "mOptionsMenu is null, not changing icons!");
|
Log.v(TAG, "mOptionsMenu is null, not changing icons!");
|
||||||
}
|
}
|
||||||
@@ -398,7 +398,7 @@ public class MainActivity extends AppCompatActivity {
|
|||||||
if (mUtil.isServerRunning()) {
|
if (mUtil.isServerRunning()) {
|
||||||
tv = (TextView) findViewById(R.id.serverStatusTv);
|
tv = (TextView) findViewById(R.id.serverStatusTv);
|
||||||
if (mConnection.mBound)
|
if (mConnection.mBound)
|
||||||
tv.setText(getString(R.string.ServerRunningOK) + mConnection.mSdServer.mSdDataSourceName + " " +getString(R.string.DataSource));
|
tv.setText(getString(R.string.ServerRunningOK) + getString(R.string.DataSource) + " = " + mConnection.mSdServer.mSdDataSourceName);
|
||||||
tv.setBackgroundColor(okColour);
|
tv.setBackgroundColor(okColour);
|
||||||
tv.setTextColor(okTextColour);
|
tv.setTextColor(okTextColour);
|
||||||
tv = (TextView) findViewById(R.id.serverIpTv);
|
tv = (TextView) findViewById(R.id.serverIpTv);
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ import org.apache.http.conn.util.InetAddressUtils;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileWriter;
|
import java.io.FileWriter;
|
||||||
|
import java.io.IOException;
|
||||||
import java.net.InetAddress;
|
import java.net.InetAddress;
|
||||||
import java.net.NetworkInterface;
|
import java.net.NetworkInterface;
|
||||||
import java.util.AbstractList;
|
import java.util.AbstractList;
|
||||||
@@ -142,7 +143,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
||||||
showToast("Problem Parsing Preferences - Something won't work - Please go back to Settings and correct it!");
|
showToast(mContext.getString(R.string.ParsePreferenceWarning));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -171,8 +172,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
if (nServers != 0) {
|
if (nServers != 0) {
|
||||||
Log.v(TAG, "isServerRunning() - " + nServers + " instances are running");
|
Log.v(TAG, "isServerRunning() - " + nServers + " instances are running");
|
||||||
return true;
|
return true;
|
||||||
}
|
} else
|
||||||
else
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -181,16 +181,16 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
*/
|
*/
|
||||||
public void startServer() {
|
public void startServer() {
|
||||||
// Start the server
|
// Start the server
|
||||||
Log.d(TAG,"OsdUtil.startServer()");
|
Log.d(TAG, "OsdUtil.startServer()");
|
||||||
writeToSysLogFile("startServer() - starting server");
|
writeToSysLogFile("startServer() - starting server");
|
||||||
Intent sdServerIntent;
|
Intent sdServerIntent;
|
||||||
sdServerIntent = new Intent(mContext, SdServer.class);
|
sdServerIntent = new Intent(mContext, SdServer.class);
|
||||||
sdServerIntent.setData(Uri.parse("Start"));
|
sdServerIntent.setData(Uri.parse("Start"));
|
||||||
if (Build.VERSION.SDK_INT >= 26) {
|
if (Build.VERSION.SDK_INT >= 26) {
|
||||||
Log.i(TAG,"Starting Foreground Service (Android 8 and above)");
|
Log.i(TAG, "Starting Foreground Service (Android 8 and above)");
|
||||||
mContext.startForegroundService(sdServerIntent);
|
mContext.startForegroundService(sdServerIntent);
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG,"Starting Normal Service (Pre-Android 8)");
|
Log.i(TAG, "Starting Normal Service (Pre-Android 8)");
|
||||||
mContext.startService(sdServerIntent);
|
mContext.startService(sdServerIntent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -219,7 +219,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
Intent intent = new Intent(sdServiceConnection.mContext, SdServer.class);
|
Intent intent = new Intent(sdServiceConnection.mContext, SdServer.class);
|
||||||
activity.bindService(intent, sdServiceConnection, Context.BIND_AUTO_CREATE);
|
activity.bindService(intent, sdServiceConnection, Context.BIND_AUTO_CREATE);
|
||||||
mNbound = mNbound + 1;
|
mNbound = mNbound + 1;
|
||||||
Log.i(TAG,"OsdUtil.bindToServer() - mNbound = "+mNbound);
|
Log.i(TAG, "OsdUtil.bindToServer() - mNbound = " + mNbound);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -234,16 +234,16 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
activity.unbindService(sdServiceConnection);
|
activity.unbindService(sdServiceConnection);
|
||||||
sdServiceConnection.mBound = false;
|
sdServiceConnection.mBound = false;
|
||||||
mNbound = mNbound - 1;
|
mNbound = mNbound - 1;
|
||||||
Log.i(TAG,"OsdUtil.unBindFromServer() - mNbound = "+mNbound);
|
Log.i(TAG, "OsdUtil.unBindFromServer() - mNbound = " + mNbound);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.e(TAG, "unbindFromServer() - error unbinding service - " + ex.toString());
|
Log.e(TAG, "unbindFromServer() - error unbinding service - " + ex.toString());
|
||||||
writeToSysLogFile("unbindFromServer() - error unbinding service - " +ex.toString());
|
writeToSysLogFile("unbindFromServer() - error unbinding service - " + ex.toString());
|
||||||
Log.i(TAG,"OsdUtil.unBindFromServer() - mNbound = "+mNbound);
|
Log.i(TAG, "OsdUtil.unBindFromServer() - mNbound = " + mNbound);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "unbindFromServer() - not bound to server - ignoring");
|
Log.i(TAG, "unbindFromServer() - not bound to server - ignoring");
|
||||||
writeToSysLogFile("unbindFromServer() - not bound to server - ignoring");
|
writeToSysLogFile("unbindFromServer() - not bound to server - ignoring");
|
||||||
Log.i(TAG,"OsdUtil.unBindFromServer() - mNbound = "+mNbound);
|
Log.i(TAG, "OsdUtil.unBindFromServer() - mNbound = " + mNbound);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -299,7 +299,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
public boolean isMobileDataActive() {
|
public boolean isMobileDataActive() {
|
||||||
// return true if we are using mobile data, otherwise return false
|
// return true if we are using mobile data, otherwise return false
|
||||||
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
||||||
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
|
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
|
||||||
return true;
|
return true;
|
||||||
@@ -310,7 +310,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
public boolean isNetworkConnected() {
|
public boolean isNetworkConnected() {
|
||||||
// return true if we have a network connection, otherwise false.
|
// return true if we have a network connection, otherwise false.
|
||||||
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
||||||
return (activeNetwork.isConnected());
|
return (activeNetwork.isConnected());
|
||||||
}
|
}
|
||||||
@@ -332,35 +332,38 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Write a message to the system log file, provided mLogSystem is true.
|
* Write a message to the system log file, provided mLogSystem is true.
|
||||||
|
*
|
||||||
* @param msgStr
|
* @param msgStr
|
||||||
*/
|
*/
|
||||||
public void writeToSysLogFile(String msgStr) {
|
public void writeToSysLogFile(String msgStr) {
|
||||||
if (mLogSystem)
|
if (mLogSystem)
|
||||||
writeToLogFile(SYSLOG,msgStr);
|
writeToLogFile(SYSLOG, msgStr);
|
||||||
else
|
else
|
||||||
Log.v(TAG,"writeToSysLogFile - mLogSystem False so not writing");
|
Log.v(TAG, "writeToSysLogFile - mLogSystem False so not writing");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write a message to the alarm log file, provided mLogAlarms is true.
|
* Write a message to the alarm log file, provided mLogAlarms is true.
|
||||||
|
*
|
||||||
* @param msgStr
|
* @param msgStr
|
||||||
*/
|
*/
|
||||||
public void writeToAlarmLogFile(String msgStr) {
|
public void writeToAlarmLogFile(String msgStr) {
|
||||||
if (mLogAlarms)
|
if (mLogAlarms)
|
||||||
writeToLogFile(ALARMLOG,msgStr);
|
writeToLogFile(ALARMLOG, msgStr);
|
||||||
else
|
else
|
||||||
Log.v(TAG,"writeToAlarmLogFile - mLogAlarms False so not writing");
|
Log.v(TAG, "writeToAlarmLogFile - mLogAlarms False so not writing");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Write a message to the data log file, provided mLogData is true.
|
* Write a message to the data log file, provided mLogData is true.
|
||||||
|
*
|
||||||
* @param msgStr
|
* @param msgStr
|
||||||
*/
|
*/
|
||||||
public void writeToDataLogFile(String msgStr) {
|
public void writeToDataLogFile(String msgStr) {
|
||||||
if (mLogData)
|
if (mLogData)
|
||||||
writeToLogFile(DATALOG,msgStr);
|
writeToLogFile(DATALOG, msgStr);
|
||||||
else
|
else
|
||||||
Log.v(TAG,"writeToDataLogFile - mLogData False so not writing");
|
Log.v(TAG, "writeToDataLogFile - mLogData False so not writing");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -380,12 +383,11 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
if (ContextCompat.checkSelfPermission(mContext,
|
if (ContextCompat.checkSelfPermission(mContext,
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
Log.e(TAG,"ERROR: We do not have permission to write to external storage");
|
Log.e(TAG, "ERROR: We do not have permission to write to external storage");
|
||||||
} else {
|
} else {
|
||||||
if (isExternalStorageWritable()) {
|
if (isExternalStorageWritable()) {
|
||||||
try {
|
try {
|
||||||
FileWriter of = new FileWriter(getDataStorageDir().toString()
|
FileWriter of = new FileWriter(getDataStorageDir() + "/" + fname, true);
|
||||||
+ "/" + fname, true);
|
|
||||||
if (msgStr != null) {
|
if (msgStr != null) {
|
||||||
String dateTimeStr = tnow.format("%Y-%m-%d %H:%M:%S");
|
String dateTimeStr = tnow.format("%Y-%m-%d %H:%M:%S");
|
||||||
//Log.v(TAG, "writing msgStr");
|
//Log.v(TAG, "writing msgStr");
|
||||||
@@ -396,7 +398,10 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
of.close();
|
of.close();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.e(TAG, "writeToLogFile - error " + ex.toString());
|
Log.e(TAG, "writeToLogFile - error " + ex.toString());
|
||||||
showToast("ERROR Writing to Log File");
|
for (int i = 0; i < (ex.getStackTrace().length); i++) {
|
||||||
|
Log.e(TAG, "writeToLogFile - error " + ex.getStackTrace()[i]);
|
||||||
|
}
|
||||||
|
showToast(mContext.getString(R.string.ErrorWritingLogFileWarning) + ex.toString());
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.e(TAG, "ERROR - Can not Write to External Folder");
|
Log.e(TAG, "ERROR - Can not Write to External Folder");
|
||||||
@@ -404,6 +409,16 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public File[] getDataFilesList() {
|
||||||
|
File[] files = getDataStorageDir().listFiles();
|
||||||
|
Log.d("Files", "Size: "+ files.length);
|
||||||
|
for (int i = 0; i < files.length; i++)
|
||||||
|
{
|
||||||
|
Log.d("Files", "FileName:" + files[i].getName());
|
||||||
|
}
|
||||||
|
return(files);
|
||||||
|
}
|
||||||
|
|
||||||
/* Checks if external storage is available for read and write */
|
/* Checks if external storage is available for read and write */
|
||||||
public boolean isExternalStorageWritable() {
|
public boolean isExternalStorageWritable() {
|
||||||
String state = Environment.getExternalStorageState();
|
String state = Environment.getExternalStorageState();
|
||||||
@@ -415,18 +430,11 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
public File getDataStorageDir() {
|
public File getDataStorageDir() {
|
||||||
// Get the directory for the user's public directory.
|
// Get the directory for the user's public directory.
|
||||||
File file =
|
File file = mContext.getExternalFilesDir(null);
|
||||||
new File(Environment.getExternalStorageDirectory()
|
|
||||||
, "OpenSeizureDetector");
|
|
||||||
if (!file.isDirectory()) {
|
|
||||||
Log.i(TAG,"getDataStorageDir() - creating directory");
|
|
||||||
if (!file.mkdirs()) {
|
|
||||||
Log.e(TAG, "Failed to create directory");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return file;
|
return file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public String getPreferredPebbleAppPackageName() {
|
public String getPreferredPebbleAppPackageName() {
|
||||||
// returns the package name of the preferred Android Pebble App.
|
// returns the package name of the preferred Android Pebble App.
|
||||||
return "com.getpebble.android.basalt";
|
return "com.getpebble.android.basalt";
|
||||||
@@ -456,8 +464,8 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
public boolean arePermissionsOK() {
|
public boolean arePermissionsOK() {
|
||||||
boolean allOk = true;
|
boolean allOk = true;
|
||||||
Log.v(TAG,"arePermissionsOK");
|
Log.v(TAG, "arePermissionsOK");
|
||||||
for (int i = 0; i< REQUIRED_PERMISSIONS.length; i++) {
|
for (int i = 0; i < REQUIRED_PERMISSIONS.length; i++) {
|
||||||
if (ContextCompat.checkSelfPermission(mContext, REQUIRED_PERMISSIONS[i])
|
if (ContextCompat.checkSelfPermission(mContext, REQUIRED_PERMISSIONS[i])
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
Log.i(TAG, REQUIRED_PERMISSIONS[i] + " Permission Not Granted");
|
Log.i(TAG, REQUIRED_PERMISSIONS[i] + " Permission Not Granted");
|
||||||
@@ -469,8 +477,8 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
public boolean areSMSPermissionsOK() {
|
public boolean areSMSPermissionsOK() {
|
||||||
boolean allOk = true;
|
boolean allOk = true;
|
||||||
Log.v(TAG,"areSMSPermissionsOK()");
|
Log.v(TAG, "areSMSPermissionsOK()");
|
||||||
for (int i = 0; i< SMS_PERMISSIONS.length; i++) {
|
for (int i = 0; i < SMS_PERMISSIONS.length; i++) {
|
||||||
if (ContextCompat.checkSelfPermission(mContext, SMS_PERMISSIONS[i])
|
if (ContextCompat.checkSelfPermission(mContext, SMS_PERMISSIONS[i])
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
Log.i(TAG, SMS_PERMISSIONS[i] + " Permission Not Granted");
|
Log.i(TAG, SMS_PERMISSIONS[i] + " Permission Not Granted");
|
||||||
@@ -481,10 +489,9 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void requestPermissions(Activity activity) {
|
public void requestPermissions(Activity activity) {
|
||||||
if (mPermissionsRequested) {
|
if (mPermissionsRequested) {
|
||||||
Log.i(TAG,"requestPermissions() - request already sent - not doing anything");
|
Log.i(TAG, "requestPermissions() - request already sent - not doing anything");
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "requestPermissions() - requesting permissions");
|
Log.i(TAG, "requestPermissions() - requesting permissions");
|
||||||
for (int i = 0; i < REQUIRED_PERMISSIONS.length; i++) {
|
for (int i = 0; i < REQUIRED_PERMISSIONS.length; i++) {
|
||||||
@@ -502,7 +509,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
|
|
||||||
public void requestSMSPermissions(Activity activity) {
|
public void requestSMSPermissions(Activity activity) {
|
||||||
if (mSMSPermissionsRequested) {
|
if (mSMSPermissionsRequested) {
|
||||||
Log.i(TAG,"requestSMSPermissions() - request already sent - not doing anything");
|
Log.i(TAG, "requestSMSPermissions() - request already sent - not doing anything");
|
||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "requestSMSPermissions() - requesting permissions");
|
Log.i(TAG, "requestSMSPermissions() - requesting permissions");
|
||||||
for (int i = 0; i < SMS_PERMISSIONS.length; i++) {
|
for (int i = 0; i < SMS_PERMISSIONS.length; i++) {
|
||||||
@@ -522,8 +529,8 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
|||||||
@Override
|
@Override
|
||||||
public void onRequestPermissionsResult(int requestCode,
|
public void onRequestPermissionsResult(int requestCode,
|
||||||
String permissions[], int[] grantResults) {
|
String permissions[], int[] grantResults) {
|
||||||
Log.i(TAG,"onRequestPermissionsResult - Permission" + permissions + " = " + grantResults);
|
Log.i(TAG, "onRequestPermissionsResult - Permission" + permissions + " = " + grantResults);
|
||||||
showToast("Permissions Changed - restarting server");
|
showToast(mContext.getString(R.string.RestartingServerMsg));
|
||||||
stopServer();
|
stopServer();
|
||||||
// Wait 0.1 second to give the server chance to shutdown, then re-start it
|
// Wait 0.1 second to give the server chance to shutdown, then re-start it
|
||||||
mHandler.postDelayed(new Runnable() {
|
mHandler.postDelayed(new Runnable() {
|
||||||
|
|||||||
@@ -128,6 +128,7 @@ public abstract class SdDataSource {
|
|||||||
public void start() {
|
public void start() {
|
||||||
|
|
||||||
Log.v(TAG, "start()");
|
Log.v(TAG, "start()");
|
||||||
|
mUtil.writeToSysLogFile("SdDataSource.start()");
|
||||||
updatePrefs();
|
updatePrefs();
|
||||||
// Start timer to check status of watch regularly.
|
// Start timer to check status of watch regularly.
|
||||||
mDataStatusTime = new Time(Time.getCurrentTimezone());
|
mDataStatusTime = new Time(Time.getCurrentTimezone());
|
||||||
@@ -184,6 +185,7 @@ public abstract class SdDataSource {
|
|||||||
*/
|
*/
|
||||||
public void stop() {
|
public void stop() {
|
||||||
Log.v(TAG, "stop()");
|
Log.v(TAG, "stop()");
|
||||||
|
mUtil.writeToSysLogFile("SDDataSource.stop()");
|
||||||
try {
|
try {
|
||||||
// Stop the status timer
|
// Stop the status timer
|
||||||
if (mStatusTimer != null) {
|
if (mStatusTimer != null) {
|
||||||
@@ -613,7 +615,7 @@ public abstract class SdDataSource {
|
|||||||
// Only make audible warning beep if we have not received data for more than mFaultTimerPeriod seconds.
|
// Only make audible warning beep if we have not received data for more than mFaultTimerPeriod seconds.
|
||||||
if (tdiff > (mDataUpdatePeriod + mFaultTimerPeriod) * 1000) {
|
if (tdiff > (mDataUpdatePeriod + mFaultTimerPeriod) * 1000) {
|
||||||
Log.v(TAG, "getStatus() - Watch App Not Running");
|
Log.v(TAG, "getStatus() - Watch App Not Running");
|
||||||
mUtil.writeToSysLogFile("SDDataSourceBLE.getStatus() - Watch App not Running");
|
mUtil.writeToSysLogFile("SDDataSource.getStatus() - Watch App not Running");
|
||||||
//mDataStatusTime.setToNow();
|
//mDataStatusTime.setToNow();
|
||||||
mSdData.roiPower = -1;
|
mSdData.roiPower = -1;
|
||||||
mSdData.specPower = -1;
|
mSdData.specPower = -1;
|
||||||
@@ -662,7 +664,7 @@ public abstract class SdDataSource {
|
|||||||
*/
|
*/
|
||||||
public void updatePrefs() {
|
public void updatePrefs() {
|
||||||
Log.v(TAG, "updatePrefs()");
|
Log.v(TAG, "updatePrefs()");
|
||||||
mUtil.writeToSysLogFile("SDDataSourceBLE.updatePrefs()");
|
mUtil.writeToSysLogFile("SDDataSource.updatePrefs()");
|
||||||
SharedPreferences SP = PreferenceManager
|
SharedPreferences SP = PreferenceManager
|
||||||
.getDefaultSharedPreferences(mContext);
|
.getDefaultSharedPreferences(mContext);
|
||||||
try {
|
try {
|
||||||
@@ -671,8 +673,10 @@ public abstract class SdDataSource {
|
|||||||
String appRestartTimeoutStr = SP.getString("AppRestartTimeout", "10");
|
String appRestartTimeoutStr = SP.getString("AppRestartTimeout", "10");
|
||||||
mAppRestartTimeout = Integer.parseInt(appRestartTimeoutStr);
|
mAppRestartTimeout = Integer.parseInt(appRestartTimeoutStr);
|
||||||
Log.v(TAG, "updatePrefs() - mAppRestartTimeout = " + mAppRestartTimeout);
|
Log.v(TAG, "updatePrefs() - mAppRestartTimeout = " + mAppRestartTimeout);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mAppRestartTimeout = " + mAppRestartTimeout);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem with AppRestartTimeout preference!");
|
Log.v(TAG, "updatePrefs() - Problem with AppRestartTimeout preference!");
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - Problem with AppRestartTimeout preference!");
|
||||||
Toast toast = Toast.makeText(mContext, "Problem Parsing AppRestartTimeout Preference", Toast.LENGTH_SHORT);
|
Toast toast = Toast.makeText(mContext, "Problem Parsing AppRestartTimeout Preference", Toast.LENGTH_SHORT);
|
||||||
toast.show();
|
toast.show();
|
||||||
}
|
}
|
||||||
@@ -682,8 +686,10 @@ public abstract class SdDataSource {
|
|||||||
String faultTimerPeriodStr = SP.getString("FaultTimerPeriod", "30");
|
String faultTimerPeriodStr = SP.getString("FaultTimerPeriod", "30");
|
||||||
mFaultTimerPeriod = Integer.parseInt(faultTimerPeriodStr);
|
mFaultTimerPeriod = Integer.parseInt(faultTimerPeriodStr);
|
||||||
Log.v(TAG, "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
Log.v(TAG, "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem with FaultTimerPeriod preference!");
|
Log.v(TAG, "updatePrefs() - Problem with FaultTimerPeriod preference!");
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - Problem with FaultTimerPeriod preference!");
|
||||||
Toast toast = Toast.makeText(mContext, "Problem Parsing FaultTimerPeriod Preference", Toast.LENGTH_SHORT);
|
Toast toast = Toast.makeText(mContext, "Problem Parsing FaultTimerPeriod Preference", Toast.LENGTH_SHORT);
|
||||||
toast.show();
|
toast.show();
|
||||||
}
|
}
|
||||||
@@ -694,106 +700,130 @@ public abstract class SdDataSource {
|
|||||||
prefStr = SP.getString("BLE_Device_Addr", "SET_FROM_XML");
|
prefStr = SP.getString("BLE_Device_Addr", "SET_FROM_XML");
|
||||||
mBleDeviceAddr = prefStr;
|
mBleDeviceAddr = prefStr;
|
||||||
Log.v(TAG, "mBLEDeviceAddr=" + mBleDeviceAddr);
|
Log.v(TAG, "mBLEDeviceAddr=" + mBleDeviceAddr);
|
||||||
|
mUtil.writeToSysLogFile( "mBLEDeviceAddr=" + mBleDeviceAddr);
|
||||||
prefStr = SP.getString("BLE_Device_Name", "SET_FROM_XML");
|
prefStr = SP.getString("BLE_Device_Name", "SET_FROM_XML");
|
||||||
mBleDeviceName = prefStr;
|
mBleDeviceName = prefStr;
|
||||||
Log.v(TAG, "mBLEDeviceName=" + mBleDeviceName);
|
Log.v(TAG, "mBLEDeviceName=" + mBleDeviceName);
|
||||||
|
mUtil.writeToSysLogFile( "mBLEDeviceName=" + mBleDeviceName);
|
||||||
|
|
||||||
prefStr = SP.getString("PebbleDebug", "SET_FROM_XML");
|
prefStr = SP.getString("PebbleDebug", "SET_FROM_XML");
|
||||||
if (prefStr != null) {
|
if (prefStr != null) {
|
||||||
mDebug = (short) Integer.parseInt(prefStr);
|
mDebug = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() Debug = " + mDebug);
|
Log.v(TAG, "updatePrefs() Debug = " + mDebug);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() Debug = " + mDebug);
|
||||||
|
|
||||||
prefStr = SP.getString("PebbleDisplaySpectrum", "SET_FROM_XML");
|
prefStr = SP.getString("PebbleDisplaySpectrum", "SET_FROM_XML");
|
||||||
mDisplaySpectrum = (short) Integer.parseInt(prefStr);
|
mDisplaySpectrum = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() DisplaySpectrum = " + mDisplaySpectrum);
|
Log.v(TAG, "updatePrefs() DisplaySpectrum = " + mDisplaySpectrum);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() DisplaySpectrum = " + mDisplaySpectrum);
|
||||||
|
|
||||||
prefStr = SP.getString("PebbleUpdatePeriod", "SET_FROM_XML");
|
prefStr = SP.getString("PebbleUpdatePeriod", "SET_FROM_XML");
|
||||||
mDataUpdatePeriod = (short) Integer.parseInt(prefStr);
|
mDataUpdatePeriod = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() DataUpdatePeriod = " + mDataUpdatePeriod);
|
Log.v(TAG, "updatePrefs() DataUpdatePeriod = " + mDataUpdatePeriod);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() DataUpdatePeriod = " + mDataUpdatePeriod);
|
||||||
|
|
||||||
prefStr = SP.getString("MutePeriod", "SET_FROM_XML");
|
prefStr = SP.getString("MutePeriod", "SET_FROM_XML");
|
||||||
mMutePeriod = (short) Integer.parseInt(prefStr);
|
mMutePeriod = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() MutePeriod = " + mMutePeriod);
|
Log.v(TAG, "updatePrefs() MutePeriod = " + mMutePeriod);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() MutePeriod = " + mMutePeriod);
|
||||||
|
|
||||||
prefStr = SP.getString("ManAlarmPeriod", "SET_FROM_XML");
|
prefStr = SP.getString("ManAlarmPeriod", "SET_FROM_XML");
|
||||||
mManAlarmPeriod = (short) Integer.parseInt(prefStr);
|
mManAlarmPeriod = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() ManAlarmPeriod = " + mManAlarmPeriod);
|
Log.v(TAG, "updatePrefs() ManAlarmPeriod = " + mManAlarmPeriod);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() ManAlarmPeriod = " + mManAlarmPeriod);
|
||||||
|
|
||||||
prefStr = SP.getString("PebbleSdMode", "SET_FROM_XML");
|
prefStr = SP.getString("PebbleSdMode", "SET_FROM_XML");
|
||||||
mPebbleSdMode = (short) Integer.parseInt(prefStr);
|
mPebbleSdMode = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() PebbleSdMode = " + mPebbleSdMode);
|
Log.v(TAG, "updatePrefs() PebbleSdMode = " + mPebbleSdMode);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() PebbleSdMode = " + mPebbleSdMode);
|
||||||
|
|
||||||
prefStr = SP.getString("SampleFreq", "SET_FROM_XML");
|
prefStr = SP.getString("SampleFreq", "SET_FROM_XML");
|
||||||
mSampleFreq = (short) Integer.parseInt(prefStr);
|
mSampleFreq = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() SampleFreq = " + mSampleFreq);
|
Log.v(TAG, "updatePrefs() SampleFreq = " + mSampleFreq);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() SampleFreq = " + mSampleFreq);
|
||||||
|
|
||||||
prefStr = SP.getString("SamplePeriod", "SET_FROM_XML");
|
prefStr = SP.getString("SamplePeriod", "SET_FROM_XML");
|
||||||
mSamplePeriod = (short) Integer.parseInt(prefStr);
|
mSamplePeriod = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AnalysisPeriod = " + mSamplePeriod);
|
Log.v(TAG, "updatePrefs() AnalysisPeriod = " + mSamplePeriod);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() AnalysisPeriod = " + mSamplePeriod);
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmFreqMin", "SET_FROM_XML");
|
prefStr = SP.getString("AlarmFreqMin", "SET_FROM_XML");
|
||||||
mAlarmFreqMin = (short) Integer.parseInt(prefStr);
|
mAlarmFreqMin = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin);
|
Log.v(TAG, "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin);
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmFreqMax", "SET_FROM_XML");
|
prefStr = SP.getString("AlarmFreqMax", "SET_FROM_XML");
|
||||||
mAlarmFreqMax = (short) Integer.parseInt(prefStr);
|
mAlarmFreqMax = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmFreqMax = " + mAlarmFreqMax);
|
Log.v(TAG, "updatePrefs() AlarmFreqMax = " + mAlarmFreqMax);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() AlarmFreqMax = " + mAlarmFreqMax);
|
||||||
|
|
||||||
prefStr = SP.getString("WarnTime", "SET_FROM_XML");
|
prefStr = SP.getString("WarnTime", "SET_FROM_XML");
|
||||||
mWarnTime = (short) Integer.parseInt(prefStr);
|
mWarnTime = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() WarnTime = " + mWarnTime);
|
Log.v(TAG, "updatePrefs() WarnTime = " + mWarnTime);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() WarnTime = " + mWarnTime);
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmTime", "SET_FROM_XML");
|
prefStr = SP.getString("AlarmTime", "SET_FROM_XML");
|
||||||
mAlarmTime = (short) Integer.parseInt(prefStr);
|
mAlarmTime = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmTime = " + mAlarmTime);
|
Log.v(TAG, "updatePrefs() AlarmTime = " + mAlarmTime);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() AlarmTime = " + mAlarmTime);
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmThresh", "SET_FROM_XML");
|
prefStr = SP.getString("AlarmThresh", "SET_FROM_XML");
|
||||||
mAlarmThresh = (short) Integer.parseInt(prefStr);
|
mAlarmThresh = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmThresh = " + mAlarmThresh);
|
Log.v(TAG, "updatePrefs() AlarmThresh = " + mAlarmThresh);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() AlarmThresh = " + mAlarmThresh);
|
||||||
|
|
||||||
prefStr = SP.getString("AlarmRatioThresh", "SET_FROM_XML");
|
prefStr = SP.getString("AlarmRatioThresh", "SET_FROM_XML");
|
||||||
mAlarmRatioThresh = (short) Integer.parseInt(prefStr);
|
mAlarmRatioThresh = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() AlarmRatioThresh = " + mAlarmRatioThresh);
|
Log.v(TAG, "updatePrefs() AlarmRatioThresh = " + mAlarmRatioThresh);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() AlarmRatioThresh = " + mAlarmRatioThresh);
|
||||||
|
|
||||||
mFallActive = SP.getBoolean("FallActive", false);
|
mFallActive = SP.getBoolean("FallActive", false);
|
||||||
Log.v(TAG, "updatePrefs() FallActive = " + mFallActive);
|
Log.v(TAG, "updatePrefs() FallActive = " + mFallActive);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() FallActive = " + mFallActive);
|
||||||
|
|
||||||
prefStr = SP.getString("FallThreshMin", "SET_FROM_XML");
|
prefStr = SP.getString("FallThreshMin", "SET_FROM_XML");
|
||||||
mFallThreshMin = (short) Integer.parseInt(prefStr);
|
mFallThreshMin = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() FallThreshMin = " + mFallThreshMin);
|
Log.v(TAG, "updatePrefs() FallThreshMin = " + mFallThreshMin);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() FallThreshMin = " + mFallThreshMin);
|
||||||
|
|
||||||
prefStr = SP.getString("FallThreshMax", "SET_FROM_XML");
|
prefStr = SP.getString("FallThreshMax", "SET_FROM_XML");
|
||||||
mFallThreshMax = (short) Integer.parseInt(prefStr);
|
mFallThreshMax = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() FallThreshMax = " + mFallThreshMax);
|
Log.v(TAG, "updatePrefs() FallThreshMax = " + mFallThreshMax);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() FallThreshMax = " + mFallThreshMax);
|
||||||
|
|
||||||
prefStr = SP.getString("FallWindow", "SET_FROM_XML");
|
prefStr = SP.getString("FallWindow", "SET_FROM_XML");
|
||||||
mFallWindow = (short) Integer.parseInt(prefStr);
|
mFallWindow = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() FallWindow = " + mFallWindow);
|
Log.v(TAG, "updatePrefs() FallWindow = " + mFallWindow);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() FallWindow = " + mFallWindow);
|
||||||
|
|
||||||
mSdData.mHRAlarmActive = SP.getBoolean("HRAlarmActive", false);
|
mSdData.mHRAlarmActive = SP.getBoolean("HRAlarmActive", false);
|
||||||
Log.v(TAG, "updatePrefs() HRAlarmActive = " + mSdData.mHRAlarmActive);
|
Log.v(TAG, "updatePrefs() HRAlarmActive = " + mSdData.mHRAlarmActive);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() HRAlarmActive = " + mSdData.mHRAlarmActive);
|
||||||
|
|
||||||
mSdData.mHRNullAsAlarm = SP.getBoolean("HRNullAsAlarm", false);
|
mSdData.mHRNullAsAlarm = SP.getBoolean("HRNullAsAlarm", false);
|
||||||
Log.v(TAG, "updatePrefs() HRNullAsAlarm = " + mSdData.mHRNullAsAlarm);
|
Log.v(TAG, "updatePrefs() HRNullAsAlarm = " + mSdData.mHRNullAsAlarm);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() HRNullAsAlarm = " + mSdData.mHRNullAsAlarm);
|
||||||
|
|
||||||
prefStr = SP.getString("HRThreshMin", "SET_FROM_XML");
|
prefStr = SP.getString("HRThreshMin", "SET_FROM_XML");
|
||||||
mSdData.mHRThreshMin = (short) Integer.parseInt(prefStr);
|
mSdData.mHRThreshMin = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() HRThreshMin = " + mSdData.mHRThreshMin);
|
Log.v(TAG, "updatePrefs() HRThreshMin = " + mSdData.mHRThreshMin);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() HRThreshMin = " + mSdData.mHRThreshMin);
|
||||||
|
|
||||||
prefStr = SP.getString("HRThreshMax", "SET_FROM_XML");
|
prefStr = SP.getString("HRThreshMax", "SET_FROM_XML");
|
||||||
mSdData.mHRThreshMax = (short) Integer.parseInt(prefStr);
|
mSdData.mHRThreshMax = (short) Integer.parseInt(prefStr);
|
||||||
Log.v(TAG, "updatePrefs() HRThreshMax = " + mSdData.mHRThreshMax);
|
Log.v(TAG, "updatePrefs() HRThreshMax = " + mSdData.mHRThreshMax);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() HRThreshMax = " + mSdData.mHRThreshMax);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
Log.v(TAG, "updatePrefs() - prefStr is null - WHY????");
|
Log.v(TAG, "updatePrefs() - prefStr is null - WHY????");
|
||||||
mUtil.writeToSysLogFile("SDDataSourceBLE.updatePrefs() - prefStr is null - WHY??");
|
mUtil.writeToSysLogFile("SDDataSource.updatePrefs() - prefStr is null - WHY??");
|
||||||
Toast toast = Toast.makeText(mContext, "Problem Parsing Preferences - Something won't work - Please go back to Settings and correct it!", Toast.LENGTH_SHORT);
|
Toast toast = Toast.makeText(mContext, "Problem Parsing Preferences - Something won't work - Please go back to Settings and correct it!", Toast.LENGTH_SHORT);
|
||||||
toast.show();
|
toast.show();
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
||||||
mUtil.writeToSysLogFile("SDDataSourceBLE.updatePrefs() - ERROR " + ex.toString());
|
mUtil.writeToSysLogFile("SDDataSource.updatePrefs() - ERROR " + ex.toString());
|
||||||
Toast toast = Toast.makeText(mContext, "Problem Parsing Preferences - Something won't work - Please go back to Settings and correct it!", Toast.LENGTH_SHORT);
|
Toast toast = Toast.makeText(mContext, "Problem Parsing Preferences - Something won't work - Please go back to Settings and correct it!", Toast.LENGTH_SHORT);
|
||||||
toast.show();
|
toast.show();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,27 +23,10 @@
|
|||||||
*/
|
*/
|
||||||
package uk.org.openseizuredetector;
|
package uk.org.openseizuredetector;
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
|
||||||
import android.content.IntentFilter;
|
|
||||||
import android.content.SharedPreferences;
|
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.text.format.Time;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.Toast;
|
|
||||||
|
|
||||||
import org.json.JSONArray;
|
|
||||||
import org.json.JSONException;
|
|
||||||
import org.json.JSONObject;
|
|
||||||
import org.jtransforms.fft.DoubleFFT_1D;
|
|
||||||
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Timer;
|
|
||||||
import java.util.TimerTask;
|
|
||||||
|
|
||||||
import static java.lang.Long.parseLong;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -256,11 +256,11 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
mSdDataSource = new SdDataSourcePhone(this.getApplicationContext(), mHandler, this);
|
mSdDataSource = new SdDataSourcePhone(this.getApplicationContext(), mHandler, this);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Log.e(TAG, "Datasource " + mSdDataSourceName + " not recognised - Defaulting to Pebble");
|
Log.e(TAG, "Datasource " + mSdDataSourceName + " not recognised - Defaulting to Phone");
|
||||||
mUtil.writeToSysLogFile("SdServer.onStartCommand() - Datasource " + mSdDataSourceName + " not recognised - exiting");
|
//mUtil.writeToSysLogFile("SdServer.onStartCommand() - Datasource " + mSdDataSourceName + " not recognised - exiting");
|
||||||
mUtil.showToast("Datasource " + mSdDataSourceName + " not recognised - Defaulting to Pebble");
|
mUtil.showToast(getString(R.string.DatasourceTitle) + " " + mSdDataSourceName + getString(R.string.DefaultingToPhoneMsg));
|
||||||
mUtil.writeToSysLogFile("SdServer.onStartCommand() - creating SdDataSourcePebble");
|
mUtil.writeToSysLogFile("SdServer.onStartCommand() - creating SdDataSourcePhone");
|
||||||
mSdDataSource = new SdDataSourcePebble(this.getApplicationContext(), mHandler, this);
|
mSdDataSource = new SdDataSourcePhone(this.getApplicationContext(), mHandler, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mSMSAlarm) {
|
if (mSMSAlarm) {
|
||||||
@@ -349,7 +349,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Log.e(TAG, "Error Releasing Wakelock - " + e.toString());
|
Log.e(TAG, "Error Releasing Wakelock - " + e.toString());
|
||||||
mUtil.writeToSysLogFile("SdServer.onDestroy() - Error releasing wakelock.");
|
mUtil.writeToSysLogFile("SdServer.onDestroy() - Error releasing wakelock.");
|
||||||
mUtil.showToast("Error Releasing Wakelock");
|
mUtil.showToast(getString(R.string.ErrorReleasingWakelockMsg));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Log.d(TAG, "mmm...mWakeLock is null, so not releasing lock. This shouldn't happen!");
|
Log.d(TAG, "mmm...mWakeLock is null, so not releasing lock. This shouldn't happen!");
|
||||||
@@ -393,10 +393,6 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Cancel the notification.
|
|
||||||
Log.v(TAG, "onDestroy(): cancelling notification");
|
|
||||||
mUtil.writeToSysLogFile("SdServer.onDestroy - cancelling notification");
|
|
||||||
mNM.cancel(NOTIFICATION_ID);
|
|
||||||
// Stop web server
|
// Stop web server
|
||||||
Log.v(TAG, "onDestroy(): stopping web server");
|
Log.v(TAG, "onDestroy(): stopping web server");
|
||||||
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping Web Server");
|
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping Web Server");
|
||||||
@@ -406,6 +402,12 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
mToneGenerator.release();
|
mToneGenerator.release();
|
||||||
mToneGenerator = null;
|
mToneGenerator = null;
|
||||||
|
|
||||||
|
this.stopForeground(true);
|
||||||
|
// Cancel the notification.
|
||||||
|
Log.v(TAG, "onDestroy(): cancelling notification");
|
||||||
|
mUtil.writeToSysLogFile("SdServer.onDestroy - cancelling notification");
|
||||||
|
mNM.cancel(NOTIFICATION_ID);
|
||||||
|
|
||||||
// stop this service.
|
// stop this service.
|
||||||
Log.v(TAG, "onDestroy(): calling stopSelf()");
|
Log.v(TAG, "onDestroy(): calling stopSelf()");
|
||||||
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping self");
|
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping self");
|
||||||
@@ -589,11 +591,11 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
sendPhoneAlarm();
|
sendPhoneAlarm();
|
||||||
mSMSTime = tnow;
|
mSMSTime = tnow;
|
||||||
} else {
|
} else {
|
||||||
mUtil.showToast("SMS Alarm already sent - not re-sending");
|
mUtil.showToast(getString(R.string.SMSAlarmAlreadySentMsg));
|
||||||
Log.v(TAG, "SMS Alarm already sent - not re-sending");
|
Log.v(TAG, "SMS Alarm already sent - not re-sending");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mUtil.showToast("mSMSAlarm is false - not sending");
|
mUtil.showToast(getString(R.string.SMSAlarmDisabledNotSendingMsg));
|
||||||
Log.v(TAG, "mSMSAlarm is false - not sending");
|
Log.v(TAG, "mSMSAlarm is false - not sending");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -625,7 +627,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
sendSMSAlarm();
|
sendSMSAlarm();
|
||||||
mSMSTime = tnow;
|
mSMSTime = tnow;
|
||||||
} else {
|
} else {
|
||||||
mUtil.showToast("SMS Alarm already sent - not re-sending");
|
mUtil.showToast(getString(R.string.SMSAlarmAlreadySentMsg));
|
||||||
Log.v(TAG, "SMS Alarm already sent - not re-sending");
|
Log.v(TAG, "SMS Alarm already sent - not re-sending");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -663,7 +665,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
Log.v(TAG, "SMS Alarm already sent - not re-sending");
|
Log.v(TAG, "SMS Alarm already sent - not re-sending");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
mUtil.showToast("mSMSAlarm is false - not sending");
|
mUtil.showToast(getString(R.string.SMSAlarmDisabledNotSendingMsg));
|
||||||
Log.v(TAG, "mSMSAlarm is false - not sending");
|
Log.v(TAG, "mSMSAlarm is false - not sending");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -724,7 +726,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
mToneGenerator.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, duration);
|
mToneGenerator.startTone(ToneGenerator.TONE_CDMA_ALERT_CALL_GUARD, duration);
|
||||||
Log.v(TAG, "beep()");
|
Log.v(TAG, "beep()");
|
||||||
} else {
|
} else {
|
||||||
mUtil.showToast("Warning mToneGenerator is null - not beeping!!!");
|
mUtil.showToast(getString(R.string.PleaseForceStopOSDorRebootMsg));
|
||||||
Log.v(TAG, "beep() - Warming mToneGenerator is null - not beeping!!!");
|
Log.v(TAG, "beep() - Warming mToneGenerator is null - not beeping!!!");
|
||||||
mUtil.writeToSysLogFile("SdServer.beep() - mToneGenerator is null???");
|
mUtil.writeToSysLogFile("SdServer.beep() - mToneGenerator is null???");
|
||||||
}
|
}
|
||||||
@@ -806,7 +808,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
if (mSMSAlarm) {
|
if (mSMSAlarm) {
|
||||||
if (!mCancelAudible) {
|
if (!mCancelAudible) {
|
||||||
if (!mUtil.areSMSPermissionsOK()) {
|
if (!mUtil.areSMSPermissionsOK()) {
|
||||||
mUtil.showToast("ERROR - Permission for SMS or Location Denied - Not Sending SMS");
|
mUtil.showToast(getString(R.string.SMSPermissionsDeniedMsg));
|
||||||
Log.e(TAG, "ERROR - Permission for SMS or Location Denied - Not Sending SMS");
|
Log.e(TAG, "ERROR - Permission for SMS or Location Denied - Not Sending SMS");
|
||||||
} else {
|
} else {
|
||||||
//mSMSAlertDialog = new AlertDialog.Builder(this);
|
//mSMSAlertDialog = new AlertDialog.Builder(this);
|
||||||
@@ -978,7 +980,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
Log.i(TAG, "startWebServer()");
|
Log.i(TAG, "startWebServer()");
|
||||||
mUtil.writeToSysLogFile("SdServer.Start Web Server.");
|
mUtil.writeToSysLogFile("SdServer.Start Web Server.");
|
||||||
if (webServer == null) {
|
if (webServer == null) {
|
||||||
webServer = new SdWebServer(getApplicationContext(), mUtil.getDataStorageDir(), mSdData, this);
|
webServer = new SdWebServer(getApplicationContext(), mSdData, this);
|
||||||
try {
|
try {
|
||||||
webServer.start();
|
webServer.start();
|
||||||
} catch (IOException ioe) {
|
} catch (IOException ioe) {
|
||||||
@@ -1009,6 +1011,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
} else {
|
} else {
|
||||||
if (webServer.isAlive()) {
|
if (webServer.isAlive()) {
|
||||||
Log.w(TAG, "stopWebServer() - server still alive???");
|
Log.w(TAG, "stopWebServer() - server still alive???");
|
||||||
|
mUtil.writeToSysLogFile( "stopWebServer() - server still alive???");
|
||||||
} else {
|
} else {
|
||||||
mUtil.writeToSysLogFile("stopWebServer() - server died ok");
|
mUtil.writeToSysLogFile("stopWebServer() - server died ok");
|
||||||
Log.v(TAG, "stopWebServer() - server died ok");
|
Log.v(TAG, "stopWebServer() - server died ok");
|
||||||
@@ -1025,7 +1028,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
Log.v(TAG, "NetworkBroadCastReceiver.onReceive");
|
Log.v(TAG, "NetworkBroadCastReceiver.onReceive");
|
||||||
//mUtil.writeToSysLogFile("Network State Changed" + intent.getAction());
|
mUtil.writeToSysLogFile("NetworkBroadcastReceiver.onReceive(): Network State Changed" + intent.getAction());
|
||||||
//mUtil.showToast("Network State Changed" + intent.getAction());
|
//mUtil.showToast("Network State Changed" + intent.getAction());
|
||||||
|
|
||||||
ConnectivityManager cm =
|
ConnectivityManager cm =
|
||||||
@@ -1086,53 +1089,71 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
try {
|
try {
|
||||||
mSdDataSourceName = SP.getString("DataSource", "Pebble");
|
mSdDataSourceName = SP.getString("DataSource", "Pebble");
|
||||||
Log.v(TAG, "updatePrefs() - DataSource = " + mSdDataSourceName);
|
Log.v(TAG, "updatePrefs() - DataSource = " + mSdDataSourceName);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - DataSource = " + mSdDataSourceName);
|
||||||
mLatchAlarms = SP.getBoolean("LatchAlarms", false);
|
mLatchAlarms = SP.getBoolean("LatchAlarms", false);
|
||||||
Log.v(TAG, "updatePrefs() - mLatchAlarms = " + mLatchAlarms);
|
Log.v(TAG, "updatePrefs() - mLatchAlarms = " + mLatchAlarms);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mLatchAlarms = " + mLatchAlarms);
|
||||||
// Parse the LatchAlarmPeriod setting.
|
// Parse the LatchAlarmPeriod setting.
|
||||||
try {
|
try {
|
||||||
String latchAlarmPeriodStr = SP.getString("LatchAlarmTimerPeriod", "30");
|
String latchAlarmPeriodStr = SP.getString("LatchAlarmTimerPeriod", "30");
|
||||||
mLatchAlarmPeriod = Integer.parseInt(latchAlarmPeriodStr);
|
mLatchAlarmPeriod = Integer.parseInt(latchAlarmPeriodStr);
|
||||||
Log.v(TAG, "updatePrefs() - mLatchAlarmTimerPeriod = " + mLatchAlarmPeriod);
|
Log.v(TAG, "updatePrefs() - mLatchAlarmTimerPeriod = " + mLatchAlarmPeriod);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mLatchAlarmTimerPeriod = " + mLatchAlarmPeriod);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem with LatchAlarmTimerPeriod preference!");
|
Log.v(TAG, "updatePrefs() - Problem with LatchAlarmTimerPeriod preference!");
|
||||||
mUtil.showToast("Problem Parsing LatchAlarmTimerPeriod Preference");
|
mUtil.writeToSysLogFile( "updatePrefs() - Problem with LatchAlarmTimerPeriod preference!");
|
||||||
|
mUtil.showToast(getString(R.string.problem_parsing_preferences));
|
||||||
}
|
}
|
||||||
mAudibleFaultWarning = SP.getBoolean("AudibleFaultWarning", true);
|
mAudibleFaultWarning = SP.getBoolean("AudibleFaultWarning", true);
|
||||||
Log.v(TAG, "updatePrefs() - mAuidbleFaultWarning = " + mAudibleFaultWarning);
|
Log.v(TAG, "updatePrefs() - mAuidbleFaultWarning = " + mAudibleFaultWarning);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mAuidbleFaultWarning = " + mAudibleFaultWarning);
|
||||||
// Parse the faultTimer period setting.
|
// Parse the faultTimer period setting.
|
||||||
try {
|
try {
|
||||||
String faultTimerPeriodStr = SP.getString("FaultTimerPeriod", "30");
|
String faultTimerPeriodStr = SP.getString("FaultTimerPeriod", "30");
|
||||||
mFaultTimerPeriod = Integer.parseInt(faultTimerPeriodStr);
|
mFaultTimerPeriod = Integer.parseInt(faultTimerPeriodStr);
|
||||||
Log.v(TAG, "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
Log.v(TAG, "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem with FaultTimerPeriod preference!");
|
Log.v(TAG, "updatePrefs() - Problem with FaultTimerPeriod preference!");
|
||||||
mUtil.showToast("Problem Parsing FaultTimerPeriod Preference");
|
mUtil.writeToSysLogFile("updatePrefs() - Problem with FaultTimerPeriod preference!");
|
||||||
|
mUtil.showToast(getString(R.string.problem_parsing_preferences));
|
||||||
}
|
}
|
||||||
|
|
||||||
mAudibleAlarm = SP.getBoolean("AudibleAlarm", true);
|
mAudibleAlarm = SP.getBoolean("AudibleAlarm", true);
|
||||||
Log.v(TAG, "updatePrefs() - mAuidbleAlarm = " + mAudibleAlarm);
|
Log.v(TAG, "updatePrefs() - mAuidbleAlarm = " + mAudibleAlarm);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mAuidbleAlarm = " + mAudibleAlarm);
|
||||||
mAudibleWarning = SP.getBoolean("AudibleWarning", true);
|
mAudibleWarning = SP.getBoolean("AudibleWarning", true);
|
||||||
Log.v(TAG, "updatePrefs() - mAuidbleWarning = " + mAudibleWarning);
|
Log.v(TAG, "updatePrefs() - mAuidbleWarning = " + mAudibleWarning);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mAuidbleWarning = " + mAudibleWarning);
|
||||||
mMp3Alarm = SP.getBoolean("UseMp3Alarm", false);
|
mMp3Alarm = SP.getBoolean("UseMp3Alarm", false);
|
||||||
Log.v(TAG, "updatePrefs() - mMp3Alarm = " + mMp3Alarm);
|
Log.v(TAG, "updatePrefs() - mMp3Alarm = " + mMp3Alarm);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mMp3Alarm = " + mMp3Alarm);
|
||||||
|
|
||||||
mSMSAlarm = SP.getBoolean("SMSAlarm", false);
|
mSMSAlarm = SP.getBoolean("SMSAlarm", false);
|
||||||
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||||
mPhoneAlarm = SP.getBoolean("PhoneCallAlarm", false);
|
mPhoneAlarm = SP.getBoolean("PhoneCallAlarm", false);
|
||||||
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||||
String SMSNumberStr = SP.getString("SMSNumbers", "");
|
String SMSNumberStr = SP.getString("SMSNumbers", "");
|
||||||
mSMSNumbers = SMSNumberStr.split(",");
|
mSMSNumbers = SMSNumberStr.split(",");
|
||||||
mSMSMsgStr = SP.getString("SMSMsg", "Seizure Detected!!!");
|
mSMSMsgStr = SP.getString("SMSMsg", "Seizure Detected!!!");
|
||||||
Log.v(TAG, "updatePrefs() - SMSNumberStr = " + SMSNumberStr);
|
Log.v(TAG, "updatePrefs() - SMSNumberStr = " + SMSNumberStr);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - SMSNumberStr = " + SMSNumberStr);
|
||||||
Log.v(TAG, "updatePrefs() - mSMSNumbers = " + mSMSNumbers);
|
Log.v(TAG, "updatePrefs() - mSMSNumbers = " + mSMSNumbers);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mSMSNumbers = " + mSMSNumbers);
|
||||||
mLogAlarms = SP.getBoolean("LogAlarms", true);
|
mLogAlarms = SP.getBoolean("LogAlarms", true);
|
||||||
Log.v(TAG, "updatePrefs() - mLogAlarms = " + mLogAlarms);
|
Log.v(TAG, "updatePrefs() - mLogAlarms = " + mLogAlarms);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mLogAlarms = " + mLogAlarms);
|
||||||
mLogData = SP.getBoolean("LogData", true);
|
mLogData = SP.getBoolean("LogData", true);
|
||||||
Log.v(TAG, "updatePrefs() - mLogData = " + mLogData);
|
Log.v(TAG, "updatePrefs() - mLogData = " + mLogData);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mLogData = " + mLogData);
|
||||||
mLogDataRemote = SP.getBoolean("LogDataRemote", false);
|
mLogDataRemote = SP.getBoolean("LogDataRemote", false);
|
||||||
Log.v(TAG, "updatePrefs() - mLogDataRemote = " + mLogDataRemote);
|
Log.v(TAG, "updatePrefs() - mLogDataRemote = " + mLogDataRemote);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mLogDataRemote = " + mLogDataRemote);
|
||||||
mLogDataRemoteMobile = SP.getBoolean("LogDataRemoteMobile", false);
|
mLogDataRemoteMobile = SP.getBoolean("LogDataRemoteMobile", false);
|
||||||
Log.v(TAG, "updatePrefs() - mLogDataRemoteMobile = " + mLogDataRemoteMobile);
|
Log.v(TAG, "updatePrefs() - mLogDataRemoteMobile = " + mLogDataRemoteMobile);
|
||||||
|
mUtil.writeToSysLogFile("updatePrefs() - mLogDataRemoteMobile = " + mLogDataRemoteMobile);
|
||||||
mOSDUname = SP.getString("OSDUname", "<username>");
|
mOSDUname = SP.getString("OSDUname", "<username>");
|
||||||
Log.v(TAG, "updatePrefs() - mOSDUname = " + mOSDUname);
|
Log.v(TAG, "updatePrefs() - mOSDUname = " + mOSDUname);
|
||||||
mOSDPasswd = SP.getString("OSDPasswd", "<passwd>");
|
mOSDPasswd = SP.getString("OSDPasswd", "<passwd>");
|
||||||
@@ -1141,6 +1162,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
Log.v(TAG, "updatePrefs() - mOSDWearerId = " + mOSDWearerId);
|
Log.v(TAG, "updatePrefs() - mOSDWearerId = " + mOSDWearerId);
|
||||||
mOSDUrl = SP.getString("OSDUrl", "http://openseizuredetector.org.uk/webApi");
|
mOSDUrl = SP.getString("OSDUrl", "http://openseizuredetector.org.uk/webApi");
|
||||||
Log.v(TAG, "updatePrefs() - mOSDUrl = " + mOSDUrl);
|
Log.v(TAG, "updatePrefs() - mOSDUrl = " + mOSDUrl);
|
||||||
|
mUtil.writeToSysLogFile( "updatePrefs() - mOSDUrl = " + mOSDUrl);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
||||||
mUtil.writeToSysLogFile("SdServer.updatePrefs() - Error " + ex.toString());
|
mUtil.writeToSysLogFile("SdServer.updatePrefs() - Error " + ex.toString());
|
||||||
@@ -1184,7 +1206,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
|||||||
// Open output directory on SD Card.
|
// Open output directory on SD Card.
|
||||||
if (mUtil.isExternalStorageWritable()) {
|
if (mUtil.isExternalStorageWritable()) {
|
||||||
try {
|
try {
|
||||||
FileWriter of = new FileWriter(mUtil.getDataStorageDir().toString()
|
FileWriter of = new FileWriter(getExternalFilesDir(null).toString()
|
||||||
+ "/" + fname, true);
|
+ "/" + fname, true);
|
||||||
if (mSdData != null) {
|
if (mSdData != null) {
|
||||||
if (alarm) {
|
if (alarm) {
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package uk.org.openseizuredetector;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.res.AssetManager;
|
import android.content.res.AssetManager;
|
||||||
|
import android.os.Handler;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
@@ -28,15 +29,17 @@ public class SdWebServer extends NanoHTTPD {
|
|||||||
private SdData mSdData;
|
private SdData mSdData;
|
||||||
private SdServer mSdServer;
|
private SdServer mSdServer;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
private File mDataStorageDir = null;
|
private Handler mHandler;
|
||||||
|
private OsdUtil mUtil;
|
||||||
|
|
||||||
public SdWebServer(Context context, File storageDir, SdData sdData, SdServer sdServer) {
|
public SdWebServer(Context context, SdData sdData, SdServer sdServer) {
|
||||||
// Set the port to listen on (8080)
|
// Set the port to listen on (8080)
|
||||||
super(8080);
|
super(8080);
|
||||||
mSdData = sdData;
|
mSdData = sdData;
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mSdServer = sdServer;
|
mSdServer = sdServer;
|
||||||
mDataStorageDir = storageDir;
|
mHandler = new Handler();
|
||||||
|
mUtil = new OsdUtil(mContext, mHandler);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSdData(SdData sdData) {
|
public void setSdData(SdData sdData) {
|
||||||
@@ -235,16 +238,16 @@ public class SdWebServer extends NanoHTTPD {
|
|||||||
if (uriParts.countTokens() == 1) {
|
if (uriParts.countTokens() == 1) {
|
||||||
Log.v(TAG, "Returning list of files");
|
Log.v(TAG, "Returning list of files");
|
||||||
|
|
||||||
File dirs = mDataStorageDir;
|
|
||||||
try {
|
try {
|
||||||
JSONObject jsonObj = new JSONObject();
|
JSONObject jsonObj = new JSONObject();
|
||||||
if (dirs.exists()) {
|
File[] fileList = mUtil.getDataFilesList();
|
||||||
String[] fileList = dirs.list();
|
Log.v(TAG, "serveLogFile(): fileList=" + fileList.toString()+", length="+fileList.length);
|
||||||
JSONArray arr = new JSONArray();
|
JSONArray arr = new JSONArray();
|
||||||
for (int i = 0; i < fileList.length; i++)
|
for (int i = 0; i < fileList.length; i++) {
|
||||||
arr.put(fileList[i]);
|
Log.v(TAG, "serveLogFile(): file[" + i + "]=" + fileList[i]);
|
||||||
jsonObj.put("logFileList", arr);
|
arr.put(fileList[i].getName());
|
||||||
}
|
}
|
||||||
|
jsonObj.put("logFileList", arr);
|
||||||
res = new NanoHTTPD.Response(NanoHTTPD.Response.Status.OK,
|
res = new NanoHTTPD.Response(NanoHTTPD.Response.Status.OK,
|
||||||
"text/html", jsonObj.toString());
|
"text/html", jsonObj.toString());
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
@@ -256,7 +259,7 @@ public class SdWebServer extends NanoHTTPD {
|
|||||||
|
|
||||||
uripart = uriParts.nextToken(); // This will just be /logs
|
uripart = uriParts.nextToken(); // This will just be /logs
|
||||||
uripart = uriParts.nextToken(); // this is the requested file.
|
uripart = uriParts.nextToken(); // this is the requested file.
|
||||||
String fname = mDataStorageDir.toString() + "/" + uripart;
|
String fname = mUtil.getDataStorageDir().toString() + "/" + uripart;
|
||||||
Log.v(TAG, "serveLogFile - uri=" + uri + ", fname=" + fname);
|
Log.v(TAG, "serveLogFile - uri=" + uri + ", fname=" + fname);
|
||||||
ip = new FileInputStream(fname);
|
ip = new FileInputStream(fname);
|
||||||
String mimeStr = "text/html";
|
String mimeStr = "text/html";
|
||||||
|
|||||||
@@ -122,13 +122,13 @@
|
|||||||
android:id="@+id/acceptAlarmButton"
|
android:id="@+id/acceptAlarmButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Accept Alarm" />
|
android:text="@string/AcceptAlarmBtnTxt" />
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
android:id="@+id/cancelAudibleButton"
|
android:id="@+id/cancelAudibleButton"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="Cancel Audible (temporarily)" />
|
android:text="@string/CancelAudibleButtonTxt" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<com.github.mikephil.charting.charts.BarChart
|
<com.github.mikephil.charting.charts.BarChart
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||||
android:text="Starting......"
|
android:text="@string/StartingTitle"
|
||||||
android:id="@+id/dataSourceTextView"
|
android:id="@+id/dataSourceTextView"
|
||||||
android:layout_gravity="center_horizontal" />
|
android:layout_gravity="center_horizontal" />
|
||||||
|
|
||||||
|
|||||||
10
app/src/main/res/values-pl/datasource_list.xml
Normal file
10
app/src/main/res/values-pl/datasource_list.xml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<string-array name="datasource_list">
|
||||||
|
<item>"Zegarek Garmin"</item>
|
||||||
|
<item>"Urządzenie Bluetooth"</item>
|
||||||
|
<item>"Zegarek Pebble"</item>
|
||||||
|
<item>"Czujnik w telefonie (dla testów)"</item>
|
||||||
|
<item>"Sieć (dla alarmów przez Wifi)"</item>
|
||||||
|
</string-array>
|
||||||
|
</resources>
|
||||||
@@ -255,4 +255,31 @@
|
|||||||
<string name="data_update_period_summary">Częstość wyświetlania informacji w milisekundach</string>
|
<string name="data_update_period_summary">Częstość wyświetlania informacji w milisekundach</string>
|
||||||
<string name="select_datasource_title">Wybierz źródło danych</string>
|
<string name="select_datasource_title">Wybierz źródło danych</string>
|
||||||
<string name="select_datasource_summary">Wybierz które źródło danych wykrywania ataków chcesz używać</string>
|
<string name="select_datasource_summary">Wybierz które źródło danych wykrywania ataków chcesz używać</string>
|
||||||
|
<string name="ParsePreferenceWarning">Problem z ustawieniami - coś nie będzie działać - proszę wrócić do Ustawień i poprawić!</string>
|
||||||
|
<string name="ErrorWritingLogFileWarning">BŁĄD zapisu pliku dziennika</string>
|
||||||
|
<string name="RestartingServerMsg">Zmieniono uprawnienia - restartuję serwer</string>
|
||||||
|
<string name="ErrorReleasingWakelockMsg">Problem ze zwolnieniem Wakelock\'a</string>
|
||||||
|
<string name="SMSAlarmAlreadySentMsg">Alarm SMS już wysłany - nie wysyłam ponownie</string>
|
||||||
|
<string name="SMSAlarmDisabledNotSendingMsg">Alarmy SMS wyłączone - nie wysyłam alarmu SMS</string>
|
||||||
|
<string name="PleaseForceStopOSDorRebootMsg">BŁĄD - OpenSizureDetector nie uruchomił się poprawnie - proszę wyłączyć go na siłę lub uruchomić ponownie telefon.</string>
|
||||||
|
<string name="SMSPermissionsDeniedMsg">BŁĄD - odmówiono uprawnień do SMS\'ów lub lokalizacji - nie wysyłam SMS\'ów</string>
|
||||||
|
<string name="DatasourceTitle">\"Źródło danych: \"</string>
|
||||||
|
<string name="DefaultingToPhoneMsg">\" nie rozpoznano - używam czujnika w telefonie\"</string>
|
||||||
|
<string name="SMSAlarmCancelledMsg">Anulowano alarmy SMS</string>
|
||||||
|
<string name="StopServerTitle">Zatrzymaj serwer</string>
|
||||||
|
<string name="StartServerTitle">Uruchom serwer</string>
|
||||||
|
<string name="StartingTitle">Uruchamiam...</string>
|
||||||
|
<string name="AcceptAlarmBtnTxt">Zaakceptuj alarm</string>
|
||||||
|
<string name="CancelAudibleButtonTxt">Wycisz (tymczasowo)</string>
|
||||||
|
<string name="DataLoggingSettingsTitle">Ustawienia dziennika danych</string>
|
||||||
|
<string name="HeartRateAlarmSettingsTitle">Ustawienia tętna</string>
|
||||||
|
<string name="AlarmFunctionalitySettingsTitle">Ustawienia alarmów</string>
|
||||||
|
<string name="AudibleAlarmSettingsTitle">Ustawienia alarmów dźwiękowych</string>
|
||||||
|
<string name="SMSAlarmSettingsTitle">Ustawienia alarmów SMS</string>
|
||||||
|
<string name="DefaultSMSMsgText">**WYKRYTO DRGAWKI**</string>
|
||||||
|
<string name="AlarmLoggingTitle">Dziennik alarmów</string>
|
||||||
|
<string name="WarnTimeSummary">Czas oczekiwania przed włączeniem ostrzeżenia (domyślnie = 5 sek)</string>
|
||||||
|
<string name="WarnTimeTitle">Opóźnienie ostrzeżenia (sek)</string>
|
||||||
|
<string name="AlarmTimeSummary">Czas oczekiwania przed włączeniem alarmu (domyślnie = 10 sek)</string>
|
||||||
|
<string name="AlarmTimeTitle">Opóźnienie alarmu (sek)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -2,11 +2,11 @@
|
|||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">OpenSeizureDetector</string>
|
<string name="app_name">OpenSeizureDetector</string>
|
||||||
<string name="changelog">
|
<string name="changelog">
|
||||||
\n V3.6.1 - Possible fix for issue with shutting down system and expanded Polish translation to all settings screens.
|
"V3.6.2 - Fix of issue with log file permissions on some Android 10 devices and added more translatable strings with polish translation.
|
||||||
\n V3.6 - Added phone sensor data source for testing without a watchs
|
\nV3.6.1 - Possible fix for issue with shutting down system and expanded Polish translation to all settings screens.
|
||||||
\n V3.5 - Added support for SMS Annunciator App
|
\nV3.6 - Added phone sensor data source for testing without a watches
|
||||||
\n V3.4 - Added support for BLE Data Source
|
\nV3.5 - Added support for SMS Annunciator App
|
||||||
</string>
|
\nV3.4 - Added support for BLE Data Source "</string>
|
||||||
<string name="UpgradeMsg">
|
<string name="UpgradeMsg">
|
||||||
OpenSeizureDetector does not collect any personal data.
|
OpenSeizureDetector does not collect any personal data.
|
||||||
This does mean that it is not possible for me to contact users if I find an
|
This does mean that it is not possible for me to contact users if I find an
|
||||||
@@ -255,4 +255,31 @@
|
|||||||
<string name="display_spectrum_mode_summary">Set Display Spectrum mode on or off.</string>
|
<string name="display_spectrum_mode_summary">Set Display Spectrum mode on or off.</string>
|
||||||
<string name="analysis_prefs_title">Analysis</string>
|
<string name="analysis_prefs_title">Analysis</string>
|
||||||
<string name="watch_comms_settings_title">Watch Communications Settings</string>
|
<string name="watch_comms_settings_title">Watch Communications Settings</string>
|
||||||
|
<string name="ParsePreferenceWarning">Problem Parsing Preferences - Something won\'t work - Please go back to Settings and correct it!</string>
|
||||||
|
<string name="ErrorWritingLogFileWarning">ERROR Writing to Log File</string>
|
||||||
|
<string name="RestartingServerMsg">Permissions Changed - restarting server</string>
|
||||||
|
<string name="ErrorReleasingWakelockMsg">Error Releasing Wakelock</string>
|
||||||
|
<string name="SMSAlarmAlreadySentMsg">SMS Alarm already sent - not re-sending</string>
|
||||||
|
<string name="SMSAlarmDisabledNotSendingMsg">SMS Alarms Disabled - not sending SMS Alert</string>
|
||||||
|
<string name="PleaseForceStopOSDorRebootMsg">ERROR - OpenSizureDetector did not restart properly - please Force Stop OpenSeizureDetector or re-boot phone.</string>
|
||||||
|
<string name="SMSPermissionsDeniedMsg">ERROR - Permission for SMS or Location Denied - Not Sending SMS</string>
|
||||||
|
<string name="DatasourceTitle">\"Datasource\"</string>
|
||||||
|
<string name="DefaultingToPhoneMsg">\" not recognised - Defaulting to Phone\"</string>
|
||||||
|
<string name="SMSAlarmCancelledMsg">SMS Alarm Cancelled</string>
|
||||||
|
<string name="StopServerTitle">Stop Server</string>
|
||||||
|
<string name="StartServerTitle">Start Server</string>
|
||||||
|
<string name="StartingTitle">Starting......</string>
|
||||||
|
<string name="AcceptAlarmBtnTxt">Accept Alarm</string>
|
||||||
|
<string name="CancelAudibleButtonTxt">Cancel Audible (temporarily)</string>
|
||||||
|
<string name="DataLoggingSettingsTitle">Data Logging Settings</string>
|
||||||
|
<string name="HeartRateAlarmSettingsTitle">Heart Rate Alarm Settings</string>
|
||||||
|
<string name="AlarmFunctionalitySettingsTitle">Alarm Functionality Settings</string>
|
||||||
|
<string name="AudibleAlarmSettingsTitle">Audible Alarm Settings</string>
|
||||||
|
<string name="SMSAlarmSettingsTitle">SMS Alarm Settings</string>
|
||||||
|
<string name="DefaultSMSMsgText">**SEIZURE DETECTED**</string>
|
||||||
|
<string name="AlarmLoggingTitle">Alarm Logging</string>
|
||||||
|
<string name="WarnTimeSummary">Time to wait before initiating warning (Default = 5 sec)</string>
|
||||||
|
<string name="WarnTimeTitle">WarnTime (sec)</string>
|
||||||
|
<string name="AlarmTimeSummary">Time to wait before initiating alarm (Default = 10 sec)</string>
|
||||||
|
<string name="AlarmTimeTitle">AlarmTime (sec)</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<PreferenceCategory android:title="Alarm Functionality Settings">
|
<PreferenceCategory android:title="@string/AlarmFunctionalitySettingsTitle">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="LatchAlarms"
|
android:key="LatchAlarms"
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
android:defaultValue="10" />
|
android:defaultValue="10" />
|
||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
<PreferenceCategory android:title="Audible Alarm Settings">
|
<PreferenceCategory android:title="@string/AudibleAlarmSettingsTitle">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="AudibleAlarm"
|
android:key="AudibleAlarm"
|
||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory android:title="SMS Alarm Settings">
|
<PreferenceCategory android:title="@string/SMSAlarmSettingsTitle">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="SMSAlarm"
|
android:key="SMSAlarm"
|
||||||
@@ -56,7 +56,7 @@
|
|||||||
android:summary="@string/sms_numbers_summary"
|
android:summary="@string/sms_numbers_summary"
|
||||||
android:title="@string/sms_numbers_title" />
|
android:title="@string/sms_numbers_title" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="**SEIZURE DETECTED**"
|
android:defaultValue="@string/DefaultSMSMsgText"
|
||||||
android:key="SMSMsg"
|
android:key="SMSMsg"
|
||||||
android:summary="@string/sms_message_summary"
|
android:summary="@string/sms_message_summary"
|
||||||
android:title="@string/sms_message_title" />
|
android:title="@string/sms_message_title" />
|
||||||
@@ -70,7 +70,7 @@
|
|||||||
android:title="Enable Phone Call Alarm" />
|
android:title="Enable Phone Call Alarm" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
-->
|
-->
|
||||||
<PreferenceCategory android:title="Alarm Logging">
|
<PreferenceCategory android:title="@string/AlarmLoggingTitle">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:key="LogAlarms"
|
android:key="LogAlarms"
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
android:summary="@string/DataSourceSummary"
|
android:summary="@string/DataSourceSummary"
|
||||||
android:title="@string/DataSourceTitle" />
|
android:title="@string/DataSourceTitle" />
|
||||||
|
|
||||||
<PreferenceCategory android:title="Data Logging Settings">
|
<PreferenceCategory android:title="@string/DataLoggingSettingsTitle">
|
||||||
<!-- <CheckBoxPreference
|
<!-- <CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="LogDataRemote"
|
android:key="LogDataRemote"
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
android:title="@string/AlarmFreqMaxTitle" />
|
android:title="@string/AlarmFreqMaxTitle" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory android:title="Heart Rate Alarm Settings">
|
<PreferenceCategory android:title="@string/HeartRateAlarmSettingsTitle">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="HRAlarmActive"
|
android:key="HRAlarmActive"
|
||||||
|
|||||||
@@ -2,90 +2,90 @@
|
|||||||
<!-- The ListPreference data is defined in pebble_datasource_values.xml -->
|
<!-- The ListPreference data is defined in pebble_datasource_values.xml -->
|
||||||
<PreferenceScreen
|
<PreferenceScreen
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
<PreferenceCategory android:title="Seizure Detector Settings">
|
<PreferenceCategory android:title="@string/SeizureDetectorSettingsTitle">
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="5"
|
android:defaultValue="5"
|
||||||
android:key="WarnTime"
|
android:key="WarnTime"
|
||||||
android:summary="Time to wait before initiating warning (Default = 5 sec)"
|
android:summary="@string/WarnTimeSummary"
|
||||||
android:title="WarnTime (sec)" />
|
android:title="@string/WarnTimeTitle" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="10"
|
android:defaultValue="10"
|
||||||
android:key="AlarmTime"
|
android:key="AlarmTime"
|
||||||
android:summary="Time to wait before initiating alarm (Default = 10 sec)"
|
android:summary="@string/AlarmTimeSummary"
|
||||||
android:title="AlarmTime (sec)" />
|
android:title="@string/AlarmTimeTitle" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="100"
|
android:defaultValue="100"
|
||||||
android:key="AlarmThresh"
|
android:key="AlarmThresh"
|
||||||
android:summary="Alarm Threshold (Default = 100)"
|
android:summary="@string/AlarmThreshSummary"
|
||||||
android:title="AlarmThresh" />
|
android:title="@string/AlarmThreshTitle" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="50"
|
android:defaultValue="50"
|
||||||
android:key="AlarmRatioThresh"
|
android:key="AlarmRatioThresh"
|
||||||
android:summary="Alarm Ratio Threshold (Default = 50). Increase this value to reduce sensitivity if false alarms are a problem."
|
android:summary="@string/AlarmRatioThreshSummary"
|
||||||
android:title="AlarmRatioThresh" />
|
android:title="@string/AlarmRatioThreshTitle" />
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="3"
|
android:defaultValue="3"
|
||||||
android:key="AlarmFreqMin"
|
android:key="AlarmFreqMin"
|
||||||
android:summary="Minimum Frequency of ROI (Hz) (Default = 3 Hz)"
|
android:summary="@string/AlarmFreqMinSummary"
|
||||||
android:title="AlarmFreqMin (Hz)" />
|
android:title="@string/AlarmFreqMinTitle" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="10"
|
android:defaultValue="10"
|
||||||
android:key="AlarmFreqMax"
|
android:key="AlarmFreqMax"
|
||||||
android:summary="Maximum Frequency of ROI (Hz) (Default = 10 Hz)"
|
android:summary="@string/AlarmFreqMaxSummary"
|
||||||
android:title="AlarmFreqMax (Hz)" />
|
android:title="@string/AlarmFreqMaxTitle" />
|
||||||
|
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="5"
|
android:defaultValue="5"
|
||||||
android:key="SamplePeriod"
|
android:key="SamplePeriod"
|
||||||
android:summary="Period (in seconds) between data analyses"
|
android:summary="@string/sample_period_summary"
|
||||||
android:title="SamplePeriod (sec)" />
|
android:title="@string/sample_period_title" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory android:title="Heart Rate Alarm Settings">
|
<PreferenceCategory android:title="@string/HeartRateAlarmSettingsTitle">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="HRAlarmActive"
|
android:key="HRAlarmActive"
|
||||||
android:summary=""
|
android:summary="@string/HRAlarmEnabledSummary"
|
||||||
android:title="Heart Rate Alarm Enabled" />
|
android:title="@string/HRAlarmEnabledTitle" />
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="HRNullAsAlarm"
|
android:key="HRNullAsAlarm"
|
||||||
android:summary=""
|
android:summary="@string/HRNullAlarmSummary"
|
||||||
android:title="Treat a Null heart rate as an alarm condition" />
|
android:title="@string/HRNullAlarmTitle" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="40"
|
android:defaultValue="40"
|
||||||
android:key="HRThreshMin"
|
android:key="HRThreshMin"
|
||||||
android:summary=""
|
android:summary="@string/HRThreshMinSummary"
|
||||||
android:title="Heart Rate Min Threshold (bpm)" />
|
android:title="@string/HRThreshMinTitle" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="150"
|
android:defaultValue="150"
|
||||||
android:key="HRThreshMax"
|
android:key="HRThreshMax"
|
||||||
android:summary=""
|
android:summary="@string/HRThreshMaxSummary"
|
||||||
android:title="Heart Rate Max Threshold (bpm)" />
|
android:title="@string/HRThreshMaxTitle" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
<PreferenceCategory android:title="Fall Detector Settings">
|
<PreferenceCategory android:title="@string/fall_detect_title">
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="false"
|
android:defaultValue="false"
|
||||||
android:key="FallActive"
|
android:key="FallActive"
|
||||||
android:summary=""
|
android:summary=""
|
||||||
android:title="Activate Fall Detection Function" />
|
android:title="@string/fall_detect_active_title" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="200"
|
android:defaultValue="200"
|
||||||
android:key="FallThreshMin"
|
android:key="FallThreshMin"
|
||||||
android:summary=""
|
android:summary=""
|
||||||
android:title="Fall Detection Lower Threshold (milli-g)" />
|
android:title="@string/fall_thresh_min_title" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="1200"
|
android:defaultValue="1200"
|
||||||
android:key="FallThreshMax"
|
android:key="FallThreshMax"
|
||||||
android:summary=""
|
android:summary=""
|
||||||
android:title="Fall Detection Upper Threshold (milli-g)" />
|
android:title="@string/fall_thresh_max_title" />
|
||||||
<EditTextPreference
|
<EditTextPreference
|
||||||
android:defaultValue="1500"
|
android:defaultValue="1500"
|
||||||
android:key="FallWindow"
|
android:key="FallWindow"
|
||||||
android:summary=""
|
android:summary=""
|
||||||
android:title="Fall Detection Window (milli-seconds)" />
|
android:title="@string/fall_window_title" />
|
||||||
</PreferenceCategory>
|
</PreferenceCategory>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ buildscript {
|
|||||||
google()
|
google()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
classpath 'com.android.tools.build:gradle:4.1.1'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
allprojects {
|
allprojects {
|
||||||
|
|||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -1,4 +1,4 @@
|
|||||||
#Fri Nov 13 13:30:20 GMT 2020
|
#Sat Nov 21 06:41:40 GMT 2020
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
|
|||||||
Reference in New Issue
Block a user