Connect IQ 1.1.2 SDK Available!

We recently released version 1.1.2 of the Connect IQ SDK today!


You may also download through the Connect IQ SDK Manager in Eclipse, by clicking the Connect IQ menu, selecting Open SDK Manager, and then clicking the Download button for Connect IQ SDK 1.1.2 released June 16, 2015.

It is also available for download here: http://developer.garmin.com/connect-iq/sdk/

v1.1.2

  • Fixed issues with Exceptions so that user implemented try/catch blocks will now work.
  • Add call to saveProperties after onStop so any properties updated by an app after onStop are preserved.
  • Fixed memory leak when receiving messages via the Communications module.
  • Increase reliability of transmitting messages via the Communications module.
  • Correct Moment's initialize() routine never getting called automatically.
  • Add two new API's to the WatchUI::InputDelegate class:
    • OnKeyPressed(evt)
    • OnKeyReleased(evt)


These routines are used to detect when a hard key is pressed and subsequently released, allowing applications to access this type of input schema in additionto the basic key action.

  • Add CLOCK key support for Fenix3/Epix, remove power and light key from devices.xml (since they are not supported by any devices), and correct key behaviour mappings for a number of devices in the simulator.
  • Add D2 Bravo, Japan Fenix3, and APAC Epix device support.
  • Prevent sending input to view without a defined input/behaviour delegate.
  • Fix device crashes when reading corrupt PRG files.
  • Fix bug that truncated FIT session names.
  • Fix issues with rapid key presses causing key messages to hit a view after a push or pop had already occurred.
  • onStop() will now always be called when a data field exits.
  • JSON request URLs are now percent-encoded so that any special characters are replaced by their identifying hex pair. Adds a new routine encodeURL(url) to the Communications module which allows the application to do this as well.
  • Add deprecation tags to the GeometryIterator methods/class, which will not be supported in the ConnectIQ 2.0 release.
  • Add interface to simulate GPS quality which allow the simulator to control the accuracy of the current GPS for testing.
  • Fix several memory leaks that occurred under specific error-recovery conditions.
  • Activity Monitoring times now use UTC as the standard format.
  • Circular memory references are now detected and after an app is shut-down, an error will be written out to the ConnectIQ log file (device only).
  • Prevent processing view push/pop messages from applications that have already closed.
  • Add HTTPS support to CURL requests in the simulator.
  • Properly handle condition where jsonRequest returns an array by default instead of an object.
  • Fix palette bitmap padding offset on the FR920XT, and ellipse border offset on all devices.
  • Re-add support for Escaped Characters to String Resources.
  • Add four menu items to control settings in the simulator:
    • Battery status
    • Force onShow
    • Force onHide
    • Phone connected


Battery status allows the user to set the level of the battery currently, phone connected is a toggle for whether a phone is connected or not, and force onShow/onHide forces those methods to run for the current view.

  • Allow Spaces in Project and SDK Paths.
  • Remove the extra menu for toggling low power mode and creates a checkbox for low power in the settings menu. All apps now start up in low power mode by default and exiting an app resets the menu. Also adds in a menu option for toggling sleep mode for ActivityMonitor.
  • Support memory tracking which adds a new window available at File->View Memory. This window shows a snapshot of the current allocations as well as any circular references. When the app starts to shut down, a snapshot is taken and if any circular references exist after the app is shut down, the snapshot is shown to the user along with a message about circular references.
  • Add activity history editing support to the simulator.
  • Update Epix simulator data field layouts and fonts to match the on-device experience.
  • Fix issue with converting coordinates to GEO_MGRS.
  • Improve general ConnectIQ stability across devices.
  • Various other minor bug fixes, performance improvements and documentation updates.


Known Issues:

  • If an Exception is thrown from a catch block, the finally block of the current try/catch/finally will not be executed.

Top Replies

All Replies

  • Are some of these things that won't work on a real device until the 1.1.2 VM is included in a FW update to the device?

    For example, I rebuilt my "activity tracker history" widget with 1.1.2, but it seems the startOfDay moment is still wrong on a 2.90 va.

    Also, while the simulator uses <appname>.str files now, it seems the simulator is a bit aggressive in deleting ALL .str files! So if you have config for an app, when you restart the simulator, they vanish!

    I also found that for some reason, I have one app that is still looking for "app.str" instead of <appname>.str in the simulator. I've rebuilt it, and 3 other apps that do the exact sime thing work fine.
  • Yes, that's correct. You'll have to wait for device firmware to integrate the 1.1.2 changes. For vivoactive, they've already pulled in the changes in the internal builds, so 1.1.2 should be available in the next public release of vivoactive firmware. I don't know exactly when that will be release, of course. ;)
  • I'm finding more "oddness" in the simulator with object stores. In 1.1.1, a call to saveProperties() would save the OS, even before the app exited, but now it's only saved on exit. Is this intentional?

    The whole "delete all .str files" is a pain, as with 1.1.1 I'd keep a few versions of app.str there for config options (like the API key for my weather stuff!)

    I do like the GPS setting and phoneConnected stuff in the simulator though! No need for my "inSimulator" flag any more!

    Also, it appears that the simulator no longer crashes after 10 makeJsonRequests!
  • The whole "delete all .str files" is a pain, as with 1.1.1 I'd keep a few versions of app.str there for config options (like the API key for my weather stuff!)

    It should only be deleting STR files for PRG files that are no longer at %TEMP%/Garmin/Apps. Are you seeing this behavior or is it deleting all STR files?

    I'm finding more "oddness" in the simulator with object stores. In 1.1.1, a call to saveProperties() would save the OS, even before the app exited, but now it's only saved on exit. Is this intentional?

    The object store is automatically saved when the app exits. It was never the intention for saveProperties() to have to be called by an app, but it had to due to a bug on the devices prior to 1.1.2.
  • Hi Roger,

    Has the memory leak from popping multiple views issue been fixed?
    https://forums.garmin.com/showthread.php?229424-Memory-Leak-from-Popping-Multiple-Views


    Yep, this has been included in the 1.1.2 release.

    Has the lost button press after session.stop issue been fixed?
    https://forums.garmin.com/showthread.php?236436-CIQBUG-Session-stop-causes-future-key-press-to-be-lost


    This fix has not been completed yet.
  • It should only be deleting STR files for PRG files that are no longer at %TEMP%/Garmin/Apps. Are you seeing this behavior or is it deleting all STR files?


    in 1.1.1 it left the .str file in place, which was good. That way it could be copied off and saved.

    The object store is automatically saved when the app exits. It was never the intention for saveProperties() to have to be called by an app, but it had to due to a bug on the devices prior to 1.1.2.


    But if it IS called from the app, shouldn't the properties be saved? I have a widget that builds .str files (only run in the simulator - an easy way to generate various .str files), and unless I "kill" the widget, the OS doesn't get saved.

    I reported just the other day that in watchfaces, they are not saved when a watchface exits, for example, and the only was to save it is to use saveProperties. I think it was Brian that said it was a known problem with watchfaces and would be fixed later.
  • File->View Memory is very nice!

    Thanks!
  • But if it IS called from the app, shouldn't the properties be saved? I have a widget that builds .str files (only run in the simulator - an easy way to generate various .str files), and unless I "kill" the widget, the OS doesn't get saved.

    We only want the object store to be saved when the app exits. Since the normal use case will be on a device and in those cases the app will get shut down, I don't see saveProperties() reverting back to pre-1.1.2 functionality. This does break your particular use case, and I'm sorry for that, but you can quickly kill the widget with ctrl-k or command-k (Windows/OS X).

    I reported just the other day that in watchfaces, they are not saved when a watchface exits, for example, and the only was to save it is to use saveProperties. I think it was Brian that said it was a known problem with watchfaces and would be fixed later.

    This has been fixed in the next round of device firmware that supports 1.1.2.
  • What about the .str files getting deleted by the simulator? Why did that change? It seems that it's when the simulator starts, everything in the temp/garmin/apps/data dir gets deleted, even if it's not a .str file.