Acknowledged
CIQQA-3776

[bug] Simulator bug for older systems

My layout is messed up when I use drawRadialText on I guess devices with system 7, to make it easy I'll talk about system 7 where it fails.

However, if I first choose to run it on a system 8 device and re-use the simulator screen to run it on a system 7 device it works ok.

This is a typical line of code where it happens:

dc.drawRadialText(width/2, height/2, vectorBdf, strBottomDataTXT, 0, angleBottomDataTXT, r, Graphics.RADIAL_TEXT_DIRECTION_CLOCKWISE); // Graphics.TEXT_JUSTIFY_RIGHT replaced with 0
The textstring is composed from two sets of Complication.shortLabel and Complication.value values, that have some simple preformatting to reduce the errors in the complication object on beforehand with a calculated maximum range for the total length of the string.
On the left before running a system 8 device on beforehand, on the right after doing so:
I could test the outcome on Venu 3 and Fenix 8, on both it works perfectly, but they both also work perfectly in the simulator. In the simulator for example the Approach S70 and fenix 7 series have this problem. 
  • Okay. The bug is that the simulator reuses part of the vector font definition from a previous device if the current device vector fonts definition is NUMBER_ONLY. So sadly the problem got in production for a short period of time. Follow these steps to reproduce:

    A

    - select NotoNaskhArabicBold as vectorfont for Fenix 8

    Print a textstring "ABC 123"

    B

    - select BionicBold as vectorfont for Approach S70

    Print a textstring "ABC 123"

    If you run B in a fresh window it produces "123"

    If you run A in a fresh window it produces "ABC 123"

    If you now run B in the same window it produces "ABC 123"

  • But we don't know what is the bug until someone checks the same code on a real device. Maybe the fresh simulator for older devices is correct and it's also messed up on the real device?

  • > Sometimes (too many) the simulator remembers things it shouldn't. I totally agree it's an annoying bug that Garmin should fix

    But in this case, I think beva is saying that the sim bug in the older (System 7) device is only "fixed" (worked around) if he runs a newer device (System 8) first.

    So the primary complaint isn't that the sim is remembering something it shouldn't. The primary complaint is that the sim has a bug in the first place (drawRadialText doesn't work properly on System 7 devices), but the observation is that running the same code on a newer device (System 8) beforehand will work around the problem.

    In other words, if Garmin were to fix the problem where the sim inappropriately remembers the behaviour of a previously-simulated System 8 device when simulating a System 7 device, that still wouldn't fix the root problem that's being reported.

  • Ah, ok, so you run Fenix8, then fenix6.

    Sometimes (too many) the simulator remembers things it shouldn't. I totally agree it's an annoying bug that Garmin should fix. But whenever strange things happen I delete all apps from the simulator, reset it, close it, open a new one. Sometimes if works afterwards.

    The problem is we don't know how many times it's the opposite way: something works, but just because the previous things, and it wouldn't work in a fresh simulator and it won't work on a real device

  • I don't switch SDK's, this is with the latest SDK.