b5aa35ed70fc27e098bddd5ead517d3461dc2b0a
7
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
cba387c832 |
Add OSM search provider (#611)
* 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> |
||
|
|
4159d7ad50 |
Make OrbitClock somewhat respect orbital dynamics (#276)
* 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 |
||
|
|
2c9cba72a9 |
Search: introduce weighted reordering (#272)
* 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> |
||
|
|
0b2aa716ec |
Search: reorder results by launchCount (#267)
* add app search result ordering by launchCount * add reordering for other domains * add preference in settings * bruh moment - database optimizaiton - fixing obvious fallacy while reordering * no reordering on empty queries && reordering early return * avoiding deserialization * listpreference * search settings screen icons & categories * regrouping * early-return tweak * Change ranking algorithm * Pepega * Prioritize launchCount over pinned for relevance sorting --------- Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com> |
||
|
|
b11ba9e23a |
Searchbar: Launch on enter / done (#258)
* 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>
|
||
|
|
8880f859e2 |
Weather-Widget: replace drop-down selectors with scrollable rows (#253)
* adding details bar with icons and animations * adding lazy-rows, again * adding switch for compact mode / adjust padding * corner adjustments * Adjust alignment and typography * [Fix] Add missing outlineVariant to platform material3 dynamic color schemes * Adjust colors * Increase icon weight * Increase time selector touch target size * Change divider color * Adjust selection highlight color * add checks for valid details / display location icon on lat-lon location * removing redundant check for valid precipitation * Add colors argument to weather icons * Add Blend from material-color-utilities library * Blend weather icon colors towards theme color * Remove C/F * Add item blending when scrolling into / out of view * Create :ui:ktx:LazyListLayoutInfo.kt / increase provider padding --------- Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com> |
||
|
|
0a63a104bb |
Add additional row in vertical and horizontal pager in horizontal clock mode showing favorites (#246)
* 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> |