290 Commits

Author SHA1 Message Date
c56ea58fc5 Use || instead of comma conditions in the subjectless when
Some checks failed
Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
Build Nightly APK / build (push) Has been cancelled
2026-09-12 15:44:06 +02:00
b0072f0fc2 Key the weather worker's location skip on the provider, not on a setting
typing.8 checked WeatherSettingsData.managedLocation, but that only exists once the
user has explicitly picked "managed location" for the provider, so
weatherProviderSettings stayed empty and the guard never fired: the worker kept
requesting a location and retrying every 30s.

The real signal is the provider's own capability. BreezyWeatherProvider.getWeatherData()
is a hardcoded noop that also manages its own location, so add WeatherProvider.isPushBased
and check that instead.

Also stop treating a managed location as "pull nothing": those providers still have data
to fetch, they just resolve the position themselves, so they now take the
WeatherLocation path instead of the auto-location one.

Bump to 1.40.2-typing.9 (versionCode 2026091202).
2026-09-12 15:43:10 +02:00
61f3424de5 Stop the weather worker pinning location for providers that manage it
Some checks failed
Trigger F-Droid repository rebuild / trigger (release) Has been cancelled
Breezy Weather resolves its own location and pushes weather updates, but
WeatherUpdateWorker only looked at autoLocation before requesting a location.
BreezyWeatherProvider.getWeatherData() is a noop that always returns null, so
the worker then returned Result.retry() forever and never set lastUpdate -
which meant the update interval check could never short-circuit it either.

Every attempt called getLastKnownLocation(), which registers GPS *and* network
listeners at a one second interval and held them for up to ten minutes, so the
location stack never idled. On the phone this showed up as ~46k delivered fixes,
`*location*` wakelocks held ~99% of the time and Doze never engaging at all.

- expose the selected provider's managedLocation in WeatherSettingsData
- skip and cancel the weather work for providers that manage their own location
- give up on a fix after two minutes instead of ten
- LocationsRepository: don't collect the location flow when location search is
  off or not permitted. As a combineTransform argument it was always collected,
  so every search query registered GPS and network listeners for up to 30s.

Bump to 1.40.2-typing.8 (versionCode 2026091201).
2026-09-12 15:19:10 +02:00
4836618609 Stop calendar queries emitting an empty list before they have run
`queryCalendarEvents` forwarded the `MutableStateFlow` it accumulates
the provider results in, so the initial empty value was the first thing
collectors saw - before any provider had reported. Callers in the
launcher take that first result (`CalendarPartProvider` uses `.first()`)
and cannot tell it apart from "no events", so the agenda stayed empty
and its part never showed up.

`CalendarRepository.findMany`'s 500 ms debounce used to hide this: the
placeholder was superseded by the real list within the debounce window,
which is exactly why the agenda only ever appeared half a second late.

Keep the accumulator null until the first provider reports, and let
`findMany` - a one-shot query for the clock and calendar widgets - wait
for all providers (`awaitAllProviders`) so it never hands out a partial
list. The search path keeps streaming results as providers report, now
without an empty flash.
2026-09-11 21:17:57 +02:00
3b3d6473ca Don't debounce the agenda query in the clock widget
`CalendarRepository.findMany` holds every result back by 500 ms, which
was added for the calendar widget to collapse bursts of plugin and
permission changes. `debounce` delays the first result too, so the
agenda part - whose ranking stays 0 until the first result arrives -
only appeared half a second after the clock and the other parts.

