Under Review
over 1 year ago

Bug: DatePicker in Settings-Array causes internal server error

Description:

Having a date picker in a settings-array ("settingConfig" element with attribute type="date" in a element "settings" of type="number" in a element "settings" with attribute propertyKey pointing to a property of type "array") causes apps.garmin.com/valyrian/appSettings2/sdk/input to respond with http status 500 when trying to File->Edit Persistent Storage->Edit Application.Properties data in CIQ Simulator.

Garmin Connect IQ App on android tells me, that there was an error, when I try to open the settings of the connect iq app.

SDK version: 6.2.2
IDE: eclipse 2022-03 (4.23.0) Linux

Steps to reproduce:

1. Create a new project (datafield) in eclipse
2. paste the settings.xml attached to resource/settings folder
3. start simulator (min. SDK version 3.2.x)
4. File->Edit Persistent Storage->Edit Application.Properties data

notice: changing line 24 type="date" to type="numeric", the settigs menu opens as expected

<resources>
	<properties>
		<property id="StreakActivity" type="array" />
	</properties>
	<settings>
		<setting propertyKey="@Properties.StreakActivity" title="activity" maxLength="5">
		    <setting title="activityType" type="number">
		        <settingConfig id="activityType" type="list">
		            <listEntry value="0">Generic</listEntry>
		            <listEntry value="1">Running</listEntry>
		        </settingConfig>
		    </setting>

		    <setting title="stringTitle" prompt="stringPrompt" type="string" >
		        <settingConfig id="string" type="alphaNumeric" errorMessage="stringError" />
		    </setting>
		    <setting title="numberTitle" prompt="numberPrompt" type="number" >
		        <settingConfig id="number" type="numeric" errorMessage="numberError" />
		    </setting>
		    <setting title="booleanTitle" prompt="booleanPrompt" type="boolean" >
		        <settingConfig id="boolean" type="boolean" errorMessage="booleanError" />
		    </setting>
		    <setting title="dateTitle" prompt="datePrompt" type="number">
		        <settingConfig id="date" type="date" errorMessage="dateError" />
		    </setting>
	
		    <defaults>
		        <entry>
		            <default id="activityType">1</default>
		            <default id="string">Oh, Hi there</default>
		            <default id="number">5</default>
		            <default id="boolean">true</default>
		            <default id="date">0</default>
		        </entry>
		    </defaults>
		</setting>	    
	</settings>
</resources>