Phase 5 — Services: maps + media + firebase + core cleanup (0.0.12-alpha01)
Summary
Lands Phase 5 of the v1.0 launch. Covers maps, media, firebase Service modules plus pre-Phase-6 core serialization cleanups. Closes the scope-leak trifecta and retires the last opt-in marker.
Version bump: 0.0.11-alpha01 → 0.0.12-alpha01.
ADRs
-
ADR-018:
SwitchingMapProvidercaller-ownedCoroutineScope; scope-leak trifecta closed (final of ADR-011 + ADR-013 + ADR-018). -
ADR-019:
YallaGallerycommon surface narrowed to PHPicker-equivalent; Paging3 grid Android-only.
Breaking
-
SwitchingMapProvider+SwitchingMapControllerconstructors now requirescope: CoroutineScope.MapDependenciesexposes it for Koin wiring. -
YallaGallerycommon signature narrowed. Rich Paging3 grid moved to new Android-onlyYallaGalleryPagingGrid. -
@ExperimentalYallaGalleryApimarker class removed entirely. -
LocationsLayer(arrival, duration, …)params dropped from both Google + Libre provider packages. -
OrderStatus+PaymentKindnow@Serializable(with=…)with customKSerializers — preserves string-ID wire contract. -
PointKindgainsCompanion.from(wireValue)+ custom serializer withPOINTfallback for unknown wire values.
Additive
-
maps.api.overlay.RouteOverlayConfig/LocationsOverlayConfig/LocationIndicatorConfigdata classes (shared overlay contract). -
MapControllerfake-provider test coverage (37 test cases). -
firebaseinit guard + pre-init lazy-property guards + behavioral tests. - Media: per-instance CameraX executor;
calculateInSampleSize+GalleryPickerStatetests. - Serialization round-trip tests for
OrderStatus,PaymentKind,PointKind.
Lockstep
YallaClient PR chore/sdk-phase5-services → dev (link to follow).
Pre-1.0 mode
Full-risk: no @Deprecated, no @RequiresOptIn. Direct break.