Re-hashed log files to use system directory - will not fix android 10, but has it working again on my phone....

This commit is contained in:
Graham Jones
2020-12-10 13:40:12 +00:00
parent 2312b44ee8
commit 277f6f68c5
9 changed files with 125 additions and 54 deletions

View File

@@ -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.

Binary file not shown.

View File

@@ -3,7 +3,7 @@
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="83"
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" />

View File

@@ -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;
@@ -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;
} }
@@ -332,6 +332,7 @@ 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) {
@@ -343,6 +344,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
/** /**
* 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) {
@@ -354,6 +356,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
/** /**
* 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) {
@@ -384,8 +387,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
} 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("ERROR Writing to Log File" + 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();
@@ -427,6 +442,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
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";
@@ -481,7 +497,6 @@ 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");

View File

@@ -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();
} }

View File

@@ -978,7 +978,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 +1009,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 +1026,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 +1087,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.writeToSysLogFile( "updatePrefs() - Problem with LatchAlarmTimerPeriod preference!");
mUtil.showToast("Problem Parsing LatchAlarmTimerPeriod Preference"); mUtil.showToast("Problem Parsing LatchAlarmTimerPeriod Preference");
} }
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.writeToSysLogFile("updatePrefs() - Problem with FaultTimerPeriod preference!");
mUtil.showToast("Problem Parsing FaultTimerPeriod Preference"); mUtil.showToast("Problem Parsing FaultTimerPeriod Preference");
} }
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 +1160,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 +1204,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) {

View File

@@ -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";

View File

@@ -9,7 +9,7 @@ buildscript {
google() google()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:4.0.1' classpath 'com.android.tools.build:gradle:4.1.1'
} }
} }
allprojects { allprojects {

View File

@@ -1,6 +1,6 @@
#Fri Aug 21 22:56:16 BST 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
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip