From 8944cbc6d36f711a913dcc91720e7c2d3c0ea2f1 Mon Sep 17 00:00:00 2001 From: Graham Jones Date: Wed, 30 Mar 2016 20:15:20 +0100 Subject: [PATCH] Sorted issue with startupActivity showing data recieved when it had not been, and disabled (non-functioning) ip camera settings. --- .../uk/org/openseizuredetector/SdData.java | 174 +++++++++--------- .../SdDataSourcePebble.java | 2 + .../uk/org/openseizuredetector/SdServer.java | 2 +- .../SdServiceConnection.java | 2 +- app/src/main/res/xml/general_prefs.xml | 4 +- app/src/main/res/xml/preference_headers.xml | 4 +- 6 files changed, 99 insertions(+), 89 deletions(-) diff --git a/app/src/main/java/uk/org/openseizuredetector/SdData.java b/app/src/main/java/uk/org/openseizuredetector/SdData.java index f326f9f..282710e 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdData.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdData.java @@ -28,9 +28,11 @@ import android.os.Parcelable; import android.os.Parcel; import android.text.format.Time; import android.util.Log; + import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Locale; + import org.json.JSONObject; import org.json.JSONArray; @@ -40,6 +42,7 @@ public class SdData implements Parcelable { private final static String TAG = "SdData"; /* Analysis settings */ public boolean haveSettings = false; // flag to say if we have received settings or not. + public boolean haveData = false; // flag to say we have received data. public long alarmFreqMin; public long alarmFreqMax; public long nMin; @@ -51,9 +54,9 @@ public class SdData implements Parcelable { public long batteryPc; /* Analysis results */ - public Time dataTime; + public Time dataTime = null; public long alarmState; - public boolean alarmStanding = false; + public boolean alarmStanding = false; public boolean fallAlarmStanding = false; public long maxVal; public long maxFreq; @@ -66,117 +69,118 @@ public class SdData implements Parcelable { public boolean serverOK = false; public SdData() { - simpleSpec = new int[10]; - dataTime = new Time(Time.getCurrentTimezone()); + simpleSpec = new int[10]; + dataTime = new Time(Time.getCurrentTimezone()); } /* * Intialise this SdData object from a JSON String */ public boolean fromJSON(String jsonStr) { - Log.v(TAG,"fromJSON() - parsing jsonString - "+jsonStr); - try { - JSONObject jo = new JSONObject(jsonStr); - Log.v(TAG,"fromJSON(): jo = "+jo.toString()); - Log.v(TAG,"fromJSON(): dataTimeStr="+jo.optString("dataTimeStr")); - //Calendar cal = Calendar.getInstance(); - //SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddTHHmmss", Locale.UK); - //cal.setTime(sdf.parse(jo.optString("dataTimeStr"))); - //dataTime = cal.getTime(); - // FIXME - this doesn't work!!! - dataTime.setToNow(); - Log.v(TAG, "fromJSON(): dataTime = " + dataTime.toString()); - maxVal = jo.optInt("maxVal"); - maxFreq = jo.optInt("maxFreq"); - specPower = jo.optInt("specPower"); - roiPower = jo.optInt("roiPower"); - batteryPc = jo.optInt("batteryPc"); - pebbleConnected = jo.optBoolean("pebbleConnected"); - pebbleAppRunning = jo.optBoolean("pebbleAppRunning"); - alarmState = jo.optInt("alarmState"); - alarmPhrase = jo.optString("alarmPhrase"); - alarmThresh = jo.optInt("alarmThresh"); - alarmRatioThresh = jo.optInt("alarmRatioThresh"); - JSONArray specArr = jo.optJSONArray("simpleSpec"); - for (int i=0;i CREATOR = new Parcelable.Creator() { - public SdData createFromParcel(Parcel in) { - return new SdData(in); - } - public SdData[] newArray(int size) { - return new SdData[size]; - } + public SdData createFromParcel(Parcel in) { + return new SdData(in); + } + + public SdData[] newArray(int size) { + return new SdData[size]; + } }; } diff --git a/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java b/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java index 7fb0c12..c07dd82 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePebble.java @@ -338,6 +338,7 @@ public class SdDataSourcePebble extends SdDataSource { mSdData.specPower = data.getUnsignedIntegerAsLong(KEY_SPECPOWER); mSdData.roiPower = data.getUnsignedIntegerAsLong(KEY_ROIPOWER); mSdData.alarmPhrase = "Unknown"; + mSdData.haveData = true; mSdDataReceiver.onSdDataReceived(mSdData); } @@ -465,6 +466,7 @@ public class SdDataSourcePebble extends SdDataSource { mSdData.pebbleAppRunning = false; Log.v(TAG, "getPebbleStatus() - Pebble App Not Running - Attempting to Re-Start"); startWatchApp(); + mPebbleStatusTime = tnow; // set status time to now so we do not re-start app repeatedly. getPebbleSdSettings(); // Only make audible warning beep if we have not received data for more than mFaultTimerPeriod seconds. if (tdiff > (mDataPeriod+mFaultTimerPeriod) * 1000) { diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServer.java b/app/src/main/java/uk/org/openseizuredetector/SdServer.java index d293504..9c93c36 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdServer.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdServer.java @@ -95,7 +95,7 @@ public class SdServer extends Service implements SdDataReceiver { private HandlerThread thread; private WakeLock mWakeLock = null; public SdDataSource mSdDataSource; - public SdData mSdData; + public SdData mSdData = null; public String mSdDataSourceName = "undefined"; // The name of the data soruce specified in the preferences. private boolean mLatchAlarms = false; private boolean mCancelAudible = false; diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServiceConnection.java b/app/src/main/java/uk/org/openseizuredetector/SdServiceConnection.java index f79f480..b2e9b2c 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdServiceConnection.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdServiceConnection.java @@ -73,7 +73,7 @@ public class SdServiceConnection implements ServiceConnection { public boolean hasSdData() { if (mSdServer!=null) { if (mSdServer.mSdData!=null) { - return true; + return mSdServer.mSdData.haveData; } } return false; diff --git a/app/src/main/res/xml/general_prefs.xml b/app/src/main/res/xml/general_prefs.xml index 3c6c068..4d6d88e 100644 --- a/app/src/main/res/xml/general_prefs.xml +++ b/app/src/main/res/xml/general_prefs.xml @@ -31,7 +31,9 @@ android:defaultValue="true" android:key="UseIpCamera" android:summary="Use IP Camera to View Images" - android:title="Enable IP Camera" /> + android:title="Enable IP Camera" + android:enabled="False" + /> diff --git a/app/src/main/res/xml/preference_headers.xml b/app/src/main/res/xml/preference_headers.xml index f1c6deb..9f3e8fc 100644 --- a/app/src/main/res/xml/preference_headers.xml +++ b/app/src/main/res/xml/preference_headers.xml @@ -25,7 +25,9 @@
+ android:summary="IP Camera Preferences" + android:enabled="false" + /> \ No newline at end of file