Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] QZ crashes on Android when QZ Nordictrack Companion app installed on S22i #2997

Open
Effayy opened this issue Jan 6, 2025 · 7 comments
Assignees
Labels
bug Something isn't working

Comments

@Effayy
Copy link

Effayy commented Jan 6, 2025

Description
the QZ app on my phone will crash within 1-2 seconds of loading when the QZ Nordictrack Companion app is installed on my S22i (NTEX02121.9). It appears to crash as it's discovering Bluetooth devices.

  • The S22i was factory reset and updated to iFit App version 2.6.88.4692 before QZ-Companion installation.
  • Installation was done via ADB method
  • S22i was restarted after installation. Phone was restarted multiple times.
  • Cleared Cache and App Data on QZ phone app.
  • Tried both beta and latest prod release of app

Settings

  • Bike Options:
    -- Proform/Nordictrack Options -- TDF Companion IP: 192.168.2.x (network reserved IP of S22i)

  • Experimental Features:

    • Enable Virtual Device: ON
    • Virtual Device Bluetooth: ON
    • Wahoo direct connect: ON
  • QZ Companion App set to either S22i, S22i NTEX02121.5, or Other

Noted Behaviour

App will not crash when any of the following is true:

  • Phone Bluetooth is turned off
  • QZ Companion app is not installed/uninstalled on S22i
  • S22i is unplugged
  • TDF Companion IP field is blank

App will crash when:

  • Phone Bluetooth is turned on AND
    • QZ Companion app is installed on S22i (Tried latest master / 3.6.0 / 3.3.0)
    • TDF Companion IP is set to anything (including verified IP of S22i)

Smartphone (please complete the following information):

  • Device: Google Pixel 7 Pro
  • OS: Android 15

Debug log attached
debug-Mon_Jan_6_12_11_12_2025.log

@Effayy Effayy added the bug Something isn't working label Jan 6, 2025
@cagnulein
Copy link
Owner

Can you try this build https://github.com/cagnulein/qdomyos-zwift/actions/runs/12624289815/artifacts/2388242705

Google is very slow in these days, reviewing the app on the store, even the beta ones. For this reason, in order to check right now if the patch that I did is right, you can use the android build in the link (check at the bottom of the page in about 1 hour). In order to test it you need first to remove the current QZ version on your phone, install the one that you downloaded.
This version is a 15 minutes trial (you can restart it as many times as you want) and I can unlock it if you want, send me an email to [email protected] mentioning this ticket and that you are on android.
Let me know if you have any questions

@Effayy
Copy link
Author

Effayy commented Jan 6, 2025

Thanks Roberto. The new build didn't crash and did relay speed / cadence information from bike to the app.

When I press incline or resistance +/- in QZ it doesn't change on the bike, but when I change resistance/incline on the bike it does reflect properly in the app. Is this by design or am I missing something config-wise? Can/will Zwift update those automatically as I ride?

Also, not sure if this is a bug or just a side-effect of it being a trial version, but changing any of the Experimental Features from default (including debug logging) resulted in the app freezing on the "intro" screen (the screen with your disclaimer and troubleshooting items). Required an uninstall/reinstall to access the menu again.

@cagnulein
Copy link
Owner

Thanks Roberto. The new build didn't crash and did relay speed / cadence information from bike to the app.

That's great!

When I press incline or resistance +/- in QZ it doesn't change on the bike, but when I change resistance/incline on the bike it does reflect properly in the app. Is this by design or am I missing something config-wise? Can/will Zwift update those automatically as I ride?

It can be done in first version of ifit I don't know if it's possible anymore. Are you able to connect with adb to the bike?

Also, not sure if this is a bug or just a side-effect of it being a trial version, but changing any of the Experimental Features from default (including debug logging) resulted in the app freezing on the "intro" screen (the screen with your disclaimer and troubleshooting items). Required an uninstall/reinstall to access the menu again.

Are you sure about this? Maybe you are changing something else in the same session?

@Effayy
Copy link
Author

Effayy commented Jan 6, 2025

It can be done in first version of ifit I don't know if it's possible anymore. Are you able to connect with adb to the bike?

Yes I can. I was able to use adb to install the companion as well.

I did a factory reset of my bike yesterday. Before the reset it had updated to what I believe is iFit 2.0. UI was completely different from early last year. After the factory reset it has gone back to looking like 1.x despite the bike telling me it's fully updated. Not sure why this is. At one point I loaded the iFit Admin app and clicked the "Enable iFit 2.0" at the bottom of the screen but it just took me back to what looked like iFit 1.x and said it was up to date.

Also, not sure if this is a bug or just a side-effect of it being a trial version, but changing any of the Experimental Features from default (including debug logging) resulted in the app freezing on the "intro" screen (the screen with your disclaimer and troubleshooting items). Required an uninstall/reinstall to access the menu again.

Are you sure about this? Maybe you are changing something else in the same session?

I'm testing things to try and pinpoint exactly what the behaviour is. Here's an example:

  1. Clear app cache/data.
  2. Load app, say no thanks to the wizard, and immediately update TDF Companion IP in settings
  3. Restart app when prompted

App runs as expected (although bluetooth device line in the UI just says "Connecting..." constantly, but tile values update properly).

  1. Go back into settings, enable Debug Log
  2. Restart app when prompted

When app starts up, it freezes quite a bit. May take abnormally long to get to the tiles screen. When tiles are up it may show a "snapshot" of speed/cadence etc values but they don't update at all despite how fast/slow I pedal. It may update the values after a minute or so, but again like a snapshot, not a consistent real-time series of changes.

The same will occur if I do it the other way around. Enable Debug Log, reload app, update TDF Companion IP.

@cagnulein
Copy link
Owner

cagnulein commented Jan 6, 2025 via email

@Effayy
Copy link
Author

Effayy commented Jan 7, 2025

Ok so it doesn't go into the "intro" mode. Are you able to send me the debug log? With and without changing anything in the experimental settings? I mean the metrics are working fine on the first boot of qz or so you have the same issue? Are you still able to go into adb now for example for getting logs? If so we can force also resistance in this way

I've played around with it more and I can confirm that the build you sent me here is working properly. Unsure why I was having the freezing issues from earlier, but it could be due to turning on debug logging, or some unknown user error on my part.

I also got the +/- buttons working for the incline after turning on the on-screen controls during the manual workout mode. I assume the feature simulates a touch on the screen to manipulate incline/resistance. Unfortunately it wasn't working for the resistance controls. Perhaps the coordinates were off for that one? I tried both "s22i" and "s22i (NTEX02121.5) settings in the QZ companion app. I have the NTEX02121.9 model. Unsure if that would make a difference.

EDIT: Again you can ignore. Seems it will take Incline or resistance into consideration but not both. When I enable the "Use Resistance instead of inc." setting, the buttons in the app properly set my resistance. Leaving the comment here in case someone else has the same question.

@cagnulein
Copy link
Owner

Yes I implemented inclination only because inclination handles directly inclination and resistance both

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants