Collect Release Notes

Yaw Anokwa edited this page Nov 29, 2016 · 23 revisions

Collect 1.4.12

r1063, 2016-11-23

  • Adds Estonian translations
    • Allan Zirk (PlutoF)
  • Fixes #199: Add SNI support
    • Brent Atkinson
  • Fixes #200: Geoshape polygon not properly closed
    • Jon Nordling (GeoMarvel), Neil Penman (Smap Consulting)
  • Fixes #216: Adds USGS, Stamen, CartoDB tiles. Removes Mapquest tiles.
    • Max Soloviev (Nafundi)

Collect 1.4.11

r1062, 2016-10-27

  • Adds offline mapping and geoshape/geotrace widgets
    • Allison Lieber (Google), Carl Hartung (Nafundi), Jon Nordling (GeoMarvel), Tanya Bragin (Google), Yaw Anokwa (Nafundi)
  • Adds Ogg and WebM audio/video file types
    • Mitch Sundt (UW)
  • Adds continuous integration and testing
    • Brent Atkinson, Jeff Beorse (UW), Lindsay Stevens (UNSW), Sam Sudar (UW)
  • Improves right-to-left internationalization
    • Mitch Sundt (UW)
  • Improves Google Drive and Google Sheets support
    • Carl Hartung (Nafundi), Yaw Anokwa (Nafundi)
  • Improves Markdown support
    • Martijn van de Rijdt (Enketo)
  • Fixes #175: URLs with spaces cause crash
    • Brent Atkinson
  • Fixes #196: Add unit test to Markdown
    • Lindsay Stevens (UNSW)
  • Fixes #197: Device ID is not unique on Android M
    • Brent Atkinson
  • Fixes #198: Crash from playing audio files
    • Nyoman Ribeka
  • Fixes #202: Custom functions for external application params
    • Brent Atkinson
  • Fixes #1223: Translation on bearing widget
    • Marc Kreidler
  • Fixes null pointers in label
    • Mitch Sundt (UW)

Collect 1.4.10

Production Release

rev 1061

  • fix for crashes when server requests BasicAuth authentication.

Collect 1.4.9

Production Release

rev 1059

  • updated translations
  • improved arabic support
  • security fix: random number generator fix here
  • support for a subset of Markdown mark-up in text prompts (see xlsform, contributed by Nafundi).
  • new select-one with search appearance prompt (contributed by rkmittal)
  • replace old "maps" appearance dialog with dialog similar to "placement-map" but without the ability to move the location pin.
  • add support for audio reading of prompts and select choices (contributed by Nafundi)
  • updated to use Apache 4.5.2 libraries -- should support SNI server identification
  • updated google-play-services library so it isn't quite so ancient.
  • this release is built for Android 2.3 and newer (Google is dropping developer tools support for 2.2 and earlier).
  • updated javarosa library (2016-04-21):
    • fix date, time, dateTime handling of time zones (in collaboration with SurveyCTO)
    • fix itemset choice lists -- various issues.
    • fix jr:choice-name() context resolution so that it can work with relative paths and repeat groups (SurveyCTO contribution).
    • add XPath 3.1 math functions (e.g., exp, log, sin, cos, etc.)
    • add CONTROL_FILE_CAPTURE for future arbitrary-file-attachment handling
    • use consistent UTF-8 treatment when writing and reading files
    • better detection and handling of binary-file-format changes across versions
    • build with Java 7
  • add direct publishing into Google Sheets and downloading of forms from Google Drive (contributed by Google Earth Outreach / Nafundi )

Collect 1.4.7

Production Release

rev 1053

  • fix for Force Close when pulling forms from a server.
  • fix for Force Close for opening an existing form (caused by OutOfMemoryError).

Collect 1.4.6

Production Release

rev 1051

  • OpenStreetMap integration using OpenMapKit on Android.
  • fix for UTF-8 coding issue when saving and re-loading instance data.
  • updated language translations
  • downloads page now automatically selects the out-of-date forms.
  • display error messages if URL, username or password contain leading or trailing whitespace
  • remove graphics metadata that was causing APK packaging warnings
  • convert to AndroidStudio project

