We are excited to announce that runtime version 4.84.18 stable has been released.
Version 4.84 introduces the JourneyApps Auto Voice Engine, which allows apps to be controlled through voice on RealWear devices without the need for developers to register or manage voice commands. Additionally, it includes many fixes and improvements.
You can use this version of the runtime by selecting it from the list of stable runtime versions under App Settings/Runtime Version in OXIDE.
This version contains the following updates from runtime version 4.85.8:
A regression where certain keyboard shortcuts registered via the shortcut component deregistered unexpectedly.
A bug where an active object-dropdown in a dialog was not highlighted correctly in a voice controlled app.
This version contains the following updates from runtime version 4.85.7:
An issue where users where unable to save a captured signature on devices with older browser capabilities.
An issue affecting Android devices, where the sidebar component did not overlay the map of the display- and capture-coordinates components as expected.
An issue affecting devices running Android 5, where images in the list component images showed as green squares.
This version contains the following updates from runtime version 4.85.6:
Added journey.env which returns information about the deployment and backend that a user is currently enrolled in. Please note that journey.env has replaced journey.server. See its details here.
Fixed a regression affecting a marker-query of the capture-coordinates and display-coordinates components, where the icon-color and color attributes were not correctly applied.
This version contains the following fixes from runtime version 4.85.4:
A regression with the search field in the dialog of the optionList component losing focus while typing.
An issue with object-table pagination controls, where they could trigger another table's actions in certain scenarios.
An issue with the capture- and display-coordinates components causing attributes like icon and icon-color not evaluating correctly when specified using a $: function.
An issue affecting older containers, where users receive an error which prevents them from closing the capture-signature dialog.
An issue with the shortcut component where a shortcut would incorrectly trigger a function on another view after navigating away.
An issue where composition components such as columns incorrectly validated hidden UI components contained in it.
An issue with capture- and display-coordinates where a marker's color and the component's icon-color did not correctly show the specified named color.
An issue causing keyboard shortcuts registered by the shortcut component to persist when navigating away from a view.
A regression with journey.hardware.getCurrentLocation() that would cause the app to block and become unresponsive when the device does not permit location services.
Issue causing on-change on edit- cells in an object-table to block the UI even though cells can trigger in parallel.
An issue with icons failing to load correctly in some cases.
A regression with the search field in the dialog of an object-dropdown and single-choice-dropdown losing focus while typing.
A bug that prevented users from being able to search options in a single-choice-dropdown.
An issue where hidden object-dropdown and single-choice-dropdown components caused bound values to be cleared unexpectedly.
The performance of journey.diagnostics.getSyncStatus(), especially on the web container.
App performance profiling output, which is available in the developer tools console.
Other performance improvements, including reducing the number of app update checks.
Issues where the map tiles would sometimes not load for capture- and display-coordinates components.
A regression where saveFile() would not work correctly.
An issue where voice commands were not being registered automatically for components inside an object-repeat.
An issue where using the mouse back button would not navigate the view back on web/desktop.
An issue where object-table would not use the sorting or filter attributes as specified by the developer.
An issue where $: functions would not work correctly for voice-x voice command overrides on RealWear.
A regression where empty queries would be validated incorrectly on object-dropdown
An issue where a bound object-dropdown did not populate values when hidden and as a result, it would be empty when made visible.
An issue where single-choice-dropdown did not display the option labels when first loaded.
A regression with display-coordinates requesting permission to use GPS and failing to load the bound location value.
An issue where some components (e.g. dialog) would not be removed from a view when navigating and caused the app to be unresponsive.
An issue where signatures from capture-signature were stored in a faint color when the app was in dark mode. These signatures will now always be stored in high contrast and not be affected by the app theme.
An issue where the center property was ignored in the capture-coordinates and display-coordinates components when set by the developer with setMapState.
An issue where navigation validation failed to trigger in certain cases, and would ultimately block navigate functions.
A regression with actionSheet where it would fail to close when a user clicked outside it.
A major memory leak introduced with the Auto Voice Engine.
An issue that caused components to overflow when used inside a single column inside the dialog component's body.
A regression where components with query and bind attributes (e.g. object-dropdown) could lose their bound value in some cases while they were hidden.
The Auto Voice Engine, which automatically generates voice commands for RealWear applications. Read more about it here.
Support for pagination and search controls in the list component. See its documentation here.
Several standard attributes to the object-dropdown and single-choice-dropdown components, including empty-message, label-case, modifier-text. See the syntax reference for more information: object-dropdown; single-choice-dropdown.
Support for binding an array to an object-dropdown, allowing the user to choose multiple options.
Support for opening files (attachments) externally using the device’s default application. See its documentation here.
The toggle component now has a mode attribute to change how the boolean value is displayed (e.g. radio button, or checklist). See its documentation here.
The text-input component now has an enable-number-scrolling attribute, to allow users to increase or decrease a number input using mouse scrolling. See its documentation here.
Component methods were added across a number of components, allowing developers, for example, to open a component programatically. Further details can be found here.
Bluetooth.requestLEScan() for more advanced use cases to connect to nearby Bluetooth Low Energy devices. See its documentation here.
Developers can now retrieve diagnostic reports and out-of-memory crash reports for devices via an API. The out-of-memory crash reports are only available on iOS and on container version 21.12.1 or greater. Please contact JourneyApps Support if you are interested.
We've made underlying upgrades and improvements to the list, object-dropdown, single-choice-dropdown and optionList components.
The on-search functionality in the edit-typeahead component will now also search an object’s subtext. Previously only the label was included in the search.
On iOS devices, the keyboard now follows the app’s theme (dark vs light keyboard).
The left-most button within the notification component now has the outline style, with each subsequent button having a solid style.
Underlying improvements that result in more consistent focusing of input fields, especially on mobile platforms.
An issue that prevented an app to load after downgrading from and then returning to runtime version 4.83.x, throwing the following error: “SQLITE_ERROR: duplicate column name …”.
Signatures now display correctly in the list component.
An issue with the sidebar component where items were still clickable on desktop when their state was disabled.
Scrolling on a text-input component bound to a number variable/field will no longer cause the number to increment/decrement unless specified by the developer (see above). Additionally, an issue was fixed where the page also scrolled in this scenario.
An issue where HardwareBarcode.getCapabilities() resulted in a TypeError.
An issue where the display attribute’s text in a text-input component was not being vertically aligned correctly.
An issue where a dialog would block the camera preview when using journey.photos.capture().