* Added flags for use seconds and use theme color for clock widget, and "Display" clock style.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* Separator in "Display" clock changed to vector for consistency.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* "Use theme color" is now false by default.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* Added padding for all clocks.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* FIX: "Show seconds" was default true on VM, glitching the clock widget when first loaded.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* Clock time is now provided for a variable component as needed, splitting the current time provider by two.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* Compact mode is also considered for second/minute provider.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* Yet another tweak to Orbit clock colors.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* Separator flicker is now synced with second change for Display clock.
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
* Update libraries
* Update IDEA Kotlin file
* Disable seconds by default
* Swap order of clock widget preferences
* Invert themed orbit clock colors
* Rename display clock style to 7 segment
* Make watch face names localizable
---------
Signed-off-by: Guillermo Villafuerte <gvillafu@comunidad.unam.mx>
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
* Adds setting to not separate work profile and main profile apps
* Only show work profile related preference when there is a work profile
---------
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>
* Database: backend for weights & timestamps
- Migration 21->22
- SearchableLaunchTimestampEntity.kt
- `weight`-column in SavedSearchableEntity
- Queries for sorting by and adjusting weight
- Queries for sorting by recent use
* move weightfactor access to favoritesRepository
* reorder calls in SearchVM
* no more datahoarding
* add settings screen for ordering
* ui fix, animations
* move ordering settings out of own screen
* remove unused localization
* weight factors
* larger factor for WeightFactor.High
* cleanup
* sort favorites by weight
* icons for favorite screen
* I hate coming up with descriptive strings
* add default weight factor to settings migration
* Add default values for search result ordering preferences
* Favorites settings: change order of preferences
* Change strings
* Replace favorites variability slider with list preference
* migration initial weight
* Change labels
* Include searchable weight column in backup
---------
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
* Search: add launch action on keyboard-done
* Add switch in settings
* :)
* fix dataStore-update, pull bestMatch from multiple sources
* launch searchAction when no other match is found
* update localization
* switch to .firstNotNullOfOrNull { }
* switch imeAction based on launchOnEnter == true
* localization
* adding highlighting for bestMatch
* Remove unused code
* Store hightlighted search result in viewmodel
* Add highlight for list item, tweak grid item highlight
* Highlight search action that is launched on enter
* localizaton
* switch to IconShape / hairline border
* remove border / outlineVariant-background
---------
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
* Add setting for clock widget to show two DynamicZones, one of them always being favorites
* implementing horizontal pager
* undoing changes
* checking if withFavoriteBar is set in horizontal layout
* Clock widget: use compose pager, not accompanist pager
* Pull favorites part provider from view model
* Clock widget settings: remove divider
* Remove date_part from settings.proto
* Remove datePart settings references
---------
Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>