SurveyCTO Collect for Android release notesDownload SurveyCTO Collect
Collect 2.81Nov 15, 2023
- Added support for repeated fields as parameters in the plug-in-metadata() function.
- Fixed a bug that was causing the app to crash at startup due to a missing permission.
- Fixed a bug where syncing a dataset doesn't delete the locally published submissions that have been deleted by the user.
- Fixed a bug that was sometimes preventing enumerators to see the designated cases when switching users in the General Settings.
Collect 2.80.2Feb 10, 2023
- Fixed a bug that prevented the app from publishing datasets offline when changes involved more than 1,000 fields at once.
Collect 2.80.1Jan 24, 2023
- Fixed the support for offline case transfers for Android 13 users.
- Fixed a bug that was preventing the app from processing server datasets when the name of the unique ID field included a dash.
- Improved the way pre-loaded choices with blank values are handled, so that the valid ones will be rendered and a more helpful error message will be displayed for the others.
- Fixed a bug that didn't allow case lists to update in some scenarios.
Collect 2.80Oct 15, 2022
- Added support for offline dataset publishing so that data finalized in one form can be immediately pre-loaded into forms without an Internet connection.
- Added the ability for users to transfer cases from one device to another using Android’s Nearby Share feature while offline.
- Added the ability to publish form data into local datasets in long format (in addition to the pre-existing wide format publishing option). Requires offline dataset publishing to work on Collect.
- Added new local dataset publishing options for updating values in datasets by using addition (for numeric values) and concatenation (for string values) as alternatives to the pre-existing value replacement behavior. Requires offline dataset publishing to work on Collect.
- Start targeting Android 13 which requires users to grant an extra permission for app notifications.
- Replaced some code libraries that were using non-SDK interfaces.
- Updated third-party libraries to address the latest security vulnerabilities.
- Fixed a bug with Google’s Fused location provider that was sometimes providing the same location for subsequent submissions.
- Fixed a bug that was causing server datasets that were synced over Desktop’s local wi-fi sync to not be stored in the right folder in Collect’s internal storage.
- Fixed a bug that was causing the app to crash on geopoint fields when the "Location" permission had been revoked in the background.
- Fixed a UI-only bug that was causing some server datasets to continue to look like they are attached to forms even if they were not.
- Fixed a bug that was causing the app to crash when the Save and Finalize button was clicked multiple times at the end of the form.
- Fixed an issue where Android Collect crashes when a user clicks on the deleted image area.
Collect 2.72May 23, 2022
- Added support for enumerators, including the new enumerator field type, the enumerator-id() and enumerator-name() functions, and the ability to link cases to enumerators in the Manage Cases interface.
- Improved performance for users who attach the same dataset to multiple forms, by ensuring that all forms share a single copy of the dataset.
- Started automatically installing downloaded dataset updates regardless of the Auto install downloaded updates setting. (The auto-install setting now applies more clearly to form updates specifically.)
- Modernized the app to target Android 11, as per Google's requirement. (Important note: Due to changes Google made in Android 11, Android 11 users who upgrade from version 2.70.1 or earlier will not be able to migrate their data to app-specific storage.)
- Improved the reporting of errors when downloading blank forms.
- Improved the setAnswer() function for field plug-ins, to accept empty strings as parameters to clear the field's value.
- Changed in-app "toast" notifications to "snackbar" notifications for Android 11 and above.
- Strengthened security for the intent API available to other apps, to close a potential vulnerability.
- Updated third-party libraries to resolve potential security vulnerabilities from outdated libraries.
- Fixed a bug that was preventing field plug-ins from loading externalJs and externalCss properties when running on Android 11+ devices.
- Fixed a bug that was causing video recordings to fail on some devices (like the Samsung Galaxy Tab A7).
- Fixed a bug that affected devices running Android 7.x in which Collect would crash if a "toast" notification was triggered while the app was in the background.
- Fixed a bug that was causing the app to crash in the background if the app was deactivated while the quick-setup process was still in-progress.
Collect 2.71.3Oct 4, 2021
- Fixed a bug that would prevent the case ID from being loaded properly immediately after a form was automatically updated.
- Fixed a bug that could cause the wrong case list to be shown when two users from the same server were signed in to different workspaces.
- Fixed a bug to ensure that, when accessing the same server from different workspaces using different login credentials, only the credentials from the current workspace are used.
- Fixed a bug that would leave the old workspace selected after creating a new workspace via attempting to change the server name in General Settings.
- Improved the popup message that appears when Collect needs to be updated in order to interact with a server.
- Removed the About Collect option from the global three-dot menu.
Collect 2.71.2Jul 28, 2021
- Fixed a bug that was preventing some encrypted devices from connecting to servers that required device encryption.
Collect 2.71.1Jul 16, 2021
- Fixed a bug in the migration process when updating directly from v2.70.1 or earlier to 2.71.
Collect 2.71Jul 9, 2021
- Added support for workspaces.
- Added support for new server options to enforce mobile device security.
- Added support for the new server option to restrict API access.
- Fixed a bug with how speed violations count and speed violations audit fields function within repeat groups.
- Fixed a bug that would not allow images downloaded from the Internet to be selected in image fields.
- Fixed some error messages that still referred to the old "SurveyCTO Sync" app.
Collect 2.70.9Mar 11, 2021
- 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.8Dec 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.7Nov 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.6Aug 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.5Early release
Aug 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.4Early release
Jul 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.3Early 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.2Early 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/com.surveycto.collect.android/files/SurveyCTO. Other apps (like file manager apps) will be able to access this directory.
- Private app storage
- 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.1Early release
Apr 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:
Android Collect 2.70Mar 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.2Nov 18, 2019
- Fixed a bug that prevented image files from being displayed in pre-loaded choice lists using the
- 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.1Sep 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.0Sep 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).