Connect IQ 1.2.2 SDK Available!

Connect IQ SDK version 1.2.2 is now available for download!

You can get it one of two ways:

  • Use 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 v1.2.2 released January 6, 2015.
  • Download directly from our developer site at http://developer.garmin.com/connect-iq/sdk/


General Changes:
  • Improve API documentation based on feedback.
  • Replace the Input sample with a new version which tests more permutations of input than the original.
  • Add support for “Tall Watch” profile, a new/upcoming device which has new screen dimensions.
  • Add better documentation for each released sample within the README.
  • Extend Primates sample to use a BehaviorDelegate and demonstrate multiple types of bitmaps.
  • Update the Layouts sample to have a blue triangle as the background, and clean up build warnings.
  • Add check to make sure the type of the application being compiled is supported by the device that’s being targeted.
  • Add 16-bit alpha channel support to the resource compiler for compatible devices (Edge only).
  • Add ability to preview data fields on the non-active profile without running them (Edge only).
  • New memory management system which improves object creation/deletion performance by up to 3x (Edge only).
  • Allow comments as last line of a Monkey C file.
  • Deprecate loadProperties() and saveProperties().
  • Allow Unicode support for custom fonts.
  • Replace the Weather sample with JsonRequest which prints arguments duplicated and returned by httpbin.org, a free service.

Simulator Changes:
  • Fix the encoding of Unicode characters in Communications.encodeURL() in the Simulator.
  • Correct an issue that sometimes caused a System Error in the simulator when loading an app.
  • Fix the data contained in ActivityMonitor.Info when Activity Tracking is disabled in the simulator.
  • JSON responses greater than 512 characters are now allowed.
  • Correct an issue with the Picker sample that caused the initial screen to not display correctly.
  • Prevent an empty string from being chosen in the TextPicker, which emulates behavior on devices.
  • The Simulator will now issue callbacks with negative Communications status codes.
  • Fix Simulator crash when passing C format specifiers to print()/println().
  • The Simulator now requires a minimum of 1 second when choosing a duration with a number picker.
  • Fix incorrect purple (palette) definitions for semi-round watch, FR630, FR235 and FR230.
  • Add landscape mode setting which allows Edge devices that support a landscape rotation (90/270 degrees) to run data fields in that mode.
  • Resolve several crashes with the Simulator Memory Window.
  • Support the FR230/235/630 in the Picker sample.
  • Allow for simulating and FIT file playback of swim lap data.
  • Add Fenix 3 HR, tactix Bravo and new APAC device support.
  • Ensure onUpdate() is called during a push/pop/switch view operation.
  • Only call onStop() once on during application shut-down.
  • Do not respond to the ENTER key in Menus on devices that do not map it to onSelect().
  • If an ON_BACK behavior is issued by pressing the ESC key, pop the view if the key is not used, i.e. false is returned by the input or behavior delegate. Emulates the current device behavior under these circumstances.
  • Fix several crashes occurring in various circumstances when using the Number Picker.

API Additions:
  • Add support for heart rate history on devices with wrist-based heart rate monitoring; see ActivityMonitor.getHeartRateHistory() for more details. The FR235 will support this new API at a later date.

Bug Fixes:
  • Fix an issue preventing empty string resources from being defined. now works as expected.
  • Fix an issue that caused devices to reboot when deleting a class that used WeakReference.
  • A warning is now generated generated with Module.className.init(). Note: Module name is not checked against the module to which the parent class belongs.
  • If a class does not initialize its parent class, the compiler now includes a relevant line number for that warning - the line of the class’s initialize if it exists and the line of the class declaration if it doesn’t.
  • Adjust makeJsonRequest() to support Unicode in addition to 1252 as the source code page.
  • Fix hidden keyword functionality in the compiler, which will now generate a symbol not found error when a hidden item is accessed out-of-scope.
  • Exception errors now correctly print the call-stack.
  • Defines a new error “Invalid Resource” which is issued when a bitmap is loaded that is not compiled for the current system.
  • Invalid permissions errors will now display a “Permission Required” error versus the previous “Symbol Not Found Error”.
  • Always ensure a call stack is printed when a Monkey C application crashes.
  • Toybox::WatchUi::DataField::getBackgroundColor() will now return either COLOR_WHITE or COLOR_BLACK.
  • Allow for :method to not be in the options hash, if passed into makeJsonRequest. This allows it to be null as it defaults to GET.
  • Fix a crash that occurred when pushing a menu with no items (empty).
  • Prevent pushing views in watch-faces or data-fields and generate an error.
  • Time.today() now returns the locally adjusted time of the beginning of the day in Unix time.
  • Fix several issues with stack trace handling.
  • Prevent the system from running out of timers if both a widget and application are running.
  • Fix System.exit() so that it doesn’t “crash” the application or fail to exit.

