From 34bf2a724b9b73f31eb7bd178bdba074fc164d49 Mon Sep 17 00:00:00 2001 From: Graham Jones Date: Sat, 23 Dec 2017 20:55:41 +0000 Subject: [PATCH] Added broadcastreceiver to receive data from external data sources --- .../SdDataSourceNetworkPassive.java | 29 +++++++++++++++++-- .../uk/org/openseizuredetector/SdServer.java | 2 +- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetworkPassive.java b/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetworkPassive.java index 4a9c291..e4b9c73 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetworkPassive.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdDataSourceNetworkPassive.java @@ -23,10 +23,12 @@ */ 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.net.ConnectivityManager; import android.os.BatteryManager; import android.os.Handler; import android.preference.PreferenceManager; @@ -66,6 +68,7 @@ public class SdDataSourceNetworkPassive extends SdDataSource { // data after mDataUpdatePeriod private int mFaultTimerPeriod = 30; // Fault Timer Period in sec private int mSettingsPeriod = 60; // period between requesting settings in seconds. + private SdDataBroadcastReceiver mSdDataBroadcastReceiver; private String TAG = "SdDataSourceNetPassive"; @@ -170,6 +173,11 @@ public class SdDataSourceNetworkPassive extends SdDataSource { mUtil.writeToSysLogFile("SdDataSourceNetworkPassive.start() - settings timer already running??"); } + mSdDataBroadcastReceiver = new SdDataBroadcastReceiver(); + //uk.org.openseizuredetector.SdDataReceived + IntentFilter filter = new IntentFilter("uk.org.openseizuredetector.SdDataReceived"); + mContext.registerReceiver(mSdDataBroadcastReceiver, filter); + } /** @@ -191,6 +199,7 @@ public class SdDataSourceNetworkPassive extends SdDataSource { Log.v(TAG, "Error in stop() - " + e.toString()); mUtil.writeToSysLogFile("SdDataSourceNetworkPassive.stop() - error - "+e.toString()); } + mContext.unregisterReceiver(mSdDataBroadcastReceiver); } /** @@ -316,7 +325,8 @@ public class SdDataSourceNetworkPassive extends SdDataSource { try { JSONObject mainObject = new JSONObject(jsonStr); - JSONObject dataObject = mainObject.getJSONObject("dataObj"); + //JSONObject dataObject = mainObject.getJSONObject("dataObj"); + JSONObject dataObject = mainObject; String dataTypeStr = dataObject.getString("dataType"); Log.v(TAG,"updateFromJSON - dataType="+dataTypeStr); if (dataTypeStr.equals("raw")) { @@ -339,9 +349,12 @@ public class SdDataSourceNetworkPassive extends SdDataSource { mSdData.haveSettings = true; mSdData.mSampleFreq = mSampleFreq; mWatchAppRunningCheck = true; + } else { + Log.v(TAG,"updateFromJSON - unrecognised dataType "+dataTypeStr); } } catch (Exception e) { - Log.v(TAG,"Error Parsing JSON String - "+e.toString()); + Log.v(TAG,"updateFromJSON - Error Parsing JSON String - "+e.toString()); + e.printStackTrace(); } } @@ -551,6 +564,18 @@ public class SdDataSourceNetworkPassive extends SdDataSource { } } + public class SdDataBroadcastReceiver extends BroadcastReceiver { + //private String TAG = "SdDataBroadcastReceiver"; + + @Override + public void onReceive(Context context, Intent intent) { + Log.v(TAG,"SdDataBroadcastReceiver.onReceive()"); + String jsonStr = intent.getStringExtra("data"); + Log.v(TAG,"SdDataBroadcastReceiver.onReceive() - data="+jsonStr); + updateFromJSON(jsonStr); + } + } + } diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServer.java b/app/src/main/java/uk/org/openseizuredetector/SdServer.java index e9eb146..f1f0fad 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdServer.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdServer.java @@ -37,6 +37,7 @@ import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.app.Service; +import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -1073,5 +1074,4 @@ public class SdServer extends Service implements SdDataReceiver, SdLocationRecei } - }