Skip to content

Commit a105d7e

Browse files
committed
2 parents cad3580 + d27b658 commit a105d7e

4 files changed

Lines changed: 251 additions & 91 deletions

File tree

AGENTS.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,19 @@ diagnose the hard way — check these BEFORE spending time in logcat):
180180
6. **`adb shell run-as` does not work on Waydroid** (`setegid(AID_PACKAGE_INFO) failed`), so editing
181181
`qDomyos-Zwift.conf` directly is unavailable there — drive settings through the UI instead
182182
(`adb shell input tap/swipe`).
183+
7. **QtWebView `<canvas>` content (chartjs live charts) doesn't visually repaint on Waydroid after
184+
the first paint**, even though the underlying JS/Chart.js state is provably correct and updating.
185+
Verified by instrumenting `dotreadmillchartlive.js` with `console.log` of the dataset array,
186+
`chart.scales.x.getPixelForValue()`, and `canvas.width/height` on every tick: the array keeps
187+
growing every second with correct x/y values and correct computed pixel positions, `chart.update()`
188+
(both animated and `'none'` mode) runs with no JS error — yet `adb shell screencap` **and**
189+
`adb shell screenrecord` (a different capture path, rules out a screencap-specific bug) both show
190+
the canvas frozen at whatever it looked like a few seconds after the chart first opened. A manual
191+
touch/swipe on the WebView momentarily forces a real repaint (briefly shows the correct up-to-date
192+
line) before freezing again. This means: don't trust `screencap`/`screenrecord` snapshots as proof
193+
a Chart.js-based live chart is broken on this environment — instrument the JS directly
194+
(`console.log` piped through `adb logcat | grep chromium`) to check the actual data/redraw state,
195+
and treat visual confirmation as only possible on a real Android device.
183196

184197
### Windows
185198
- ADB integration for Nordic Track iFit devices

src/devices/horizontreadmill/horizontreadmill.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -987,7 +987,7 @@ void horizontreadmill::update() {
987987
requestSpeed = -1;
988988
}
989989
if (requestInclination != -100) {
990-
if (!FS_TREADMILL || !areInclinationSettingsDefault()) {
990+
if (!adidas_treadmill && (!FS_TREADMILL || !areInclinationSettingsDefault())) {
991991
requestInclination = treadmillInclinationOverrideReverse(requestInclination);
992992
}
993993

@@ -2689,6 +2689,11 @@ void horizontreadmill::deviceDiscovered(const QBluetoothDeviceInfo &device) {
26892689
sole_tt8_treadmill = true;
26902690
minInclination = -6.0;
26912691
qDebug() << QStringLiteral("SOLE TT8 TREADMILL workaround ON!");
2692+
} else if (device.name().toUpper().startsWith(QStringLiteral("ADIDAS"))) {
2693+
adidas_treadmill = true;
2694+
minInclination = -6.0;
2695+
maxInclination = 40.0;
2696+
qDebug() << QStringLiteral("ADIDAS TREADMILL workaround ON!");
26922697
} else if (device.name().toUpper().startsWith(QStringLiteral("S77"))) {
26932698
sole_s77_treadmill = true;
26942699
qDebug() << QStringLiteral("SOLE S77 TREADMILL workaround ON!");

src/devices/horizontreadmill/horizontreadmill.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ class horizontreadmill : public treadmill {
103103
bool trx3500_treadmill = false;
104104
bool sole_f85_treadmill = false;
105105
bool sole_f89_treadmill = false;
106+
bool adidas_treadmill = false;
106107
bool schwinn_810_treadmill = false;
107108
bool yesoul_treadmill = false;
108109
bool technogymrun = false;

0 commit comments

Comments
 (0)