What's Changed
- build(deps): bump kotlin from 2.0.20 to 2.1.0 by @dependabot in #562
- feat: Special behavior for target stop on combined stop/trip details by @EmmaSimon in #581
- feat(iOS): recenter on vehicle from new stop details by @boringcactus in #580
- feat(android): Dynamic mapbox token by @KaylaBrady in #575
- fix: Move scrolling to encompass entire stop page by @EmmaSimon in #583
- feat: convert iOS translations to Android format by @boringcactus in #585
- fix(Android): internationalize all hardcoded text by @boringcactus in #587
- feat: Update stop details navigation to match spec by @EmmaSimon in #586
- fix: parcel crash, move data/functions to VM by @BrandonTR in #593
- build(deps): bump fastlane from 2.225.0 to 2.226.0 by @dependabot in #591
- Search in Android Nearby Transit by @JackVCurtis in #584
- feat(Android): add basic onboarding UX by @boringcactus in #592
- feat(android.NearbyTransitPage): leave / rejoin vehicles channel after backgrounding by @KaylaBrady in #579
- feat(android): leave / rejoin predictions & alerts after backgrounding by @KaylaBrady in #588
- build(deps): bump androidx.navigation:navigation-compose from 2.8.1 to 2.8.5 by @dependabot in #595
- build(deps): bump dev.mokkery from 2.6.0 to 2.6.1 by @dependabot in #589
- feat: set up Android prod deployments by @boringcactus in #594
- fix(subscribeToPredictions): ensure old data present when merging in new data by @KaylaBrady in #596
- build(deps): bump cyclonedx-cocoapods from 1.4.0 to 1.4.1 by @dependabot in #547
- fix(Android): parse join responses correctly by @boringcactus in #598
- feat(Android): implement no stops nearby state by @boringcactus in #597
- fix(Android): minimize issues when updating map global data by @boringcactus in #600
- fix: allow bolding portions of localized text by @BrandonTR in #602
- refactor(iOS): Move stop details fetching into VM by @EmmaSimon in #599
- testing for fully implemented search components, fix bug in debounce by @JackVCurtis in #603
- feat(Android): animate new page sliding up by @boringcactus in #605
- feat(Android): allow small sheet size by @boringcactus in #604
- build(deps): bump com.google.accompanist:accompanist-permissions from 0.36.0 to 0.37.0 by @dependabot in #611
- 🤖 | Search | Search bar UI by @JackVCurtis in #614
- build(deps): bump ktor from 3.0.2 to 3.0.3 by @dependabot in #610
- feat(accessibility): Android Nearby Transit Talk Back optimizations by @KaylaBrady in #616
- feat(iOS): Combined stop details - display scheduled trips by @EmmaSimon in #601
- feat(Android): filter stop details on headsign tap by @boringcactus in #613
- build(deps): bump skie from 0.9.5 to 0.10.0 by @dependabot in #615
- feat(iOS): Combined stop separated vehicle UI by @EmmaSimon in #606
- build(deps): bump androidx.compose:compose-bom from 2024.11.00 to 2024.12.01 by @dependabot in #608
- feat(accessibility): Talk back descriptions support pluralized vehicle types by @KaylaBrady in #617
- feat(Android): show live data indicator on predictions by @boringcactus in #612
- fix(Android): drop zero frames in release mode by @boringcactus in #607
- feat: Location Services button when permissions denied by @KaylaBrady in #618
- feat(android.StopDetailsFilterPills): optimized screen reader text by @KaylaBrady in #619
- feat(iOS): Combined stop details - Add no prediction states by @EmmaSimon in #620
- refactor: Put no trip statuses into separate class by @EmmaSimon in #626
- feat(Android): hide maps by @boringcactus in #621
- fix: replace Coordinate with Position in NearbyRepository by @boringcactus in #628
- feat(iOS): Stop details cancelled trip card by @EmmaSimon in #627
- build(deps): bump org.cyclonedx:cyclonedx-core-java from 9.0.5 to 10.1.0 by @dependabot in #624
- refactor(Android): move some nearby state into viewmodel by @boringcactus in #629
- Revert "build(deps): bump org.cyclonedx:cyclonedx-core-java from 9.0.5 to 10.1.0" by @EmmaSimon in #632
- feat(Android): error banner by @BrandonTR in #630
- Jvc android search recent stops by @JackVCurtis in #622
- build(deps): bump sentry from 0.9.0 to 0.10.0 by @dependabot in #534
- build(deps): bump io.insert-koin:koin-bom from 3.5.6 to 4.0.1 by @dependabot in #625
- feat(android.NearbyTansitView): Shimmer loading by @KaylaBrady in #631
- fix(Android): make flakiest tests more robust by @boringcactus in #637
- feat(android.StopDetails): Shimmer loading by @KaylaBrady in #634
- fix(Android): Detect offline on app startup by @BrandonTR in #636
- fix(Android): reset nearby transit state on pan/recenter by @boringcactus in #635
- fix(Android): Error banner UI polish by @BrandonTR in #642
- build(deps): bump okio from 3.9.1 to 3.10.2 by @dependabot in #646
- feat(iOS): Combined stop details VoiceOver pass by @EmmaSimon in #639
- fix(android.Sentry): set SENTRY_ENV based on flavor / build type by @KaylaBrady in #648
- fix: Android API requests using ViewModel + LaunchedEffect by @KaylaBrady in #638
- fix(StopDetailsPage): Distinct errorKeys from API requests on NearbyTransitPage by @KaylaBrady in #641
- fix(Android): sheet drag handle padding by @BrandonTR in #647
- fix(Android): Default text color for typography by @EmmaSimon in #649
- feat(analytics): log mode and no_trips in tapped_departure by @boringcactus in #650
- feat: Add elevator accessibility feature toggle by @EmmaSimon in #651
- feat: set up logic for new feature promotion by @boringcactus in #654
- build(deps): bump cyclonedx-cocoapods from 1.4.1 to 2.0.0 by @dependabot in #643
- build(deps): bump org.cyclonedx:cyclonedx-core-java from 9.0.5 to 10.1.0 by @dependabot in #645
- fix(Android): Layer search bar under sheet by @EmmaSimon in #655
- feat(analytics): other iOS GA updates by @boringcactus in #652
- fix?(Android): Placeholder for unassigned colors by @EmmaSimon in #656
- feat(iOS): show major alerts in combined stop+trip details by @boringcactus in #657
- refactor: move analytics abstractions to shared by @boringcactus in #658
- feat(Android): set up Firebase by @boringcactus in #659
- feat(Android): Display elevator alerts by @EmmaSimon in #660
- feat(iOS): UI for secondary and downstream alerts in combined stop details by @EmmaSimon in #662
- build(deps): bump com.eygraber:compose-placeholder-material3 from 1.0.8 to 1.0.9 by @dependabot in #666
- build(deps): bump androidx.compose:compose-bom from 2024.12.01 to 2025.01.00 by @dependabot in #668
- feat: analytics on Android by @boringcactus in #664
- fix(Android): Set more material colors by @EmmaSimon in #670
- refactor(android.NearbyTransitPage): navigation refactor to support trip filter by @KaylaBrady in #653
- fix(Android): Make entire more page rows tappable by @EmmaSimon in #671
- feat: localize feedback form URL if needed by @boringcactus in #640
- feat(Android): Add final prod launcher icons by @EmmaSimon in #674
- feat(iOS): Elevator alerts on nearby & unfiltered by @EmmaSimon in #673
- fix(Android): Staging launcher icons by @EmmaSimon in #676
- feat(Android): show alert details by @boringcactus in #672
- Onboarding ui for android by @JackVCurtis in #669
- fix: tweak direction picker on both iOS and Android by @boringcactus in #678
- feat(StopDetailsPage): Support trip filtering by @KaylaBrady in #663
- fix(iOS): disappearing map layers when switching tabs by @BrandonTR in #679
- feat(android.StopDetailsViewModel): Trip & vehicle data by @KaylaBrady in #675
- feat(iOS): Add elevator alerts to stop page by @EmmaSimon in #677
- chore(iOS): Bump version to 1.1.5 by @EmmaSimon in #680
- test(StopDetailsViewModel): Address remaining flakiness by @KaylaBrady in #682
- fix(Android): Prevent squashed onboarding images by @EmmaSimon in #681
Full Changelog: 1.1.4...ios-1.1.5