Beta release of V2.5.5 - Adds network status logging.
This commit is contained in:
@@ -1,6 +1,10 @@
|
|||||||
OpenSeizureDetector Android App - Change Log
|
OpenSeizureDetector Android App - Change Log
|
||||||
============================================
|
============================================
|
||||||
|
|
||||||
|
V2.5.5 - 23feb2018 - Improved logging to help diagnose network problems
|
||||||
|
that result in 'net fault' warnings from network data source
|
||||||
|
('wifi-storms').
|
||||||
|
|
||||||
V2.5.4 - 03dec2017 - Added option to use either tone generator or MP3 alarm sound, as a user reported problem with tone generator on high end samsung phone.
|
V2.5.4 - 03dec2017 - Added option to use either tone generator or MP3 alarm sound, as a user reported problem with tone generator on high end samsung phone.
|
||||||
|
|
||||||
V2.5.3 - 10sep2017 - Added Pebble App V2.6 which provides better alarm reliability
|
V2.5.3 - 10sep2017 - Added Pebble App V2.6 which provides better alarm reliability
|
||||||
|
|||||||
Binary file not shown.
@@ -1 +1 @@
|
|||||||
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":38},"path":"app-release.apk","properties":{"packageId":"uk.org.openseizuredetector","split":"","minSdkVersion":"14"}}]
|
[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":39},"path":"app-release.apk","properties":{"packageId":"uk.org.openseizuredetector","split":"","minSdkVersion":"14"}}]
|
||||||
@@ -1,11 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="uk.org.openseizuredetector"
|
package="uk.org.openseizuredetector"
|
||||||
android:versionCode="38"
|
android:versionCode="39"
|
||||||
android:versionName="2.5.4">
|
android:versionName="2.5.5">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.INTERNET" />
|
<uses-permission android:name="android.permission.INTERNET" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.SEND_SMS" />
|
<uses-permission android:name="android.permission.SEND_SMS" />
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
*/
|
*/
|
||||||
public void updatePrefs() {
|
public void updatePrefs() {
|
||||||
Log.v(TAG, "updatePrefs()");
|
Log.v(TAG, "updatePrefs()");
|
||||||
mUtil.writeToSysLogFile("SdDataSourcePebble.updatePrefs()");
|
//mUtil.writeToSysLogFile("SdDataSourcePebble.updatePrefs()");
|
||||||
SharedPreferences SP = PreferenceManager
|
SharedPreferences SP = PreferenceManager
|
||||||
.getDefaultSharedPreferences(mContext);
|
.getDefaultSharedPreferences(mContext);
|
||||||
try {
|
try {
|
||||||
@@ -527,7 +527,7 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
*/
|
*/
|
||||||
public void getPebbleSdSettings() {
|
public void getPebbleSdSettings() {
|
||||||
Log.v(TAG, "getPebbleSdSettings() - sending required settings to pebble");
|
Log.v(TAG, "getPebbleSdSettings() - sending required settings to pebble");
|
||||||
mUtil.writeToSysLogFile("SdDataSourcePebble.getPebbleSdSettings()");
|
//mUtil.writeToSysLogFile("SdDataSourcePebble.getPebbleSdSettings()");
|
||||||
sendPebbleSdSettings();
|
sendPebbleSdSettings();
|
||||||
//Log.v(TAG, "getPebbleSdSettings() - requesting settings from pebble");
|
//Log.v(TAG, "getPebbleSdSettings() - requesting settings from pebble");
|
||||||
//mUtil.writeToSysLogFile("SdDataSourcePebble.getPebbleSdSettings() - and request settings from pebble");
|
//mUtil.writeToSysLogFile("SdDataSourcePebble.getPebbleSdSettings() - and request settings from pebble");
|
||||||
@@ -545,7 +545,7 @@ public class SdDataSourcePebble extends SdDataSource {
|
|||||||
*/
|
*/
|
||||||
public void sendPebbleSdSettings() {
|
public void sendPebbleSdSettings() {
|
||||||
Log.v(TAG, "sendPebblSdSettings() - preparing settings dictionary.. mSampleFreq=" + mSampleFreq);
|
Log.v(TAG, "sendPebblSdSettings() - preparing settings dictionary.. mSampleFreq=" + mSampleFreq);
|
||||||
mUtil.writeToSysLogFile("SdDataSourcePebble.sendPebbleSdSettings()");
|
//mUtil.writeToSysLogFile("SdDataSourcePebble.sendPebbleSdSettings()");
|
||||||
|
|
||||||
// Watch Settings
|
// Watch Settings
|
||||||
final PebbleDictionary setDict = new PebbleDictionary();
|
final PebbleDictionary setDict = new PebbleDictionary();
|
||||||
|
|||||||
@@ -37,9 +37,11 @@ import android.app.Notification;
|
|||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.app.PendingIntent;
|
import android.app.PendingIntent;
|
||||||
import android.app.Service;
|
import android.app.Service;
|
||||||
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.content.IntentFilter;
|
||||||
import android.content.res.AssetManager;
|
import android.content.res.AssetManager;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
@@ -47,6 +49,8 @@ import android.location.Location;
|
|||||||
import android.media.AudioManager;
|
import android.media.AudioManager;
|
||||||
import android.media.RingtoneManager;
|
import android.media.RingtoneManager;
|
||||||
import android.media.ToneGenerator;
|
import android.media.ToneGenerator;
|
||||||
|
import android.net.ConnectivityManager;
|
||||||
|
import android.net.NetworkInfo;
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
import android.os.CountDownTimer;
|
import android.os.CountDownTimer;
|
||||||
import android.os.Environment;
|
import android.os.Environment;
|
||||||
@@ -123,6 +127,8 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei
|
|||||||
private Handler mHandler;
|
private Handler mHandler;
|
||||||
private ToneGenerator mToneGenerator;
|
private ToneGenerator mToneGenerator;
|
||||||
|
|
||||||
|
private NetworkBroadcastReceiver mNetworkBroadcastReceiver;
|
||||||
|
|
||||||
private final IBinder mBinder = new SdBinder();
|
private final IBinder mBinder = new SdBinder();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -764,7 +770,7 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei
|
|||||||
// Start timer to remove the cancel audible flag
|
// Start timer to remove the cancel audible flag
|
||||||
// after the required period.
|
// after the required period.
|
||||||
if (mCancelAudibleTimer != null) {
|
if (mCancelAudibleTimer != null) {
|
||||||
Log.v(TAG, "onCreate(): cancel audible timer already running - cancelling it.");
|
Log.v(TAG, "cancelAudible(): cancel audible timer already running - cancelling it.");
|
||||||
mCancelAudibleTimer.cancel();
|
mCancelAudibleTimer.cancel();
|
||||||
mCancelAudibleTimer = null;
|
mCancelAudibleTimer = null;
|
||||||
mCancelAudible = false;
|
mCancelAudible = false;
|
||||||
@@ -792,7 +798,8 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei
|
|||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Start the web server (on port 8080)
|
* Start the web server (on port 8080), and register for network connectivity events so we can log
|
||||||
|
* problems.
|
||||||
*/
|
*/
|
||||||
protected void startWebServer() {
|
protected void startWebServer() {
|
||||||
Log.v(TAG, "startWebServer()");
|
Log.v(TAG, "startWebServer()");
|
||||||
@@ -808,10 +815,16 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei
|
|||||||
} else {
|
} else {
|
||||||
Log.v(TAG, "startWebServer(): server already running???");
|
Log.v(TAG, "startWebServer(): server already running???");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mNetworkBroadcastReceiver = new NetworkBroadcastReceiver();
|
||||||
|
IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
|
||||||
|
//filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
|
||||||
|
getApplicationContext().registerReceiver(mNetworkBroadcastReceiver,filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Stop the web server - FIXME - doesn't seem to do anything!
|
* Stop the web server - FIXME - doesn't seem to do anything!
|
||||||
|
* And de-register for network connectivity events.
|
||||||
*/
|
*/
|
||||||
protected void stopWebServer() {
|
protected void stopWebServer() {
|
||||||
Log.v(TAG, "SdServer.stopWebServer()");
|
Log.v(TAG, "SdServer.stopWebServer()");
|
||||||
@@ -824,8 +837,50 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei
|
|||||||
}
|
}
|
||||||
webServer = null;
|
webServer = null;
|
||||||
}
|
}
|
||||||
|
getApplicationContext().unregisterReceiver(mNetworkBroadcastReceiver);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private class NetworkBroadcastReceiver extends BroadcastReceiver {
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
Log.v(TAG,"NetworkBroadCastReceiver.onReceive");
|
||||||
|
mUtil.writeToSysLogFile("Network State Changed" + intent.getAction());
|
||||||
|
//mUtil.showToast("Network State Changed" + intent.getAction());
|
||||||
|
|
||||||
|
ConnectivityManager cm =
|
||||||
|
(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
||||||
|
|
||||||
|
NetworkInfo activeNetwork = null;
|
||||||
|
try {
|
||||||
|
activeNetwork = cm.getActiveNetworkInfo();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.v(TAG,"NetworkBroadcastReceiver - failed to retrieve active network info");
|
||||||
|
mUtil.writeToSysLogFile("NetworkBroadcastReceiver - failed to retrieve active network info");
|
||||||
|
Log.v(TAG,e.toString());
|
||||||
|
}
|
||||||
|
if (activeNetwork != null) {
|
||||||
|
boolean isConnected = activeNetwork != null &&
|
||||||
|
activeNetwork.isConnectedOrConnecting();
|
||||||
|
boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI;
|
||||||
|
if (!isWiFi) {
|
||||||
|
Log.v(TAG,"NetworkBroadcastReceiver - no Wifi Connection");
|
||||||
|
mUtil.writeToSysLogFile("Network State Changed - no Wifi Connection");
|
||||||
|
mUtil.showToast("Network State Changed - no Wifi Connection");
|
||||||
|
} else {
|
||||||
|
Log.v(TAG,"NetworkBroadcastReceiver - Wifi Connected");
|
||||||
|
mUtil.writeToSysLogFile("Network State Changed - Wifi Connected");
|
||||||
|
mUtil.showToast("Network State Changed - Wifi Connected");
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Log.v(TAG,"NetworkBroadcastReceiver - No Active Network");
|
||||||
|
mUtil.writeToSysLogFile("Network State Changed - No Active Network");
|
||||||
|
mUtil.showToast("Network State Changed - No Active Network");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Log data to SD card if mLogData is set in preferences.
|
* Log data to SD card if mLogData is set in preferences.
|
||||||
*/
|
*/
|
||||||
|
|||||||
Reference in New Issue
Block a user