rememberRenderableLayers

Turns the visible map layers into what MapLibre can actually fetch.

GeoJSON and Site Planner coverage estimates pass straight through. KML and KMZ are converted once into a GeoJSON file in the cache and handed over as that file's URI — MapLibre has no KML source, and before this existed those imports appeared in the layers sheet, could be toggled on, and drew nothing at all.

Common code because both MapLibre hosts need it: the F-Droid map and the desktop map render the same imported layers. Reading goes through MapLayersManager.readLayerBytes, which also covers network layers — the old Android-only version opened them through a ContentResolver, which cannot open http, so a network KML layer silently drew nothing.

Conversion is keyed by layer id and refresh token, so a refresh reconverts and a visibility toggle does not. The result is cached in memory for the session, and the file it writes is reused across sessions — an existing file for a given id-and-token cannot be stale, because a refresh changes the token and so changes the filename.