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

QR Code scanning not working on Volla OS #364

Open
mattyg opened this issue Dec 25, 2024 · 9 comments
Open

QR Code scanning not working on Volla OS #364

mattyg opened this issue Dec 25, 2024 · 9 comments

Comments

@mattyg
Copy link
Collaborator

mattyg commented Dec 25, 2024

QR Code scanning works fine on standard android devices, but it does not seem to be working on Volla OS.

The QR scanner opens, shows the scanning UI properly, but when pointing it at a QR code, it never completes the scan. On a standard android device, when a QR code is visible in the frame the scan completes automatically.

I've reproduced this on:

  • Volla Phone Quintus, Volla OS 14-20240907-STABLE-algiz, with all MicroG features enabled, using Volla Messages 0.7.3
  • Volla Phone Quintus, Volla OS 14-20240907-STABLE-algiz, with all MicroG features enabled, using Volla Messages 0.7.1
  • Volla Phone 22, Volla OS 13-20240503-STABLE-mimameid, with all MicroG features enabled, using Volla Messages 0.7.3

My understanding is the tauri-plugin-barcode-scanner requires a library to scan qr codes that it downloads and installs at runtime. It seems like the Volla OS does not support the android api used to do this ModuleInstall.API

Here is the relevant issue in tauri-plugin-barcode-scanner: tauri-apps/plugins-workspace#836

@mattyg mattyg added the bug Something isn't working label Dec 25, 2024
@mattyg
Copy link
Collaborator Author

mattyg commented Dec 25, 2024

relevant android logs:

