diff --git a/app/release/app-release-4.0.4.apk b/app/release/app-release-4.0.5c.apk similarity index 88% rename from app/release/app-release-4.0.4.apk rename to app/release/app-release-4.0.5c.apk index 3f7bc5c..62117de 100644 Binary files a/app/release/app-release-4.0.4.apk and b/app/release/app-release-4.0.5c.apk differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e6feeba..7ce8823 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -3,7 +3,7 @@ xmlns:tools="http://schemas.android.com/tools" package="uk.org.openseizuredetector" android:versionCode="101" - android:versionName="4.0.5b"> + android:versionName="4.0.5c"> diff --git a/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java b/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java index bbe2783..82a25f1 100644 --- a/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java @@ -520,9 +520,9 @@ public class LogManagerControlActivity extends AppCompatActivity { public void onItemClick(AdapterView adapter, View v, int position, long id) { Log.v(TAG, "onItemClicKListener() - Position=" + position + ", id=" + id);// Confirmation dialog based on: https://stackoverflow.com/a/12213536/2104584 HashMap eventObj = (HashMap) adapter.getItemAtPosition(position); - Long eventId = Long.parseLong(eventObj.get("uploaded")); + String eventId = eventObj.get("uploaded"); Log.d(TAG, "onItemClickListener(): eventId=" + eventId + ", eventObj=" + eventObj); - if (eventId > 0) { + if (eventId != null) { Intent i = new Intent(getApplicationContext(), EditEventActivity.class); i.putExtra("eventId", eventId); startActivity(i); diff --git a/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java b/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java index 6b5f174..95e3be0 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdDataSource.java @@ -294,15 +294,22 @@ public abstract class SdDataSource { mSdData.rawData[i] = accelVals.getInt(i); } mSdData.mNsamp = accelVals.length(); - - accelVals3D = dataObject.getJSONArray("data3D"); - Log.v(TAG, "Received " + accelVals3D.length() + " acceleration 3D values, rawData Length is " + mSdData.rawData3D.length); - if (accelVals3D.length() > mSdData.rawData3D.length) { - mUtil.writeToSysLogFile("ERROR: Received " + accelVals3D.length() + " 3D acceleration values, but rawData3D storage length is " - + mSdData.rawData3D.length); - } - for (i = 0; i < accelVals3D.length(); i++) { - mSdData.rawData3D[i] = accelVals3D.getInt(i); + try { + accelVals3D = dataObject.getJSONArray("data3D"); + Log.v(TAG, "Received " + accelVals3D.length() + " acceleration 3D values, rawData Length is " + mSdData.rawData3D.length); + if (accelVals3D.length() > mSdData.rawData3D.length) { + mUtil.writeToSysLogFile("ERROR: Received " + accelVals3D.length() + " 3D acceleration values, but rawData3D storage length is " + + mSdData.rawData3D.length); + } + for (i = 0; i < accelVals3D.length(); i++) { + mSdData.rawData3D[i] = accelVals3D.getInt(i); + } + } catch (JSONException e) { + // If we get an error, just set rawData3D to zero + Log.i(TAG,"updateFromJSON - error parsing 3D data - setting it to zero"); + for (i = 0; i < mSdData.rawData3D.length; i++) { + mSdData.rawData3D[i] = 0.; + } } mWatchAppRunningCheck = true; diff --git a/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePhone.java b/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePhone.java index 625a7c1..48abb03 100644 --- a/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePhone.java +++ b/app/src/main/java/uk/org/openseizuredetector/SdDataSourcePhone.java @@ -129,6 +129,9 @@ public class SdDataSourcePhone extends SdDataSource implements SensorEventListen float z = event.values[2]; //Log.v(TAG,"Accelerometer Data Received: x="+x+", y="+y+", z="+z); mSdData.rawData[mSdData.mNsamp] = sqrt(x*x + y*y + z*z); + mSdData.rawData3D[3*mSdData.mNsamp] = x; + mSdData.rawData3D[3*mSdData.mNsamp+1] = y; + mSdData.rawData3D[3*mSdData.mNsamp+2] = z; mSdData.mNsamp++; if (mSdData.mNsamp==NSAMP) { // Calculate the sample frequency for this sample, but do not change mSampleFreq, which is used for @@ -142,6 +145,9 @@ public class SdDataSourcePhone extends SdDataSource implements SensorEventListen // FIXME - we should really do this properly rather than assume we are really receiving data at 50Hz. for (int i=0; i