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
    Re-importing the font with "Force offsets to zero" option set in true helped. Otherwise font didn't look like on 1.2.1.
  • Connect IQ SDK version 1.2.2 is now available for download!

    General Changes:
    • Add support for “Tall Watch” profile, a new/upcoming device which has new screen dimensions.


    Interessting...
  • Former Member
    Former Member over 9 years ago
    Hey guys, one more strange issue. Simulator doesn't want to show changes after Run, I have to close it and run again (sometimes twice) to see the changes made in the code. Any ideas how to fix that? When I switch back to 1.2.1 SDK everything works fine.
  • Re-importing the font with "Force offsets to zero" option set in true helped. Otherwise font didn't look like on 1.2.1.


    Thanks for the info! Will definitely help others!
  • Vivo Active 3.30 with IQ 1.2.1

    Is a new firmware for VivoActive supporting 1.2.2 ready ?
  • Former Member
    Former Member over 9 years ago
    Thanks for the info! Will definitely help others!

    It's still a mess. I have a big font which on 1.2.2 becomes much wider, whatever padding I specify it is still ~10% wider than on 1.2.1. I was able to fix that only by setting all paddings to 0 and manually reducing xadvance values by 4px. Moreover, .getTextWidthInPixels() doesn't work correctly now, at least for me with custom fonts. :mad:
  • Hey guys, one more strange issue. Simulator doesn't want to show changes after Run, I have to close it and run again (sometimes twice) to see the changes made in the code. Any ideas how to fix that? When I switch back to 1.2.1 SDK everything works fine.


    Try clearing out the temp directory (which should be at $TMPDIR/GARMIN on a Mac or %TEMP%\GARMIN on Windows) and see if that helps.
  • what about the horrid bug when users change the watches settings (user coustomisation). I still get bug reports and bad reviews because of the Garmin bug. Ta
  • what about the horrid bug when users change the watches settings (user coustomisation). I still get bug reports and bad reviews because of the Garmin bug. Ta


    I think the problems I've seen have been problems with GCM (android or iOS) and GE, such as the "index vs value" in pre 4.11 GE, and the "string vs number" in GCM Android), and not in Connect IQ itself. So the fixes will probably occur in GCM and GE, and not CIQ.

    But for those problems, people have found work-around (such as checking to see if when reading the setting for a number, it's a number, and if not, using toNumber() to make it so.) And with GE, it's just asking users to make sure they are running the new versions.
  • And with GE, it's just asking users to make sure they are running the new versions.

    And even this can be worked around by internally mapping index values to the desired colors instead of directly using colors' hexadecimal values as list values.