Add support for location plugins (#772)

* Cherry pick location refactor

* Refactor :data:openstreetmaps to :data:locations

* contract, plugin sdk

* Implement serialization, module tweaks

* Include check for out-of-date departures in SearchableItemVM.requestUpdatedSearchable()

* settings for location plugins

* Try not to be too lazy

* more fiddling with the plugin SDK

* add departures in MapView with mock data for debug builds

* change icons

* add boats

* animate departure lazycolumn

* Add MarqueeText for text overflow handling

* Define height for Departures in case there is no map to display

* Don't inclure railway / highway tags for OSM since there will be location plugins for that

* sort by time

* - Apply pre-merge changes to LocationSettings
- Add banner warning about slowed down location search for large search radii

* ditch `showLocationOnMap`

* LocationItem: make `showOpeningSchedule` toggleable

* LocationItem: make Navigation AssistChip work for people that don't have google maps installed

* LocationItem: resolve TODOs

* MapTiles: ditch unused code, animate userIndicator

* Reintroduce departure list

* Add LineColor

* Add osm tag `stars` as `userRating` https://taginfo.openstreetmap.org/keys/stars#overview

* typealias -> import

* Don't add Navigation Chip when there is no way to resolve navigation intents

* Add settings migration

* Set plugin SDK version to 1.2.0-SNAPSHOT

* Deduplicate shared plugin classes, use kotlinx.serialization

* Fix imports

* Use ZonedDateTime for depature times

* Add more line types

* Rewrite location serialization

* Replace street/houseNumber with address

* Add attribution field

* Add plugin config

* Reject location search requests without lat lon parameters

* Add default values to plugin location class

* Don't crash if column value is null

* Add docs comments to LocationCategory values

* Refactor OpeningSchedule as polymorphic

* remove dead corpse *ahem* code

* Split LocationCategory into category and icon

(Also update to Kotlin 2.0, please don't do this at home)

* Add more location icons

* Fix (?) location deserializer

* Add more location icons

* More icons

* Meh

* Add Pub

* Disable Github Maven repo if credentials are missing

* Add location search specific settings to plugin details screen

* Add language parameter

* Unbreak the build

* Refactor plugin SDK (with breaking changes)

* Set plugin SDK version to 2.0.0-SNAPSHOT

* Document SDK breaking changes

* Implement LocationProvider.getQuery

* Add a typesafe cursor API

* Oops I did it again

next time maybe check if the code is actually compiling before pushing

* Add missing return statement

* Fix list serialization

* Departure time UI adjustment

* Use typesafe cursor for weather plugins

* Add userRatingCount and emailAddress fields

* grrr

* Rename and extend LineTypes

* Add default lineType to Departure to fix serialization errors

* Fix refreshing stored plugin locations

* Adapt line name column width to available departures

* Fix plugin settings screen category overlap

* add LocationItem.GenericTransit

* Fix crash during deserialization of locations

* Update SDK docs

* Replace plugin "official" mark with "verified developer" mark

before anyone gets sued

* show 'now' when departure is in less than one minute

* Add typesafe Bundle API

* Implement plugin API changes

* Plugin SDK: Fix refresh result not being returned

* Update docs

* apply alpha to departures that have departured

* better (maybe): reduce saturation instead of alpha

* Add default values for Attribution

* Display attribution

* Rearrange location result layout

* Reduce searchable update interval to 1 minute

* Pass last update time to refresh function

* Change refresh path and ensure that timestamp is only update when the item was updated

* categorize osm location

* Update docs

* Optimize location search

- run providers in parallel
- flatten code

* add experimental address parsing for OSM

* add poi_category_townhall

* Fix popup closing when favorites items are updated

* Revert "Fix popup closing when favorites items are updated"

This reverts commit fc517fd066c7f8109b6d6df2d4f536af66398207.

* Fork AndroidAddressFormatter to `:libs:address-formatter`

* migrate `:libs:address-formatter` dependencies to version catalog and update them

* also consider addr:{suburb,hamlet} for `Address.city` if city tag is missing

* Move poi strings back to strings.xml

* Update Jetpack Compose

* Move address-formatter back to its original package, add license and readme

* Move address-formatter back to its original package

---------

Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
This commit is contained in:
Christoph
2024-06-14 11:57:03 +02:00
committed by GitHub
co-authored by MM20
parent cfe80ff3e5
commit 65a9c8c1fe
145 changed files with 5804 additions and 2199 deletions
+1 -1
View File
@@ -757,7 +757,7 @@
<string name="preference_default_filter_summary">Dostosuj domyślny filtr wyszukiwania</string>
<string name="preference_filter_bar">Pokaż pasek filtrów</string>
<string name="preference_filter_bar_summary">Pokaż szybkie filtry nad klawiaturą</string>
<string name="location_closes">Zamyka się za</string>
<string name="location_closes">Zamyka się za %1$s</string>
<string name="location_closes_other_day">Zamknięcie %1$s, %2$s</string>
<string name="location_opens">Otwórz o %1$s</string>
<string name="location_opens_other_day">Otwórz %1$s, %2$s</string>
+49
View File
@@ -925,6 +925,7 @@
<string name="search_filter_tools">Tools</string>
<string name="search_filter_online">Online results</string>
<string name="search_filter_apps">Apps</string>
<string name="plugin_type_locationsearch">Location search</string>
<string name="preference_default_filter">Default filter</string>
<string name="preference_default_filter_summary">Customize the default filter for searches</string>
<string name="preference_filter_bar">Show filter bar</string>
@@ -932,6 +933,8 @@
<string name="preference_customize_filter_bar">Customize filter bar</string>
<string name="preference_customize_filter_bar_summary">Customize which items are included in the filter bar</string>
<string name="filter_settings_network_warning">The current filter enables online results by default. Your search queries might unintentionally be sent to external web services. For privacy reasons, this is not recommended.</string>
<string name="preference_search_osm_locations">OpenStreetMap</string>
<string name="preference_search_osm_locations_summary">Search OpenStreetMap for shops and other places in the local area</string>
<string name="poi_category_restaurant">Restaurant</string>
<string name="poi_category_fast_food">Fast food</string>
<string name="poi_category_bar">Bar</string>
@@ -1006,4 +1009,50 @@
<string name="poi_category_chemist">Drug store</string>
<string name="poi_category_travel_agency">Travel agency</string>
<string name="poi_category_fitness_center">Fitness center</string>
<string name="poi_category_church">Church</string>
<string name="poi_category_mosque">Mosque</string>
<string name="poi_category_buddhist_temple">Buddhist temple</string>
<string name="poi_category_hindu_temple">Hindu temple</string>
<string name="poi_category_synagogue">Synagogue</string>
<string name="poi_category_pizza_restaurant">Pizza restaurant</string>
<string name="poi_category_burger_restaurant">Burger restaurant</string>
<string name="poi_category_place_of_worship">Place of worship</string>
<string name="poi_category_chinese_restaurant">Chinese restaurant</string>
<string name="poi_category_japanese_restaurant">Japanese restaurant</string>
<string name="poi_category_kebab_restaurant">Kebab restaurant</string>
<string name="poi_category_asian_restaurant">Asian restaurant</string>
<string name="poi_category_ramen_restaurant">Ramen restaurant</string>
<string name="poi_category_soup_restaurant">Soup restaurant</string>
<string name="poi_category_brunch_restaurant">Brunch restaurant</string>
<string name="poi_category_breakfast_restaurant">Breakfast restaurant</string>
<string name="poi_category_car_wash">Car wash</string>
<string name="poi_category_charging_station">Charging station</string>
<string name="poi_category_motorcycle_rental">Motorcycle rental</string>
<string name="poi_category_gallery">Gallery</string>
<string name="poi_category_amusement_park">Amusement park</string>
<string name="poi_category_concert_hall">Concert hall</string>
<string name="poi_category_stadium">Stadium</string>
<string name="poi_category_casino">Casino</string>
<string name="poi_category_shopping_center">Shopping center</string>
<string name="poi_category_discount_store">Discount store</string>
<string name="poi_category_pet">Pet store</string>
<string name="poi_category_shopping">Shopping</string>
<string name="poi_category_swimming">Swimming pool</string>
<string name="poi_category_martial_arts">Martial arts</string>
<string name="poi_category_golf">Golf</string>
<string name="poi_category_gymnastics">Gymnastics</string>
<string name="poi_category_ice_hockey">Ice hockey</string>
<string name="poi_category_baseball">Baseball</string>
<string name="poi_category_american_football">American football</string>
<string name="poi_category_handball">Handball</string>
<string name="poi_category_volleyball">Volleyball</string>
<string name="poi_category_skiing">Skiing</string>
<string name="poi_category_cricket">Cricket</string>
<string name="poi_category_park">Park</string>
<string name="poi_category_monument">Monument</string>
<string name="poi_category_government_building">Government building</string>
<string name="poi_category_fire_station">Fire station</string>
<string name="poi_category_courthouse">Courthouse</string>
<string name="poi_category_townhall">Townhall</string>
<string name="preference_search_locations_radius_large_radius_warning">Large search radii can significantly slow down location search.</string>
</resources>