I see some very strange results returned by the recently published getStressHistory function (similar with getBodyBatteryHistory). It is wrong even in simulator, but on a real device it is even worse.
sensorIter = SensorHistory.getStressHistory({ :period => 1, :order => SensorHistory.ORDER_NEWEST_FIRST}); mTime = $.sensorIter.getNewestSampleTime(); // Simulator: // Returns current date - correct // Real device Vivoactive 4: // 2 possibilities: // 1. If iterator is empty, returns 30/12/1989 ?! // 2. If iterator has data, returns correct date mData = $.sensorIter.getMin(); // Simulator: // Returns correct value (35 in my case) // Real device Vivoactive 4: // 2 possibilities: // 1. If iterator is empty, returns 127 (that is stress level 127% ?!) // 2. If iterator has data, returns correct value mSensorSample = sensorIter.next(); // Real device Vivoactive 4: // Often returns NULL if (mSensorSample != null) { mTime = mSensorSample.when; // On both, simulator and real device, returns next day but year 2002 ! // For example, today it shows 27/3/2002 (it should be 26/3/2022) }
Main issues:
- On real device often returns empty iterator
- When use next(), always returns wrong date (year 2002)
- getMin() returs 127 (%) instead of null from empty iterator
There is a lot more weird behavior, but this is the main issue. I tried a few simulators (different watch models) - it is always the same. I have only one compatible physical watch - Vivoactive 4, and that is the result from it. Let me know if you want a sample code to try yourself.
Brandon.ConnectIQ, would you please take a look?
Thanks!