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

  • and it fixed the backlight bug?

    It did add multiple alarms that can be once, daily, etc, so I just set one for a few minutes from now to find out.

    update: Looks like they fixed the Backlight issue, plus they added "snooze" to the alarm.
  • It did add multiple alarms that can be once, daily, etc, so I just set one for a few minutes from now to find out.

    update: Looks like they fixed the Backlight issue, plus they added "snooze" to the alarm.


    F3 didn't get any of the alarm stuffs.
  • So I installed the latest 4.20 firmware on my 920xt. Everything completed successfully. I wrote my own custom watch face (gcWatch) and the time displays correct, but not the date. Everything has been working fine for months on old firmware. At the time of writing this, the date displayed was Wed 4 Jan, when in fact it is Sat June 20. The normal watch seems to display everything correctly. More interestingly, when I start a new a new activity, the time displayed in top right corner, is 06:03, when in fact it is 12:32. So something is seriously wrong on the reported date by the device, and what the SDK provides to applications. Here is what I did to troubleshoot.

    1. Set time manually, does not change the date as I cannot set the date. Time just changes back to the wrong time, so it does not save it.
    2. I set the time to Auto, get a good GPS signal, but nothing updates.
    3. Made sure my timezone is correct under Connect - Profile - Display Preferences. (This should have no impact, but tried anyway).
    4. Ran my custom watch face app in the simulator to update to use latest SDK 1.1.2. Everything displays correctly in the simulator (date and time), running the updated app on the device does not work (time is right, date is wrong).


    Can anyone please help? What is going on Garmin?

    Thanks
    Shane


    Just to close this off. I wanted to avoid a factory reset of my device, but seems that this was the only way to resolve my issue. Something did go wrong when installing the latest firmware, But after restoring factory defaults (clean device) everything worked again.

    Thanks
    Shane
  • Not sure the best place to put this, but would love a `Dictionary.clear()` method in a future SDK release. One less for-loop to write.


    We talked through this today. Rather that creating a clear() method for Dictionaries, we suggest that you just use dictionary = {} to empty the dictionary. I'm aware that there are differences in other languages (e.g. Python) between using clear() and assigning to {}, but I don't believe there would be a difference in Monkey C. I'll check into it to make sure.
  • We talked through this today. Rather that creating a clear() method for Dictionaries, we suggest that you just use dictionary = {} to empty the dictionary. I'm aware that there are differences in other languages (e.g. Python) between using clear() and assigning to {}, but I don't believe there would be a difference in Monkey C. I'll check into it to make sure.


    I have confirmed that there are some caveats you'll need to be aware of when using dict = {} in Monkey C to empty a dictionar. We'll definitely need to add a clear() method after all. :) There's a good post on stackoverflow that explains it well, even though it's talking about Python:

    http://stackoverflow.com/a/369925
  • @HERMOT

    I've been attempting to reproduce this issue you found with string resources, and haven't been successful. Can you provide me with the full resources.xml file for the app that has this issue? If you prefer, you can send it via private message, or email to [email][email protected][/email].

    Does this issue only occur on the device, or do you see it in the simulator as well?



    Hi, sorry for the late reply.

    I basically have a strings.xml file with the empty string defined as:

    <string id="name"></string>

    It breaks in the simulator. Have not tried on watch because if it does not work in simulator I accept it won't work on watch.
    Only way I could make it work is if I put a white space in.

    It specifically breaks at the point in code when trying to load the particular string resource:

    var name = Ui.loadResource( Rez.Strings.name );

    I just tried with 1.1.3 as well and the bug is still present since 1.1.2.

    I emailed you a sample project as well.

    Regards,

    H
  • @HERMOT I received your app this morning (thanks!), so I'll get it tested today. I've tried to do something like you've described and haven't had any luck reproducing it, so perhaps I'm missing a small detail. I'm confident what you're seeing is a real problem, so I'll keep pecking away at it until I've found the issue. If I have any other questions, I'll let you know.
  • Aw man - no alarm or notification status

    Aw man, still no option to show an alarm icon :-(

    Or notification unread!

    :-(((
  • I have confirmed that there are some caveats you'll need to be aware of when using dict = {} in Monkey C to empty a dictionar. We'll definitely need to add a clear() method after all. :)

    8 years ago you concluded that a clear() method is definitely needed. Until today it does not exist. Why?