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

Road and path width should not be enabled by default if AR is not available #4795

Closed
matkoniecz opened this issue Feb 6, 2023 · 1 comment

Comments

@matkoniecz
Copy link
Member

matkoniecz commented Feb 6, 2023

It seems that they have become enabled by default in latest version as part of migrating away measuring app.

I am on a phone without AR support without measure app installed and Google Play not allowing me to install StreetMeasure.

https://github.com/streetcomplete/StreetComplete/blob/master/app/src/main/java/de/westnordost/streetcomplete/quests/width/AddRoadWidth.kt#L57

Is proper check for AR support also a part of binary blob that was unfree and therefore migrated away?

On v51.0-beta1 that was not modified, I have reset quests enablement.

Device info:

Android build version V11.0.5.0.QDLMIXM
Android release version 10
Android SDK version 29
Android build ID QKQ1.191002.002.V11.0.5.0.QDLMIXM
Device brand xiaomi
Device manufacturer Xiaomi
Device name daisy_sprout
Device model Mi A2 Lite
Device product name daisy
Device hardware name qcom
ABIs [arm64-v8a, armeabi-v7a, armeabi]
ABIs (32bit) [armeabi-v7a, armeabi]
ABIs (64bit) [arm64-v8a]
@matkoniecz matkoniecz changed the title Road and path width should not be enabled by default if ARis not available Road and path width should not be enabled by default if AR is not available Feb 6, 2023
@westnordost
Copy link
Member

westnordost commented Feb 6, 2023

Is proper check for AR support also a part of binary blob that was unfree and therefore migrated away?

Correct. Without that, some checks can be made like for the min Android version, the min supported OpenGL ES version, but whether that specific device is supported can only be found through asking that library. There is no public API or downloadable CSV available of the devices that are supported, see https://developers.google.com/ar/devices

What is possible is to download a snapshot of that CSV in the google play console and e.g. bundle that CSV (or in a processed form) into the app. However, the clear disadvantage is that this CSV would need to be updated all the time because new devices are added to the list all the time (because new devices are built all the time). This means, that new devices will not work for that until StreetComplete is updated with the new list.

IMO this adds too much non-automatable churn to the app maintenance. Otherwise, the best solution would be to create a tiny (PHP based) API (or simple text file) which would just return a list of supported devices, update that regularly and from the app, download that file once or every once in a time. Maybe that downloading of the CSV is automatable in the same way as getting all the contributors from POEditor is automatable (by scraping the HTML), but this is surely even more effort. (Or alternatively reverse-engineering/decompiling that ARCore library to see what URL that lib calls - but if that code is not in the "pro forma" "open source" licensed code but in the native code, it would even be illegal)

Hence. Maybe theoretically doable in a way that has no caveats, but then too much effort to work on it. Anyone else is free to try this.

@westnordost westnordost closed this as not planned Won't fix, can't repro, duplicate, stale Feb 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants