* ContactRepository: try to deduplicate phoneNumbers in a smart way
* AndroidManifest: use CALL_PHONE permission to allow for making phone calls
* Implement CallOnTap with contact results
- contact activities that require permissions we do not have are not
listed
- add CallOnTap setting for phone number results on search behind
contacts settings
* utilize PhoneNumberUtils
* navroute settings/search/contacts
* queryIntentActivities -> resolveActivity
* localization
* Code formatting
* Wrap contact search settings in preference category
---------
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
* OSM: search by tags "amenity" and "shop" after delocalizing
* use overpassQL UNION
* document Union usage
* cleanup unused imports
* refine restaurant queries
* two more :)
* Hardcode string -> tag assignment
* Remove log statement
---------
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
* 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>
* add openstreetmaps module in data
* fix injection
* retrofit2 implementation
* tokenization
* partial rewrite of OpeningTime.fromOverpassElement
* finish rewrite of OpeningTime.fromOverpassElement
* fix merge x)
* configurable search radius
* add settings section and disable setting explicit timeout values for http-client to alleviate issues during debugging
* settings screen localization
* enable radius slider only when locations are enabled
* fix dayRange parsing, add barebones UI
* add files to git
* add location listener in SearchableItemVM that gets activated by LocationItem
* add heading listener
* Calculations, UI additions
* rename settings to LocationsSettings
* use android location library for bearing calculations
* location fix
* rotation fix, demo UI
* working buttons for launching map and website (if available)
* finish botched UI
* improve overpass query by utilizing regex for fuzzy search results
* add link to documentation for further reference
* localization comments
* remove wikipedia minification setting
* schema version, default radius 1.5km
* move osm-specific opening-time parsing to OsmLocation
* refactor with callbackFlow
* remember flow and set minimum distance update to 1m
* refactor for replacementIcon, add imperial unit option
* 'open until' UI fix
* implement serializers
* catch errors in deserializer
* hacky live sorting by distance
* give max priority to bestmatch determined by SearchVM
* add yards as additional step to metersToLocalizzedString
* move http-client from serializers of osmlocation to companion object for cache updating
* add setting for custom URL
* round yards to int
* add botched map preview
* unbotch map tiles, draw user location in map (proof of concept)
* - create MapTiles Composable
- add border around map
- add indicators for location and userlocation, when on map
* fix default imperial units setting
* fix tint color
* add OSM attribution string
* display loading animation when tiles can't be shown yet
* create compose preview of maptiles
* UI work
* being glad that API's just return null instead of throwing information
* tryStartActivity
* aniimate card row placement
* Text alignment, padding
* Rotation -PI/PI wrap fix
* fix direction arrow rotation when screen is upside down
* more icons
* icons, settings, localization
- consider other tags than "amenity" when determining location category
- add many more location categories with corresponding icons
- add settings to disable map theming and hide search results with
LocationCategory.OTHER
- add default localizations for settings
* catch errors when deserializing location category
* move location and heading functions to Context.kt in extensions
* fix hideUncategorized criterion
* add pre-sorting by distance for location results in SearchVM by injecting Context into search()
* specify receiver parameters in ktx.Context lambdas
* move pose logic and context dependency to new module devicepose with DevicePoseProvider
* git, add the frickin' module
* search overpass for nodes and ways
include category for parcel_locker
already start searching for queries extending length 2
* make openingTimes immutable
* OsmRepository changes
- include telephone number
- don't try to repeatedly update cache if there is no value to be
updated to
- deduplicate results with same label by category and distance (100m)
- include fixmeurl to point to openstreetmaps.org/fixthemap
* ask for center in overpass API to compute center coordinates of ways
* search for brand
* add chemist location category
* restaurant / fastfood icon shenanigans
* actually add the icons :|
* add leisure tag for leisure:fitness_centre
* return to 'open until'/'opens in'/'open next'
* adding missing UI features
- bug report dialog
- call button if phone number exists
- grid item popup
* refactor to handle 24/7 locations more comfortably
* hide hours in 'opens_in' when they are zero
* show maptiles such that user is always in view
* drawing adjustments
* cache previous zoom level to speed up tile coordinate calculations
* using remember
* using MutableIntState
* fix logic that determines whether tiles are loading
* fix for numTiles == 9
* one plus one is two plus one makes three quick maths
* animate user location indicator, remember calculations
* fix off by one when determining next opening hour
* second attempt to fix upside down arrow rotation (probably fine now)
* logging
* reconsider declination, inject samplingPeriod
* undoing the merge undo
* move localization string to i18n
* revert reordering by distance
* refactor .distanceTo
* make Location abstract class to override compareTo with cached distance to correct sort order in search results
* when it is if when you could use when
* replace Pair with dataclass
* condition check order
* not creating objects with undefined locations, removing suspend from getCategory()
* inject permissionsmanager as constructor parameter
* Store OSM settings in decentralized datastore
* Update searchable content in database on launch
* Refactor, add mechanism to load updated searchable data lazily
* Cache all OSM data in launcher database
* Add pin to favorites button to location results
* Add sealed class UpdateResult
that is returned by awaiting updatedSelf of DeferredSearchable
- update on success
- set flag on temporarily unavailable (TODO add some UI indication)
- delete and invalidate VM on permanently unavailable (Display some
message window to user?)
* Move sorting of Locations from OsmRepository
to SearchVM using cached location in DevicePoseProvider, if available
* make use of cached location in code
* make use of DevicePoseProvider in WeatherRepository
* inject via koin
* increase getLocation().timeout() to 10 minutes since we are asking for locations only every hour, so 10 minutes seem reasonable (?)
* poll new location every time
* add icon for cached results where results are temporarily unavailable
* Refactor DeferredSearchable to UpdatableSearchable
that receives a closure to retrieve an updated self.
- moved timestamp (formerly `updatedAt`) to UpdatableSearchable
- moved logic whether to update searchable to `requestUpdatedSearchable`
in SearchableItemVM, which gets triggered every time the details of
the item are shown
- keep track in SearchableVM whether we should retry updating, possibly
bypassing a timestamp value that is not old enough
- show toast upon permanently unavailable
- animate "cached_searchable" icon
- make "cached_searchable" icon clickable to show toast explaining the
situation
* logging on PermanentlyUnavailable
* refactor OsmRepository.update()
* MapTheming adjustments. There is now darkmode, hooray!
* remove outdated comment
* code tidying
* remove unnecessary LaunchedEffect
* make outdated badge only clickable when actually outdated
* deserialize opening schedule
* set deserialized props to null if strings are blank
* also consider contact:* tagging scheme for website & phone
* tweaks
* git add Result.kt
* don't search for locations if network is not allowed
* merge fixes
* Move location search settings to preferences module
* Change wording and order of location search preferences
* Limit location search results
* Order location search results by distance
* Use a sequence
* Android Studio's suggestion wasn't as fleshed out as one would hope
* Add proguard rules
* Rename TileMapRepository to MapTileLoader
---------
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
* orbitclock adjustments
* cleanup
* switch to LaunchedEffect
* radii-diff golden ratio && readability
* equal space between planets && large label on hour
* size adjustments
* smooth animations
* incorporate ms
* cleanup and synchronization fix (somewhat?)
* Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (568 of 568 strings)
Translation: Kvæsitso/i18n
* Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (568 of 568 strings)
Translation: Kvæsitso/i18n
* Translated using Weblate (Chinese (Traditional))
Currently translated at 64.1% (68 of 106 strings)
Translation: Kvæsitso/units
* Fix favorites in favorite widget hidden even when clock widget favorites are disabled
* Fix crash
* Add preference to disable themed icons for themed icon packs
* Add tooltip to icon pack themed toggle
* Version 1.23.1
* Translated using Weblate (Dutch)
Currently translated at 99.4% (565 of 568 strings)
Translation: Kvæsitso/i18n
* Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (106 of 106 strings)
Translation: Kvæsitso/units
* Translated using Weblate (Dutch)
Currently translated at 100.0% (568 of 568 strings)
Translation: Kvæsitso/i18n
* Translated using Weblate (Chinese (Simplified))
Currently translated at 99.2% (564 of 568 strings)
Translation: Kvæsitso/i18n
* Translated using Weblate (Russian)
Currently translated at 100.0% (106 of 106 strings)
Translation: Kvæsitso/units
* Added translation using Weblate (Hungarian)
* Translated using Weblate (Turkish)
Currently translated at 34.9% (37 of 106 strings)
Translation: Kvæsitso/units
* Added translation using Weblate (Hungarian)
* Added translation using Weblate (Ukrainian)
* Translated using Weblate (Hungarian)
Currently translated at 4.2% (24 of 568 strings)
Translation: Kvæsitso/i18n
* Added translation using Weblate (Ukrainian)
* Docs: update docusaurus
* Docs: Add FAQ page
* Update Jetpack Compose and Accompanist
* Add TagChip component
* Translated using Weblate (Ukrainian)
Currently translated at 5.9% (34 of 568 strings)
Translation: Kvæsitso/i18n
* Translated using Weblate (Ukrainian)
Currently translated at 0.9% (1 of 106 strings)
Translation: Kvæsitso/units
* Extend FAQ
* Restore EmptyClock when branch
* orbitclock adjustments
* cleanup
* switch to LaunchedEffect
* radii-diff golden ratio && readability
* equal space between planets && large label on hour
* size adjustments
* smooth animations
* incorporate ms
* cleanup and synchronization fix (somewhat?)
* Restore EmptyClock when branch