Resource overrides for properties not working consistently in simulator
o The Environment:
Windows 10
Eclipse Neon.1 (4.6.1)
o A detailed description of the issue
According to the documentation for App Settings [1], I should be able to override properties like any other resource by using resource qualifiers [2]. When running under the simulator, it appears that resource qualifiers are not consistently being applied to properties.
o Steps to reproduce the issue
Import the project (see link below) into Eclipse, and execute the following steps to reproduce the problem.
- Execute the test program using fenix3 as the target device.
- verify you see the likeness of a fenix3 device.
- verify you see 'default' displayed on the simulated device screen.
- click ConnectIQ > App Settings Editor in Eclipse.
- select 'Properties' from the 'Project' dropdown, and wait
- verify you see 'default' displayed under the 'Resource Folder' setting.
- verify you see the likeness of a fenix3 device.
- Kill the app in the simulator (CTRL+K)
- Execute the test program using fr735xt as the target device.
- verify you see the likeness of a fr735xt device.
- verify you see 'fr735xt' displayed on the simulated device screen, indicating the override of TestString worked as expected.
- click ConnectIQ > App Settings Editor in Eclipse.
- select 'Properties' from the 'Project' dropdown, and wait
- you should see 'fr735xt' displayed under the 'Resource Folder' setting, but you will find 'default' instead. This indicates that the 'TestProperty' override did not work as expected.
- verify you see the likeness of a fr735xt device.
At this point, we've reproduced the problem. If we go further, we can get some insight as to where the issue lies.
- Kill the app in the simulator (CTRL+K)
- Exit the simulator (CTRL+Q)
- Exit Eclipse (ALT+F4)
- Delete the %TEMP%\Garmin folder (rmdir /s /q %TEMP%\Garmin)
- Start Eclipse
- Execute the test program using fr735xt as the target device.
- verify you see the likeness of a fr735xt device.
- verify you see 'fr735xt' displayed on the simulated device screen, indicating the override of TestString worked as expected.
- click ConnectIQ > App Settings Editor in Eclipse.
- select 'Properties' from the 'Project' dropdown, and wait
- verify you see 'fr735xt' displayed under the 'Resource Folder' setting.
- verify you see the likeness of a fr735xt device.
- Kill the app in the simulator (CTRL+K)
- Execute the test program using fenix3 as the target device.
- verify you see the likeness of a fenix3 device.
- verify you see 'default' displayed on the simulated device screen.
- click ConnectIQ > App Settings Editor in Eclipse.
- select 'Properties' from the 'Project' dropdown, and wait
- you should see 'default' displayed under the 'Resource Folder' setting, but you will find 'fr735xt' instead. This indicates that the 'TestProperty' override did not work as expected.
- verify you see the likeness of a fenix3 device.
This indicates to me that the resource system is working as intended (the correct override is used the first time after wiping out the %TEMP% folder), but there is some property caching that is preventing the correct properties from being loaded in some cases.
o Any applicable additional information
N/A
o A code sample that can reproduce the issue (in email only if preferred)
https://1drv.ms/u/s!Ak71bikqehCh1il-2k3L1FlXp8ab