Commit Graph

10367 Commits

Author SHA1 Message Date
Torsten Grote
2faa2d018d small improvements after feedback 2026-01-05 17:23:54 -03:00
Torsten Grote
41870f7404 implement updates tab 2026-01-05 17:23:54 -03:00
Torsten Grote
632243def1 improve search and filtering code 2026-01-05 17:23:54 -03:00
Torsten Grote
15ad121fc8 next 2026-01-05 17:23:53 -03:00
Torsten Grote
29e2d15386 [db] Update repositoriesState atomically in RepoManager
Otherwise, concurrency issues may cause a broken state such as the same repo being in the list two times.
2025-12-29 11:23:59 -03:00
Torsten Grote
41653a80a0 [db] add a way to get apps for a list of package names
this will be used to get the apps most downloaded
2025-12-29 11:23:59 -03:00
Torsten Grote
8b4e42935e [db] Add new DbAppChecker which finds updates and apps with issues
This is similar to DbUpdateChecker which only finds updates.
2025-12-29 11:23:59 -03:00
Torsten Grote
88f817e5ca [db] allow providing PackageInfo maps to avoid hammering PackageManager
The app may maintain PackageInfo for apps already, so there's no need to keep asking the system for it. We could instead just work with what we already have.

Also, we discovered that chunking the package names isn't needed for newer Android versions. This is only relevant for whom has more than 999 apps installed.
2025-12-29 11:23:59 -03:00
Torsten Grote
82c662608c Merge branch 'optimize-caching' into 'master'
fix: optimize caching strategy in CI configuration

See merge request fdroid/fdroidclient!1605
2025-12-29 13:33:01 +00:00
proletarius101
b24d1e7d5d fix: optimize caching strategy in CI configuration 2025-12-29 13:32:59 +00:00
Torsten Grote
570435835e Merge branch 'gitlab-ci-integration-checkstyle' into 'master'
ci: add Checkstyle to MR widgets

See merge request fdroid/fdroidclient!1589
2025-12-26 14:19:08 +00:00
proletarius101
924c9ecc01 ci: add Checkstyle to MR widgets 2025-12-26 14:19:08 +00:00
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