Collect 1.4.5

Production Release

rev 1048

  • numerous bug fixes and extreme performance improvements to the form evaluation logic resulting from a close collaboration between the ODK core team and SurveyCTO (javarosa-2015-01-10 jar). Among the changes to javarosa:
    • code rewritten to eliminate use of Vector and other synchronized data structures that were required for J2ME operations.
    • minimize space usage when allocating data structure.
    • dramatically rewrite evaluation logic; many fixes for the handling of repeat groups (see below).
  • Added Admin Setting for "Form Processing Logic" to select among different form evaluation logic implementations:
    • Recommended form evaluation logic (default - whatever logic is the current best going forward)
    • January 2015 (fastest) form evaluation logic
    • January 2015 (safest) form evaluation logic
    • Mid 2014 form evaluation logic (ODK Collect 1.4.4 and 1.4.3)
    • Early 2014 form evaluation logic (ODK Collect 1.4.2 and earlier)
  • update to newest GME API (October 2014)
  • new function: enclosed-area() (or area()) contributed by SurveyCTO
  • display friendlier error messages when evaluations fail (contributed by SurveyCTO)
  • fix: form crashes when deleting a repeat group.
  • fix: issue 1057 (on Google Code) - exception when server returns 401
  • add Japanese translation
  • update translations for ca, cs, es, fr, id, it, ja, lo, ne, pl, pt, ro
  • fix: various crashes reported thru Google Play
  • fix: custom splash screen picker not working in Android 4.4.2 and higher
  • allow user to move the installation (APK file) to the "external storage" partition (data location is unchanged and is hardcoded as /sdcard/odk).

Collect 1.4.4

Production Release

rev 1046

  • updated translations for ca, es, it, lo, ne, nl, pl, ro, ru, th
  • fixing form delete so that it deletes the proper tables and data associated with external itemsets for the selected form.

rev 1045

  • fix issue 959 (on Google Code) - crash if two forms reference the same external itemset.
  • fix - internationalized display names in external itemsets.
  • minor updates to translations

rev 1044

  • new: saveIncomplete() functionality. Contributed by Nafundi
  • new: delete-submission-after-upload functionality. Contributed by Nafundi
  • new: submit data to Google Maps Engine, pictures to Picasa, and host form definitions on Google Drive (no need for ODK Aggregate). Contributed by Nafundi
  • fix - when changing credentials, clear the cookie cache (prevents new user from operating with the credentials of the previous user). Contributed by SurveyCTO
  • fix issue 1037 (on Google Code) - changing settings does not change property values in form.
  • add czech translation
  • add polish translation
  • fix french translation (had caused Forced Close)
  • minor updates to italian, spanish.
  • consolidate JavaRosa initialization to a method in FormController.

Collect 1.4.3

Production Release

rev 1042

  • restore efficiency of form downloads to not always pull unchanged files.
  • more crash protection for when Android 2.x devices have their SDCard mounted (and therefore ODK Collect cannot properly start up).
  • fix for Force Close during a Mark-as-Finalized action.
  • fix for Nexus 7 tablet video capture not working.
  • updated translations: es, it, ro, ru, th, tr

rev 1041

  • issue 1003 (on Google Code) - media capture broken on 4.1 and earlier devices.
  • fix for edit-saved-instances count not being properly updated when instances added by external means.

