Skip to content

4.8.1.beta

Pre-release
Pre-release

Choose a tag to compare

@va13k va13k released this 31 Jul 15:01

The crucial changes that are made for this pre-release

  • Sensor and plugin consent is now shown before joining a study instead of after, and covers the plugins a study needs as well as its sensors, grouped into labelled sections
  • Leaving a study now always completes on the device, even when the research database cannot be reached; telling the researcher is best-effort, and the exit record states when it could not be delivered
  • New: when a researcher changes a study's database password, the app tells a rejected password apart from a database that is simply down, asks the participant to re-enter it, and pauses uploads until it is accepted
  • Fixed joining a study from a link or QR code, which crashed before any validation had run
  • A study that needs a participant-entered password can now be joined from a link or QR code; the app asks for the password instead of failing with nothing the participant can do
  • Join failures now say what is actually wrong: an invalid configuration, a missing password, a wrong password, or a database that cannot be reached. An unreachable database is no longer reported as a wrong password
  • Study addresses are checked before anything is downloaded, so a missing or malformed address gives a message instead of failing silently
  • When several study config checks are triggered at once, the app now runs one check instead of queuing every request
  • The app now stops waiting for a study configuration that does not answer in time, and refuses a configuration file larger than 5 MB
  • Sensors whose hardware the device does not have are now also ignored when a config update is applied, not only on first sync
  • Fixed a background timer that kept a processor core busy for hours for every pending ESM questionnaire
  • Fixed a pending ESM questionnaire preventing a study join from ever starting
  • The background collection notice is now always visible and silent, says that study data is being collected, and opens the app when tapped; added the notification permission that Android 13 and later require
  • Fixed screenshot capture restarting in a loop and creating a new capture session on every background service start
  • Fixed MQTT failing to start on an empty or malformed port, keep-alive, or quality-of-service setting
  • Fixed a worker thread being leaked on every restart of the background service
  • Fixed a scheduled action failing the whole scheduler when it pointed at something no longer installed or carried an unreadable value
  • Further Ambient Noise collection stability fixes
  • Fixed repeated permission requests looping in the background after a permission was denied
  • Security: database passwords are no longer written to the device log, including the database connection log
  • Security: password, secret, and token values are masked in logged study configuration and study data
  • Security: uploads are always encrypted, and a study that publishes its database's certificate authority in its configuration also gets the server's identity verified, so data reaches that study's server and no other host. A study that publishes no authority still gets an encrypted connection, but the server it connects to is not verified
  • Upload progress is tracked in its own table, so each table is uploaded once instead of being re-sent from the beginning whenever the log was cleared
  • Device information is now one row per device, rewritten when the device's hardware or Android version actually changes, and the server records a row per change
  • Device information drops four fields that carried no information: the serial (which Android stops reporting), the build type, the device label, and the brand (the manufacturer says the same thing)
  • Log entries now carry the kind of entry they are, so restarts, schedules, uploads, study changes and sensor diagnostics can be counted separately
  • Study rows now record when the configuration was last updated, name the join and re-join events explicitly, and carry the configuration only on the rows where it changed
  • Device information is no longer sent to awareframework.com when a device is first recorded
  • Fixed the on-device database never upgrading: a schema change was aborted part-way and silently rolled back, so several releases' worth of database changes had never reached a phone that already had AWARE installed. Upgrades now complete, keeping existing data, and a failed upgrade is recorded instead of being discarded
  • A study configuration is now applied even while the research database is unreachable. Only the upload waits for the database to come back; the participant is no longer told every minute that their study configuration is broken when nothing is wrong with it
  • A wrong database password and an unreachable database now give different messages when the study configuration is checked
  • Fixed a crash when the screen was rotated while a study was being joined
  • New: the participant is told when the study needs something from them — a study password, or consent for sensors a researcher has newly added — as a notification, so a paused study is noticed without opening the app. Notifications appear only for changes that need a decision: a frequency-only change is applied quietly
  • New: the main screen shows how far collected data has reached the research database, and each sensor shows the same alongside when it last recorded
  • New: the participant is told when data stops reaching the research database, and told once rather than repeatedly. Data continues to be collected and kept on the device until it can be sent. Researchers see when delivery started failing, why, and when it recovered
  • Fixed sensors reporting that they had never collected anything once their data had been uploaded and cleared from the device; the status and the researcher diagnostics now count delivered data as data the sensor collected
  • Fixed the magnetometer comparing one axis against the wrong two when deciding whether a reading changed enough to record, which made any magnetometer threshold keep and drop readings unpredictably
  • Sensor sensitivity settings (accelerometer, barometer, gravity, gyroscope, light, linear accelerometer, magnetometer, proximity, rotation, temperature) changed from raw numeric entry to descriptive presets stated in each sensor's own unit, with recommended values per sensor. A sensitivity larger than the sensor's readings ever change by is refused, and one already set that way now says the sensor is recording nothing instead of showing the number alone
  • Fixed a single sensor's delivery failure being hidden by the other sensors still delivering: whether data is reaching the research database is now tracked per sensor rather than as one flag for the whole upload. The main screen names the sensors that are not delivering, and a sensor that recovers no longer clears a warning that belongs to a different one. Researchers see each affected sensor's failure and its recovery separately
  • Fixed location collection stopping permanently the first time a study configuration was applied, and never resuming for as long as the app kept running, while the location sensor still reported itself as active. GPS, network and passive location are now re-registered when the sensor restarts
  • Fixed an upload waiting indefinitely when the research database accepts the connection and then stops answering. The wait is now bounded, so the stall is reported to the participant and the researcher instead of passing unnoticed for hours, and one stalled table no longer holds back every other table's upload. Collection is unaffected either way and data is kept on the device until it can be sent

Full Changelog: 4.8.0.beta...4.8.1.beta