Merge branch 'V3.6'
This commit is contained in:
@@ -1,5 +1,8 @@
|
||||
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
|
||||
- Extended polish translation to all settings screens.
|
||||
- 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",
|
||||
"filters": [],
|
||||
"versionCode": 83,
|
||||
"versionName": "3.6.1",
|
||||
"versionCode": 87,
|
||||
"versionName": "3.6.2",
|
||||
"outputFile": "app-release.apk"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
package="uk.org.openseizuredetector"
|
||||
android:versionCode="83"
|
||||
android:versionName="3.6.1">
|
||||
android:versionCode="87"
|
||||
android:versionName="3.6.2">
|
||||
<!-- android:allowBackup="false" -->
|
||||
<uses-permission android:name="android.permission.BLUETOOTH" />
|
||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
||||
|
||||
@@ -136,7 +136,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
if ((mConnection.mSdServer.mSmsTimer != null)
|
||||
&& (mConnection.mSdServer.mSmsTimer.mTimeLeft > 0 )){
|
||||
Log.v(TAG, "acceptAlarmButton.onClick() - Stopping SMS Timer");
|
||||
mUtil.showToast("SMS Alarm Cancelled");
|
||||
mUtil.showToast(getString(R.string.SMSAlarmCancelledMsg));
|
||||
mConnection.mSdServer.stopSmsTimer();
|
||||
}
|
||||
else {
|
||||
@@ -357,7 +357,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
Log.v(TAG, "Changing menu icons");
|
||||
MenuItem menuItem = mOptionsMenu.findItem(R.id.action_start_stop);
|
||||
menuItem.setIcon(R.drawable.stop_server);
|
||||
menuItem.setTitle("Stop Server");
|
||||
menuItem.setTitle(R.string.StopServerTitle);
|
||||
} else {
|
||||
Log.v(TAG, "mOptionsMenu is null - not changing icons!");
|
||||
}
|
||||
@@ -371,7 +371,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
if (mOptionsMenu != null) {
|
||||
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).setTitle("Start Server");
|
||||
mOptionsMenu.findItem(R.id.action_start_stop).setTitle(R.string.StartServerTitle);
|
||||
} else {
|
||||
Log.v(TAG, "mOptionsMenu is null, not changing icons!");
|
||||
}
|
||||
@@ -398,7 +398,7 @@ public class MainActivity extends AppCompatActivity {
|
||||
if (mUtil.isServerRunning()) {
|
||||
tv = (TextView) findViewById(R.id.serverStatusTv);
|
||||
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.setTextColor(okTextColour);
|
||||
tv = (TextView) findViewById(R.id.serverIpTv);
|
||||
|
||||
@@ -71,6 +71,7 @@ import org.apache.http.conn.util.InetAddressUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.NetworkInterface;
|
||||
import java.util.AbstractList;
|
||||
@@ -142,7 +143,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
|
||||
} catch (Exception ex) {
|
||||
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) {
|
||||
Log.v(TAG, "isServerRunning() - " + nServers + " instances are running");
|
||||
return true;
|
||||
}
|
||||
else
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -181,16 +181,16 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
*/
|
||||
public void startServer() {
|
||||
// Start the server
|
||||
Log.d(TAG,"OsdUtil.startServer()");
|
||||
Log.d(TAG, "OsdUtil.startServer()");
|
||||
writeToSysLogFile("startServer() - starting server");
|
||||
Intent sdServerIntent;
|
||||
sdServerIntent = new Intent(mContext, SdServer.class);
|
||||
sdServerIntent.setData(Uri.parse("Start"));
|
||||
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);
|
||||
} else {
|
||||
Log.i(TAG,"Starting Normal Service (Pre-Android 8)");
|
||||
Log.i(TAG, "Starting Normal Service (Pre-Android 8)");
|
||||
mContext.startService(sdServerIntent);
|
||||
}
|
||||
}
|
||||
@@ -219,7 +219,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
Intent intent = new Intent(sdServiceConnection.mContext, SdServer.class);
|
||||
activity.bindService(intent, sdServiceConnection, Context.BIND_AUTO_CREATE);
|
||||
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);
|
||||
sdServiceConnection.mBound = false;
|
||||
mNbound = mNbound - 1;
|
||||
Log.i(TAG,"OsdUtil.unBindFromServer() - mNbound = "+mNbound);
|
||||
Log.i(TAG, "OsdUtil.unBindFromServer() - mNbound = " + mNbound);
|
||||
} catch (Exception ex) {
|
||||
Log.e(TAG, "unbindFromServer() - error unbinding service - " + ex.toString());
|
||||
writeToSysLogFile("unbindFromServer() - error unbinding service - " +ex.toString());
|
||||
Log.i(TAG,"OsdUtil.unBindFromServer() - mNbound = "+mNbound);
|
||||
writeToSysLogFile("unbindFromServer() - error unbinding service - " + ex.toString());
|
||||
Log.i(TAG, "OsdUtil.unBindFromServer() - mNbound = " + mNbound);
|
||||
}
|
||||
} else {
|
||||
Log.i(TAG, "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() {
|
||||
// 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();
|
||||
if (activeNetwork.getType() == ConnectivityManager.TYPE_MOBILE) {
|
||||
return true;
|
||||
@@ -310,7 +310,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
|
||||
public boolean isNetworkConnected() {
|
||||
// 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();
|
||||
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.
|
||||
*
|
||||
* @param msgStr
|
||||
*/
|
||||
public void writeToSysLogFile(String msgStr) {
|
||||
if (mLogSystem)
|
||||
writeToLogFile(SYSLOG,msgStr);
|
||||
writeToLogFile(SYSLOG, msgStr);
|
||||
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.
|
||||
*
|
||||
* @param msgStr
|
||||
*/
|
||||
public void writeToAlarmLogFile(String msgStr) {
|
||||
if (mLogAlarms)
|
||||
writeToLogFile(ALARMLOG,msgStr);
|
||||
writeToLogFile(ALARMLOG, msgStr);
|
||||
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.
|
||||
*
|
||||
* @param msgStr
|
||||
*/
|
||||
public void writeToDataLogFile(String msgStr) {
|
||||
if (mLogData)
|
||||
writeToLogFile(DATALOG,msgStr);
|
||||
writeToLogFile(DATALOG, msgStr);
|
||||
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,
|
||||
Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
!= 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 {
|
||||
if (isExternalStorageWritable()) {
|
||||
try {
|
||||
FileWriter of = new FileWriter(getDataStorageDir().toString()
|
||||
+ "/" + fname, true);
|
||||
FileWriter of = new FileWriter(getDataStorageDir() + "/" + fname, true);
|
||||
if (msgStr != null) {
|
||||
String dateTimeStr = tnow.format("%Y-%m-%d %H:%M:%S");
|
||||
//Log.v(TAG, "writing msgStr");
|
||||
@@ -396,7 +398,10 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
of.close();
|
||||
} catch (Exception ex) {
|
||||
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 {
|
||||
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 */
|
||||
public boolean isExternalStorageWritable() {
|
||||
String state = Environment.getExternalStorageState();
|
||||
@@ -415,18 +430,11 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
|
||||
public File getDataStorageDir() {
|
||||
// Get the directory for the user's public directory.
|
||||
File file =
|
||||
new File(Environment.getExternalStorageDirectory()
|
||||
, "OpenSeizureDetector");
|
||||
if (!file.isDirectory()) {
|
||||
Log.i(TAG,"getDataStorageDir() - creating directory");
|
||||
if (!file.mkdirs()) {
|
||||
Log.e(TAG, "Failed to create directory");
|
||||
}
|
||||
}
|
||||
File file = mContext.getExternalFilesDir(null);
|
||||
return file;
|
||||
}
|
||||
|
||||
|
||||
public String getPreferredPebbleAppPackageName() {
|
||||
// returns the package name of the preferred Android Pebble App.
|
||||
return "com.getpebble.android.basalt";
|
||||
@@ -456,8 +464,8 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
|
||||
public boolean arePermissionsOK() {
|
||||
boolean allOk = true;
|
||||
Log.v(TAG,"arePermissionsOK");
|
||||
for (int i = 0; i< REQUIRED_PERMISSIONS.length; i++) {
|
||||
Log.v(TAG, "arePermissionsOK");
|
||||
for (int i = 0; i < REQUIRED_PERMISSIONS.length; i++) {
|
||||
if (ContextCompat.checkSelfPermission(mContext, REQUIRED_PERMISSIONS[i])
|
||||
!= PackageManager.PERMISSION_GRANTED) {
|
||||
Log.i(TAG, REQUIRED_PERMISSIONS[i] + " Permission Not Granted");
|
||||
@@ -469,8 +477,8 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
|
||||
public boolean areSMSPermissionsOK() {
|
||||
boolean allOk = true;
|
||||
Log.v(TAG,"areSMSPermissionsOK()");
|
||||
for (int i = 0; i< SMS_PERMISSIONS.length; i++) {
|
||||
Log.v(TAG, "areSMSPermissionsOK()");
|
||||
for (int i = 0; i < SMS_PERMISSIONS.length; i++) {
|
||||
if (ContextCompat.checkSelfPermission(mContext, SMS_PERMISSIONS[i])
|
||||
!= PackageManager.PERMISSION_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) {
|
||||
if (mPermissionsRequested) {
|
||||
Log.i(TAG,"requestPermissions() - request already sent - not doing anything");
|
||||
Log.i(TAG, "requestPermissions() - request already sent - not doing anything");
|
||||
} else {
|
||||
Log.i(TAG, "requestPermissions() - requesting permissions");
|
||||
for (int i = 0; i < REQUIRED_PERMISSIONS.length; i++) {
|
||||
@@ -502,7 +509,7 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
|
||||
public void requestSMSPermissions(Activity activity) {
|
||||
if (mSMSPermissionsRequested) {
|
||||
Log.i(TAG,"requestSMSPermissions() - request already sent - not doing anything");
|
||||
Log.i(TAG, "requestSMSPermissions() - request already sent - not doing anything");
|
||||
} else {
|
||||
Log.i(TAG, "requestSMSPermissions() - requesting permissions");
|
||||
for (int i = 0; i < SMS_PERMISSIONS.length; i++) {
|
||||
@@ -522,8 +529,8 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode,
|
||||
String permissions[], int[] grantResults) {
|
||||
Log.i(TAG,"onRequestPermissionsResult - Permission" + permissions + " = " + grantResults);
|
||||
showToast("Permissions Changed - restarting server");
|
||||
Log.i(TAG, "onRequestPermissionsResult - Permission" + permissions + " = " + grantResults);
|
||||
showToast(mContext.getString(R.string.RestartingServerMsg));
|
||||
stopServer();
|
||||
// Wait 0.1 second to give the server chance to shutdown, then re-start it
|
||||
mHandler.postDelayed(new Runnable() {
|
||||
|
||||
@@ -128,6 +128,7 @@ public abstract class SdDataSource {
|
||||
public void start() {
|
||||
|
||||
Log.v(TAG, "start()");
|
||||
mUtil.writeToSysLogFile("SdDataSource.start()");
|
||||
updatePrefs();
|
||||
// Start timer to check status of watch regularly.
|
||||
mDataStatusTime = new Time(Time.getCurrentTimezone());
|
||||
@@ -184,6 +185,7 @@ public abstract class SdDataSource {
|
||||
*/
|
||||
public void stop() {
|
||||
Log.v(TAG, "stop()");
|
||||
mUtil.writeToSysLogFile("SDDataSource.stop()");
|
||||
try {
|
||||
// Stop the status timer
|
||||
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.
|
||||
if (tdiff > (mDataUpdatePeriod + mFaultTimerPeriod) * 1000) {
|
||||
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();
|
||||
mSdData.roiPower = -1;
|
||||
mSdData.specPower = -1;
|
||||
@@ -662,7 +664,7 @@ public abstract class SdDataSource {
|
||||
*/
|
||||
public void updatePrefs() {
|
||||
Log.v(TAG, "updatePrefs()");
|
||||
mUtil.writeToSysLogFile("SDDataSourceBLE.updatePrefs()");
|
||||
mUtil.writeToSysLogFile("SDDataSource.updatePrefs()");
|
||||
SharedPreferences SP = PreferenceManager
|
||||
.getDefaultSharedPreferences(mContext);
|
||||
try {
|
||||
@@ -671,8 +673,10 @@ public abstract class SdDataSource {
|
||||
String appRestartTimeoutStr = SP.getString("AppRestartTimeout", "10");
|
||||
mAppRestartTimeout = Integer.parseInt(appRestartTimeoutStr);
|
||||
Log.v(TAG, "updatePrefs() - mAppRestartTimeout = " + mAppRestartTimeout);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mAppRestartTimeout = " + mAppRestartTimeout);
|
||||
} catch (Exception ex) {
|
||||
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.show();
|
||||
}
|
||||
@@ -682,8 +686,10 @@ public abstract class SdDataSource {
|
||||
String faultTimerPeriodStr = SP.getString("FaultTimerPeriod", "30");
|
||||
mFaultTimerPeriod = Integer.parseInt(faultTimerPeriodStr);
|
||||
Log.v(TAG, "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||
} catch (Exception ex) {
|
||||
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.show();
|
||||
}
|
||||
@@ -694,106 +700,130 @@ public abstract class SdDataSource {
|
||||
prefStr = SP.getString("BLE_Device_Addr", "SET_FROM_XML");
|
||||
mBleDeviceAddr = prefStr;
|
||||
Log.v(TAG, "mBLEDeviceAddr=" + mBleDeviceAddr);
|
||||
mUtil.writeToSysLogFile( "mBLEDeviceAddr=" + mBleDeviceAddr);
|
||||
prefStr = SP.getString("BLE_Device_Name", "SET_FROM_XML");
|
||||
mBleDeviceName = prefStr;
|
||||
Log.v(TAG, "mBLEDeviceName=" + mBleDeviceName);
|
||||
mUtil.writeToSysLogFile( "mBLEDeviceName=" + mBleDeviceName);
|
||||
|
||||
prefStr = SP.getString("PebbleDebug", "SET_FROM_XML");
|
||||
if (prefStr != null) {
|
||||
mDebug = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() Debug = " + mDebug);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() Debug = " + mDebug);
|
||||
|
||||
prefStr = SP.getString("PebbleDisplaySpectrum", "SET_FROM_XML");
|
||||
mDisplaySpectrum = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() DisplaySpectrum = " + mDisplaySpectrum);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() DisplaySpectrum = " + mDisplaySpectrum);
|
||||
|
||||
prefStr = SP.getString("PebbleUpdatePeriod", "SET_FROM_XML");
|
||||
mDataUpdatePeriod = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() DataUpdatePeriod = " + mDataUpdatePeriod);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() DataUpdatePeriod = " + mDataUpdatePeriod);
|
||||
|
||||
prefStr = SP.getString("MutePeriod", "SET_FROM_XML");
|
||||
mMutePeriod = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() MutePeriod = " + mMutePeriod);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() MutePeriod = " + mMutePeriod);
|
||||
|
||||
prefStr = SP.getString("ManAlarmPeriod", "SET_FROM_XML");
|
||||
mManAlarmPeriod = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() ManAlarmPeriod = " + mManAlarmPeriod);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() ManAlarmPeriod = " + mManAlarmPeriod);
|
||||
|
||||
prefStr = SP.getString("PebbleSdMode", "SET_FROM_XML");
|
||||
mPebbleSdMode = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() PebbleSdMode = " + mPebbleSdMode);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() PebbleSdMode = " + mPebbleSdMode);
|
||||
|
||||
prefStr = SP.getString("SampleFreq", "SET_FROM_XML");
|
||||
mSampleFreq = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() SampleFreq = " + mSampleFreq);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() SampleFreq = " + mSampleFreq);
|
||||
|
||||
prefStr = SP.getString("SamplePeriod", "SET_FROM_XML");
|
||||
mSamplePeriod = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() AnalysisPeriod = " + mSamplePeriod);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() AnalysisPeriod = " + mSamplePeriod);
|
||||
|
||||
prefStr = SP.getString("AlarmFreqMin", "SET_FROM_XML");
|
||||
mAlarmFreqMin = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() AlarmFreqMin = " + mAlarmFreqMin);
|
||||
|
||||
prefStr = SP.getString("AlarmFreqMax", "SET_FROM_XML");
|
||||
mAlarmFreqMax = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() AlarmFreqMax = " + mAlarmFreqMax);
|
||||
mUtil.writeToSysLogFile("updatePrefs() AlarmFreqMax = " + mAlarmFreqMax);
|
||||
|
||||
prefStr = SP.getString("WarnTime", "SET_FROM_XML");
|
||||
mWarnTime = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() WarnTime = " + mWarnTime);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() WarnTime = " + mWarnTime);
|
||||
|
||||
prefStr = SP.getString("AlarmTime", "SET_FROM_XML");
|
||||
mAlarmTime = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() AlarmTime = " + mAlarmTime);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() AlarmTime = " + mAlarmTime);
|
||||
|
||||
prefStr = SP.getString("AlarmThresh", "SET_FROM_XML");
|
||||
mAlarmThresh = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() AlarmThresh = " + mAlarmThresh);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() AlarmThresh = " + mAlarmThresh);
|
||||
|
||||
prefStr = SP.getString("AlarmRatioThresh", "SET_FROM_XML");
|
||||
mAlarmRatioThresh = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() AlarmRatioThresh = " + mAlarmRatioThresh);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() AlarmRatioThresh = " + mAlarmRatioThresh);
|
||||
|
||||
mFallActive = SP.getBoolean("FallActive", false);
|
||||
Log.v(TAG, "updatePrefs() FallActive = " + mFallActive);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() FallActive = " + mFallActive);
|
||||
|
||||
prefStr = SP.getString("FallThreshMin", "SET_FROM_XML");
|
||||
mFallThreshMin = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() FallThreshMin = " + mFallThreshMin);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() FallThreshMin = " + mFallThreshMin);
|
||||
|
||||
prefStr = SP.getString("FallThreshMax", "SET_FROM_XML");
|
||||
mFallThreshMax = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() FallThreshMax = " + mFallThreshMax);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() FallThreshMax = " + mFallThreshMax);
|
||||
|
||||
prefStr = SP.getString("FallWindow", "SET_FROM_XML");
|
||||
mFallWindow = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() FallWindow = " + mFallWindow);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() FallWindow = " + mFallWindow);
|
||||
|
||||
mSdData.mHRAlarmActive = SP.getBoolean("HRAlarmActive", false);
|
||||
Log.v(TAG, "updatePrefs() HRAlarmActive = " + mSdData.mHRAlarmActive);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() HRAlarmActive = " + mSdData.mHRAlarmActive);
|
||||
|
||||
mSdData.mHRNullAsAlarm = SP.getBoolean("HRNullAsAlarm", false);
|
||||
Log.v(TAG, "updatePrefs() HRNullAsAlarm = " + mSdData.mHRNullAsAlarm);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() HRNullAsAlarm = " + mSdData.mHRNullAsAlarm);
|
||||
|
||||
prefStr = SP.getString("HRThreshMin", "SET_FROM_XML");
|
||||
mSdData.mHRThreshMin = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() HRThreshMin = " + mSdData.mHRThreshMin);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() HRThreshMin = " + mSdData.mHRThreshMin);
|
||||
|
||||
prefStr = SP.getString("HRThreshMax", "SET_FROM_XML");
|
||||
mSdData.mHRThreshMax = (short) Integer.parseInt(prefStr);
|
||||
Log.v(TAG, "updatePrefs() HRThreshMax = " + mSdData.mHRThreshMax);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() HRThreshMax = " + mSdData.mHRThreshMax);
|
||||
|
||||
} else {
|
||||
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.show();
|
||||
}
|
||||
|
||||
} catch (Exception ex) {
|
||||
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.show();
|
||||
}
|
||||
|
||||
@@ -23,27 +23,10 @@
|
||||
*/
|
||||
package uk.org.openseizuredetector;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.SharedPreferences;
|
||||
import android.os.Handler;
|
||||
import android.preference.PreferenceManager;
|
||||
import android.text.format.Time;
|
||||
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);
|
||||
break;
|
||||
default:
|
||||
Log.e(TAG, "Datasource " + mSdDataSourceName + " not recognised - Defaulting to Pebble");
|
||||
mUtil.writeToSysLogFile("SdServer.onStartCommand() - Datasource " + mSdDataSourceName + " not recognised - exiting");
|
||||
mUtil.showToast("Datasource " + mSdDataSourceName + " not recognised - Defaulting to Pebble");
|
||||
mUtil.writeToSysLogFile("SdServer.onStartCommand() - creating SdDataSourcePebble");
|
||||
mSdDataSource = new SdDataSourcePebble(this.getApplicationContext(), mHandler, this);
|
||||
Log.e(TAG, "Datasource " + mSdDataSourceName + " not recognised - Defaulting to Phone");
|
||||
//mUtil.writeToSysLogFile("SdServer.onStartCommand() - Datasource " + mSdDataSourceName + " not recognised - exiting");
|
||||
mUtil.showToast(getString(R.string.DatasourceTitle) + " " + mSdDataSourceName + getString(R.string.DefaultingToPhoneMsg));
|
||||
mUtil.writeToSysLogFile("SdServer.onStartCommand() - creating SdDataSourcePhone");
|
||||
mSdDataSource = new SdDataSourcePhone(this.getApplicationContext(), mHandler, this);
|
||||
}
|
||||
|
||||
if (mSMSAlarm) {
|
||||
@@ -349,7 +349,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error Releasing Wakelock - " + e.toString());
|
||||
mUtil.writeToSysLogFile("SdServer.onDestroy() - Error releasing wakelock.");
|
||||
mUtil.showToast("Error Releasing Wakelock");
|
||||
mUtil.showToast(getString(R.string.ErrorReleasingWakelockMsg));
|
||||
}
|
||||
} else {
|
||||
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 {
|
||||
// Cancel the notification.
|
||||
Log.v(TAG, "onDestroy(): cancelling notification");
|
||||
mUtil.writeToSysLogFile("SdServer.onDestroy - cancelling notification");
|
||||
mNM.cancel(NOTIFICATION_ID);
|
||||
// Stop web server
|
||||
Log.v(TAG, "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 = 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.
|
||||
Log.v(TAG, "onDestroy(): calling stopSelf()");
|
||||
mUtil.writeToSysLogFile("SdServer.onDestroy() - stopping self");
|
||||
@@ -589,11 +591,11 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
sendPhoneAlarm();
|
||||
mSMSTime = tnow;
|
||||
} 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");
|
||||
}
|
||||
} else {
|
||||
mUtil.showToast("mSMSAlarm is false - not sending");
|
||||
mUtil.showToast(getString(R.string.SMSAlarmDisabledNotSendingMsg));
|
||||
Log.v(TAG, "mSMSAlarm is false - not sending");
|
||||
}
|
||||
|
||||
@@ -625,7 +627,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
sendSMSAlarm();
|
||||
mSMSTime = tnow;
|
||||
} 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");
|
||||
}
|
||||
} else {
|
||||
@@ -663,7 +665,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
Log.v(TAG, "SMS Alarm already sent - not re-sending");
|
||||
}
|
||||
} else {
|
||||
mUtil.showToast("mSMSAlarm is false - not sending");
|
||||
mUtil.showToast(getString(R.string.SMSAlarmDisabledNotSendingMsg));
|
||||
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);
|
||||
Log.v(TAG, "beep()");
|
||||
} 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!!!");
|
||||
mUtil.writeToSysLogFile("SdServer.beep() - mToneGenerator is null???");
|
||||
}
|
||||
@@ -806,7 +808,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
if (mSMSAlarm) {
|
||||
if (!mCancelAudible) {
|
||||
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");
|
||||
} else {
|
||||
//mSMSAlertDialog = new AlertDialog.Builder(this);
|
||||
@@ -978,7 +980,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
Log.i(TAG, "startWebServer()");
|
||||
mUtil.writeToSysLogFile("SdServer.Start Web Server.");
|
||||
if (webServer == null) {
|
||||
webServer = new SdWebServer(getApplicationContext(), mUtil.getDataStorageDir(), mSdData, this);
|
||||
webServer = new SdWebServer(getApplicationContext(), mSdData, this);
|
||||
try {
|
||||
webServer.start();
|
||||
} catch (IOException ioe) {
|
||||
@@ -1009,6 +1011,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
} else {
|
||||
if (webServer.isAlive()) {
|
||||
Log.w(TAG, "stopWebServer() - server still alive???");
|
||||
mUtil.writeToSysLogFile( "stopWebServer() - server still alive???");
|
||||
} else {
|
||||
mUtil.writeToSysLogFile("stopWebServer() - server died ok");
|
||||
Log.v(TAG, "stopWebServer() - server died ok");
|
||||
@@ -1025,7 +1028,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
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());
|
||||
|
||||
ConnectivityManager cm =
|
||||
@@ -1086,53 +1089,71 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
try {
|
||||
mSdDataSourceName = SP.getString("DataSource", "Pebble");
|
||||
Log.v(TAG, "updatePrefs() - DataSource = " + mSdDataSourceName);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - DataSource = " + mSdDataSourceName);
|
||||
mLatchAlarms = SP.getBoolean("LatchAlarms", false);
|
||||
Log.v(TAG, "updatePrefs() - mLatchAlarms = " + mLatchAlarms);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mLatchAlarms = " + mLatchAlarms);
|
||||
// Parse the LatchAlarmPeriod setting.
|
||||
try {
|
||||
String latchAlarmPeriodStr = SP.getString("LatchAlarmTimerPeriod", "30");
|
||||
mLatchAlarmPeriod = Integer.parseInt(latchAlarmPeriodStr);
|
||||
Log.v(TAG, "updatePrefs() - mLatchAlarmTimerPeriod = " + mLatchAlarmPeriod);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mLatchAlarmTimerPeriod = " + mLatchAlarmPeriod);
|
||||
} catch (Exception ex) {
|
||||
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);
|
||||
Log.v(TAG, "updatePrefs() - mAuidbleFaultWarning = " + mAudibleFaultWarning);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mAuidbleFaultWarning = " + mAudibleFaultWarning);
|
||||
// Parse the faultTimer period setting.
|
||||
try {
|
||||
String faultTimerPeriodStr = SP.getString("FaultTimerPeriod", "30");
|
||||
mFaultTimerPeriod = Integer.parseInt(faultTimerPeriodStr);
|
||||
Log.v(TAG, "updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mFaultTimerPeriod = " + mFaultTimerPeriod);
|
||||
} catch (Exception ex) {
|
||||
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);
|
||||
Log.v(TAG, "updatePrefs() - mAuidbleAlarm = " + mAudibleAlarm);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mAuidbleAlarm = " + mAudibleAlarm);
|
||||
mAudibleWarning = SP.getBoolean("AudibleWarning", true);
|
||||
Log.v(TAG, "updatePrefs() - mAuidbleWarning = " + mAudibleWarning);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mAuidbleWarning = " + mAudibleWarning);
|
||||
mMp3Alarm = SP.getBoolean("UseMp3Alarm", false);
|
||||
Log.v(TAG, "updatePrefs() - mMp3Alarm = " + mMp3Alarm);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mMp3Alarm = " + mMp3Alarm);
|
||||
|
||||
mSMSAlarm = SP.getBoolean("SMSAlarm", false);
|
||||
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||
mPhoneAlarm = SP.getBoolean("PhoneCallAlarm", false);
|
||||
Log.v(TAG, "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mSMSAlarm = " + mSMSAlarm);
|
||||
String SMSNumberStr = SP.getString("SMSNumbers", "");
|
||||
mSMSNumbers = SMSNumberStr.split(",");
|
||||
mSMSMsgStr = SP.getString("SMSMsg", "Seizure Detected!!!");
|
||||
Log.v(TAG, "updatePrefs() - SMSNumberStr = " + SMSNumberStr);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - SMSNumberStr = " + SMSNumberStr);
|
||||
Log.v(TAG, "updatePrefs() - mSMSNumbers = " + mSMSNumbers);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mSMSNumbers = " + mSMSNumbers);
|
||||
mLogAlarms = SP.getBoolean("LogAlarms", true);
|
||||
Log.v(TAG, "updatePrefs() - mLogAlarms = " + mLogAlarms);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mLogAlarms = " + mLogAlarms);
|
||||
mLogData = SP.getBoolean("LogData", true);
|
||||
Log.v(TAG, "updatePrefs() - mLogData = " + mLogData);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mLogData = " + mLogData);
|
||||
mLogDataRemote = SP.getBoolean("LogDataRemote", false);
|
||||
Log.v(TAG, "updatePrefs() - mLogDataRemote = " + mLogDataRemote);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mLogDataRemote = " + mLogDataRemote);
|
||||
mLogDataRemoteMobile = SP.getBoolean("LogDataRemoteMobile", false);
|
||||
Log.v(TAG, "updatePrefs() - mLogDataRemoteMobile = " + mLogDataRemoteMobile);
|
||||
mUtil.writeToSysLogFile("updatePrefs() - mLogDataRemoteMobile = " + mLogDataRemoteMobile);
|
||||
mOSDUname = SP.getString("OSDUname", "<username>");
|
||||
Log.v(TAG, "updatePrefs() - mOSDUname = " + mOSDUname);
|
||||
mOSDPasswd = SP.getString("OSDPasswd", "<passwd>");
|
||||
@@ -1141,6 +1162,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
Log.v(TAG, "updatePrefs() - mOSDWearerId = " + mOSDWearerId);
|
||||
mOSDUrl = SP.getString("OSDUrl", "http://openseizuredetector.org.uk/webApi");
|
||||
Log.v(TAG, "updatePrefs() - mOSDUrl = " + mOSDUrl);
|
||||
mUtil.writeToSysLogFile( "updatePrefs() - mOSDUrl = " + mOSDUrl);
|
||||
} catch (Exception ex) {
|
||||
Log.v(TAG, "updatePrefs() - Problem parsing preferences!");
|
||||
mUtil.writeToSysLogFile("SdServer.updatePrefs() - Error " + ex.toString());
|
||||
@@ -1184,7 +1206,7 @@ public class SdServer extends Service implements SdDataReceiver {
|
||||
// Open output directory on SD Card.
|
||||
if (mUtil.isExternalStorageWritable()) {
|
||||
try {
|
||||
FileWriter of = new FileWriter(mUtil.getDataStorageDir().toString()
|
||||
FileWriter of = new FileWriter(getExternalFilesDir(null).toString()
|
||||
+ "/" + fname, true);
|
||||
if (mSdData != null) {
|
||||
if (alarm) {
|
||||
|
||||
@@ -2,6 +2,7 @@ package uk.org.openseizuredetector;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.AssetManager;
|
||||
import android.os.Handler;
|
||||
import android.util.Log;
|
||||
|
||||
import org.json.JSONArray;
|
||||
@@ -28,15 +29,17 @@ public class SdWebServer extends NanoHTTPD {
|
||||
private SdData mSdData;
|
||||
private SdServer mSdServer;
|
||||
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)
|
||||
super(8080);
|
||||
mSdData = sdData;
|
||||
mContext = context;
|
||||
mSdServer = sdServer;
|
||||
mDataStorageDir = storageDir;
|
||||
mHandler = new Handler();
|
||||
mUtil = new OsdUtil(mContext, mHandler);
|
||||
}
|
||||
|
||||
public void setSdData(SdData sdData) {
|
||||
@@ -235,16 +238,16 @@ public class SdWebServer extends NanoHTTPD {
|
||||
if (uriParts.countTokens() == 1) {
|
||||
Log.v(TAG, "Returning list of files");
|
||||
|
||||
File dirs = mDataStorageDir;
|
||||
try {
|
||||
JSONObject jsonObj = new JSONObject();
|
||||
if (dirs.exists()) {
|
||||
String[] fileList = dirs.list();
|
||||
File[] fileList = mUtil.getDataFilesList();
|
||||
Log.v(TAG, "serveLogFile(): fileList=" + fileList.toString()+", length="+fileList.length);
|
||||
JSONArray arr = new JSONArray();
|
||||
for (int i = 0; i < fileList.length; i++)
|
||||
arr.put(fileList[i]);
|
||||
jsonObj.put("logFileList", arr);
|
||||
for (int i = 0; i < fileList.length; i++) {
|
||||
Log.v(TAG, "serveLogFile(): file[" + i + "]=" + fileList[i]);
|
||||
arr.put(fileList[i].getName());
|
||||
}
|
||||
jsonObj.put("logFileList", arr);
|
||||
res = new NanoHTTPD.Response(NanoHTTPD.Response.Status.OK,
|
||||
"text/html", jsonObj.toString());
|
||||
} catch (Exception ex) {
|
||||
@@ -256,7 +259,7 @@ public class SdWebServer extends NanoHTTPD {
|
||||
|
||||
uripart = uriParts.nextToken(); // This will just be /logs
|
||||
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);
|
||||
ip = new FileInputStream(fname);
|
||||
String mimeStr = "text/html";
|
||||
|
||||
@@ -122,13 +122,13 @@
|
||||
android:id="@+id/acceptAlarmButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Accept Alarm" />
|
||||
android:text="@string/AcceptAlarmBtnTxt" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/cancelAudibleButton"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="Cancel Audible (temporarily)" />
|
||||
android:text="@string/CancelAudibleButtonTxt" />
|
||||
</LinearLayout>
|
||||
|
||||
<com.github.mikephil.charting.charts.BarChart
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:textAppearance="?android:attr/textAppearanceMedium"
|
||||
android:text="Starting......"
|
||||
android:text="@string/StartingTitle"
|
||||
android:id="@+id/dataSourceTextView"
|
||||
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="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="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>
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<resources>
|
||||
<string name="app_name">OpenSeizureDetector</string>
|
||||
<string name="changelog">
|
||||
\n V3.6.1 - Possible fix for issue with shutting down system and expanded Polish translation to all settings screens.
|
||||
\n V3.6 - Added phone sensor data source for testing without a watchs
|
||||
\n V3.5 - Added support for SMS Annunciator App
|
||||
\n V3.4 - Added support for BLE Data Source
|
||||
</string>
|
||||
"V3.6.2 - Fix of issue with log file permissions on some Android 10 devices and added more translatable strings with polish translation.
|
||||
\nV3.6.1 - Possible fix for issue with shutting down system and expanded Polish translation to all settings screens.
|
||||
\nV3.6 - Added phone sensor data source for testing without a watches
|
||||
\nV3.5 - Added support for SMS Annunciator App
|
||||
\nV3.4 - Added support for BLE Data Source "</string>
|
||||
<string name="UpgradeMsg">
|
||||
OpenSeizureDetector does not collect any personal data.
|
||||
This does mean that it is not possible for me to contact users if I find an
|
||||
@@ -255,4 +255,31 @@
|
||||
<string name="display_spectrum_mode_summary">Set Display Spectrum mode on or off.</string>
|
||||
<string name="analysis_prefs_title">Analysis</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>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory android:title="Alarm Functionality Settings">
|
||||
<PreferenceCategory android:title="@string/AlarmFunctionalitySettingsTitle">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="LatchAlarms"
|
||||
@@ -14,7 +14,7 @@
|
||||
android:defaultValue="10" />
|
||||
|
||||
</PreferenceCategory>
|
||||
<PreferenceCategory android:title="Audible Alarm Settings">
|
||||
<PreferenceCategory android:title="@string/AudibleAlarmSettingsTitle">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="AudibleAlarm"
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="SMS Alarm Settings">
|
||||
<PreferenceCategory android:title="@string/SMSAlarmSettingsTitle">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="SMSAlarm"
|
||||
@@ -56,7 +56,7 @@
|
||||
android:summary="@string/sms_numbers_summary"
|
||||
android:title="@string/sms_numbers_title" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="**SEIZURE DETECTED**"
|
||||
android:defaultValue="@string/DefaultSMSMsgText"
|
||||
android:key="SMSMsg"
|
||||
android:summary="@string/sms_message_summary"
|
||||
android:title="@string/sms_message_title" />
|
||||
@@ -70,7 +70,7 @@
|
||||
android:title="Enable Phone Call Alarm" />
|
||||
</PreferenceCategory>
|
||||
-->
|
||||
<PreferenceCategory android:title="Alarm Logging">
|
||||
<PreferenceCategory android:title="@string/AlarmLoggingTitle">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="true"
|
||||
android:key="LogAlarms"
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
android:summary="@string/DataSourceSummary"
|
||||
android:title="@string/DataSourceTitle" />
|
||||
|
||||
<PreferenceCategory android:title="Data Logging Settings">
|
||||
<PreferenceCategory android:title="@string/DataLoggingSettingsTitle">
|
||||
<!-- <CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="LogDataRemote"
|
||||
@@ -62,7 +62,7 @@
|
||||
android:title="@string/AlarmFreqMaxTitle" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="Heart Rate Alarm Settings">
|
||||
<PreferenceCategory android:title="@string/HeartRateAlarmSettingsTitle">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="HRAlarmActive"
|
||||
|
||||
@@ -2,90 +2,90 @@
|
||||
<!-- The ListPreference data is defined in pebble_datasource_values.xml -->
|
||||
<PreferenceScreen
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<PreferenceCategory android:title="Seizure Detector Settings">
|
||||
<PreferenceCategory android:title="@string/SeizureDetectorSettingsTitle">
|
||||
<EditTextPreference
|
||||
android:defaultValue="5"
|
||||
android:key="WarnTime"
|
||||
android:summary="Time to wait before initiating warning (Default = 5 sec)"
|
||||
android:title="WarnTime (sec)" />
|
||||
android:summary="@string/WarnTimeSummary"
|
||||
android:title="@string/WarnTimeTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="10"
|
||||
android:key="AlarmTime"
|
||||
android:summary="Time to wait before initiating alarm (Default = 10 sec)"
|
||||
android:title="AlarmTime (sec)" />
|
||||
android:summary="@string/AlarmTimeSummary"
|
||||
android:title="@string/AlarmTimeTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="100"
|
||||
android:key="AlarmThresh"
|
||||
android:summary="Alarm Threshold (Default = 100)"
|
||||
android:title="AlarmThresh" />
|
||||
android:summary="@string/AlarmThreshSummary"
|
||||
android:title="@string/AlarmThreshTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="50"
|
||||
android:key="AlarmRatioThresh"
|
||||
android:summary="Alarm Ratio Threshold (Default = 50). Increase this value to reduce sensitivity if false alarms are a problem."
|
||||
android:title="AlarmRatioThresh" />
|
||||
android:summary="@string/AlarmRatioThreshSummary"
|
||||
android:title="@string/AlarmRatioThreshTitle" />
|
||||
|
||||
<EditTextPreference
|
||||
android:defaultValue="3"
|
||||
android:key="AlarmFreqMin"
|
||||
android:summary="Minimum Frequency of ROI (Hz) (Default = 3 Hz)"
|
||||
android:title="AlarmFreqMin (Hz)" />
|
||||
android:summary="@string/AlarmFreqMinSummary"
|
||||
android:title="@string/AlarmFreqMinTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="10"
|
||||
android:key="AlarmFreqMax"
|
||||
android:summary="Maximum Frequency of ROI (Hz) (Default = 10 Hz)"
|
||||
android:title="AlarmFreqMax (Hz)" />
|
||||
android:summary="@string/AlarmFreqMaxSummary"
|
||||
android:title="@string/AlarmFreqMaxTitle" />
|
||||
|
||||
<EditTextPreference
|
||||
android:defaultValue="5"
|
||||
android:key="SamplePeriod"
|
||||
android:summary="Period (in seconds) between data analyses"
|
||||
android:title="SamplePeriod (sec)" />
|
||||
android:summary="@string/sample_period_summary"
|
||||
android:title="@string/sample_period_title" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="Heart Rate Alarm Settings">
|
||||
<PreferenceCategory android:title="@string/HeartRateAlarmSettingsTitle">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="HRAlarmActive"
|
||||
android:summary=""
|
||||
android:title="Heart Rate Alarm Enabled" />
|
||||
android:summary="@string/HRAlarmEnabledSummary"
|
||||
android:title="@string/HRAlarmEnabledTitle" />
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="HRNullAsAlarm"
|
||||
android:summary=""
|
||||
android:title="Treat a Null heart rate as an alarm condition" />
|
||||
android:summary="@string/HRNullAlarmSummary"
|
||||
android:title="@string/HRNullAlarmTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="40"
|
||||
android:key="HRThreshMin"
|
||||
android:summary=""
|
||||
android:title="Heart Rate Min Threshold (bpm)" />
|
||||
android:summary="@string/HRThreshMinSummary"
|
||||
android:title="@string/HRThreshMinTitle" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="150"
|
||||
android:key="HRThreshMax"
|
||||
android:summary=""
|
||||
android:title="Heart Rate Max Threshold (bpm)" />
|
||||
android:summary="@string/HRThreshMaxSummary"
|
||||
android:title="@string/HRThreshMaxTitle" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="Fall Detector Settings">
|
||||
<PreferenceCategory android:title="@string/fall_detect_title">
|
||||
<CheckBoxPreference
|
||||
android:defaultValue="false"
|
||||
android:key="FallActive"
|
||||
android:summary=""
|
||||
android:title="Activate Fall Detection Function" />
|
||||
android:title="@string/fall_detect_active_title" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="200"
|
||||
android:key="FallThreshMin"
|
||||
android:summary=""
|
||||
android:title="Fall Detection Lower Threshold (milli-g)" />
|
||||
android:title="@string/fall_thresh_min_title" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="1200"
|
||||
android:key="FallThreshMax"
|
||||
android:summary=""
|
||||
android:title="Fall Detection Upper Threshold (milli-g)" />
|
||||
android:title="@string/fall_thresh_max_title" />
|
||||
<EditTextPreference
|
||||
android:defaultValue="1500"
|
||||
android:key="FallWindow"
|
||||
android:summary=""
|
||||
android:title="Fall Detection Window (milli-seconds)" />
|
||||
android:title="@string/fall_window_title" />
|
||||
</PreferenceCategory>
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ buildscript {
|
||||
google()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:4.1.0'
|
||||
classpath 'com.android.tools.build:gradle:4.1.1'
|
||||
}
|
||||
}
|
||||
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
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
||||
Reference in New Issue
Block a user