The agenda is re-queried on a calendar change or every 15 minutes, so
it does not need the debounce. Make the delay a parameter (still 500 ms
by default) and pass 0 from `CalendarPartProvider`.
2026-09-11 21:01:00 +02:00
MM20
d446d86127 always open custom intent quick actions in new task
close #1967
2026-08-30 16:08:35 +02:00
MM20
17f8906f26 add setting to exclude apps from shortcuts search 2026-08-23 17:55:08 +02:00
Charlie
fa4b19c15a precache app shortcuts (#1972) 2026-08-21 16:14:23 +02:00
MM20
64dc66aadb Update dependencies, change java version to 11, update Gradle 2026-08-12 23:42:41 +02:00
MM20
057de087e9 Use all system locales to determine default currencies 2026-08-11 21:48:20 +02:00
MM20
47c1554d5d only show unlock private space action on perfect match 2026-07-20 22:17:23 +02:00
MM20
3f4deead1b (refactor) refactor ProfileManager class 2026-07-19 18:27:59 +02:00
MM20
10516ef9a9 user launcher profilemanager 2026-07-04 20:35:37 +02:00
MM20
84dcede2d9 rename string 2026-07-04 18:38:26 +02:00
Alex Alwardt
db051292be Feature: Respect hidden private space option (#1923)
* Hide private profile space apps from search when hide private space option is enabled, and add a search action for locking and unlocking the private space.

* Filter private space apps from favorites while hidden
2026-07-04 15:57:54 +02:00
MM20
58772e7195 Unit converter: list preferred currencies first
Close #1837
2026-06-29 19:13:39 +02:00
MM20
fd25df0121 edit currency aliases 2026-06-27 16:18:07 +02:00
MM20
2fd780d9bc Fix theme file deserialization 2026-05-08 22:39:06 +02:00
MM20
4d3774739d Update Breezy Weather condition codes 2026-05-04 20:50:07 +02:00
MM20
06982b6e5a Specify compile sdk minor version
Close #1867
2026-04-14 20:00:45 +02:00
MM20
b9c227be23 Redesign gesture settings 2026-04-06 12:07:29 +02:00
MM20
c6a1aa0503 Add Widget::getLabel method 2026-04-05 22:30:57 +02:00
MM20
37fa1697dd Migrate to Android Gradle Plugin 9 2026-03-28 16:02:54 +01:00
MM20
dcefc682a5 add comment 2026-03-14 13:59:31 +01:00
MM20
a2621bee0b rearrange weather widget, add uv index
Close #1630
2026-03-11 22:07:21 +01:00
Fidel Montesino
adfff23e67 Multiple widget panels (#1805)
* Initial approach

* Add a new setting so users can choose the amount of widgets screens

* Extract indexed string

* Remove unnecessary Migration6

* Make HomeComponent use the Default widget id

* Add defaultParentId to initial widgets for fresh launch

* Fix migration path
2026-02-16 19:46:01 +01:00
MM20
de8e83aa38 Rename weather icons, add monochrome variant 2026-02-13 23:31:00 +01:00
MM20
312e712656 Update default colors 2026-02-02 22:43:18 +01:00
MM20
bd77ea8338 Typography schemes: Add more font slots 2026-02-01 16:22:32 +01:00
MM20
24406f6aae Add settings for variable font axes in typography scheme 2026-01-31 23:21:55 +01:00
MM20
8ba55f8345 Use Google Sans Flex as the default font 2026-01-30 15:33:07 +01:00
Max Hübner
c6ea6dd4dc improve whitespace handling in text classifier (#1696) 2026-01-25 10:28:22 +01:00
MM20
a4b6208033 Fix custom intent search action query not passed correctly
Fix #1748
2026-01-24 16:38:49 +01:00
MM20
720ea787a9 update dependencies 2026-01-03 20:01:15 +01:00
MM20
f7a17d73fb Fix NPE
Close #1714
2025-12-28 12:09:27 +01:00
MM20
49d09c01c7 Optimize string normalization 2025-12-24 13:51:18 +01:00
MM20
c09a5aa425 Rename favorites widget 2025-12-23 17:55:21 +01:00
rac146
d6214ef9fa Feature: Lock Single Tag for Favorites Widget (#1355)
* single tag for favorites

* fixing

* don't need this one

* cleanup

* new features - select for favorites/tags customization

* bug fix for tags

* bug fix to show pinned tags

* make sure pinned tag works on load

* better way to work with viewmodel (learning as i go)

* back to working state.. can be improved

* adding some comments

* cleanup

---------

Co-authored-by: MM20 <15646950+MM2-0@users.noreply.github.com>
2025-12-21 18:01:06 +01:00
MM20
67167de2da Add transliteration support for non-latin scripts 2025-12-15 23:00:40 +01:00
MM20
253800693c Add language preference screen 2025-11-23 20:07:13 +01:00
MM20
bb2874bb69 Hide calendar events without title
Close #1683
2025-11-23 15:54:44 +01:00
MM20
b4bb2ae663 Migrate to Material symbols 2025-11-07 22:50:45 +01:00
MM20
f05481e1e8 Update file icons 2025-11-03 18:15:52 +01:00
MM20
76030b4f18 Fix breezy weather icons
Fix #1438
2025-10-24 20:32:38 +02:00
leekleak
7d7a6bc812 show correct breezy timestamp (#1659) 2025-10-22 19:35:25 +02:00
MM20
5a575738ac tweak search result ranking 2025-10-17 16:56:09 +02:00
MM20
19a5acdf43 Dismiss forecasts that are more than 7 days in the future 2025-10-12 18:13:20 +02:00
MM20
167500233e Fix second -> year unit converter factor 2025-10-11 14:29:46 +02:00
MM20
e0d792328b Swap owm cloud icons 2025-10-10 15:08:55 +02:00
MM20
5272ab5cac Add support for Breezy Weather gzip format 2025-10-10 12:46:10 +02:00