10355 Commits

Author SHA1 Message Date
Torsten Grote
42f41c0eef Merge branch 'ci-allow-flaky-fail' into 'master'
CI: Allow flaky tests to fail with warning and remove kvm skipped job

See merge request fdroid/fdroidclient!1603
2025-12-10 14:01:05 +00:00
Torsten Grote
b095a1c2af CI: Remove kvm skipped job
We didn't notice that the KVM tests didn't run and enabling the KVM jobs with env variable doesn't work anymore, because even merge requests against our project don't have access to our KVM runners. So the better option is to fail explicitly, so we can run the MR pipeline with our runners manually.
2025-12-10 09:11:28 -03:00
Torsten Grote
db8a11ff2e CI: Pass with warning if flaky tests fail after 5 attempts 2025-12-10 09:08:04 -03:00
Hans-Christoph Steiner
4eeed0b735 Merge branch 'fix-ipfs-redirects' into 'master'
fix(ipfs): avoid redundant http redirects

See merge request fdroid/fdroidclient!1600
2025-11-11 14:23:40 +00:00
Marcin Rataj
eeb109abff fix(ipfs): avoid redundant http redirects
gateway.ipfs.io is a legacy name which now always returns http redirect to ipfs.io (without the "gateway" subdomain). This fix avoids every HTTP request being executed twice.
2025-11-09 21:17:17 +01:00
Torsten Grote
b47aec8e40 Merge branch 'falling-for-Elvis' into 'master'
[libs] Bugfix for `getBestLocale`

See merge request fdroid/fdroidclient!1599
2025-11-05 13:46:41 +00:00
Ray c
a4ffd9c535 Resurrect from my 'Elvis' falls' in getBestLocale
Apparently Elvis' got style
2025-11-05 07:10:57 +00:00
Michael Pöhn
5e881ee54a Merge branch 'lib-cleanup' into 'master'
Library maintenance chores

Closes #3117, #3099, #3098, #3097, and #3089

See merge request fdroid/fdroidclient!1598
2025-11-04 15:09:11 +00:00
Torsten Grote
07b56f0516 Upgrade Dokka syntax to v2 2025-11-04 08:50:56 -03:00
Torsten Grote
b62233e8d2 Upgrade dependencies prior to library publishing 2025-11-04 08:50:56 -03:00
Torsten Grote
5a04b315d5 Upgrade maven publishing plugin 2025-11-04 08:50:56 -03:00
Torsten Grote
1e4c9f39ed Enable Binary compatibility validation
which is still experimental, but allows us to sport API breakage in CI. It still doesn't produce anything for the database lib.
2025-11-04 08:50:55 -03:00
Torsten Grote
911b337db7 Untangle libraries slightly by creating a common core library 2025-11-04 08:50:55 -03:00
Torsten Grote
ba7731af6c Migrate build scripts from Groovy to Kotlin 2025-11-04 08:50:55 -03:00
Torsten Grote
cc2010ff63 [db] Increase concurrency delay for RepoAdderTest
still a hack, but synchronizing the coroutines doesn't seem trivial
2025-11-04 08:50:54 -03:00
Torsten Grote
800d5bfe85 [db] Fix bug where repos/mirrors could be added twice
This could happen when tapping a button quickly two times in the UI. While we had provisions to ensure proper states, these didn't work, because a parallel fetching job would mess with our state allowing the adding code to run more than once.
2025-11-04 08:50:54 -03:00
Torsten Grote
77d8127015 [db] Don't cancel index fetching after enabling archive
This can cause other exceptions (e.g. in json parsing) which prevent repo from getting added properly.

Also, when updating the archive for the first time, we can now re-use the downloaded index.
2025-11-04 08:50:54 -03:00
Torsten Grote
4ad356249a [db] Fix UI update when deleting repo 2025-11-04 08:50:54 -03:00
Torsten Grote
3d5acc401b [db] Update repo shareUri to use fdroid.link 2025-11-04 08:50:53 -03:00
Torsten Grote
5ab649f14d [db] optimize adding repos
We now hang on to the index file while streaming it for repo preview purposes. This avoids having to re-download that file and we can properly add the repo right away.

This then allows us to bring the user to the list of apps in that repository without it being initially empty.
2025-11-04 08:50:53 -03:00
Torsten Grote
3284745c81 [db] deprecate caching of localized app name and summary
This led to many hard to debug issues in the past. It is easier to always fetch fresh data and not cache it.

Previously, we needed the cache as a search index. Now, search uses all localizations, so the cache isn't needed anymore.
2025-11-04 08:50:52 -03:00
Torsten Grote
290cfcee34 [db] New AppOverviewItems AppDao methods 2025-11-04 08:50:52 -03:00
Torsten Grote
a45c9763e5 [db] retrieve categories to enable post-query filtering 2025-11-04 08:50:52 -03:00
Torsten Grote
dff226a935 [db] Add different search API
for more flexible search result sorting and faster search
2025-11-04 08:50:51 -03:00
Torsten Grote
b33800bf5c [db] Add more information to versions
such as versionName and added date.
Also allow passing in UpdateChecker for DbUpdateChecker
2025-11-04 08:50:51 -03:00
Torsten Grote
7c490a2903 [db] expose installedVersionName for UpdatableApp
so that we can show to what version the update version would get applied to
2025-11-04 08:50:51 -03:00
Torsten Grote
23dde0bc9b [db] Better support search for CJK languages
by inserting zero whitespace between their characters to help the existing sqlite FTS tokenizers to split them up.