rev 1040

  • dynamic search-and-select feature - contributed by SurveyCTO.
  • pulldata() feature for pre-loading survey data - contributed by SurveyCTO.
  • issue 631 (on Google Code) - external app usage extension for getting and setting sets of values - contributed by SurveyCTO.
  • upon form download, do not 'install' the form until all supporting media files have also been downloaded -- contributed by SurveyCTO
  • improved performance via background save of form (rather than in foreground) - contributed by SurveyCTO
  • force landscape mode in 'annotation' widget
  • issue 953 (on Google Code) - enable hi-res video capture (and setting to choose low-res)
  • update javarosa jar
    • new 'current()' qualifier in XPath expressions that acts like the 'instance('name')' qualifier, but refers to the current survey (and defaults to referencing the current node). Useful for the constraints within cascading selects within repeat groups.
    • new 'once(expr)' function that only saves the given expression in this field if the field does not yet have a value - contributed by SurveyCTO
    • new 'version()' function to access form version (issue 949 (on Google Code))
    • new 'geotrace' and 'geoshape' data types (not plumbed through to ODK Collect or ODK Aggregate)
    • fix issue 563 (on Google Code), issue 435 (on Google Code) - cannot use geopoint in a calculate expression. Now: boolean true is that there is a collected data point, number is the accuracy, and string is the full string representation of the geopoint.
    • fix issue 894 (on Google Code) - resolve substitution strings when we do jr:choice-name() look-ups.
    • fix issue 888 (on Google Code) - calculates and relevant conditions do not evaluate correctly when a group first becomes relevant. The outer group conditions now properly trigger re-evaluations of the nested fields.
    • remove J2ME support
    • merge changes from Commcare
  • fix issues with KitKat (Android 4.4) media chooser / capture
  • issue 827 (on Google Code) - fix display of values in Hierarchy view (contents view) when using repeat groups.
  • fix crashes during background sync due to network outages - contributed by Survey CTO
  • fix french translation which was causing crashes on the 'Send Finalized Form' screen.
  • issue 183 (on Google Code) - catch more sdcard availability failures
  • numerous crash fixes -- contributed by SurveyCTO
  • updated translations.
  • issue 42 (on Google Code) - (was solved several revisions ago) support translations of constraint and relevant messages
  • issue 78 (on Google Code) - (was solved several revisions ago) you can specify an accuracy constraint on a geopoint via the accuracyThreshold="" attribute.

Collect 1.4

Production Release

rev 1038

  • fix french translation which was causing crashes on the 'Send Finalized Form' screen.

rev 1037

  • fix manifest and opencsv.jar so that Google Play can distribute app to devices.

Release Candidates

rev 1036

  • partial fix issue 918 (on Google Code) - If Android 4.3 and higher devices include the Bouncy Castle encryption provider, then encrypted forms will be saved and encrypted. If the Bouncy Castle provider is not available, then the forms will be saved without encryption. This addresses encryption failures on Android 4.3. It is unclear if Bouncy Castle will always be present on Android 4.3 systems (on the tested systems, it is present) or if it will ever become unavailable in the future. Without this fix, data corruption will occur on Android 4.3 and higher systems. Fix accomplished with significant assistance by CTOSurvey.
  • fix silent failures when encrypted forms do not specify a server URL.
  • add a pow(a,b) function to raise 'a' to the power 'b' contributed by Nafundi.

rev 1035

  • fix for dynamic itemset interaction with jr:choice-name (where select choices are stored in separate named instances within the XML).
  • add JR function: property(name) to retrieve the property from the property manager. Eliminates the need to first store the property in a field -- they can now be used directly within a formula. NOTE: only works with immutable values -- i.e., does not work with start or end time.

rev 1034

  • fix date widget appearance for month-year and year-only on newer 4.x devices.
  • add 'no-calendar' appearance to force older spinner-only display on newer 4.x devices.
  • eliminate extra blank line that was displayed if a question did not have a text label.

