There seems to be something not working with OSM, especially for the Roads MapType. In Companion app it seems to work, only showing tile from centre, drag to either side and no tile shows, but with compiled app, tested on 2 devices (A13 & A16) the app starts up showing Roads type one can zoom or drag around, but if one switches to Aerial or Terrain (which seem to be working OK), then back to Roads, Roads is blank (grey hatched background).
(note, I see several Kodular users having similar problems)
None of my OSM app is rendering Roads properly at the moment. Apparently an ORS issue.
Or possibly a Google Play Protect issue ??? Investigating.
Seems ALL my apps that has a Location associated with OSM does not work.
evidently to protect your data, permisions for this app will be removed if the app is unused for a few months.
o restore automatically removed app permissions on Android, first find the specific app's "Info" page by tapping and holding its icon, then select "Permissions" to re-enable them manually. To prevent this from happening in the future, you can disable the "Remove permissions if app is unused" setting for individual apps in their respective permission settings within the device's main settings app.
To manually restore permissions:
Find the app: On your phone's screen, tap and hold the icon of the app whose permissions were revoked.
Go to App Info: A pop-up window will appear; tap the "Info" icon (usually in the top right) to go to the app's information page.
Select Permissions: Tap on the "Permissions" option on the App Info page.
Re-enable permissions: You can now tap on a specific permission to allow or deny it.
To disable the "Remove permissions if app is unused" feature:
Open Settings: Go to your phone's main Settings app.
Navigate to Apps: Tap on the "Apps" (or "Apps & notifications" or "Application Manager") option.
Find the app: Scroll through the list to find the specific app.
Go to Permissions: Tap on the app and then select the "Permissions" option.
Turn off the toggle: Find the toggle for "Remove permissions if app is unused" and turn it off to prevent it from revoking permissions in the future.
Why this happens:
Android introduced the "permission auto-reset feature" in Android 11 to protect user privacy.
It automatically revokes runtime permissions (those that prompt the user for access) for apps that haven't been used for a few months.
I am having the same problems as described above.
An app which was working for years using OSM road type map does not show any map anymore. I can also reproduse the behaviour of your nice little test app: road works first, switch to aerial (any see only a resolved map at higher zoom levels!), switch back to road and get an empty map.
Very strange and very frustrating.
I have tested this in online and offline app inventor, no difference in the build apps.
Is there somebody working on this?
All the work which I did put in programming my app is kind of obsolete now.
@ewpatton@Susan_Lane
Hi everyone,
I’ve been investigating this issue locally and can confirm the behavior described here.
I can consistently reproduce the bug on a locally built MIT AI2 Companion:
Road → Aerial works
Aerial → Road results in a blank/grey map
I traced this to OSMDroid’s tile provider behavior when switching tile sources. The MapType property does update, but switching back to Roads does not reliably reload tiles unless the tile provider state is reset.
I experimented with clearing the tile cache and resetting the tile source in NativeOpenStreetMapController.setMapTypeAbstract, which improves behavior, but Roads still sometimes fail to reload after Aerial.
Questions for maintainers:
Is there an expected or recommended way in App Inventor to fully reset the OSMDroid tile provider when changing MapType?
Would recreating the MapView or its TileProvider on map type changes be acceptable from a performance standpoint?
I’m continuing to test locally and can share a PR once the behavior is fully stable.
I think the issue was mainly introduced when we added support for custom tile layers. My guess is that if you compare the behavior before and after that commit, it should reveal the change that needs to be made to correct the problem.