Known Issues:
  • If an Exception is thrown from a catch block, the finally block of the current try/catch/finally will not be executed.
  • The compiler is processing custom fonts in a way that allows for more data to be specified, but hand-made font files may display slightly different.
  • Number fonts on the Edge 520 have not yet been finalized.
  • Former Member
    Former Member over 9 years ago
    Thanks for the update!

    Build error appears: "BUILD: ERROR: Width (0) and height (8) cannot be less or equal 0" (symbols replaced)

    What's that? How to fix?
  • On the FR920XT, with the new 6.20 firmware update and using the 1.2.2 SDK, the InputDelegate.keyPressed() and keyReleased() events are still not generated (but works in the FR920XT simulator). Will this ever be fixed in the actual firmware that is suppose to correspond to the SDK API?
  • Build error appears: "BUILD: ERROR: Width (0) and height (8) cannot be less or equal 0" (symbols replaced)

    What's that? How to fix?


    This build error is seen when you use a custom font. Most likely one that you have modified or created instead of being exported from BMFont.
    The reason for this is that the compiler now uses more of the settings in the *.fnt file than in the past. This fixes some other font issues and provide support for special characters.

    To fix this, you have to change the xadvance value to match the width on the same row.

    For example, change this

    char id=49 x=0 y=0 width=10 height=16 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15
    char id=50 x=13 y=0 width=20 height=20 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15


    to this

    char id=49 x=0 y=0 width=10 height=16 xoffset=0 yoffset=0 xadvance=10 page=0 chnl=15
    char id=50 x=13 y=0 width=20 height=20 xoffset=0 yoffset=0 xadvance=20 page=0 chnl=15
  • 1.2.2 bin/devices.xml File Not Updated?

    Was the bin/devices.xml file updated for 1.2.2? I'm seeing the FR920XT having firmware version 9.10, when 9.20 was released today:

    <device id="fr920xt" part_number="006-B1765-00" name="Forerunner® 920XT">
    <connect_iq_version>1.2.1</connect_iq_version>
    <part_numbers>
    <part_number number="006-B1765-00" firmwareVersion="610">
  • Was the bin/devices.xml file updated for 1.2.2? I'm seeing the FR920XT having firmware version 9.10, when 9.20 was released today:

    You mean 6.x0 :)
  • Was the bin/devices.xml file updated for 1.2.2? I'm seeing the FR920XT having firmware version 9.10, when 9.20 was released today:

    <device id="fr920xt" part_number="006-B1765-00" name="Forerunner® 920XT">
    <connect_iq_version>1.2.1</connect_iq_version>
    <part_numbers>
    <part_number number="006-B1765-00" firmwareVersion="610">


    I think that may be more of a minimum FW version, as devices like the fr 230 have 310, when the current production FW is 3.30 For the 230, 3.10 was the first firmware with the CIQ 1.2.1. VM
  • Out Of Memory Error

    I have problem with "Out Of Memory Error" on SDK 1.2.2. I can't run many my watch faces - if I switch to SDK 1.2.1 it is OK

    edit:
    I am reinstalled CIQ plug- in and problem is solved.
  • Former Member
    Former Member over 9 years ago
    To fix this, you have to change the xadvance value to match the width on the same row.

    Hm...All fonts are imported with BMFront actually. Is there an option I have to set so it will be done automatically?
  • Hm...All fonts are imported with BMFront actually. Is there an option I have to set so it will be done automatically?


    For fonts that I use that were generated by bmfont and used as-is, I haven't see any problems, but I have a few that I then modified by hand afterwards that did.

    For example, I have a font that started with BMfont, but then turned into my "icons font", and had modified the .fnt file in the process, as I modified the .png. It took a few minutes to fix and test, but they are fine now.
  • Hm...All fonts are imported with BMFront actually. Is there an option I have to set so it will be done automatically?


    Like Jim said, we haven't seen issues yet with fonts that weren't modified by hand.
    There is nothing you should do in BMFont to rectify the issue.

    But if you did modify by hand, then there is something to look out for, starting with xadvance as per my original answer.