rev 1033

  • update to newer 3.x and 4.x user interface standards. Legacy 2.x devices should continue to work as before. Key changes are to the menu (the icons are no longer shown) and while filling out a form, the save and hierarchy menu items are reachable via the icons on the 'action bar' at the top of the app.
  • update icons to conform to pixel dimensions of their respective dpi classes. This shrinks some icons for some displays, and enlarges others for other displays. Add xhdpi icons.
  • supply 'largeHeap' attribute to enable ODK Collect to run with a larger heap (including stack) on some devices (dependent upon hardware manufacturer). Can enable more complex regex() functions.
  • expose the InstanceUploaderList intent for direct access to the 'Send Finalized Form' screen by other apps.
  • new 'placement-map' appearance for geopoint widget. This presents a map display where you can drag the geolocation marker on the map, and save the new hand-placed geolocation back into the form (contributed by Guillaume Salmon).
  • improved gzip'd download of files from server (contributed by Sassafras Tech Collective)
  • new General Settings option to defer all validation checks until the end of a form; ability to hide this option using the Admin Settings (contributed by Sassafras Tech Collective).
  • the External String, Integer, Decimal widgets now pass the current data value into the external intent via the "value" field.
  • new "align:outerRectWidth outerRectHeight innerRectWidth innerRectHeight innerRectXOffset innerRectYOffset" appearance for image widget. Displays a red registration box overlay on the camera image for aiding image capture. Uses the https://github.com/opendatakit/alignedcamera app.
  • new "query...." appearance for string widget. Will provide select choices from csv data (contributed by Nafundi) Changes to XLSForm and documentation of this feature are in progress - no firm ETA.
  • update to javarosa library.
    • improved reporting of incorrect number of function arguments.
    • issue 852 (on Google Code) - improved traceback of validation errors to line in xml file. (contributed by SurveyCTO)
    • issue 846 (on Google Code), issue 832 (on Google Code), issue 822 (on Google Code) - suppress spurious validation failures (contributed by SurveyCTO)
    • ensure that uuid(), now(), today() and random() compute new values at each use within a form (previously, if you had two calculate expressions of 'uuid()', they would both return the same UUID (or instant of time, or random number).
    • issue 630 (on Google Code), issue 808 (on Google Code), issue 855 (on Google Code) - datetime values truncated to date in computations. Fixed by adding new functions:
      • date-time(x) -- convert a decimal time or string to a dateTime value without setting the time-of-day to 00:00:00.000 local time (i.e., preserve the incoming fractional day / time-of-day in the resulting dateTime) value.
      • format-date-time(df, fmt) -- format a dateTime field (df) according to the fmt string without first truncating the dateTime field value to a date-only (00:00:00.000 time) value.
      • decimal-date-time(x) -- convert a dateTime, date or string value to a decimal time value (integer days since 1970-01-01 plus fractional time of day).
      • decimal-time(x) -- convert a time value to a decimal time value (0.0 + fractional (local) time of day).
    • indexed-repeat(repeatedfield, repeatgroup, index): References a field or group that is inside a prior repeat group. The first parameter specifies the prior field or group in which you are interested; the second specifies the prior repeat group within which thefield or group of interest is located; and the third specifies the instance number, within the prior repeat group, to use. For example, the calculate expression "indexed-repeat(${name}, ${names}, 1)" will return the first name available when the "name" field is inside a prior repeat group named "names". From inside a later repeat group, the calculate expression "indexed-repeat(${name}, ${names}, position(..))" will pull the xth name from the prior repeat group, where x is the instance number of the current repeat group (e.g., if currently in the fourth instance of a repeat group, it will return the fourth name from the earlier repeat group). If you need to reference a field or group within multiple nested repeat groups, you can supply additional parameters to indicate the instance numbers to use for each level of nesting. For example, the calculate expression "indexed-repeat(${name}, ${families}, ${familynumber}, ${names}, ${membernumber})" will pull a particular family member's name when family member names are inside a repeat group that is itself inside a repeat group of families. (contributed by SurveyCTO)
  • fix: Draw, Annotate widget: the set-color action was not functional on ldpi screens (pop-up is too big for screen).
  • fix: potentially unsafe re-initialization of JavaRosa libraries
  • behavior change: csv files, when downloaded as part of the form definition's set of media files, are parsed and inserted into SQLite database for use in 'query...' appearance string widget.
  • fix: add guards to prevent crashes due to SDCard not being available.
  • behavior change: if the instance directory might be located under an ODK Tables or ODK Survey apps directory structure, when we delete the instance from ODK Collect, do not delete the media files (they are owned by Tables or Survey). This directory structure is under /sdcard/odk/xxxx/instances/yyyy/zzzz/.
  • fix: updating instance information did not update the last-status-change-date in the database.
  • fix: crash when no instanceName field present in metadata block (or, potentially, instanceId).
  • issue 851 (on Google Code) extension: if the bind element contains a jr:requiredMsg="" attribute, process this like a jr:constraintMsg and display it when data is not supplied. This is the new mechanism for supporting translations and customizations of these messages for, e.g., field-list groups.
  • fix: ActivityLogger (normally not enabled) could throw an error when logging some actions due to an unexpected null value.
  • project now depends upon playservices https://github.com/opendatakit/playservices (for new maps V2.0 API).

Collect 1.3

rev 1030

  • fix force close during submissions.
  • issue 804 (on Google Code), issue 805 (on Google Code), issue 817 (on Google Code) - continued attempt to fix visibility issues in Google Play store.

rev 1029

  • issue 804 (on Google Code), issue 805 (on Google Code) add uses-feature declarations in attempt to restore lost visibility of ODK Collect in Google Play store.
  • issue 800 (on Google Code) - updated dutch translations.

rev 1027

  • fix Force Close when uploading submissions and there is an authentication failure.

rev 1025

Production release of ODK Collect.

Significant enhancements:

  • printer support on Android 3.1 and higher systems. See https://opendatakit.org/help/form-design/examples/#printing_widgets and https://opendatakit.org/use/sensors-framework/zebra-printer-driver/
  • configurable display and use of 'back' and 'next' buttons, and the enabling or disabling of swipe treatment within form pages (contributed work by Nafundi).
  • configurable background transmission of submissions when network connections are detected (contributed work by Nafundi).
  • application settings can now be saved to disk and loaded from disk (makes configuring device fleets easier). (contributed work by Nafundi).
  • issue 401 (on Google Code) - string prompts now can render a configurable-height text entry box, via the rows attribute on their <input> tag.
  • issue 751 (on Google Code) - compact (a.k.a. grid view) select-one and select-multiple prompts now can render text label arrays or icon arrays.
  • compact (a.k.a. grid view) select-one and select-multiple prompts, if given a fixed column width (e.g., compact-4), will rescale the images so that they exactly fit the natural width of the device. Images are not rescaled when the device is then rotated 90 degrees.
  • if a meta/instanceName field is defined in a form, the non-empty value of that field will be used as the instanceName when the form is saved (and the user will be unable to alter it). Otherwise, the pre-1.3 instance naming treatment will be used. By defining this as a calculated field, the form designer can control the naming of the submission instances.
  • if itext contains constraintMsg or requiredMsg forms, then these will be used for the constraint failure and required-but-missing error messages.

Other changes:

  • counts are now displayed on the main menu for the number of saved and unsent forms present on the device.
  • issue 754 (on Google Code)- improved network error handling when connections time out.
  • issue 695 (on Google Code) - color picker used by annotation, free drawing and signature prompts now works on smaller devices (supports scrolling).
  • issue 692 (on Google Code) - fix several issues around upload failures (may not be complete).
  • move strings that shouldn't be translated out of strings.xml
  • bug fix for Forced Close when clearing already-cleared form field.
  • issue 780 (on Google Code) - delay reporting a geolocation until the second location update. Attempted fix for stale geolocations being reported on some devices.
  • issue 740 (on Google Code) - updates to french strings.
  • issue 739 (on Google Code) - updates to lt strings
  • issue 722 (on Google Code) - updates to ka strings
  • issue 690 (on Google Code) - when ODK Aggregate protocol is selected, formList and submissions settings were not being reset to the paths ODK Aggregate uses.

Collect 1.2.2

Production release of ODK Collect.

Addition of admin mode

rev 1023

  • fix admin preferences to properly default to historical non-admin behavior.
  • issue 734 (on Google Code), 735 - update string translations.
  • issue 709 (on Google Code) - hide "Get Location" button when geopoint widget is read-only.
  • issue 713 (on Google Code) add audio to "compact" appearance select1/select widgets (pressing icon will play associated audio clip)
  • various fixes for warnings reported by Android Lint tool
  • issue 715 (on Google Code) - retain filipino, copy translations to tagalog as well.

rev 1022

  • add audio to "compact" appearance select1/select widgets (pressing icon will play associated audio clip)

rev 1021

  • issue 28 (on Google Code) - provide admin mode restrictions on some user preferences
  • issue 715 (on Google Code) - filipino translation
  • issue 722 (on Google Code) - georgian translation

The admin mode functionality was sponsored by eHealth Nigeria. Admin mode enables you to customize what features in ODK Collect are available to your data collectors. For example, you can choose what buttons appear on the main screen so you can prevent collectors from accidentally editing or deleting saved forms. You can also prevent collectors from jumping to arbitrary prompts, renaming saved forms, or changing any of ODK Collect's settings unless they know the admin password.

Collect 1.2.1

Production release of ODK Collect.

New widgets for: draw, signature, annotate

rev 1020

  • issue 707 (on Google Code), issue 708 (on Google Code) - fix more crashes...
  • issue 700 (on Google Code) - swahili translations (2nd rev)
  • remove extraneous URLDecodes (W3C correctness)
  • onPause issue -- not saving values on current screen

rev 1019

  • issue 707 (on Google Code), issue 708 (on Google Code) - Crash when swiping from one select one autocomplete screen to the next.
  • issue 700 (on Google Code) - swahili translations

rev 1018

  • fix for overlaid screen images on return from external app or hierarchy view

rev 1017

  • issue 701 (on Google Code) - Crash when using video prompts within a form

rev 1016

  • issue 694 (on Google Code) - out animation (and recycle of images) not being executed
  • issue 698 (on Google Code) - GPS accuracy was hardcoded to 5m - use accuracyThreshold="1.5" attribute in the <input> tag to change this to 1.5m
  • issue 687 (on Google Code) - keyboard does not drop
  • issue 686 (on Google Code) - collect crashes if SD card being 'checked'

rev 1015

  • updated german translations.
  • issue 678 (on Google Code) - crash on gathering signatures
  • sporadic crash on 4.x systems

rev 1014

  • widgets for new image appearances: draw, signature, annotate
  • issue 663 (on Google Code) - support autoplay of audio or video clips on forward swipe
  • issue 662 (on Google Code) - add version and id to form download result dialog

  • issue 650 (on Google Code) - crashes when deleting repeat -- updated javarosa

  • issue 490 (on Google Code), issue 671 (on Google Code), issue 668 (on Google Code) - crashes with many image captures
  • issue 661 (on Google Code) - groups with no relevant members shown on backward swipe.
  • fix authentication problems when a Google Account is specified (this account is not used for authentication, but, if specified, the e-mail address can be prepopulated into the form).
  • issue 658 (on Google Code) - remove Google Forms choices (feature not yet available)
  • issue 620 (on Google Code) - reduce width of scroll bar to not overlap most screen elements.
  • upgrade to use Apache 4.2.1 http client libraries (improved debuggability)

Collect 1.2.0

Production release of ODK Collect.

Upgrading from ODK Collect 1.1.7

To upgrade, first ensure that all saved forms have been finalized and that there are no not-yet-sent forms remaining on the phone. Then remove the old app and install the new one.

New Features

  • Write savepoints after each swipe. Savepoints enable ODK Collect to recover all the answers for an in-progress form after unexpected terminations or closures. When the user chooses Edit Saved Form, the savepoint will be used if it is newer than the last save of the form. If a form was never explicitly saved, if the user chooses Fill Blank Form, ODK Collect will restore to the savepoint of the last unsaved copy of that form. Savepoints take less than 1 second to perform for eIMCI on Droid and Ideos phones.
  • encrypted forms support https://opendatakit.org/help/encrypted-forms/. Encrypts the form when marked as complete. Data is in plaintext on the phone prior to marking as complete and plaintext data may remain afterward (under some conditions, captured media files may continue to be accessible via other apps on the device).
  • enable cascading selects as in KoBo Collect.
  • improve the display of select1 with "minimal" appearance.
  • add menu item on the Send Finalized Form screen to toggle display of either just the unsent forms or all the sent and unsent forms (allows users to more easily resend forms).
  • add preload properties for username, email, and uri-prefixed variants of these properties. The valid properties (case insensitive) are:
    • deviceId, uri:deviceId
    • subscriberId, uri:subscriberId
    • simSerial, uri:simSerial
    • phoneNumber, uri:phoneNumber
    • username, uri:username
    • email, uri:email
  • add "month-year" and "year" appearance to the date widget to display only the month and year, or only the year spinner, respectively.
  • do not list read-only widgets in the hierarchy view if they have no label string.
  • add support for launching an external app to obtain a string, integer or decimal value. Support is via "ex:intentpath" appearance attribute on string, integer or decimal input widgets. An example external app is BreathCounter here https://github.com/opendatakit/breathcounter
  • support user interaction logging for all application interactions. This is disabled by default, but can be used to capture interactions for usability studies. See ActivityLogger.java for details.

Bug Fixes / Enhancements

rev 1013

  • issue 651 (on Google Code) fix for errors relating to editing saved files that complained about ../ or ./ references. (updated javarosa library).
  • issue 647 (on Google Code) add position() predicate
  • fix for incorrect evaluation of XPath expressions with or conditions.
  • updated translations (ca, fr, vi, id)

rev 1012 (1st release published to Google Play)

  • further cleanup around removal of image, audio and video files from content provider when interacting with those widgets and during deletion of saved forms.
  • remove audio and video files from content provider when deleting a filled-in instance.
  • issue 391 (on Google Code), correctly handle relaunching ODK Collect if your device has memory constraints and the OS forces ODK Collect to shut down during the launching of an external intent (e.g., video capture).
  • fix french translations (caused crash on save in 1010).
  • issue 624 (on Google Code) - null values have confusing display in minimal select1
  • issue 619 (on Google Code) - back swipe skips up out of simple group rather than to previous question within group
  • issue 606 (on Google Code) - editing a saved form does not do so in the chosen default form language.
  • issue 604 (on Google Code) - date and time widgets not saving values
  • issue 601 (on Google Code) - unused strings in ODK Collect
  • issue 593 (on Google Code) - support cascading selects -- 1.2.0 uses the KoBo Collect version of javarosa, so cascading selects are now possible.
  • issue 571 (on Google Code) - fixes for DateTime widget crashes on some devices
  • improvements around image/audio/video/gps capturing on field-list pages.
  • more consistent use of text size settings across all displays.
  • wider, always-visible, scroll bar
  • less confusing user experience -- clear user credential cache when changing username/password
  • change version to string value, handle version tag in formList (OpenRosa compliance)
  • remove all !uiVersion handling from code.
  • issue 586 (on Google Code) - display formlist in sorted form-name order (by date listing is not supported).
  • issue 580 (on Google Code) - fix for calculations returning integers causing fatal casting errors.
  • issue 579 (on Google Code) - fix form discovery bug that could result in multiple forms in the forms database.
  • improve display of forms using version attribute
  • issue 532 (on Google Code) - fix device id reporting for WiFi-only devices
  • issue 570 (on Google Code) - enable display of already-sent finalized forms via long-click on the Toggle button (supports resending those forms).
  • issue 568 (on Google Code) - fix preferences screen to not auto-capitalize, auto-complete.
  • general cleanup of cursors to close transient ones.
  • issue 550 (on Google Code) - string appearance "numbers" not handled properly
  • change to build against API level 8 (2.2) as 2.1 is obsolete.
  • add image widget "web" appearance to use WebView to enable panning and zooming (without clicking and launching the image viewer). Swipe gestures for advancing to the next question are disabled over the image area (swipe above or below the captured image).
  • silently retry file downloads before reporting failure (better user experience when using poor-quality WiFi).
  • hide buttons of read-only image/audio/video prompts.
  • upload at most 100 media attachments per transmission.
  • tweaks to ensure that HTTP entity streams are fully consumed.
  • share a common ClientConnectionManager.
  • issue 282 (on Google Code) image overlaps long text prompt
  • issue 246 (on Google Code) deletion of forms and instances occur in background tasks
  • some strings and code cleanup (issue 494 (on Google Code), issue 488 (on Google Code))
  • issue 515 (on Google Code) - crash during save when app pauses (screen goes dark)

rev 1011 Pre-release

  • rename XML files that fail to parse so that you don't repeatedly get warned.
  • correct fr translations
  • fix rendering of forms with repeats that are not field-lists but contain groups that are (would display incorrectly).

rev 1010 Pre-release

  • add missing copyright notices to all files
  • merge in activity logging (disabled by default). Tracks all clicks, swipes etc. application-wide (for user studies).
  • issue 567 (on Google Code), issue 619 (on Google Code) -- field-list navigations and display refresh after external app returns (e.g., barcode reader).
  • for the 'minimal' appearance select1 (spinner), display 'Select One Answer' in drop-down, in dark brown, if there is no selection (null).
  • issue 369 (on Google Code) -- add menu option to allow user to select already-sent submissions for re-submission.
  • send uri:deviceId value up to server on submission request.
  • fix displays when working with 0.9.x servers
  • issue 472 (on Google Code), issue 604 (on Google Code) ensure data is saved before moving off of page (different behaviors across 2.x and 4.x devices)
  • issue 282 (on Google Code) - prompt image overlaps long prompt text
  • clean up double/integer conversions
  • update to KoBo-based javarosa library (supporting cascading selects)
  • issue 606 (on Google Code)
  • many language translations updated

rev 1009 Pre-release

  • add ExString, ExDecimal, ExInteger widgets for launching external apps to retrieve a string, decimal or integer value.
  • issue 432 (on Google Code) -- add 'month-year' and 'year' appearances for Date widget.
  • issue 532 (on Google Code) -- fix of update deviceId to use WiFi MAC address for phones that don't have imei cards.

rev 1008 RC2

  • correct a few bugs in the database upgrade logic from 1.1.7 to 1.2.x databases (allows seamless upgrades from 1.1.7 to 1.2, though we still recommend getting all data off the phone before updating).
  • translations

rev 1008 RC1

  • issue 532 (on Google Code) -- use MAC address for WiFi-only devices.
  • OpenRosa compliance: change to use string-valued version strings (vs. integer-valued ones).
  • make vertical scroll bar wider, always-on, and more visible.
  • issue 571 (on Google Code) - fix date widget
  • issue 572 (on Google Code) - missing translations
  • issue 570 (on Google Code) - add functionality to select already-sent forms for sending.
  • issue 568 (on Google Code) - do not auto-cap or complete preferences screen entries
  • improve credential-changing logic and logging
  • display forms alphabetically in form lists by form's display name
  • improve robustness of swipe detection logic (bad values on some phones)
  • fix issues where 2 or more disk sync tasks could report the same form as present repeatedly, causing database errors.
  • apply question font size preference to all widgets

rev 1007 RC1

  • string widget with 'numbers' appearance can accept up to 255 characters (was capped at 10).

rev 1006 RC1

  • change image view to use webView for displaying images (reverted later to the old functionality and retained this as a special apppearance tag).
  • updated translations

rev 1005 RC1

  • try downloading files twice before abandoning the attempt (for slow connections).

rev 1004 RC1

  • hide capture and choose buttons on audio, video and image widgets when they are read-only

rev 1003 RC1

  • fix: always save answers in-order when advancing off of a field-list.

rev 1002 RC1

  • no such tag

rev 1001 RC1

  • fix crash in date, datetime widgets on Android 3.0+.
  • fix sleep/pause crash
  • improve display/status tracking in management screens
  • fix save-to-disk error (along one path).

rev 1000 RC1

  • branch from 1.1.7

= Collect 1.1.5

  • Collect 1.1.5
    • Integrated new JR Form API
    • Question navigation with 'alt' + left/right arrow keys
    • Can launch form with intent
    • Memory fixes to handle really big forms
    • Dialogs updated to be clearer
    • Save options simplified
    • Bug fixes to JumpTo feature

Minor update to 1.1.5 pushed 1/20/11

  • Fixes Collect on Tablets to use full screen.

When updating from 1.1.4 to 1.1.5, any saved instances you have will no longer appear in Collect. You can find them on the phone's SD card.