<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://forums.garmin.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Accessing Toybox.ActivityMonitor.Info via a simple data field app</title><link>https://forums.garmin.com/developer/connect-iq/f/discussion/363326/accessing-toybox-activitymonitor-info-via-a-simple-data-field-app</link><description>Hello, I&amp;#39;m hoping someone can give me a steer as to how to access Toybox . ActivityMonitor . Info via a simple data field app. Specific use case: 
 Display activityInfo.timeToRecovery for use as a data field viewable during a workout on a Fenix6s. The</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 11 Mar 2024 16:30:10 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://forums.garmin.com/developer/connect-iq/f/discussion/363326/accessing-toybox-activitymonitor-info-via-a-simple-data-field-app" /><item><title>RE: Accessing Toybox.ActivityMonitor.Info via a simple data field app</title><link>https://forums.garmin.com/thread/1743398?ContentTypeID=1</link><pubDate>Mon, 11 Mar 2024 16:30:10 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:b684e8ff-4344-488e-bb74-1d022d357939</guid><dc:creator>C8102E</dc:creator><description>&lt;p&gt;Thank you for the nudge. I&amp;#39;ve now made some changes, and tested on device.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;Pleased to say it&amp;#39;s working!&lt;br /&gt;&lt;br /&gt;If helpful for anyone here&amp;#39;s the final code:&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;pre style="padding-left:30px;"&gt;&lt;code&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Toybox&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;Activity&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Toybox&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;Lang&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Toybox&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;Time&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt;import&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Toybox&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;WatchUi&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt;class&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;rec_data_fieldView&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;extends&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;WatchUi&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;SimpleDataField&lt;/span&gt;&lt;span&gt; {&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Set the label of the data field here.&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;initialize&lt;/span&gt;&lt;span&gt;() {&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;SimpleDataField&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;initialize&lt;/span&gt;&lt;span&gt;();&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;label&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;&amp;quot;Rec Time (hrs)&amp;quot;&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; }&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// The given info object contains all the current workout&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// information. Calculate a value and return it in this method.&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// Note that compute() and onUpdate() are asynchronous, and there is no&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;// guarantee that compute() will be called before onUpdate().&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;function&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;compute&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;info&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;as&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;Activity&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;Info&lt;/span&gt;&lt;span&gt;) as Numeric or Duration or String or Null {&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;var&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;timeToRecovery&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;ActivityMonitor&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;span&gt;getInfo&lt;/span&gt;&lt;span&gt;().&lt;/span&gt;&lt;span&gt;timeToRecovery&lt;/span&gt;&lt;span&gt;; &lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;if&lt;/span&gt;&lt;span&gt; (&lt;/span&gt;&lt;span&gt;timeToRecovery&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;==&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;null&lt;/span&gt;&lt;span&gt;) {&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;timeToRecovery&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;0&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; }&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;return&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;timeToRecovery&lt;/span&gt;&lt;span&gt;;&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt; }&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Accessing Toybox.ActivityMonitor.Info via a simple data field app</title><link>https://forums.garmin.com/thread/1743271?ContentTypeID=1</link><pubDate>Mon, 11 Mar 2024 12:09:54 GMT</pubDate><guid isPermaLink="false">a9571b57-dd57-479e-8763-8f8a603e40aa:8a5ac24d-6ed3-4028-915c-99ed469178bf</guid><dc:creator>jim_m_58</dc:creator><description>&lt;p&gt;With a simple data field, onUpdate isn&amp;#39;t called.&amp;nbsp; You need to use a complex data field for that.&amp;nbsp; With a simple one, all you can do is return what you want displayed in compute.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>