OpenSeizureDetector Android App - Change Log
============================================
V5.0.0 - Build for publication on Play Store
- Fixed issue with low battery warning not emitting fault sounds'
- Corrected colour of OK/Cancel buttons in data sharing dialogs.
V5.0.0rc2 - Fixed issue with app sometimes restarting rather than exiting when 'exit' menu item is selected.
- Fixed issue with long delay between selecting 'exit' and the UI doing anything.
- Added a low phone battery fault warning so the system will not fail silently if the phone battery runs out.
- Set notification to re-post silently every 15 seconds in case it is dismissed by the user.
V5.0.0rc1 - Added new logo.
- Fixed phone data source sample frequency.
V5.0.0Z - Made the watch 'Mute' function cancel any pending SMS alerts.
- Fixed mp3 alarms, and added support for user-selectable audio files for the alarms.
V5.0.0Y - Added a fall algorithm tab to MainActivity to visualise the data to help with setting parameters for the algorithm.
V5.0.0X - Improved logging of Fall Algorithm debug data, fixed issue with fall detector not working for PineTime because sampleFrequency was not set correctly,
and made a fall override all algorithm voting to create an alarm because it is a one-shot event.
V5.0.0W - Fixed network datasource crash on Android 16 by adding network permissions to manifest.
V5.0.0V - Fixed start-up crash relating to foreground service starting.
- Fixed issue with data sharing not updating all events in a group.
- Fixed data sharing group event duration calculation.
- Fixed issue with phone datasource stalling if start-up dialog left displayed for too long
- Added 'Developer Mode' which displays more data source options, and enables NDA menu item.
V5.0.0U - Fixed issue with trying to access closed instance of sqlite database.
Added logging for reason for last shutdown given we see occasional silent crashes.
Improved automatic re-starting attempts if the system kills the SdServer service.
V5.0.0T - Added Acceleration Standard Deviation Threshold user perference to adjust low-movement sensitivity of SdAlgMl
V5.0.0S - Fixed permissions issue with Android 14 network data source - we should be more robust now about which permissions we request for which data source.
V5.0.0R - Fixed another issue that caused BLE2 to sometimes subscribe to acceleration updates twice, resulting in incorrect data.
V5.0.0Q - Fixed? Issue that caused SdDataSourceBLE2 to sometimes reconnect incorrectly resulting in incorrect data arrival frequency.
V5.0.0P - Tidied up data sharing screen, and addressed issues with multiple events being uploaded (#225)
- Major re-factor of logging system to improve future maintainability - no functional change.
V5.0.0N - Updated to accept a device MAC address returned by Android_PineTime_Updater to avoid the user having to select the device twice.
- Tidied up BLEScanActivity to make it look more like PineTimeUpdater
V5.0.0A - Tidied up build settings (into gradle.properties)
- Added MlModelManager to download ML models from web service.
- Added support for pytorch models (executorch) (As well as TFLite)
- Added initial support for AndroidWear from Dylan Griffiths (not tested, but included to make sure it doesn't break anything else)
- Fixed issue with 16kB page alignment (requirement for Play Store)
- Tidied up events list in data sharing (log manager) screen
- Tidied up main activity UI - tabbed switching between screens, material design colours.
- Migrated all graphs from MPAndroidChart to GraphView library (simpler, more maintainable)
- Added version number to action bar title
- Improved UI consistency with unified Material Design color scheme
- Improved settings experience - system now only restarts when exiting settings screen, not on every change
- CRITICAL FIX: Fixed server lifecycle bug that caused multiple server instances and FAULT/OK oscillation after changing settings
- Added onboarding setup wizard that covers PineTime, Garmin or Network data source, and OSD, ML or HR algorithms.
- Created a separate SeizureDetector class rather than having the seizure detection analysis in SdDataSource
- Added support for multiple ML models, and voting between models to decide whether to alarm or not
V4.3.1 - Fixed corrupted user interface issues on Android 15 and Android 16.
V4.3.0 - 2025-07-16
- Added support for Android 15 (API 35) to allow publishing on Play Store.
- Improved the data sharing screen to show grouped events to reduce the number of events that need to be edited.
V4.2.12 - Fixed crash when pressing 'Install Watch App' button by hiding the button if the Pebble data source is not selected
- Added a 'Help' and 'Troubleshooting' button and menu item to draw users' attention to the web site instructions.
V4.2.11 - Updated permissions handling to support Android 14 (needed to publish on Play Store)
- added a crude 'flap' detector into OSD Algorithm
- Added setting to change the delay before SMS alert is sent (Issue #202)
- Added 'Send False Alarm notification Menu Option (Issue #206)'
- Reduced the frequency of checking if we have unvalided events on the data sharing server to reduce data usage (Issue #201).
- Improvements to Data Sharing Screen (Issue #199)
V4.2.10 - fixed (infrequent) crash when opening data sharing page (#195), and crash if log manager fails to start (#196)
V4.2.9 - fixed crash when using Polish translation.
V4.2.8 -
- Fixed crash in export data function when using european style comma based decimal separator.
- Added seizure probability bar graph from CCN algorithm
- Added trap for null context in fragments to avoid crash.
V4.2.7 - BLE2 data source re-start fixed??
V4.2.6 - Fixed problem with notifications in Android 13
- Improved start-up checks for permissions
- Improved system re-start after changing settings (but still not perfect!)
- Disabled the CNN algorithm by default as it is causing some false alarms (Issue #170)
- Added watch signal strength history graph and watch battery hisory graph to main activity
V4.2.5 - Set BLE device time if the characteristic is available.
V4.2.4 - Added checks and a FAULT condition for Bluetooth errors in Bluetooth Data Source
V4.2.3 - Uses 3d accelerometer data to calculate magnitude if vector magnitude is not sent from data source (=support for Version 2 of Garmin watch app)
- fixed latched alarms (Issue #146)
- fixed HR alarms selection issue (#153)
V4.2.2 - Added support for PineTime OSD Status reporting.
V4.2.1 - Added support for PineTime wathes using the Bluetooth Data Source
V4.1.0 - Added experimental support for neural network based seizure detector.
V4.0.7 - Improvements to Data Sharing data log manager screen
- Removed automatic refresh of shared data events list (Issue #62)
- Added option to include warnings in shared data events list (Issue #64)
- Added catch of NullPointerException in LogManager in case of network disruption (Issue #61)
- Added 'demo mode' on main screen when phone data source selected and highighted it in warning colour (Issue #56)
- Changed default local data retention time to 7 days (from 28) - works around #63
V4.0.6 - fixed issue with O2sat data not being recorded to database
V4.0.5 - Added support for 3D data logging
- Fixed issue with seizure reporting crashing if quotation marks included in text.
V4.0.4 - Added support for Data Sharing system
V3.6.2 - Nov 2020
- Extended Polish translation further
- Improved system log output to help with answering queries from users.
V3.6.1 - Nov 2020
- Extended polish translation to all settings screens.
- Possible fix for issue with failing to shutdown system sometimes.
V3.6.0 - Sep 2020
- Added a phone sensor datasource, primarily for people to use for testing without needing a watch.
V3.5.0 - Aug 2020
- Added broadcast to request phone call dial alert (handled by separate app OpenSeizureDetector Dialler).
- Added UUID string to SMS alerts so they can be detected by a custom SMS receiver on the carer's phone.
V3.4.0 - Aug2020
- Added support for BLE data source
V3.2.1 - Aug2020
- Addition of Spanish Translation, and correction of crash report wording in German.
V3.2.0 - mar2020
- Added support for additional languages - Sweedish, German and Russian included in this release
- Added support for additional GarminSD settings data fields to record the watch app version number etc and
log that info to the SysLog file.
- Made only a subset of settings available by default, unless the user enables 'advanced mode' to make them all visible.
V3.1.15 - 01mar2020
- Added German Language support for main and startup app screens.
V3.1.14 - 27feb2020
- Fixed the web interface, which stopped working in V3.1.13
- Separated the user interface text into separate strings.xml file so we can
have multi-lingual versions of the app (if people offer to do the translations
for me, because I can't do it myself!)
- Note that I think Google has forced me to drop support for Android 4.x in a recent
update - I could only get it to compoile if I increased the minimum android version
to Android 5.0. This is a shame because I am one of the 3 Android 4 users....
V3.1.13 - 16feb2020
- Fixed problem with NetworkDataSource not responding to FAULT conditions properly.
V3.1.12 - 15feb2020
- Updated web server to return correct application/json mime type to get rid of -400
errors on garmin watch. Made error messages json strings too.
Added hrAlarmStanding value to /data json string, which should get remove
heart rate alarms working with network datasource.
master
V3.1.11 - 23oct2019
- Updated network data source so it displays heart rate data if it is available.
V3.1.10 - 20oct2019
- Added option to make a 'null' heart rate reading an alarm rather than fault condition.
V3.1.9 - 14jun2019
- Now requests READ_PHONE_STATE along with SMS permissions (required for some phones to send SMS messages)
- Fixed issue with Garmin Seizure Detector not producing warnings.
- Added faut pips for missing heart rate data if heart rate alarm active
V3.1.8 - 06jun2019
- Added READ_PHONE_STATE permission which seems to be needed for some phones to send SMS (but not many).
V3.1.7 - 28apr2919
- Added Mute function from watch Menu button.
V3.1.6 - 27apr2919
- Made the Cancel Audible button inhibit SMS alarms as well as audible beeps.
V3.1.5 - 27apr2919
- Fixed crash of MainActivity when server shutdown.
V3.1.4 - 25apr2019
- Added a periodic 'Beep' during the SMS timer to alert the user that an SMS is about to be sent.
V3.1.3 - 22apr2019
- Moved the SmsTimer creation to the UI thread to avoid a ...looper.prepare() error.
V3.1.2 - 22apr2019
- Made fall alarms latch irrespective of the 'latch alarms' setting
because they are transitory alarms they have to latch to be useful.
V3.1.1 - 22apr2019
- Added heart rate to data log.
- Added Timer to give user opportunity to cancel SMS alarm before it is sent.
V3.1.0 - 07apr2019
- Added fall detection algorithm to Garmin/Fitbit data source.
V3.0.4 - Fixed issues with install watch app, and stopping server resulting in crashes
V3.0.3- Fixed problem with crash on phone boot if Auto Start on Boot option selected
V3.0.2 - 27feb2019
- Corrected issue with app not re-starting properly when run-time permissions changed
(e.g. send_sms permission)
- Fixed crash when using MP3 alarms (issue with new android notification system)
V3.0.1 - 21feb2019
- Simplified data log output to CSV format for easier processing, and had it log every update rather than one point per minute.
V3.0.0 - 15feb2019
- Updated for Android V9
- Added explicity statement of use of SMS permission in notification
- Updated to use dynamic permissions
- Added support for Garmin Data Source, with Heart Rate alarm (and other network based data sources)
V2.6.0 - 26dec2018
- Changed SMS code to comply with new Google Play Store requirements.
- Added Support for Wifi data source (initially to be used for Garmin_SD)
V2.5.5 - 23feb2018 - Improved logging to help diagnose network problems
that result in 'net fault' warnings from network data source
('wifi-storms').
V2.5.4 - 03dec2017 - Added option to use either tone generator or MP3 alarm sound, as a user reported problem with tone generator on high end samsung phone.
V2.5.3 - 10sep2017 - Added Pebble App V2.6 which provides better alarm reliability
- no changes to Android App other than first run dialog.
V2.5.2 - 09 May 2017
Added support for Pebble App V2.5 which includes a multi-ROI mode to improve sensitivity.
V2.5.1 - 07 May 2017
- Improved alarm annunciation for short duration seizures - setting
Latch Alarms will result in alarms sounding for at least Latch Alarm
Timer Duration seconds before resetting.
V2.3.2 - 26 Dec 2016
- Added first run dialog with message to StartUpActivity.
V2.3.1 - 19 Dec 2016
- Changed auto-start feature to start the SDServer background service rather than the StartUpActvity so it will work
when the phone screen is locked.
V2.3.0 - 14 Dec 2016
- Added auto start on phone boot feature (selectable from general settings)
- Added Location to SMS alarm notifications
V2.0.8 - 24 Aug 2016
- Added checks for correct version of pebble watch app for compatibility with this
Android App.
V2.0.7 - 18 Aug 2016
- Added AnalysisPeriod setting to Pebble Datasource to change
the period between data analyses (rather than the default 5 seconds
in previous versions).
V2.0.6 - 25 July 2016
- Added main activity menu option to view log files (via web browser).
- Added options to switch off spectrum display on watch to save battery.
- Changed main screen graph to bar chart and highlights frequency
region of interest.
- Fixed problem with log files not showing on web interface.
- Added system log file to help with de-bugging start-up/shutdown issues.
- Improved handling of watch app settings to make sure
they are loaded correctly without having to re-start app (but I'd still recommend re-starting the watch app manually to be sure :) )
- Reduced ammount of bluetooth comms to the watch to save battery.
- Added support for future watch app features (such as raw mode and digital
filter mode).
- Added watch app to Android phone app package so watch app can be
installed directly from phone rather than using pebble store - to make sure that watch app and Android app are always compatible.
V2.0.3 - 23 April 2016
Further modification to beep code to avoid occasional crashes
if system tries to beep during a re-start.
Log faults to alarm log on SD Card.
V2.0.2 - 13 April 2016
Modified 'beep' code to try to avoid crashes on some systems.
V2.0.1 - 02 April 2016
Fixed issue with fault alarms not sounding if watch disconnects from phone.
V2.0 - 30 March 2016
Behind the Scenes
- Merged the server and client apps so only one app is needed to remove code duplication.
- Major rewrite of background service back-end to handle different data sources - either pebble or network so it can act as either server or client.
User Interface
- Added start-up screen that shows the bits of the system starting and confirms they work before showing the main screen.
- start-up screen has buttons to change the settings.
- If pebble datasource is selected, start-up screen has an option to
open the pebble app to manage pebble connection issues, and to install the watch-app directly.
- The main screen has been tidied up a bit, and now includes bar graphs to show how close to alarming the current movement is..
- Settings screen broken down into different logical screens to make it easier to find a setting to change.
- Changing a setting now re-starts the whole app to make sure the new setting is being used.
- Added an 'about' page with links to http://openseizuredetector.org.uk web site and copyright and acknowledgement notices.
- Added ability to latch alarms so they have to be actively accepted to silence the alarm, rather than it re-setting when the movement stops.
- Fixed problem with the system being difficult to shut down if as multiple instances of main screen could be active at once.