diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5d70e36..e778557 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="100"
- android:versionName="4.0.4">
+ android:versionName="4.0.4a">
diff --git a/app/src/main/java/uk/org/openseizuredetector/LogManager.java b/app/src/main/java/uk/org/openseizuredetector/LogManager.java
index 3739a01..6c7f534 100644
--- a/app/src/main/java/uk/org/openseizuredetector/LogManager.java
+++ b/app/src/main/java/uk/org/openseizuredetector/LogManager.java
@@ -289,7 +289,7 @@ public class LogManager {
+ " VALUES("
+ "'" + dateStr + "',"
+ sdData.alarmState + ","
- + DatabaseUtils.sqlEscapeString(sdData.toJSON(true)) + ","
+ + DatabaseUtils.sqlEscapeString(sdData.toDatapointJSON()) + ","
+ 0
+ ")";
mOsdDb.execSQL(SQLStr);
@@ -314,7 +314,7 @@ public class LogManager {
public boolean createLocalEvent(String dataTime, long status, String type, String subType, String desc, String dataJSON) {
// Expects dataTime to be in format: SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Log.d(TAG, "createLocalEvent() - dataTime=" + dataTime + ", status=" + status + ", dataJSON="+dataJSON);
- // Write Datapoint to database
+ // Write Event to database
String SQLStr = "INSERT INTO " + mEventsTableName
+ "(dataTime, status, type, subtype, notes, dataJSON)"
+ " VALUES("
diff --git a/app/src/main/java/uk/org/openseizuredetector/SdData.java b/app/src/main/java/uk/org/openseizuredetector/SdData.java
index efcc2d1..3cef16b 100644
--- a/app/src/main/java/uk/org/openseizuredetector/SdData.java
+++ b/app/src/main/java/uk/org/openseizuredetector/SdData.java
@@ -139,12 +139,12 @@ public class SdData implements Parcelable {
alarmPhrase = jo.optString("alarmPhrase");
alarmThresh = jo.optInt("alarmThresh");
alarmRatioThresh = jo.optInt("alarmRatioThresh");
- mHRAlarmActive=jo.optBoolean("hrAlarmActive");
+ mHRAlarmActive = jo.optBoolean("hrAlarmActive");
mHRAlarmStanding = jo.optBoolean("hrAlarmStanding");
mHRThreshMin = jo.optDouble("hrThreshMin");
mHRThreshMax = jo.optDouble("hrThreshMax");
mHR = jo.optDouble("hr");
- if (mHR>=0.0) {
+ if (mHR >= 0.0) {
mHRAlarmActive = true;
}
JSONArray specArr = jo.optJSONArray("simpleSpec");
@@ -155,7 +155,7 @@ public class SdData implements Parcelable {
Log.v(TAG, "fromJSON(): sdData = " + this.toString());
return true;
} catch (Exception e) {
- Log.v(TAG, "fromJSON() - error parsing result"+e.toString());
+ Log.v(TAG, "fromJSON() - error parsing result" + e.toString());
haveData = false;
return false;
}
@@ -170,6 +170,49 @@ public class SdData implements Parcelable {
return toDataString(includeRawData);
}
+ public String toDatapointJSON() {
+ String retval;
+ retval = "SdData.toDatapointJSON() Output";
+ try {
+ JSONObject jsonObj = new JSONObject();
+ if (dataTime != null) {
+ jsonObj.put("dataTime", dataTime.format("%d-%m-%Y %H:%M:%S"));
+ jsonObj.put("dataTimeStr", dataTime.format("%Y%m%dT%H%M%S"));
+ } else {
+ jsonObj.put("dataTimeStr", "00000000T000000");
+ jsonObj.put("dataTime", "00-00-00 00:00:00");
+ }
+ Log.v(TAG, "mSdData.dataTime = " + dataTime);
+ jsonObj.put("maxVal", maxVal);
+ jsonObj.put("maxFreq", maxFreq);
+ jsonObj.put("specPower", specPower);
+ jsonObj.put("roiPower", roiPower);
+ jsonObj.put("roiRatio", 10 * roiPower / specPower);
+ jsonObj.put("alarmState", alarmState);
+ jsonObj.put("alarmPhrase", alarmPhrase);
+ jsonObj.put("hr", mHR);
+ jsonObj.put("o2Sat", mO2Sat);
+ JSONArray arr = new JSONArray();
+ for (int i = 0; i < simpleSpec.length; i++) {
+ arr.put(simpleSpec[i]);
+ }
+ jsonObj.put("simpleSpec", arr);
+ JSONArray rawArr = new JSONArray();
+ for (int i = 0; i < rawData.length; i++) {
+ rawArr.put(rawData[i]);
+ }
+ jsonObj.put("rawData", rawArr);
+
+ retval = jsonObj.toString();
+ } catch (Exception ex) {
+ Log.v(TAG, "Error Creating Data Object - " + ex.toString());
+ retval = "Error Creating Data Object - " + ex.toString();
+ }
+
+ return (retval);
+ }
+
+
public String toSettingsJSON() {
String retval;
retval = "SdData.toSettingsJSON() Output";
@@ -178,31 +221,31 @@ public class SdData implements Parcelable {
if (dataTime != null) {
jsonObj.put("dataTime", dataTime.format("%d-%m-%Y %H:%M:%S"));
jsonObj.put("dataTimeStr", dataTime.format("%Y%m%dT%H%M%S"));
- }else{
+ } else {
jsonObj.put("dataTimeStr", "00000000T000000");
jsonObj.put("dataTime", "00-00-00 00:00:00");
}
jsonObj.put("batteryPc", batteryPc);
jsonObj.put("alarmState", alarmState);
jsonObj.put("alarmPhrase", alarmPhrase);
- jsonObj.put("sdMode",mSdMode);
- jsonObj.put("sampleFreq",mSampleFreq);
- jsonObj.put("analysisPeriod",analysisPeriod);
- jsonObj.put("alarmFreqMin",alarmFreqMin);
- jsonObj.put("alarmFreqMax",alarmFreqMax);
+ jsonObj.put("sdMode", mSdMode);
+ jsonObj.put("sampleFreq", mSampleFreq);
+ jsonObj.put("analysisPeriod", analysisPeriod);
+ jsonObj.put("alarmFreqMin", alarmFreqMin);
+ jsonObj.put("alarmFreqMax", alarmFreqMax);
jsonObj.put("alarmThresh", alarmThresh);
jsonObj.put("alarmRatioThresh", alarmRatioThresh);
jsonObj.put("hrAlarmActive", mHRAlarmActive);
jsonObj.put("hrAlarmStanding", mHRAlarmStanding);
- jsonObj.put("hrThreshMin",mHRThreshMin);
+ jsonObj.put("hrThreshMin", mHRThreshMin);
jsonObj.put("hrThreshMax", mHRThreshMax);
jsonObj.put("o2SatAlarmActive", mO2SatAlarmActive);
jsonObj.put("o2SatAlarmStanding", mO2SatAlarmStanding);
- jsonObj.put("o2SatThreshMin",mO2SatThreshMin);
- jsonObj.put("watchPartNo",watchPartNo);
- jsonObj.put("watchSdName",watchSdName);
- jsonObj.put("watchFwVersion",watchFwVersion);
- jsonObj.put("watchSdVersion",watchSdVersion);
+ jsonObj.put("o2SatThreshMin", mO2SatThreshMin);
+ jsonObj.put("watchPartNo", watchPartNo);
+ jsonObj.put("watchSdName", watchSdName);
+ jsonObj.put("watchFwVersion", watchFwVersion);
+ jsonObj.put("watchSdVersion", watchSdVersion);
retval = jsonObj.toString();
} catch (Exception ex) {
@@ -220,7 +263,7 @@ public class SdData implements Parcelable {
if (dataTime != null) {
jsonObj.put("dataTime", dataTime.format("%d-%m-%Y %H:%M:%S"));
jsonObj.put("dataTimeStr", dataTime.format("%Y%m%dT%H%M%S"));
- }else{
+ } else {
jsonObj.put("dataTimeStr", "00000000T000000");
jsonObj.put("dataTime", "00-00-00 00:00:00");
}
@@ -235,22 +278,22 @@ public class SdData implements Parcelable {
jsonObj.put("haveSettings", haveSettings);
jsonObj.put("alarmState", alarmState);
jsonObj.put("alarmPhrase", alarmPhrase);
- jsonObj.put("sdMode",mSdMode);
- jsonObj.put("sampleFreq",mSampleFreq);
- jsonObj.put("analysisPeriod",analysisPeriod);
- jsonObj.put("alarmFreqMin",alarmFreqMin);
- jsonObj.put("alarmFreqMax",alarmFreqMax);
+ jsonObj.put("sdMode", mSdMode);
+ jsonObj.put("sampleFreq", mSampleFreq);
+ jsonObj.put("analysisPeriod", analysisPeriod);
+ jsonObj.put("alarmFreqMin", alarmFreqMin);
+ jsonObj.put("alarmFreqMax", alarmFreqMax);
jsonObj.put("alarmThresh", alarmThresh);
jsonObj.put("alarmRatioThresh", alarmRatioThresh);
jsonObj.put("hrAlarmActive", mHRAlarmActive);
jsonObj.put("hrAlarmStanding", mHRAlarmStanding);
- jsonObj.put("hrThreshMin",mHRThreshMin);
+ jsonObj.put("hrThreshMin", mHRThreshMin);
jsonObj.put("hrThreshMax", mHRThreshMax);
- jsonObj.put("hr",mHR);
+ jsonObj.put("hr", mHR);
jsonObj.put("o2SatAlarmActive", mO2SatAlarmActive);
jsonObj.put("o2SatAlarmStanding", mO2SatAlarmStanding);
- jsonObj.put("o2SatThreshMin",mO2SatThreshMin);
- jsonObj.put("o2Sat",mO2Sat);
+ jsonObj.put("o2SatThreshMin", mO2SatThreshMin);
+ jsonObj.put("o2Sat", mO2Sat);
JSONArray arr = new JSONArray();
for (int i = 0; i < simpleSpec.length; i++) {
arr.put(simpleSpec[i]);
@@ -258,10 +301,10 @@ public class SdData implements Parcelable {
jsonObj.put("simpleSpec", arr);
if (includeRawData) {
JSONArray rawArr = new JSONArray();
- for (int i = 0; i< rawData.length;i++) {
+ for (int i = 0; i < rawData.length; i++) {
rawArr.put(rawData[i]);
}
- jsonObj.put("rawData",rawArr);
+ jsonObj.put("rawData", rawArr);
}
retval = jsonObj.toString();
@@ -279,7 +322,7 @@ public class SdData implements Parcelable {
retval = "";
if (dataTime != null) {
retval = dataTime.format("%d-%m-%Y %H:%M:%S");
- }else{
+ } else {
retval = "00-00-00 00:00:00";
}
for (int i = 0; i < simpleSpec.length; i++) {
@@ -292,31 +335,35 @@ public class SdData implements Parcelable {
retval = retval + ", " + mHR;
retval = retval + ", " + mO2Sat;
if (includeRawData) {
- for (int i = 0; i< mNsamp;i++) {
+ for (int i = 0; i < mNsamp; i++) {
retval = retval + ", " + rawData[i];
}
}
- return(retval);
+ return (retval);
}
- /** Return the average acceleration value in the dataset */
+ /**
+ * Return the average acceleration value in the dataset
+ */
public double getAvAcc() {
double sumAcc = 0.0;
- for (int i = 0; i< mNsamp;i++) {
+ for (int i = 0; i < mNsamp; i++) {
sumAcc += rawData[i];
}
- return(sumAcc/mNsamp);
+ return (sumAcc / mNsamp);
}
- /** Return the standard deviation of the acceleration values */
+ /**
+ * Return the standard deviation of the acceleration values
+ */
public double getSdAcc() {
double avAcc = 0.0;
double varAcc = 0.0;
avAcc = getAvAcc();
- for (int i = 0; i< mNsamp;i++) {
- varAcc += Math.pow(rawData[i]-avAcc,2);
+ for (int i = 0; i < mNsamp; i++) {
+ varAcc += Math.pow(rawData[i] - avAcc, 2);
}
- return(Math.sqrt(varAcc/(mNsamp-1)));
+ return (Math.sqrt(varAcc / (mNsamp - 1)));
}
diff --git a/app/src/main/java/uk/org/openseizuredetector/SdServer.java b/app/src/main/java/uk/org/openseizuredetector/SdServer.java
index bc8f4c2..0c92e7d 100644
--- a/app/src/main/java/uk/org/openseizuredetector/SdServer.java
+++ b/app/src/main/java/uk/org/openseizuredetector/SdServer.java
@@ -227,10 +227,6 @@ public class SdServer extends Service implements SdDataReceiver {
Log.v(TAG, "onStartCommand() - calling updatePrefs()");
updatePrefs();
- // Create our log manager.
- mLm = new LogManager(this, mLogDataRemote, mLogDataRemoteMobile, mAuthToken, mEventDuration,
- mRemoteLogPeriod, mAutoPruneDb, mDataRetentionPeriod);
-
Log.v(TAG, "onStartCommand: Datasource =" + mSdDataSourceName);
switch (mSdDataSourceName) {
case "Pebble":
@@ -247,6 +243,8 @@ public class SdServer extends Service implements SdDataReceiver {
Log.v(TAG, "Selecting Network DataSource");
mUtil.writeToSysLogFile("SdServer.onStartCommand() - creating SdDataSourceNetwork");
mSdDataSource = new SdDataSourceNetwork(this.getApplicationContext(), mHandler, this);
+ Log.i(TAG,"Disabling remote logging when using network data source");
+ mLogDataRemote = false;
break;
case "Garmin":
Log.v(TAG, "Selecting Garmin DataSource");
@@ -271,6 +269,10 @@ public class SdServer extends Service implements SdDataReceiver {
mSdDataSource = new SdDataSourcePhone(this.getApplicationContext(), mHandler, this);
}
+ // Create our log manager.
+ mLm = new LogManager(this, mLogDataRemote, mLogDataRemoteMobile, mAuthToken, mEventDuration,
+ mRemoteLogPeriod, mAutoPruneDb, mDataRetentionPeriod);
+
if (mSMSAlarm) {
Log.v(TAG, "Creating LocationFinder");
mLocationFinder = new LocationFinder(getApplicationContext());
diff --git a/app/release/app-release-3.6.2.apk b/releases/app-release-3.6.2.apk
similarity index 100%
rename from app/release/app-release-3.6.2.apk
rename to releases/app-release-3.6.2.apk
diff --git a/app/release/app-release-3.6.3c.apk b/releases/app-release-3.6.3c.apk
similarity index 100%
rename from app/release/app-release-3.6.3c.apk
rename to releases/app-release-3.6.3c.apk
diff --git a/app/release/app-release-4.0.3.apk b/releases/app-release-4.0.3.apk
similarity index 100%
rename from app/release/app-release-4.0.3.apk
rename to releases/app-release-4.0.3.apk
diff --git a/releases/app-release-4.0.4a.apk b/releases/app-release-4.0.4a.apk
new file mode 100644
index 0000000..534ecc0
Binary files /dev/null and b/releases/app-release-4.0.4a.apk differ
diff --git a/releases/app-release.apk b/releases/app-release.apk
new file mode 100644
index 0000000..534ecc0
Binary files /dev/null and b/releases/app-release.apk differ
diff --git a/app/release/old_versions/app-release-2.0.1.apk b/releases/old_versions/app-release-2.0.1.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.1.apk
rename to releases/old_versions/app-release-2.0.1.apk
diff --git a/app/release/old_versions/app-release-2.0.2.apk b/releases/old_versions/app-release-2.0.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.2.apk
rename to releases/old_versions/app-release-2.0.2.apk
diff --git a/app/release/old_versions/app-release-2.0.3.apk b/releases/old_versions/app-release-2.0.3.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.3.apk
rename to releases/old_versions/app-release-2.0.3.apk
diff --git a/app/release/old_versions/app-release-2.0.4.apk b/releases/old_versions/app-release-2.0.4.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.4.apk
rename to releases/old_versions/app-release-2.0.4.apk
diff --git a/app/release/old_versions/app-release-2.0.6.apk b/releases/old_versions/app-release-2.0.6.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.6.apk
rename to releases/old_versions/app-release-2.0.6.apk
diff --git a/app/release/old_versions/app-release-2.0.7.apk b/releases/old_versions/app-release-2.0.7.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.7.apk
rename to releases/old_versions/app-release-2.0.7.apk
diff --git a/app/release/old_versions/app-release-2.0.8.apk b/releases/old_versions/app-release-2.0.8.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.8.apk
rename to releases/old_versions/app-release-2.0.8.apk
diff --git a/app/release/old_versions/app-release-2.0.apk b/releases/old_versions/app-release-2.0.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0.apk
rename to releases/old_versions/app-release-2.0.apk
diff --git a/app/release/old_versions/app-release-2.0b.apk b/releases/old_versions/app-release-2.0b.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0b.apk
rename to releases/old_versions/app-release-2.0b.apk
diff --git a/app/release/old_versions/app-release-2.0c.apk b/releases/old_versions/app-release-2.0c.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0c.apk
rename to releases/old_versions/app-release-2.0c.apk
diff --git a/app/release/old_versions/app-release-2.0d.apk b/releases/old_versions/app-release-2.0d.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.0d.apk
rename to releases/old_versions/app-release-2.0d.apk
diff --git a/app/release/old_versions/app-release-2.3.0.apk b/releases/old_versions/app-release-2.3.0.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.3.0.apk
rename to releases/old_versions/app-release-2.3.0.apk
diff --git a/app/release/old_versions/app-release-2.3.1.apk b/releases/old_versions/app-release-2.3.1.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.3.1.apk
rename to releases/old_versions/app-release-2.3.1.apk
diff --git a/app/release/old_versions/app-release-2.3.2.apk b/releases/old_versions/app-release-2.3.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.3.2.apk
rename to releases/old_versions/app-release-2.3.2.apk
diff --git a/app/release/old_versions/app-release-2.5.1.apk b/releases/old_versions/app-release-2.5.1.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.5.1.apk
rename to releases/old_versions/app-release-2.5.1.apk
diff --git a/app/release/old_versions/app-release-2.5.2.apk b/releases/old_versions/app-release-2.5.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.5.2.apk
rename to releases/old_versions/app-release-2.5.2.apk
diff --git a/app/release/old_versions/app-release-2.5.3.apk b/releases/old_versions/app-release-2.5.3.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.5.3.apk
rename to releases/old_versions/app-release-2.5.3.apk
diff --git a/app/release/old_versions/app-release-2.5.4.apk b/releases/old_versions/app-release-2.5.4.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.5.4.apk
rename to releases/old_versions/app-release-2.5.4.apk
diff --git a/app/release/old_versions/app-release-2.5.5.apk b/releases/old_versions/app-release-2.5.5.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.5.5.apk
rename to releases/old_versions/app-release-2.5.5.apk
diff --git a/app/release/old_versions/app-release-2.6.0.apk b/releases/old_versions/app-release-2.6.0.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.6.0.apk
rename to releases/old_versions/app-release-2.6.0.apk
diff --git a/app/release/old_versions/app-release-2.6.1.apk b/releases/old_versions/app-release-2.6.1.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.6.1.apk
rename to releases/old_versions/app-release-2.6.1.apk
diff --git a/app/release/old_versions/app-release-2.6.2.apk b/releases/old_versions/app-release-2.6.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.6.2.apk
rename to releases/old_versions/app-release-2.6.2.apk
diff --git a/app/release/old_versions/app-release-2.6.3.apk b/releases/old_versions/app-release-2.6.3.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.6.3.apk
rename to releases/old_versions/app-release-2.6.3.apk
diff --git a/app/release/old_versions/app-release-2.6.4.apk b/releases/old_versions/app-release-2.6.4.apk
similarity index 100%
rename from app/release/old_versions/app-release-2.6.4.apk
rename to releases/old_versions/app-release-2.6.4.apk
diff --git a/app/release/old_versions/app-release-3.0.0.apk b/releases/old_versions/app-release-3.0.0.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.0.0.apk
rename to releases/old_versions/app-release-3.0.0.apk
diff --git a/app/release/old_versions/app-release-3.0.1.apk b/releases/old_versions/app-release-3.0.1.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.0.1.apk
rename to releases/old_versions/app-release-3.0.1.apk
diff --git a/app/release/old_versions/app-release-3.0.2.apk b/releases/old_versions/app-release-3.0.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.0.2.apk
rename to releases/old_versions/app-release-3.0.2.apk
diff --git a/app/release/old_versions/app-release-3.0.3.apk b/releases/old_versions/app-release-3.0.3.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.0.3.apk
rename to releases/old_versions/app-release-3.0.3.apk
diff --git a/app/release/old_versions/app-release-3.0.4.apk b/releases/old_versions/app-release-3.0.4.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.0.4.apk
rename to releases/old_versions/app-release-3.0.4.apk
diff --git a/app/release/old_versions/app-release-3.1.0.apk b/releases/old_versions/app-release-3.1.0.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.0.apk
rename to releases/old_versions/app-release-3.1.0.apk
diff --git a/app/release/old_versions/app-release-3.1.1.apk b/releases/old_versions/app-release-3.1.1.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.1.apk
rename to releases/old_versions/app-release-3.1.1.apk
diff --git a/app/release/old_versions/app-release-3.1.10.apk b/releases/old_versions/app-release-3.1.10.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.10.apk
rename to releases/old_versions/app-release-3.1.10.apk
diff --git a/app/release/old_versions/app-release-3.1.11.apk b/releases/old_versions/app-release-3.1.11.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.11.apk
rename to releases/old_versions/app-release-3.1.11.apk
diff --git a/app/release/old_versions/app-release-3.1.12.apk b/releases/old_versions/app-release-3.1.12.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.12.apk
rename to releases/old_versions/app-release-3.1.12.apk
diff --git a/app/release/old_versions/app-release-3.1.13.apk b/releases/old_versions/app-release-3.1.13.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.13.apk
rename to releases/old_versions/app-release-3.1.13.apk
diff --git a/app/release/old_versions/app-release-3.1.14.apk b/releases/old_versions/app-release-3.1.14.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.14.apk
rename to releases/old_versions/app-release-3.1.14.apk
diff --git a/app/release/old_versions/app-release-3.1.15.apk b/releases/old_versions/app-release-3.1.15.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.15.apk
rename to releases/old_versions/app-release-3.1.15.apk
diff --git a/app/release/old_versions/app-release-3.1.2.apk b/releases/old_versions/app-release-3.1.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.2.apk
rename to releases/old_versions/app-release-3.1.2.apk
diff --git a/app/release/old_versions/app-release-3.1.3.apk b/releases/old_versions/app-release-3.1.3.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.3.apk
rename to releases/old_versions/app-release-3.1.3.apk
diff --git a/app/release/old_versions/app-release-3.1.4.apk b/releases/old_versions/app-release-3.1.4.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.4.apk
rename to releases/old_versions/app-release-3.1.4.apk
diff --git a/app/release/old_versions/app-release-3.1.5.apk b/releases/old_versions/app-release-3.1.5.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.5.apk
rename to releases/old_versions/app-release-3.1.5.apk
diff --git a/app/release/old_versions/app-release-3.1.6.apk b/releases/old_versions/app-release-3.1.6.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.6.apk
rename to releases/old_versions/app-release-3.1.6.apk
diff --git a/app/release/old_versions/app-release-3.1.7.apk b/releases/old_versions/app-release-3.1.7.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.7.apk
rename to releases/old_versions/app-release-3.1.7.apk
diff --git a/app/release/old_versions/app-release-3.1.8.apk b/releases/old_versions/app-release-3.1.8.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.8.apk
rename to releases/old_versions/app-release-3.1.8.apk
diff --git a/app/release/old_versions/app-release-3.1.9a.apk b/releases/old_versions/app-release-3.1.9a.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.1.9a.apk
rename to releases/old_versions/app-release-3.1.9a.apk
diff --git a/app/release/old_versions/app-release-3.2.0.apk b/releases/old_versions/app-release-3.2.0.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.2.0.apk
rename to releases/old_versions/app-release-3.2.0.apk
diff --git a/app/release/old_versions/app-release-3.4.0a.apk b/releases/old_versions/app-release-3.4.0a.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.4.0a.apk
rename to releases/old_versions/app-release-3.4.0a.apk
diff --git a/app/release/old_versions/app-release-3.5.0a.apk b/releases/old_versions/app-release-3.5.0a.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.5.0a.apk
rename to releases/old_versions/app-release-3.5.0a.apk
diff --git a/app/release/old_versions/app-release-3.6.1a.apk b/releases/old_versions/app-release-3.6.1a.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1a.apk
rename to releases/old_versions/app-release-3.6.1a.apk
diff --git a/app/release/old_versions/app-release-3.6.1c.apk b/releases/old_versions/app-release-3.6.1c.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1c.apk
rename to releases/old_versions/app-release-3.6.1c.apk
diff --git a/app/release/old_versions/app-release-3.6.1d.apk b/releases/old_versions/app-release-3.6.1d.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1d.apk
rename to releases/old_versions/app-release-3.6.1d.apk
diff --git a/app/release/old_versions/app-release-3.6.1e.apk b/releases/old_versions/app-release-3.6.1e.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1e.apk
rename to releases/old_versions/app-release-3.6.1e.apk
diff --git a/app/release/old_versions/app-release-3.6.1f.apk b/releases/old_versions/app-release-3.6.1f.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1f.apk
rename to releases/old_versions/app-release-3.6.1f.apk
diff --git a/app/release/old_versions/app-release-3.6.1g.apk b/releases/old_versions/app-release-3.6.1g.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1g.apk
rename to releases/old_versions/app-release-3.6.1g.apk
diff --git a/app/release/old_versions/app-release-3.6.1h.apk b/releases/old_versions/app-release-3.6.1h.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1h.apk
rename to releases/old_versions/app-release-3.6.1h.apk
diff --git a/app/release/old_versions/app-release-3.6.1j.apk b/releases/old_versions/app-release-3.6.1j.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.1j.apk
rename to releases/old_versions/app-release-3.6.1j.apk
diff --git a/app/release/old_versions/app-release-3.6.2.apk b/releases/old_versions/app-release-3.6.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.2.apk
rename to releases/old_versions/app-release-3.6.2.apk
diff --git a/app/release/old_versions/app-release-3.6.2a.apk b/releases/old_versions/app-release-3.6.2a.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.2a.apk
rename to releases/old_versions/app-release-3.6.2a.apk
diff --git a/app/release/old_versions/app-release-3.6.2b.apk b/releases/old_versions/app-release-3.6.2b.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.2b.apk
rename to releases/old_versions/app-release-3.6.2b.apk
diff --git a/app/release/old_versions/app-release-3.6.2c.apk b/releases/old_versions/app-release-3.6.2c.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.2c.apk
rename to releases/old_versions/app-release-3.6.2c.apk
diff --git a/app/release/old_versions/app-release-3.6.2d.apk b/releases/old_versions/app-release-3.6.2d.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.2d.apk
rename to releases/old_versions/app-release-3.6.2d.apk
diff --git a/app/release/old_versions/app-release-3.6.3c.apk b/releases/old_versions/app-release-3.6.3c.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.6.3c.apk
rename to releases/old_versions/app-release-3.6.3c.apk
diff --git a/app/release/old_versions/app-release-3.7.0b.apk b/releases/old_versions/app-release-3.7.0b.apk
similarity index 100%
rename from app/release/old_versions/app-release-3.7.0b.apk
rename to releases/old_versions/app-release-3.7.0b.apk
diff --git a/app/release/old_versions/app-release-4.0.0.apk b/releases/old_versions/app-release-4.0.0.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0.apk
rename to releases/old_versions/app-release-4.0.0.apk
diff --git a/app/release/old_versions/app-release-4.0.0a.apk b/releases/old_versions/app-release-4.0.0a.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0a.apk
rename to releases/old_versions/app-release-4.0.0a.apk
diff --git a/app/release/old_versions/app-release-4.0.0b.apk b/releases/old_versions/app-release-4.0.0b.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0b.apk
rename to releases/old_versions/app-release-4.0.0b.apk
diff --git a/app/release/old_versions/app-release-4.0.0d.apk b/releases/old_versions/app-release-4.0.0d.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0d.apk
rename to releases/old_versions/app-release-4.0.0d.apk
diff --git a/app/release/old_versions/app-release-4.0.0f.apk b/releases/old_versions/app-release-4.0.0f.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0f.apk
rename to releases/old_versions/app-release-4.0.0f.apk
diff --git a/app/release/old_versions/app-release-4.0.0g.apk b/releases/old_versions/app-release-4.0.0g.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0g.apk
rename to releases/old_versions/app-release-4.0.0g.apk
diff --git a/app/release/old_versions/app-release-4.0.0i.apk b/releases/old_versions/app-release-4.0.0i.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0i.apk
rename to releases/old_versions/app-release-4.0.0i.apk
diff --git a/app/release/old_versions/app-release-4.0.0j.apk b/releases/old_versions/app-release-4.0.0j.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0j.apk
rename to releases/old_versions/app-release-4.0.0j.apk
diff --git a/app/release/old_versions/app-release-4.0.0k.apk b/releases/old_versions/app-release-4.0.0k.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0k.apk
rename to releases/old_versions/app-release-4.0.0k.apk
diff --git a/app/release/old_versions/app-release-4.0.0m.apk b/releases/old_versions/app-release-4.0.0m.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0m.apk
rename to releases/old_versions/app-release-4.0.0m.apk
diff --git a/app/release/old_versions/app-release-4.0.0n.apk b/releases/old_versions/app-release-4.0.0n.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0n.apk
rename to releases/old_versions/app-release-4.0.0n.apk
diff --git a/app/release/old_versions/app-release-4.0.0p.apk b/releases/old_versions/app-release-4.0.0p.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0p.apk
rename to releases/old_versions/app-release-4.0.0p.apk
diff --git a/app/release/old_versions/app-release-4.0.0q.apk b/releases/old_versions/app-release-4.0.0q.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0q.apk
rename to releases/old_versions/app-release-4.0.0q.apk
diff --git a/app/release/old_versions/app-release-4.0.0r.apk b/releases/old_versions/app-release-4.0.0r.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0r.apk
rename to releases/old_versions/app-release-4.0.0r.apk
diff --git a/app/release/old_versions/app-release-4.0.0s.apk b/releases/old_versions/app-release-4.0.0s.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0s.apk
rename to releases/old_versions/app-release-4.0.0s.apk
diff --git a/app/release/old_versions/app-release-4.0.0t.apk b/releases/old_versions/app-release-4.0.0t.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0t.apk
rename to releases/old_versions/app-release-4.0.0t.apk
diff --git a/app/release/old_versions/app-release-4.0.0v.apk b/releases/old_versions/app-release-4.0.0v.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.0v.apk
rename to releases/old_versions/app-release-4.0.0v.apk
diff --git a/app/release/old_versions/app-release-4.0.1.apk b/releases/old_versions/app-release-4.0.1.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.1.apk
rename to releases/old_versions/app-release-4.0.1.apk
diff --git a/app/release/old_versions/app-release-4.0.2.apk b/releases/old_versions/app-release-4.0.2.apk
similarity index 100%
rename from app/release/old_versions/app-release-4.0.2.apk
rename to releases/old_versions/app-release-4.0.2.apk
diff --git a/releases/output-metadata.json b/releases/output-metadata.json
new file mode 100644
index 0000000..8f3a228
--- /dev/null
+++ b/releases/output-metadata.json
@@ -0,0 +1,20 @@
+{
+ "version": 3,
+ "artifactType": {
+ "type": "APK",
+ "kind": "Directory"
+ },
+ "applicationId": "uk.org.openseizuredetector",
+ "variantName": "release",
+ "elements": [
+ {
+ "type": "SINGLE",
+ "filters": [],
+ "attributes": [],
+ "versionCode": 100,
+ "versionName": "4.0.4a",
+ "outputFile": "app-release.apk"
+ }
+ ],
+ "elementType": "File"
+}
\ No newline at end of file