12-26 06:21:40.142 16163 23969 W DynamiteModule: Local module descriptor class for com.google.mlkit.dynamite.barcode not found.
12-26 06:21:40.146  4279 22308 D GmsDummySvc: bound by: GetServiceRequest{serviceId=UNKNOWN(308), gmsVersion=12451000, packageName='com.volla.messages', extras=Bundle[{}]}
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: Failed to check feature availability
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: com.google.android.gms.common.api.ApiException: 17: API: ModuleInstall.API is not available on this device. Connection failed with: ConnectionResult{statusCode=CANCELED, resolution=null, message=null}
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.1.0:3)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.ApiExceptionMapper.getException(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zag.zad(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.zaE(com.google.android.gms:play-services-base@@18.1.0:7)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.zaD(com.google.android.gms:play-services-base@@18.1.0:2)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.zar(com.google.android.gms:play-services-base@@18.1.0:24)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.onConnectionFailed(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zai.onConnectionFailed(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zzf.zzb(com.google.android.gms:play-services-basement@@18.1.0:2)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zza.zza(com.google.android.gms:play-services-basement@@18.1.0:3)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zzc.zze(com.google.android.gms:play-services-basement@@18.1.0:3)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zzb.handleMessage(com.google.android.gms:play-services-basement@@18.1.0:31)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at android.os.Handler.dispatchMessage(Handler.java:107)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at android.os.Looper.loopOnce(Looper.java:232)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at android.os.Looper.loop(Looper.java:317)
12-26 06:21:40.150 16163 16163 E OptionalModuleUtils: 	at android.os.HandlerThread.run(HandlerThread.java:85)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: Failed to complete the task of features availability check
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: java.util.concurrent.ExecutionException: com.google.android.gms.common.api.ApiException: 17: API: ModuleInstall.API is not available on this device. Connection failed with: ConnectionResult{statusCode=CANCELED, resolution=null, message=null}
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.tasks.Tasks.zza(com.google.android.gms:play-services-tasks@@18.0.2:5)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.tasks.Tasks.await(com.google.android.gms:play-services-tasks@@18.0.2:8)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.OptionalModuleUtils.areAllRequiredModulesAvailable(com.google.mlkit:common@@18.5.0:9)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.OptionalModuleUtils.areAllRequiredModulesAvailable(com.google.mlkit:common@@18.5.0:3)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.vision.barcode.internal.zzl.zzc(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.1.0:6)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.vision.barcode.internal.zzi.load(com.google.android.gms:play-services-mlkit-barcode-scanning@@18.1.0:1)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.ModelResource.zza(com.google.mlkit:common@@18.5.0:4)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.zzn.run(Unknown Source:10)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.zzt.run(com.google.mlkit:common@@18.5.0:2)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zze(com.google.mlkit:common@@18.5.0:4)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzc(com.google.mlkit:common@@18.5.0:1)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.zzk.run(Unknown Source:2)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.MlKitThreadPool.zzd(com.google.mlkit:common@@18.5.0:2)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.mlkit.common.sdkinternal.zzi.run(Unknown Source:2)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at java.lang.Thread.run(Thread.java:1012)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: Caused by: com.google.android.gms.common.api.ApiException: 17: API: ModuleInstall.API is not available on this device. Connection failed with: ConnectionResult{statusCode=CANCELED, resolution=null, message=null}
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.1.0:3)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.ApiExceptionMapper.getException(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zag.zad(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.zaE(com.google.android.gms:play-services-base@@18.1.0:7)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.zaD(com.google.android.gms:play-services-base@@18.1.0:2)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.zar(com.google.android.gms:play-services-base@@18.1.0:24)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.api.internal.zabq.onConnectionFailed(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zai.onConnectionFailed(com.google.android.gms:play-services-base@@18.1.0:1)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zzf.zzb(com.google.android.gms:play-services-basement@@18.1.0:2)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zza.zza(com.google.android.gms:play-services-basement@@18.1.0:3)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zzc.zze(com.google.android.gms:play-services-basement@@18.1.0:3)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at com.google.android.gms.common.internal.zzb.handleMessage(com.google.android.gms:play-services-basement@@18.1.0:31)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at android.os.Handler.dispatchMessage(Handler.java:107)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at android.os.Looper.loopOnce(Looper.java:232)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at android.os.Looper.loop(Looper.java:317)
12-26 06:21:40.151 16163 23969 E OptionalModuleUtils: 	at android.os.HandlerThread.run(HandlerThread.java:85)
12-26 06:21:40.152 16163 16163 E Tauri   : Waiting for the barcode module to be downloaded. Please wait.

@mattyg mattyg moved this to Backlog in Volla Messages Dec 25, 2024
@MasterK0927
Copy link
Collaborator

MasterK0927 commented Dec 26, 2024

Volla OS doesn’t include Google Play Services by default, which might cause some issues related to native APIs required by Tauri. You can use MicroG to mimic Google Play Services. However, I’ve tested it on my Volla Phone 22 with Volla OS 14 and Volla Messages v0.7.1, and it works fine. Could you confirm your Volla OS version? Also mention if it was observed with MicroG activated or not.

@mattyg
Copy link
Collaborator Author

mattyg commented Dec 27, 2024

thanks, updated the description to note the volla phone and OS, and describe the issue more clearly

@MasterK0927
Copy link
Collaborator

I’m wondering if the changes introduced in v0.7.3 might have caused the issue, as it’s working fine on v0.7.1 on a device running Volla OS.

Should I forward this to our Beta Channel testers to check if it’s reproducible in older versions?

@mattyg
Copy link
Collaborator Author

mattyg commented Dec 27, 2024

I just reproduced the issue on 0.7.1 as well. Can you please confirm that you're actually able to successfully scan a QR code? I.e. pointing the phone at an actual QR code causes the scanner UI to close and the value to be filed in to the "Contact Code" field

@MasterK0927
Copy link
Collaborator

I had shared you the working Screen recording in signal

@MasterK0927
Copy link
Collaborator

MasterK0927 commented Dec 28, 2024

Some more points to add in this issue!

  • Is the systemwide camera access enabled? (As in VOS we have an option for disabling system wide camera access)
  • Is camera activated (used) before using it for QR scanning in Volla Messages app and permissions are granted?

@mattyg
Copy link
Collaborator Author

mattyg commented Dec 30, 2024

I had shared you the working Screen recording in signal

Yes, thank you -- would be good to upload to this ticket as well! It seems the issue is inconsistent so I think best to mark the ticket as "needs reproduction" and wait to see if we get more user reports before deciding if its worth investing more time into debugging it.

Is the systemwide camera access enabled? (As in VOS we have an option for disabling system wide camera access)

Yes, and the camera works in the QR code scanning

Is camera activated (used) before using it for QR scanning in Volla Messages app and permissions are granted?

Yes permissions are granted, and the camera works when QR code scanning. It just never successfully scans the code

@MasterK0927
Copy link
Collaborator

5_6302969561780065805.mp4

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Backlog
Development

No branches or pull requests

2 participants