We have considered splitting them up only at word boundaries, but after consulting native speakers decided to do splitting by chars instead.

Doing this is a hack, but due to the limitations of tokenizers currently available with sqlite, we saw no better solution. While the ICU tokenizer is available as well, it doesn't handle diacritics in other languages.

The zero whitespace is added to zh, ja and ko locales when saving their text to the database. It happens for app names, summaries and descriptions either when loading a full index or when applying diffs. Tests have been added for both cases.
2025-11-04 08:50:51 -03:00
Torsten Grote
0f3f2d6f80 [db] improve search
This now also searches in descriptions, author and package names.
The search also considers all languages now and is insensitive to diacritics in most languages.

The AppMetadataFts needed to be re-created for this to work. A migration and a test for this have been added.
2025-11-04 08:50:50 -03:00
Torsten Grote
31d5832d73 [db] improve RepoAdder 2025-11-04 08:50:50 -03:00
Torsten Grote
982b300e67 [index] add versionName to PackageVersion 2025-11-04 08:50:50 -03:00
Torsten Grote
0fac4d96d0 [download] mirror share uri: fingerprint is non-null now 2025-11-04 08:50:49 -03:00
Torsten Grote
a47423ef01 [download] implement coil disk caching
unfortunately, in coil disk caching is not generic, but deeply integrated in their NetworkFetcher, so if you need a custom Fetcher then you need to implement disk caching yourself.

Maybe in the future, we can hook into their NetworkFetcher and try to use our mirror logic around it. This or they make disk caching work for all fetchers.
2025-11-04 08:50:49 -03:00
Torsten Grote
e99840458e [download] add coil support 2025-11-04 08:50:49 -03:00
Torsten Grote
c5cdcdfd3f [download] limit download progress reporting to once per second
More often isn't needed and runs into issues with UI refresh rates and worse notification rate-limiting which causes important notifications to get missed
2025-11-04 08:50:49 -03:00
Torsten Grote
4579b82a4c [download] verify already downloaded files 2025-11-04 08:50:48 -03:00
Torsten Grote
1cb34b1e63 Merge branch 'better-getBestLocale' into 'master'
[libs] More robust handling of language and script in `getBestLocale`

See merge request fdroid/fdroidclient!1590
2025-11-04 11:49:39 +00:00
Ray c
6bb2798045 [libs] More robust handling of language and script in getBestLocale 2025-11-04 11:49:39 +00:00
Torsten Grote
f1ac12c6f5 Merge branch 'update-deps-1.24' into 'master'
Update dependencies or 1.24

See merge request fdroid/fdroidclient!1595
2025-10-21 15:12:40 +00:00
Torsten Grote
a0ddc0e5ad Update dependencies
minSdk for db lib needed a bump, because room bumped its minSdk

documentfile and localbroadcastmanager dependencies needed to be added explicitly now
2025-10-21 15:12:03 +00:00
Torsten Grote
e574b17041 Merge branch 'minTargetSdk' into 'master'
Fix compatibility reason for minTargetSdk

Closes #3104

See merge request fdroid/fdroidclient!1594
2025-10-21 15:08:51 +00:00
Torsten Grote
dc73720c35 Fix compatibility reason for minTargetSdk 2025-10-21 14:40:32 +00:00
Torsten Grote
7c2df60220 Merge branch 'minSdk24' into 'master'
Bump minSdk to 24 due to a serialization bug

Closes #3073

See merge request fdroid/fdroidclient!1585
2025-10-21 13:04:25 +00:00
Torsten Grote
7d655487ff Remove emulator CPU core setting as it doesn't help 2025-10-21 12:38:21 +00:00
Torsten Grote
b5368e577b Fix emulator cores issue (again) 2025-10-21 12:38:21 +00:00
Torsten Grote
90c28b6bce Adapt tests for minSdk 24 2025-10-21 12:38:21 +00:00
Torsten Grote
bdb4649a8e Run CI on SDK 24 as this is new minimum 2025-10-21 12:38:21 +00:00
Torsten Grote
ce3a98a314 Bump minSdk to 24 due to a serialization bug
We are relying heavily on the kotlinx.serialization library. Many dependencies also use it indirectly, so forcing an older version is no longer feasible. Newer versions use CharsetDecoderICU which had a bug in Android <= 23. The team decided that instead of workarounds, we just bump minSdk to 24 and require at least Android 7 for new releases.

See https://github.com/Kotlin/kotlinx.serialization/issues/2231
2025-10-21 12:38:21 +00:00
Torsten Grote
300cf66d5a feat: add PMD linting integration to GitLab CI
See merge request fdroid/fdroidclient!1587
2025-10-21 12:11:53 +00:00
proletarius101
f992d2c265 feat: add PMD linting integration to GitLab CI 2025-10-21 12:11:53 +00:00
Torsten Grote
0a21bda38d Merge branch 'mte' into 'master'
Opt-in to Arm Memory Tagging Extensions (MTE)

See merge request fdroid/fdroidclient!1588
2025-09-19 19:43:11 +00:00