From bae32ca54f3654c67a0314a8e236aa2c2d2e83b7 Mon Sep 17 00:00:00 2001 From: Graham Jones Date: Fri, 23 Feb 2018 15:01:53 +0000 Subject: [PATCH] Upate to V2.5.5 beta - Corrected some network logging messages, and made NetworkDataSource use the timeout settings in the preferences screen (it used to ignore them!) --- app/release/output.json | 2 +- app/src/main/AndroidManifest.xml | 2 +- .../SdDataSourceNetwork.java | 16 ++++--- .../uk/org/openseizuredetector/SdServer.java | 44 ++++++++++--------- .../main/res/xml/network_datasource_prefs.xml | 12 ++--- 5 files changed, 43 insertions(+), 33 deletions(-) diff --git a/app/release/output.json b/app/release/output.json index 43765f7..19a6650 100644 --- a/app/release/output.json +++ b/app/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":40},"path":"app-release.apk","properties":{"packageId":"uk.org.openseizuredetector","split":"","minSdkVersion":"14"}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":41},"path":"app-release.apk","properties":{"packageId":"uk.org.openseizuredetector","split":"","minSdkVersion":"14"}}] \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1a888e1..f76218c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,7 @@ diff --git a/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetwork.java b/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetwork.java index 98badba..12d776f 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetwork.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetwork.java @@ -28,6 +28,8 @@ public class SdDataSourceNetwork extends SdDataSource { private Time mStatusTime; private Timer mDataUpdateTimer; private int mDataUpdatePeriod = 2000; + private int mConnnectTimeoutPeriod = 5000; + private int mReadTimeoutPeriod = 5000; private String mServerIP = "unknown"; private int ALARM_STATE_NETFAULT = 7; @@ -92,6 +94,12 @@ public class SdDataSourceNetwork extends SdDataSource { String dataUpdatePeriodStr = SP.getString("DataUpdatePeriod","2000"); mDataUpdatePeriod = Integer.parseInt(dataUpdatePeriodStr); Log.v(TAG,"updatePrefs() - mDataUpdatePeriod = "+mDataUpdatePeriod); + String connectTimeoutPeriodStr = SP.getString("ConnectTimeoutPeriod","5000"); + mConnnectTimeoutPeriod = Integer.parseInt(connectTimeoutPeriodStr); + Log.v(TAG,"updatePrefs() - mConnectTimeoutPeriod = "+mConnnectTimeoutPeriod); + String readTimeoutPeriodStr = SP.getString("ReadTimeoutPeriod","5000"); + mReadTimeoutPeriod = Integer.parseInt(readTimeoutPeriodStr); + Log.v(TAG,"updatePrefs() - mReadTimeoutPeriod = "+mReadTimeoutPeriod); } catch (Exception ex) { Log.v(TAG,"updatePrefs() - Problem parsing preferences!"); mUtil.writeToSysLogFile("SdDataSourceNetwork().updatePrefs() - " +ex.toString()); @@ -156,9 +164,7 @@ public class SdDataSourceNetwork extends SdDataSource { } /** - * Retrive the current Seizure Detector Data from the server. - * Uses the DownloadSdDataTask class to download the data in the - * background. The data is processed in DownloadSdDataTask.onPostExecute(). + * Accept an alarm remotely using a http GET request. */ @Override public void acceptAlarm() { @@ -203,8 +209,8 @@ public class SdDataSourceNetwork extends SdDataSource { try { URL url = new URL(myurl); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setReadTimeout(5000 /* milliseconds */); - conn.setConnectTimeout(5000 /* milliseconds */); + conn.setReadTimeout(mReadTimeoutPeriod /* milliseconds */); + conn.setConnectTimeout(mConnnectTimeoutPeriod /* milliseconds */); conn.setRequestMethod("GET"); conn.setDoInput(true); // Starts the query diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServer.java b/app/src/main/java/uk/org/openseizuredetector/SdServer.java index f3d048a..25f39c4 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdServer.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdServer.java @@ -548,12 +548,12 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei } else { if (mAudibleFaultWarning) { if (mMp3Alarm) { - Log.v(TAG,"making MP3 alarm beep"); + Log.v(TAG, "making MP3 alarm beep"); // From https://stackoverflow.com/questions/4441334/how-to-play-an-android-notification-sound // This plays an audio file as a notification, using the notification sound channel. NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - Uri soundUri = Uri.parse("android.resource://"+getPackageName()+"/raw/fault"); + Uri soundUri = Uri.parse("android.resource://" + getPackageName() + "/raw/fault"); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()) .setSound(soundUri); //This sets the sound to play @@ -570,6 +570,7 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei } else { startFaultTimer(); Log.v(TAG, "faultWarningBeep() - starting Fault Timer"); + mUtil.writeToSysLogFile("faultWarningBeep() - starting Fault Timer"); } } @@ -584,15 +585,15 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei } else { if (mAudibleAlarm) { if (mMp3Alarm) { - Log.v(TAG,"making MP3 alarm beep"); + Log.v(TAG, "making MP3 alarm beep"); // From https://stackoverflow.com/questions/4441334/how-to-play-an-android-notification-sound // This plays an audio file as a notification, using the notification sound channel. NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - Uri soundUri = Uri.parse("android.resource://"+getPackageName()+"/raw/alarm"); + Uri soundUri = Uri.parse("android.resource://" + getPackageName() + "/raw/alarm"); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()) - .setSound(soundUri); //This sets the sound to play + .setSound(soundUri); //This sets the sound to play notificationManager.notify(0, mBuilder.build()); } else { beep(3000); @@ -614,12 +615,12 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei } else { if (mAudibleWarning) { if (mMp3Alarm) { - Log.v(TAG,"making MP3 alarm beep"); + Log.v(TAG, "making MP3 alarm beep"); // From https://stackoverflow.com/questions/4441334/how-to-play-an-android-notification-sound // This plays an audio file as a notification, using the notification sound channel. NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); - Uri soundUri = Uri.parse("android.resource://"+getPackageName()+"/raw/warning"); + Uri soundUri = Uri.parse("android.resource://" + getPackageName() + "/raw/warning"); NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(getApplicationContext()) .setSound(soundUri); //This sets the sound to play @@ -819,7 +820,7 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei mNetworkBroadcastReceiver = new NetworkBroadcastReceiver(); IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION); //filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); - getApplicationContext().registerReceiver(mNetworkBroadcastReceiver,filter); + getApplicationContext().registerReceiver(mNetworkBroadcastReceiver, filter); } /** @@ -843,37 +844,36 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei 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()); + 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); + (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"); + Log.v(TAG, "NetworkBroadcastReceiver - failed to retrieve active network info"); mUtil.writeToSysLogFile("NetworkBroadcastReceiver - failed to retrieve active network info"); - Log.v(TAG,e.toString()); + Log.v(TAG, e.toString()); } - if (activeNetwork != null) { - boolean isConnected = activeNetwork != null && - activeNetwork.isConnectedOrConnecting(); + boolean isConnected = activeNetwork != null && + activeNetwork.isConnectedOrConnecting(); + if (isConnected) { boolean isWiFi = activeNetwork.getType() == ConnectivityManager.TYPE_WIFI; if (!isWiFi) { - Log.v(TAG,"NetworkBroadcastReceiver - no Wifi Connection"); + 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"); + 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"); + Log.v(TAG, "NetworkBroadcastReceiver - No Active Network"); mUtil.writeToSysLogFile("Network State Changed - No Active Network"); mUtil.showToast("Network State Changed - No Active Network"); } @@ -1065,8 +1065,10 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei public void startFaultTimer() { if (mFaultTimer != null) { Log.v(TAG, "startFaultTimer(): fault timer already running - not doing anything."); + mUtil.writeToSysLogFile("startFaultTimer() - fault timer already running"); } else { Log.v(TAG, "startFaultTimer(): starting fault timer."); + mUtil.writeToSysLogFile("startFaultTimer() - starting fault timer"); runOnUiThread(new Runnable() { public void run() { mFaultTimerCompleted = false; @@ -1082,11 +1084,13 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei public void stopFaultTimer() { if (mFaultTimer != null) { Log.v(TAG, "stopFaultTimer(): fault timer already running - cancelling it."); + mUtil.writeToSysLogFile("stopFaultTimer() - stopping fault timer"); mFaultTimer.cancel(); mFaultTimer = null; mFaultTimerCompleted = false; } else { Log.v(TAG, "stopFaultTimer(): fault timer not running - not doing anything."); + //mUtil.writeToSysLogFile("stopFaultTimer() - fault timer not running"); } } diff --git a/app/src/main/res/xml/network_datasource_prefs.xml b/app/src/main/res/xml/network_datasource_prefs.xml index 5b48af2..9ccc76a 100644 --- a/app/src/main/res/xml/network_datasource_prefs.xml +++ b/app/src/main/res/xml/network_datasource_prefs.xml @@ -12,15 +12,15 @@ android:summary="Period between server data requests in miliseconds." android:title="Data Update Period (ms)" /> + android:title="Connection Timeout Period (ms)" /> + android:title="Read Timeout Period (ms)" /> \ No newline at end of file