SurveyCTO Collect for Android release notes

Download SurveyCTO Collect
Collect 2.70.9
March 11, 2020
  • Added support for the new eventlog appearance for text audit fields.
  • Allow field plug-ins to use placeholder text from the interface translation tables for supported field types. See QUESTION_PLACEHOLDER_LABEL in the field plug-in API doc for more details.
  • Added better support for identifying and reporting on field plug-in errors.
  • Fixed a bug with the phone-call-duration() function that caused it to incorrectly return 0 when used in encrypted forms.
  • Fixed a bug that was preventing form updates from being downloaded via the SEND/RECEIVE NOW feature if the auto download setting was turned off.
  • Fixed a bug that would cause a crash when attempting to open the Manage Cases screen if the table contained only an ID column.
  • Fixed a bug with the index() function that was preventing some forms to load fast.
  • Fixed a bug that could make the app crash if the quick setup process was deactivated while running.
Collect 2.70.8
December 18, 2020
  • Fixed a bug that could cause the Manage Cases screen to be blank even when there were cases to show.
  • Fixed a bug with the Manage Cases screen that could cause an error message (“Can’t load installed cases”) when the “Auto-download on demand” setting was enabled.
Collect 2.70.7
November 30, 2020
  • Fixed it so that references to form attachments are no longer case-sensitive.
  • Made some improvements to the way Collect handles server authentication when invalid credentials are stored in General Settings to help prevent users from being temporarily locked out due to too many failed login attempts.
  • Switched to using the Android App Bundle to automatically optimize updates to SurveyCTO Collect from the Google Play Store.
  • Improved the new auto-download schedule for form and dataset updates (introduced in 2.70.1) to cover more use cases.
  • Fixed a bug with the makePhoneCall() field plug-in API so that Collect will now accurately report to the plug-in when a call could not be made due to the Set as default phone app setting.
  • Fixed a bug that could cause Collect to crash if "submission_url" in the form definition was not a valid URL.
  • Fixed a bug that could cause Collect to crash if a task completed while the app was in the background.
  • Fixed a bug that could cause Collect to crash while in the background if there was an error recording with the mic.
  • Fixed a bug that could prevent the "Form updates check completed with errors" toast notification from being shown under certain conditions.
  • Improved the warning message for the username field when the current username stored in General Settings hasn't yet been authenticated.
  • Added Hindi, French, and Spanish translations for the error message that appears when you try to launch a masked phone call on Android 4 or 5.
  • Updated the target API to 29 to comply with Google's target API level requirement.
Collect 2.70.6
August 14, 2020
  • Fixed a bug that was preventing older versions of Android from being able to launch a phone call using an intent. This bug affected Android versions below 6.0.
 Collect 2.70.5
Early release
August 5, 2020
  • Collect will no longer request the WRITE_CALL_LOG permission from the Android system. This means Collect will not be able to edit the system call log, and will no longer be able to remove entries from that call log, even if hide_phone_number was enabled. For more details about how hide_phone_number works, see the updated developer documentation.
  • Incoming calls from private numbers will now show up in the UI as (private number).
  • Fixed a bug with field plug-in parameters that would prevent certain expressions from being evaluated.
 Collect 2.70.4
Early release
July 16, 2020
  • Added the ability to use Collect as the default phone app for Android versions 6 and higher. When set as the default phone app, Collect will be able to make, receive, and manage calls, all within the app. No need to switch apps in the middle of a phone survey!
  • New Admin Setting to control when Collect should be set as the default phone app. By default, this will be set to "On-demand", which leaves it totally up to the user. If you want to make sure that calls made as part of your SurveyCTO forms are made within Collect, you can set this option to "Whenever running", or even "Always".
  • When Collect is set as the default phone app, you can now use a field plug-in to launch calls without revealing the phone number. Please note: if the enumerator is using their own device, they may still be able to contact their phone network provider to view a call log with phone numbers shown.
  • Added the phone-call-duration() function to show the total time spent on a phone call within the form. See here for more info.
  • Added the collect-is-phone-app() function to show whether or not Collect is currently set as the default phone app on Android. See here for more info.
  • Improved the phone-call-log() function to show more detailed information about the call history when Collect is the default phone app. See here for more info.
  • Added the makePhoneCall() function for field plug-ins to be able to launch calls. See here for more details.
  • Added the phoneCallStatus() function for field plug-ins to be able to get the current call state of the device when Collect is the default phone app. See here for more details.
  • Fixed a bug that would cause errors launching intents that contain parameters with semicolons.
  • Upgraded our UI theme to use Google's Material Design.
  • Debug information (when enabled) is now shown in a notification (instead of in the app title bar).
 Collect 2.70.3
Early release
May 30, 2020
  • New quick setup feature. This feature (available when you first install the app, and at any time from the General Settings menu) will allow you to specify a server name, username, and password, and Collect will automatically connect to your SurveyCTO server and apply the default device configuration for your user role (if any has been set). See the help topic on managing device settings for more information.
  • Added the ability to upload Collect settings to your server, so that they can be added to a default device configuration.
  • Added support for the new plug-in-metadata() function.
  • Importing settings from a collect.settings file will now require you to first enter Collect's admin password, if one is set.
  • Disabled Android's automatic backup functionality to ensure that private data doesn't get sent to Google Drive and that uninstalling the app will fully erase forms and data.
 Collect 2.70.2
