Filter inFocus cleanup & POI status validity (& useful)#166
Conversation
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request refactors the status tracking logic by replacing the negative boolean "noData" (and "isNoData()") with a positive boolean "hasData" (and "hasData()") across "POIStatus", "Schedule", and various transit providers. Additionally, "usefulUntilInMs" in "Schedule" has been renamed to "timestampsUntilInMs" along with its associated helper methods, and the unused "areUseful()" function in "ServiceUpdates" was removed. There are no review comments, so I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
inFocus cleanup & POI status validity (& useful)
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request refactors the status provider system by replacing the 'noData' boolean flag with a more intuitive 'hasData' flag across several data classes and providers. It also centralizes status validity and refresh duration constants in 'StatusProviderContract' and updates various providers to use these defaults. A critical infinite recursion issue was identified in 'GTFSRealTimeTripUpdatesProvider.kt' where overridden methods were calling each other, which requires immediate attention.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
There was a problem hiding this comment.
Code Review
This pull request refactors status, news, and vehicle location validity and refresh duration constants across various providers by centralizing default values in their respective contract interfaces using Kotlin's Duration API. It also inverts the "noData" boolean flag to "hasData" in POIStatus and its subclasses, and marks deprecated APIs in StmInfoApiProvider with the @Discouraged annotation. A copy-paste error was identified in GTFSRealTimeProvider.java where GTFSRealTimeTripUpdatesProvider was incorrectly used instead of GTFSRealTimeVehiclePositionsProvider for vehicle location refresh durations.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
…meProvider.java Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
This PR refactors cache validity/refresh behavior across multiple provider contracts (status/news/service-updates/vehicle-locations/POI) by centralizing defaults (using kotlin.time.Duration) and aligning “in focus” refresh logic, while also clarifying “no data” semantics by renaming noData → hasData and tightening schedule “useful” calculations.
Changes:
- Introduces default cache/refresh constants + default method implementations in provider contracts (Status/News/ServiceUpdate/VehicleLocation/POI) and updates providers to rely on
superdefaults (with provider-specific multipliers where needed). - Renames and propagates status refresh API (
getMinDurationBetweenRefreshInMs→getMinDurationBetweenStatusRefreshInMs) and updates cache-handling logic inStatusProvider. - Reworks Schedule/POIStatus semantics:
noData→hasData, “useful until” → “timestamps until”, and updates call sites/tests accordingly.
Reviewed changes
Copilot reviewed 36 out of 36 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/org/mtransit/android/commons/provider/status/GTFSRealTimeTripUpdatesProviderTests.kt | Updates schedule construction in tests to use makeSchedule() and new hasData semantics. |
| src/main/java/org/mtransit/android/commons/provider/YouTubeNewsProvider.kt | Switches to contract defaults via super and applies long-term refresh multipliers. |
| src/main/java/org/mtransit/android/commons/provider/WinnipegTransitProvider.java | Aligns status refresh method naming and updates schedule hasData flag usage. |
| src/main/java/org/mtransit/android/commons/provider/vehiclelocations/VehicleLocationProviderContract.kt | Adds default vehicle-location validity/refresh behavior using kotlin.time. |
| src/main/java/org/mtransit/android/commons/provider/vehiclelocations/NextBusVehicleLocationsProvider.kt | Removes duplicated vehicle-location constants in favor of contract defaults. |
| src/main/java/org/mtransit/android/commons/provider/vehiclelocations/GTFSRealTimeVehiclePositionsProvider.kt | Removes duplicated constants and exposes adaptForCachedAPI utility. |
| src/main/java/org/mtransit/android/commons/provider/TwitterNewsProvider.kt | Switches to contract defaults via super with API-rate-limit-aware scaling and minimums. |
| src/main/java/org/mtransit/android/commons/provider/StmInfoApiProvider.java | Marks legacy status/service-update paths as discouraged and splits old/new service update cache paths. |
| src/main/java/org/mtransit/android/commons/provider/status/StatusProviderContract.kt | Introduces default status validity/refresh values and renames refresh method. |
| src/main/java/org/mtransit/android/commons/provider/status/StatusProvider.java | Updates cache invalidation/deletion logic to use hasData() and new refresh method name. |
| src/main/java/org/mtransit/android/commons/provider/status/GTFSRealTimeTripUpdatesProvider.kt | Uses provider contract status validity defaults (with cached-API adaptation) and updates hasData usage. |
| src/main/java/org/mtransit/android/commons/provider/serviceupdate/ServiceUpdateProviderContract.kt | Adds default service-update validity/refresh values using kotlin.time. |
| src/main/java/org/mtransit/android/commons/provider/RTCQuebecProvider.java | Removes provider-specific cache constants and updates schedule hasData usage/formatting. |
| src/main/java/org/mtransit/android/commons/provider/RSSNewsProvider.java | Removes duplicated news cache constants in favor of contract defaults. |
| src/main/java/org/mtransit/android/commons/provider/ReginaTransitProvider.java | Removes provider-specific status cache constants and updates schedule hasData usage. |
| src/main/java/org/mtransit/android/commons/provider/poi/POIProviderContract.kt | Adds default POI validity/max-validity values. |
| src/main/java/org/mtransit/android/commons/provider/poi/POIProvider.java | Makes POIProvider abstract and relies on POI contract defaults. |
| src/main/java/org/mtransit/android/commons/provider/OneBusAwayProvider.java | Removes provider-specific status cache constants and updates schedule hasData usage. |
| src/main/java/org/mtransit/android/commons/provider/NextBusProvider.java | Removes duplicated status/service-update/vehicle-location cache overrides; updates schedule hasData usage. |
| src/main/java/org/mtransit/android/commons/provider/news/NewsProviderContract.kt | Adds default news validity/refresh values using kotlin.time. |
| src/main/java/org/mtransit/android/commons/provider/InstagramNewsProvider.kt | Removes duplicated news cache overrides in favor of contract defaults. |
| src/main/java/org/mtransit/android/commons/provider/GTFSRealTimeProvider.java | Updates status + vehicle-location cache methods to use contract defaults with cached-API adaptation. |
| src/main/java/org/mtransit/android/commons/provider/GTFSProvider.java | Renames status refresh method override; removes POI max-validity override. |
| src/main/java/org/mtransit/android/commons/provider/gtfs/GTFSStatusProvider.java | Updates schedule creation to use hasData=true. |
| src/main/java/org/mtransit/android/commons/provider/gtfs/GTFSPOIProvider.java | Updates POI validity implementation (note: see review comment). |
| src/main/java/org/mtransit/android/commons/provider/common/ProviderContract.kt | Migrates MAX_CACHE_VALIDITY_MS to kotlin.time duration. |
| src/main/java/org/mtransit/android/commons/provider/CleverDevicesProvider.java | Removes provider-specific status cache constants and updates schedule hasData usage. |
| src/main/java/org/mtransit/android/commons/provider/ca/info/stm/StmInfoServiceUpdateProvider.kt | Removes duplicated service-update cache constants in favor of contract defaults. |
| src/main/java/org/mtransit/android/commons/provider/bike/BikeStationProvider.java | Removes provider-specific POI/status cache constants in favor of contract defaults. |
| src/main/java/org/mtransit/android/commons/data/ServiceUpdates.kt | Removes unused areUseful() helper. |
| src/main/java/org/mtransit/android/commons/data/ScheduleExt.kt | Renames noData → hasData plumbing and updates schedule log formatting for “timestamps until”. |
| src/main/java/org/mtransit/android/commons/data/Schedule.java | Renames/adjusts “useful until” computation to “timestamps until” and adopts hasData. |
| src/main/java/org/mtransit/android/commons/data/POIStatus.java | Renames noData → hasData, updates cursor extras behavior, and flips JSON flag logic accordingly. |
| src/main/java/org/mtransit/android/commons/data/BikeStationAvailabilityPercent.java | Updates POIStatus construction to pass hasData=true. |
| src/main/java/org/mtransit/android/commons/data/AvailabilityPercent.java | Updates POIStatus construction + constructor parameter naming to hasData. |
| src/main/java/org/mtransit/android/commons/data/AppStatus.java | Updates POIStatus construction + constructor parameter naming to hasData. |
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request refactors the status, news, and vehicle location providers by centralizing validity and refresh duration constants and methods into their respective contracts (such as NewsProviderContract, POIProviderContract, ServiceUpdateProviderContract, StatusProviderContract, and VehicleLocationProviderContract) using interface default implementations. This allows for the removal of redundant, provider-specific constants and overrides. Additionally, the boolean flag 'noData' has been inverted and renamed to 'hasData' across status classes, and 'usefulUntilInMs' in Schedule has been renamed to 'timestampsUntilInMs'. Old APIs in StmInfoApiProvider have also been marked as @Discouraged in favor of GTFS-RT Trip Updates. As there are no review comments, I have no feedback to provide.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
…status `validity` (& `useful`) mtransitapps/commons-android#166
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
…parser': - commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons: Update README Twitter link to x.com - commons: Build(deps): Bump androidx.sqlite:sqlite-ktx from 2.6.2 to 2.7.0 in the androidx group across 1 directory mtransitapps/commons#799 - commons: Build(deps): Bump gradle-wrapper from 9.6.0 to 9.6.1 in /shared mtransitapps/commons#803 - commons: Build(deps): Bump com.gradle.develocity from 4.4.3 to 4.5.0 in /shared mtransitapps/commons#802 - commons: Build(deps): Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0 in the gms group across 1 directory mtransitapps/commons#800 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#801 - commons: Build(deps): Bump mtransitapps/gh-actions from 1.2.1 to 1.3.0 in /shared-overwrite/.github/workflows mtransitapps/commons#798 - commons: Download & prepare GTFS > better error handling mtransitapps/commons#797 - commons: Update workflow paths for mt-store-listing-push - commons: Generated Store listing full/short desc > compat w/ NextBus - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-android: Code cleanup from other PR mtransitapps/commons-android#165 - commons-java: cleanup - commons-java: Support for custom LC UC words min
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
…parser': - commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons: Update README Twitter link to x.com - commons: Build(deps): Bump androidx.sqlite:sqlite-ktx from 2.6.2 to 2.7.0 in the androidx group across 1 directory mtransitapps/commons#799 - commons: Build(deps): Bump gradle-wrapper from 9.6.0 to 9.6.1 in /shared mtransitapps/commons#803 - commons: Build(deps): Bump com.gradle.develocity from 4.4.3 to 4.5.0 in /shared mtransitapps/commons#802 - commons: Build(deps): Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0 in the gms group across 1 directory mtransitapps/commons#800 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#801 - commons: Build(deps): Bump mtransitapps/gh-actions from 1.2.1 to 1.3.0 in /shared-overwrite/.github/workflows mtransitapps/commons#798 - commons: Download & prepare GTFS > better error handling mtransitapps/commons#797 - commons: Update workflow paths for mt-store-listing-push - commons: Generated Store listing full/short desc > compat w/ NextBus - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-android: Code cleanup from other PR mtransitapps/commons-android#165 - commons-java: cleanup - commons-java: Support for custom LC UC words min
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
…parser': - commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons: Update README Twitter link to x.com - commons: Build(deps): Bump androidx.sqlite:sqlite-ktx from 2.6.2 to 2.7.0 in the androidx group across 1 directory mtransitapps/commons#799 - commons: Build(deps): Bump gradle-wrapper from 9.6.0 to 9.6.1 in /shared mtransitapps/commons#803 - commons: Build(deps): Bump com.gradle.develocity from 4.4.3 to 4.5.0 in /shared mtransitapps/commons#802 - commons: Build(deps): Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0 in the gms group across 1 directory mtransitapps/commons#800 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#801 - commons: Build(deps): Bump mtransitapps/gh-actions from 1.2.1 to 1.3.0 in /shared-overwrite/.github/workflows mtransitapps/commons#798 - commons: Download & prepare GTFS > better error handling mtransitapps/commons#797 - commons: Update workflow paths for mt-store-listing-push - commons: Generated Store listing full/short desc > compat w/ NextBus - commons: Fix "archive" script > compat with space in headers "service_id, monday, ..." mtransitapps/commons#796 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#794 - commons: Build(deps): Bump gradle-wrapper from 9.5.1 to 9.6.0 in /shared mtransitapps/commons#795 - commons: Build(deps): Bump the gh-actions group across 2 directories with 1 update mtransitapps/commons#793 - commons: Build(deps): Bump com.android.billingclient:billing-ktx from 9.0.0 to 9.1.0 in the play group across 1 directory mtransitapps/commons#792 - commons: Build(deps): Bump the androidx group across 1 directory with 4 updates mtransitapps/commons#786 - commons: Add lint custom rules URLs in TOML - commons: Android 17 initial support: compile with SDK `37` & build tools `37.0.0` mtransitapps/commons#791 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.1.1 to 1.2.1 mtransitapps/commons#789 - commons: fix featured graphic cities max length with "…" - commons: Build(deps): Bump the gms group across 1 directory with 2 updates mtransitapps/commons#787 - commons: Build(deps): Bump com.google.gms.google-services from 4.4.4 to 4.5.0 mtransitapps/commons#788 - commons: Build(deps): Bump com.gradle.develocity from 4.4.2 to 4.4.3 in /shared mtransitapps/commons#790 - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` mtransitapps/commons#785 - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` (part 2) - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` mtransitapps/commons#783 mtransitapps/commons#784 - commons: CI: `mt-sync-code-data.yml` > allow commit code change on PRs mtransitapps/commons#782 - commons: Only skip mt-download-data on PR when archive exists mtransitapps/commons#781 - commons: Build(deps): Bump com.google.firebase:firebase-bom from 34.14.0 to 34.14.1 in the gms group across 1 directory mtransitapps/commons#780 - commons: Required changes for templates mtransitapps/commons#779 - commons: Generated featured graphic > agency name max length 15->14 - commons: Auto-delete `art/hi-res-app-icon-clear.png` mtransitapps/commons#777 - commons: Make `mt-image-gen` fail on direct push errors and drive PR flow via explicit step outputs mtransitapps/commons#771 - commons: Delete old `.gitignore` mtransitapps/commons#776 - commons: Build(deps): Bump com.google.firebase:firebase-bom from 34.13.0 to 34.14.0 in the gms group across 1 directory mtransitapps/commons#773 - commons: Build(deps): Bump org.sonarqube from 7.3.0.8198 to 7.3.1.8318 mtransitapps/commons#775 - commons: Support dash-aware agency name splitting in featured graphic generator mtransitapps/commons#770 - commons: Consolidate shared MT.gitignore rules into shared-overwrite root template mtransitapps/commons#768 - commons: Generate Store listing full desc: remove end of line space - commons: Exclude Markdown files from Android resources packaging mtransitapps/commons#765 - commons: Generated Store listing full description w/o source URL mtransitapps/commons#763 - commons: Build(deps): Bump com.gradle.develocity from 4.4.1 to 4.4.2 in /shared mtransitapps/commons#762 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.1.0 to 1.1.1 mtransitapps/commons#761 - commons: Build(deps): Bump com.google.android.gms:play-services-ads from 25.2.0 to 25.3.0 in the gms group across 1 directory mtransitapps/commons#760 - commons: Build(deps): Bump com.google.devtools.ksp from 2.3.8 to 2.3.9 in the kotlin-ksp-compose group across 1 directory mtransitapps/commons#759 - commons: Merge branch 'master' of github.com:mtransitapps/commons - commons: Add promote from internal draft to internal - commons: CI: `mt-store-listing-push.sh` & `mt-image-gen.yml` > allow in PR (setup) mtransitapps/commons#757 - commons: Add publish to internal draft - commons: Delete `shared-overwrite/.travis.yml` mtransitapps/commons#756 - commons: Remove usused `StmInfoSubwayProvider` mtransitapps/commons#755 - commons: Generate action-specific store-channel commit messages and PR titles mtransitapps/commons#754 - commons: Build(deps): Bump com.android.billingclient:billing-ktx from 8.3.0 to 9.0.0 in the play group across 1 directory mtransitapps/commons#751 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.0.1 to 1.1.0 mtransitapps/commons#753 - commons: Build(deps): Bump com.google.ads.mediation:vungle from 7.7.3.0 to 7.7.4.0 in the ads group across 1 directory mtransitapps/commons#752 - commons: Add `kotlinx-datetime` mtransitapps/commons#750 - commons: CI > MT check data outdated > daily at 7am UTC mtransitapps/commons#749 - commons: Generated files > XML compat w/ '&' mtransitapps/commons#748 - commons: Add support for Store `internal` track mtransitapps/commons#746 - commons: Make generated README store CTA conditional on release channel config mtransitapps/commons#747 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-android: Code cleanup from other PR mtransitapps/commons-android#165 - commons-android: `ProviderContract.Filter` > shared filter params mtransitapps/commons-android#164 - commons-android: `ServiceUpdates` mtransitapps/commons-android#162 - commons-android: Fix spread operator usage in getText function mtransitapps/commons-android#163 - commons-android: Add AndroidX Fragment dependency (GPS basement+Play AppUpdate) mtransitapps/commons-android#160 - commons-android: Update SSL cert mtransitapps/commons-android#159 - commons-android: Generated featured graphic > agency name max length 15->14 - commons-android: GTFS-RT providers > handle interrupted I/O exceptions mtransitapps/commons-android#157 - commons-android: GTFS-RT Trip Updates > filter NOT useful before matching... mtransitapps/commons-android#156 - commons-android: Play Store URLs tracking mtransitapps/commons-android#154 - commons-android: Module redirect activiyt > getText/getString/HtmlUtil.fromHtml()... - commons-android: Context/Resource KTX for text/quantity w/ args & HtmlUtils.fromHtmlLegacy() - commons-android: Add `Resources.getQuantityText()` w/ format args KT ext - commons-android: RSS news provider > Ignore `<--` comments `-->` in description mtransitapps/commons-android#153 - commons-android: Remove usused `StmInfoSubwayProvider` mtransitapps/commons-android#151 - commons-android: comments - commons-android: Fix STM subway priority warning, not info [FR] - commons-android: cleanup - commons-android: delete unused class - commons-android: Refactor Google Play Store URI constants and logic mtransitapps/commons-android#150 - commons-android: cleanup - commons-android: Fix URL for Play Store Inline install link mtransitapps/commons-android#149 - commons-android: Fix dp/px mess mtransitapps/commons-android#148 - commons-android: comments++ - commons-android: Module featured graphic gen > escape '&' - commons-java: cleanup - commons-java: Support for custom LC UC words min
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons: Update README Twitter link to x.com - commons: Build(deps): Bump androidx.sqlite:sqlite-ktx from 2.6.2 to 2.7.0 in the androidx group across 1 directory mtransitapps/commons#799 - commons: Build(deps): Bump gradle-wrapper from 9.6.0 to 9.6.1 in /shared mtransitapps/commons#803 - commons: Build(deps): Bump com.gradle.develocity from 4.4.3 to 4.5.0 in /shared mtransitapps/commons#802 - commons: Build(deps): Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0 in the gms group across 1 directory mtransitapps/commons#800 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#801 - commons: Build(deps): Bump mtransitapps/gh-actions from 1.2.1 to 1.3.0 in /shared-overwrite/.github/workflows mtransitapps/commons#798 - commons: Download & prepare GTFS > better error handling mtransitapps/commons#797 - commons: Update workflow paths for mt-store-listing-push - commons: Generated Store listing full/short desc > compat w/ NextBus - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-android: Code cleanup from other PR mtransitapps/commons-android#165 - commons-java: cleanup - commons-java: Support for custom LC UC words min
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
…parser': - commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons: Update README Twitter link to x.com - commons: Build(deps): Bump androidx.sqlite:sqlite-ktx from 2.6.2 to 2.7.0 in the androidx group across 1 directory mtransitapps/commons#799 - commons: Build(deps): Bump gradle-wrapper from 9.6.0 to 9.6.1 in /shared mtransitapps/commons#803 - commons: Build(deps): Bump com.gradle.develocity from 4.4.3 to 4.5.0 in /shared mtransitapps/commons#802 - commons: Build(deps): Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0 in the gms group across 1 directory mtransitapps/commons#800 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#801 - commons: Build(deps): Bump mtransitapps/gh-actions from 1.2.1 to 1.3.0 in /shared-overwrite/.github/workflows mtransitapps/commons#798 - commons: Download & prepare GTFS > better error handling mtransitapps/commons#797 - commons: Update workflow paths for mt-store-listing-push - commons: Generated Store listing full/short desc > compat w/ NextBus - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-android: Code cleanup from other PR mtransitapps/commons-android#165 - commons-java: cleanup - commons-java: Support for custom LC UC words min
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
…parser': - commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons: Update README Twitter link to x.com - commons: Build(deps): Bump androidx.sqlite:sqlite-ktx from 2.6.2 to 2.7.0 in the androidx group across 1 directory mtransitapps/commons#799 - commons: Build(deps): Bump gradle-wrapper from 9.6.0 to 9.6.1 in /shared mtransitapps/commons#803 - commons: Build(deps): Bump com.gradle.develocity from 4.4.3 to 4.5.0 in /shared mtransitapps/commons#802 - commons: Build(deps): Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0 in the gms group across 1 directory mtransitapps/commons#800 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#801 - commons: Build(deps): Bump mtransitapps/gh-actions from 1.2.1 to 1.3.0 in /shared-overwrite/.github/workflows mtransitapps/commons#798 - commons: Download & prepare GTFS > better error handling mtransitapps/commons#797 - commons: Update workflow paths for mt-store-listing-push - commons: Generated Store listing full/short desc > compat w/ NextBus - commons: Fix "archive" script > compat with space in headers "service_id, monday, ..." mtransitapps/commons#796 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#794 - commons: Build(deps): Bump gradle-wrapper from 9.5.1 to 9.6.0 in /shared mtransitapps/commons#795 - commons: Build(deps): Bump the gh-actions group across 2 directories with 1 update mtransitapps/commons#793 - commons: Build(deps): Bump com.android.billingclient:billing-ktx from 9.0.0 to 9.1.0 in the play group across 1 directory mtransitapps/commons#792 - commons: Build(deps): Bump the androidx group across 1 directory with 4 updates mtransitapps/commons#786 - commons: Add lint custom rules URLs in TOML - commons: Android 17 initial support: compile with SDK `37` & build tools `37.0.0` mtransitapps/commons#791 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.1.1 to 1.2.1 mtransitapps/commons#789 - commons: fix featured graphic cities max length with "…" - commons: Build(deps): Bump the gms group across 1 directory with 2 updates mtransitapps/commons#787 - commons: Build(deps): Bump com.google.gms.google-services from 4.4.4 to 4.5.0 mtransitapps/commons#788 - commons: Build(deps): Bump com.gradle.develocity from 4.4.2 to 4.4.3 in /shared mtransitapps/commons#790 - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` mtransitapps/commons#785 - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` (part 2) - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` mtransitapps/commons#783 mtransitapps/commons#784 - commons: CI: `mt-sync-code-data.yml` > allow commit code change on PRs mtransitapps/commons#782 - commons: Only skip mt-download-data on PR when archive exists mtransitapps/commons#781 - commons: Build(deps): Bump com.google.firebase:firebase-bom from 34.14.0 to 34.14.1 in the gms group across 1 directory mtransitapps/commons#780 - commons: Required changes for templates mtransitapps/commons#779 - commons: Generated featured graphic > agency name max length 15->14 - commons: Auto-delete `art/hi-res-app-icon-clear.png` mtransitapps/commons#777 - commons: Make `mt-image-gen` fail on direct push errors and drive PR flow via explicit step outputs mtransitapps/commons#771 - commons: Delete old `.gitignore` mtransitapps/commons#776 - commons: Build(deps): Bump com.google.firebase:firebase-bom from 34.13.0 to 34.14.0 in the gms group across 1 directory mtransitapps/commons#773 - commons: Build(deps): Bump org.sonarqube from 7.3.0.8198 to 7.3.1.8318 mtransitapps/commons#775 - commons: Support dash-aware agency name splitting in featured graphic generator mtransitapps/commons#770 - commons: Consolidate shared MT.gitignore rules into shared-overwrite root template mtransitapps/commons#768 - commons: Generate Store listing full desc: remove end of line space - commons: Exclude Markdown files from Android resources packaging mtransitapps/commons#765 - commons: Generated Store listing full description w/o source URL mtransitapps/commons#763 - commons: Build(deps): Bump com.gradle.develocity from 4.4.1 to 4.4.2 in /shared mtransitapps/commons#762 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.1.0 to 1.1.1 mtransitapps/commons#761 - commons: Build(deps): Bump com.google.android.gms:play-services-ads from 25.2.0 to 25.3.0 in the gms group across 1 directory mtransitapps/commons#760 - commons: Build(deps): Bump com.google.devtools.ksp from 2.3.8 to 2.3.9 in the kotlin-ksp-compose group across 1 directory mtransitapps/commons#759 - commons: Merge branch 'master' of github.com:mtransitapps/commons - commons: Add promote from internal draft to internal - commons: CI: `mt-store-listing-push.sh` & `mt-image-gen.yml` > allow in PR (setup) mtransitapps/commons#757 - commons: Add publish to internal draft - commons: Delete `shared-overwrite/.travis.yml` mtransitapps/commons#756 - commons: Remove usused `StmInfoSubwayProvider` mtransitapps/commons#755 - commons: Generate action-specific store-channel commit messages and PR titles mtransitapps/commons#754 - commons: Build(deps): Bump com.android.billingclient:billing-ktx from 8.3.0 to 9.0.0 in the play group across 1 directory mtransitapps/commons#751 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.0.1 to 1.1.0 mtransitapps/commons#753 - commons: Build(deps): Bump com.google.ads.mediation:vungle from 7.7.3.0 to 7.7.4.0 in the ads group across 1 directory mtransitapps/commons#752 - commons: Add `kotlinx-datetime` mtransitapps/commons#750 - commons: CI > MT check data outdated > daily at 7am UTC mtransitapps/commons#749 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-android: Code cleanup from other PR mtransitapps/commons-android#165 - commons-android: `ProviderContract.Filter` > shared filter params mtransitapps/commons-android#164 - commons-android: `ServiceUpdates` mtransitapps/commons-android#162 - commons-android: Fix spread operator usage in getText function mtransitapps/commons-android#163 - commons-android: Add AndroidX Fragment dependency (GPS basement+Play AppUpdate) mtransitapps/commons-android#160 - commons-android: Update SSL cert mtransitapps/commons-android#159 - commons-android: Generated featured graphic > agency name max length 15->14 - commons-android: GTFS-RT providers > handle interrupted I/O exceptions mtransitapps/commons-android#157 - commons-android: GTFS-RT Trip Updates > filter NOT useful before matching... mtransitapps/commons-android#156 - commons-android: Play Store URLs tracking mtransitapps/commons-android#154 - commons-android: Module redirect activiyt > getText/getString/HtmlUtil.fromHtml()... - commons-android: Context/Resource KTX for text/quantity w/ args & HtmlUtils.fromHtmlLegacy() - commons-android: Add `Resources.getQuantityText()` w/ format args KT ext - commons-android: RSS news provider > Ignore `<--` comments `-->` in description mtransitapps/commons-android#153 - commons-android: Remove usused `StmInfoSubwayProvider` mtransitapps/commons-android#151 - commons-android: comments - commons-android: Fix STM subway priority warning, not info [FR] - commons-android: cleanup - commons-android: delete unused class - commons-android: Refactor Google Play Store URI constants and logic mtransitapps/commons-android#150 - commons-android: cleanup - commons-java: cleanup - commons-java: Support for custom LC UC words min
…parser': - commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons: Update README Twitter link to x.com - commons: Build(deps): Bump androidx.sqlite:sqlite-ktx from 2.6.2 to 2.7.0 in the androidx group across 1 directory mtransitapps/commons#799 - commons: Build(deps): Bump gradle-wrapper from 9.6.0 to 9.6.1 in /shared mtransitapps/commons#803 - commons: Build(deps): Bump com.gradle.develocity from 4.4.3 to 4.5.0 in /shared mtransitapps/commons#802 - commons: Build(deps): Bump com.google.android.gms:play-services-location from 21.3.0 to 21.4.0 in the gms group across 1 directory mtransitapps/commons#800 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#801 - commons: Build(deps): Bump mtransitapps/gh-actions from 1.2.1 to 1.3.0 in /shared-overwrite/.github/workflows mtransitapps/commons#798 - commons: Download & prepare GTFS > better error handling mtransitapps/commons#797 - commons: Update workflow paths for mt-store-listing-push - commons: Generated Store listing full/short desc > compat w/ NextBus - commons: Fix "archive" script > compat with space in headers "service_id, monday, ..." mtransitapps/commons#796 - commons: Build(deps): Bump the ads group across 1 directory with 2 updates mtransitapps/commons#794 - commons: Build(deps): Bump gradle-wrapper from 9.5.1 to 9.6.0 in /shared mtransitapps/commons#795 - commons: Build(deps): Bump the gh-actions group across 2 directories with 1 update mtransitapps/commons#793 - commons: Build(deps): Bump com.android.billingclient:billing-ktx from 9.0.0 to 9.1.0 in the play group across 1 directory mtransitapps/commons#792 - commons: Build(deps): Bump the androidx group across 1 directory with 4 updates mtransitapps/commons#786 - commons: Add lint custom rules URLs in TOML - commons: Android 17 initial support: compile with SDK `37` & build tools `37.0.0` mtransitapps/commons#791 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.1.1 to 1.2.1 mtransitapps/commons#789 - commons: fix featured graphic cities max length with "…" - commons: Build(deps): Bump the gms group across 1 directory with 2 updates mtransitapps/commons#787 - commons: Build(deps): Bump com.google.gms.google-services from 4.4.4 to 4.5.0 mtransitapps/commons#788 - commons: Build(deps): Bump com.gradle.develocity from 4.4.2 to 4.4.3 in /shared mtransitapps/commons#790 - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` mtransitapps/commons#785 - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` (part 2) - commons: Auto-delete `.github/ISSUE_TEMPLATE/module-setup.md` mtransitapps/commons#783 mtransitapps/commons#784 - commons: CI: `mt-sync-code-data.yml` > allow commit code change on PRs mtransitapps/commons#782 - commons: Only skip mt-download-data on PR when archive exists mtransitapps/commons#781 - commons: Build(deps): Bump com.google.firebase:firebase-bom from 34.14.0 to 34.14.1 in the gms group across 1 directory mtransitapps/commons#780 - commons: Required changes for templates mtransitapps/commons#779 - commons: Generated featured graphic > agency name max length 15->14 - commons: Auto-delete `art/hi-res-app-icon-clear.png` mtransitapps/commons#777 - commons: Make `mt-image-gen` fail on direct push errors and drive PR flow via explicit step outputs mtransitapps/commons#771 - commons: Delete old `.gitignore` mtransitapps/commons#776 - commons: Build(deps): Bump com.google.firebase:firebase-bom from 34.13.0 to 34.14.0 in the gms group across 1 directory mtransitapps/commons#773 - commons: Build(deps): Bump org.sonarqube from 7.3.0.8198 to 7.3.1.8318 mtransitapps/commons#775 - commons: Support dash-aware agency name splitting in featured graphic generator mtransitapps/commons#770 - commons: Consolidate shared MT.gitignore rules into shared-overwrite root template mtransitapps/commons#768 - commons: Generate Store listing full desc: remove end of line space - commons: Exclude Markdown files from Android resources packaging mtransitapps/commons#765 - commons: Generated Store listing full description w/o source URL mtransitapps/commons#763 - commons: Build(deps): Bump com.gradle.develocity from 4.4.1 to 4.4.2 in /shared mtransitapps/commons#762 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.1.0 to 1.1.1 mtransitapps/commons#761 - commons: Build(deps): Bump com.google.android.gms:play-services-ads from 25.2.0 to 25.3.0 in the gms group across 1 directory mtransitapps/commons#760 - commons: Build(deps): Bump com.google.devtools.ksp from 2.3.8 to 2.3.9 in the kotlin-ksp-compose group across 1 directory mtransitapps/commons#759 - commons: Merge branch 'master' of github.com:mtransitapps/commons - commons: Add promote from internal draft to internal - commons: CI: `mt-store-listing-push.sh` & `mt-image-gen.yml` > allow in PR (setup) mtransitapps/commons#757 - commons: Add publish to internal draft - commons: Delete `shared-overwrite/.travis.yml` mtransitapps/commons#756 - commons: Remove usused `StmInfoSubwayProvider` mtransitapps/commons#755 - commons: Generate action-specific store-channel commit messages and PR titles mtransitapps/commons#754 - commons: Build(deps): Bump com.android.billingclient:billing-ktx from 8.3.0 to 9.0.0 in the play group across 1 directory mtransitapps/commons#751 - commons: Build(deps): Bump com.google.android.libraries.ads.mobile.sdk:ads-mobile-sdk from 1.0.1 to 1.1.0 mtransitapps/commons#753 - commons: Build(deps): Bump com.google.ads.mediation:vungle from 7.7.3.0 to 7.7.4.0 in the ads group across 1 directory mtransitapps/commons#752 - commons: Add `kotlinx-datetime` mtransitapps/commons#750 - commons: CI > MT check data outdated > daily at 7am UTC mtransitapps/commons#749 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-android: Code cleanup from other PR mtransitapps/commons-android#165 - commons-android: `ProviderContract.Filter` > shared filter params mtransitapps/commons-android#164 - commons-android: `ServiceUpdates` mtransitapps/commons-android#162 - commons-android: Fix spread operator usage in getText function mtransitapps/commons-android#163 - commons-android: Add AndroidX Fragment dependency (GPS basement+Play AppUpdate) mtransitapps/commons-android#160 - commons-android: Update SSL cert mtransitapps/commons-android#159 - commons-android: Generated featured graphic > agency name max length 15->14 - commons-android: GTFS-RT providers > handle interrupted I/O exceptions mtransitapps/commons-android#157 - commons-android: GTFS-RT Trip Updates > filter NOT useful before matching... mtransitapps/commons-android#156 - commons-android: Play Store URLs tracking mtransitapps/commons-android#154 - commons-android: Module redirect activiyt > getText/getString/HtmlUtil.fromHtml()... - commons-android: Context/Resource KTX for text/quantity w/ args & HtmlUtils.fromHtmlLegacy() - commons-android: Add `Resources.getQuantityText()` w/ format args KT ext - commons-android: RSS news provider > Ignore `<--` comments `-->` in description mtransitapps/commons-android#153 - commons-android: Remove usused `StmInfoSubwayProvider` mtransitapps/commons-android#151 - commons-android: comments - commons-android: Fix STM subway priority warning, not info [FR] - commons-android: cleanup - commons-android: delete unused class - commons-android: Refactor Google Play Store URI constants and logic mtransitapps/commons-android#150 - commons-android: cleanup - commons-java: cleanup - commons-java: Support for custom LC UC words min
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
- commons: Improve GTFS input logging with optional CSV-aware previews after archive preparation mtransitapps/commons#805 - commons: Try fixing download timeout issue #Brandon mtransitapps/commons#806 - commons: Add conditional retry for flaky GTFS download step in mt-download-data workflow mtransitapps/commons#807 - commons-android: cleanup - commons-android: Filter `inFocus` cleanup & POI status `validity` (& `useful`) mtransitapps/commons-android#166 - commons-android: Delete `TimeExt.kt` mtransitapps/commons-android#169 - commons-android: Handle Twitter/X ISO-8601 millisecond timestamps in legacy date parsing mtransitapps/commons-android#167 - commons-android: Update GTFS Real-Time proto mtransitapps/commons-android#168 - commons-java: cleanup
Uh oh!
There was an error while loading. Please reload this page.