diff --git a/app/src/main/java/uk/org/openseizuredetector/EditEventActivity.java b/app/src/main/java/uk/org/openseizuredetector/EditEventActivity.java index df2b73b..08e4c0c 100644 --- a/app/src/main/java/uk/org/openseizuredetector/EditEventActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/EditEventActivity.java @@ -171,6 +171,8 @@ public class EditEventActivity extends AppCompatActivity if (mEventObj != null) { tv = (TextView) findViewById(R.id.eventIdTv); tv.setText(String.valueOf(mEventObj.getLong("id"))); + tv = (TextView) findViewById(R.id.eventAlarmStateTv); + tv.setText(mEventObj.getString("alarmStateStr")); tv = (TextView) findViewById(R.id.eventNotsTv); tv.setText(mEventObj.getString("desc")); diff --git a/app/src/main/java/uk/org/openseizuredetector/LogManager.java b/app/src/main/java/uk/org/openseizuredetector/LogManager.java index b17dcf8..49ac214 100644 --- a/app/src/main/java/uk/org/openseizuredetector/LogManager.java +++ b/app/src/main/java/uk/org/openseizuredetector/LogManager.java @@ -361,23 +361,7 @@ public class LogManager implements AuthCallbackInterface, EventCallbackInterface //event.put("id", cursor.getString(cursor.getColumnIndex("id"))); event.put("dataTime", cursor.getString(cursor.getColumnIndex("dataTime"))); int status = cursor.getInt(cursor.getColumnIndex("Status")); - String statusStr = "Unknown"; - switch (status) { - case 1: - statusStr = "WARNING"; - break; - case 2: - statusStr = "ALARM"; - break; - case 3: - statusStr = "FALL"; - break; - case 5: - statusStr = "MANUAL ALARM"; - break; - default: - statusStr = "Unknown"; - } + String statusStr = mUtil.alarmStatusToString(status); event.put("status",statusStr); event.put("uploaded", cursor.getString(cursor.getColumnIndex("uploaded"))); //event.put("dataJSON", cursor.getString(cursor.getColumnIndex("dataJSON"))); @@ -611,33 +595,13 @@ public class LogManager implements AuthCallbackInterface, EventCallbackInterface e.printStackTrace(); return; } - // FIXME - this should really not be hard coded but based on a file on the API server. - // GJ 03jan22 - switch (eventAlarmStatus) { - case 1: // Warning - eventType = 1; - break; - case 2: // alarm - eventType = 0; - break; - case 3: // fall - eventType = 2; - break; - case 5: // Manual alarm - eventType = 3; - break; - default: - eventType = -1; - Log.e(TAG, "UploadSdData - alarmStatus " + eventAlarmStatus + " unrecognised"); - return; - } try { eventDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(eventDateStr); } catch (ParseException e) { Log.e(TAG, "Error parsing date " + eventDateStr); return; } - mWac.createEvent(eventType, eventDate, "Uploaded by OpenSeizureDetector Android App"); + mWac.createEvent(eventAlarmStatus, eventDate, "Uploaded by OpenSeizureDetector Android App"); } else{ Log.v(TAG,"UploadSdData - no data to upload"); } diff --git a/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java b/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java index 727a6c7..468e4b4 100644 --- a/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java +++ b/app/src/main/java/uk/org/openseizuredetector/LogManagerControlActivity.java @@ -61,8 +61,8 @@ public class LogManagerControlActivity extends AppCompatActivity { (Button) findViewById(R.id.reportSeizureBtn); reportSeizureBtn.setOnClickListener(onReportSeizureBtn); Button remoteDbBtn = - (Button) findViewById(R.id.view_remote_db_button); - remoteDbBtn.setOnClickListener(onRemoteDbBtn); + (Button) findViewById(R.id.refresh_button); + remoteDbBtn.setOnClickListener(onRefreshBtn); ListView lv = (ListView) findViewById(R.id.eventLogListView); lv.setOnItemClickListener(onEventListClick); @@ -129,6 +129,7 @@ public class LogManagerControlActivity extends AppCompatActivity { private void initialiseServiceConnection() { mLm = mConnection.mSdServer.mLm; + startUiTimer(); getRemoteEvents(); // Populate events list - we only do it once when the activity is created because the query might slow down the UI. // We could try this code in updateUI() and see though. @@ -162,6 +163,7 @@ public class LogManagerControlActivity extends AppCompatActivity { HashMap eventHashMap = new HashMap(); eventHashMap.put("id", String.valueOf(id)); eventHashMap.put("osdAlarmState", String.valueOf(osdAlarmState)); + eventHashMap.put("osdAlarmStateStr", mUtil.alarmStatusToString(osdAlarmState)); eventHashMap.put("dataTime", dataTime); eventHashMap.put("type", typeStr); eventHashMap.put("subType", subType); @@ -299,6 +301,16 @@ public class LogManagerControlActivity extends AppCompatActivity { } }; + View.OnClickListener onRefreshBtn = + new View.OnClickListener() { + @Override + public void onClick(View view) { + Log.v(TAG, "onRefreshBtn"); + initialiseServiceConnection(); + } + }; + + AdapterView.OnItemClickListener onEventListClick = new AdapterView.OnItemClickListener() { public void onItemClick(AdapterView adapter, View v, int position, long id) { diff --git a/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java b/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java index 4066a2c..2115441 100644 --- a/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java +++ b/app/src/main/java/uk/org/openseizuredetector/OsdUtil.java @@ -541,4 +541,30 @@ public class OsdUtil implements ActivityCompat.OnRequestPermissionsResultCallbac }, 100); } + + + public final int ALARM_STATUS_WARNING = 1; + public final int ALARM_STATUS_ALARM = 2; + public final int ALARM_STATUS_FALL = 3; + public final int ALARM_STATUS_MANUAL = 5; + + public String alarmStatusToString(int eventAlarmStatus) { + String retVal = "Unknown"; + switch (eventAlarmStatus) { + case ALARM_STATUS_WARNING: // Warning + retVal = "WARNING"; + break; + case ALARM_STATUS_ALARM: // alarm + retVal = "ALARM"; + break; + case ALARM_STATUS_FALL: // fall + retVal = "FALL"; + break; + case ALARM_STATUS_MANUAL: // Manual alarm + retVal = "MANUAL ALARM"; + break; + + } + return(retVal); + } } diff --git a/app/src/main/java/uk/org/openseizuredetector/WebApiConnection.java b/app/src/main/java/uk/org/openseizuredetector/WebApiConnection.java index ecc715f..ea45e3d 100644 --- a/app/src/main/java/uk/org/openseizuredetector/WebApiConnection.java +++ b/app/src/main/java/uk/org/openseizuredetector/WebApiConnection.java @@ -3,6 +3,7 @@ package uk.org.openseizuredetector; import android.content.Context; import android.content.SharedPreferences; import android.icu.text.RelativeDateTimeFormatter; +import android.os.Handler; import android.preference.PreferenceManager; import android.util.Log; @@ -42,6 +43,7 @@ public class WebApiConnection { private DatapointCallbackInterface mDatapointCallback; private Context mContext; private String TOKEN_ID = "webApiAuthToken"; + private OsdUtil mUtil; RequestQueue mQueue; public WebApiConnection(Context context, AuthCallbackInterface authCallback, EventCallbackInterface eventCallback, @@ -51,6 +53,7 @@ public class WebApiConnection { mEventCallback = eventCallback; mDatapointCallback = datapointCallback; mQueue = Volley.newRequestQueue(context); + mUtil = new OsdUtil(mContext, new Handler()); } public boolean authenticate(final String uname, final String passwd) { @@ -135,6 +138,7 @@ public class WebApiConnection { // Create a new event in the remote database, based on the provided parameters. + // FIXME - eventType info below is wrong! // EventType is defined by the WebAPI in https://github.com/OpenSeizureDetector/webApi/blob/master/api/events/models.py // We currently use: // 0: Unvalidated Alarm @@ -165,7 +169,6 @@ public class WebApiConnection { final String dataStr = jsonObject.toString(); Log.v(TAG, "createEvent - data=" + dataStr); - StringRequest req = new StringRequest(Request.Method.POST, urlStr, new Response.Listener() { @Override @@ -190,9 +193,6 @@ public class WebApiConnection { String authToken = getStoredToken(); params.put("Authorization: Token " + authToken, authToken); Log.v(TAG, "getParams: params=" + params.toString()); - //params.put("eventType", String.valueOf(eventType)); - //params.put("dataTime", dateFormat.format(eventDate)); - //params.put("desc", eventDesc); return params; } @@ -238,6 +238,7 @@ public class WebApiConnection { Log.v(TAG, "Response is: " + response); try { JSONObject retObj = new JSONObject(response); + retObj.put("alarmStateStr",mUtil.alarmStatusToString(retObj.getInt("osdAlarmState"))); callback.accept(retObj); } catch (JSONException e) { Log.e(TAG,"getEventTypes.onRespons(): Error: "+e.getMessage()+","+e.toString()); diff --git a/app/src/main/res/layout/activity_edit_event.xml b/app/src/main/res/layout/activity_edit_event.xml index 7972325..48427a9 100644 --- a/app/src/main/res/layout/activity_edit_event.xml +++ b/app/src/main/res/layout/activity_edit_event.xml @@ -18,12 +18,10 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> - - - - + + + + -