Early release
May 15, 2020
  • Shift to using app-specific storage. Collect will now store data (including blank forms, filled out forms, attached datasets, settings, etc.) in a much more secure way. By default, all data will be stored in a private app directory within Collect, which means no other apps will have access to it. When you update to 2.70.2, you will be guided through the process of migrating your old storage to the new location.
    • Please note: Collect 2.70.2 (and all later versions) will delete ALL data when uninstalled. This is a change from existing behavior, in which users can uninstall/reinstall Collect while leaving the data folder intact.
    • Please note: the /SurveyCTO directory will no longer be available in the same place. If your current workflow involves interacting with that /SurveyCTO directory, you will need to make some changes. Please read the page on shifting to app-specific storage.
  • New admin setting: App storage location
    • Private app storage
      All data will be securely stored within the Collect app itself. Data will be inaccessible to all other apps. This is the default setting.
    • Public app storage
      All data will be stored in /Android/data/ Other apps (like file manager apps) will be able to access this directory.
  • New admin setting: App passcode. When you set an app passcode, you will not be able to open Collect without first entering the correct passcode.
  • Security updates for field plug-ins. Began allowing plug-ins to access remote servers without needing to worry about Cross-Origin Resource Sharing (CORS) restrictions, and added new restrictions to local file access.
 Collect 2.70.1
Early release
April 23, 2020
  • New Auto download on demand feature. When enabled, Collect will check the server for updates automatically at two points.
    • When you try to fill a blank form, it will check for updates to that form.
    • When you open a case list (by clicking Manage Cases), it will check for updates to the case list.
  • New Auto install downloaded updates feature. When enabled, Collect will automatically install form updates as soon as they are downloaded.
  • Case management UI will now show the last time the case list was updated. In both the tree view and the table view, a new bar will appear at the top showing the last time the cases dataset was updated.
  • New admin setting Use VOICE_CALL audio. We’ve added a new way for our audio listening service to better detect and cover phone calls. This should make it so both sides of phone calls are automatically recorded for Android 4, 5, 6, and 7 during audio audits, and in sensor stream/statistics readings. Since it has limited/no support in Android 8, 9, and 10, we've added this new admin setting for turning it on/off.
  • Improved the auto download schedule. If the auto download feature is enabled and active in Collect, the new schedule will check for updates every minute for ten minutes following submitting data. If ten minutes goes by without submitting more data, we revert to checking for updates hourly.
  • Support for two new functions:
    • phone-call-log()
    • device-info()
Android Collect 2.70
Mar. 29, 2020
  • Added support for field plug-ins to allow form designers more flexibility to extend and customize the appearance and functionality of their forms.
  • Adjusted the vertical spacing between select_one and select_multiple options to make it more comfortable on higher-resolution devices, and added a new Display density setting to allow user control over the spacing.
  • Added support for a variety of new functions for form designers, like empty(), sum-if(), and count-items().
  • Re-engineered the "Go To Prompt" interface, in order to render much faster when HTML mode is enabled for question labels.
  • Improved the robustness of the finalization process for encrypted forms, to better handle cases where attachments are missing.
  • Fixed the jr:choice-name() function (and the newer choice-label() function) to be able to retrieve choice labels even when they are dynamically filtered and have not yet been shown to the user.
  • Fixed geopoint fields with the "background" appearance to preserve their original values when the form is saved and re-opened later.
  • Removed the Form processing logic setting (since it was no longer necessary or useful).
Android Collect 2.60.2
Nov. 18, 2019
  • Fixed a bug that prevented image files from being displayed in pre-loaded choice lists using the search() function.
  • The GPS pre-warming feature now works for geotrace and geoshape fields (instead of just geopoint fields).
  • The caseid field is now updated and verified when you finalize a form, to prevent issues after restoring crashed forms using a different caseid.
  • Improved Collect so that it will no longer offer to resume from a saved position in the form when there is no available resume point (usually after a crash).
  • Fixed a bug that could display errors if a geopoint field with the background appearance was removed from the form (for example, by removing a repeat group instance).
  • Fixed a bug that could allow problems with a form definition to cause the welcome screen to be blank.
  • Fixed a bug that could allow problems with a form definition to cause the app to crash.
  • Added protections against dangerous regular expressions that could cause the app/device to freeze.
Android Collect 2.60.1
Sept. 4, 2019
  • Fixed a bug that affects forms where the index() function is used on a field or a group that has no repeated parent.
Android Collect 2.60.0
Sept. 3, 2019
  • Gave SurveyCTO Collect a new look and feel, including a new icon, title bar, color scheme, and more.
  • Added support for transparent backgrounds in .png images.
  • Fixed the OSM map engine to start downloading maps again (they had stopped downloading when OSM’s map server stopped serving them to unverified clients), and also fixed selection of the default map style when selecting OSM as the map engine.
  • Added a warning in the main menu when notifications are disabled via the Android settings, in order to let people know that constraint and other messages will also be suppressed.
  • When automatically recovering from a save-point, improved SurveyCTO Collect to recover any audio audits that had been completed, even if the app or device had crashed before the user had explicitly saved progress.
  • Removed some unnecessary resources in order to slim the download size.
  • Improved SurveyCTO Collect to no longer crash in the background when long lists of forms have been previously loaded in the Get Blank Form screen.
  • Fixed SurveyCTO Collect to no longer crash when trying to attach, to a submission, an item from the device’s Downloads folder.
  • Fixed SurveyCTO Collect to give a sensible error message (rather than crashing) when somebody tries to attach, to a submission, an item located in an unsupported location (like Dropbox, OneDrive, or Box).
  • Fixed SurveyCTO Collect to no longer shift time and date fields by 30 minutes after having changed the device’s time zone to certain time zones in East Asia.
  • Improved the filter box in the case management interface of SurveyCTO Collect to better handle changes in device orientation.
  • Updated SurveyCTO Collect to meet Google’s evolving requirements for Android apps (should be invisible).
Older versions...
For changes made to Collect prior to 2.60, please see the release notes archive for the SurveyCTO platform.