Commit Graph

107 Commits

Author SHA1 Message Date
Torsten Grote
b1a0403960 [db] Add URL as mirror if repo was added with unofficial mirror 2023-11-22 12:04:17 +00:00
Torsten Grote
6ac7f652ad [db] verify fingerprint of known repositories
if the user tries to add a repository at a known address with a different fingerprint than what we have on file, we'll refuse to add the repo
2023-10-20 09:26:17 -03:00
Torsten Grote
e61886c6b6 Upgrade the libraries we can still upgrade
without going to gradle 8, Java 17 and compileSdk 34
2023-10-20 09:26:17 -03:00
Torsten Grote
10ef3ab055 [db] remove deprecated insertEmptyRepo() method 2023-10-20 09:26:15 -03:00
Torsten Grote
62aa00b5b4 [db] add support for adding repos on content:// and file:// URIs
This complicates the code for this niche use-case, but is wanted by F-Droid to support communities with bad or no internet connectivity.
2023-10-20 09:26:15 -03:00
Torsten Grote
7d64492d92 [db] support adding repos protected with basic auth 2023-10-18 11:39:38 +00:00
Torsten Grote
51d43f9004 [db] update repo cache right after new repo got added
so we can use the new repo right away without waiting for DB to inform us about change. This is important if we want to show list of apps of a repo right after adding it.
2023-10-18 11:39:38 +00:00
Torsten Grote
a5ec22fa6c [db] add queries for getting app list items by repo 2023-10-18 11:39:38 +00:00
Torsten Grote
66b6c955a8 [db] add https:// scheme if it is missing from given repo URI 2023-10-18 11:39:38 +00:00
Torsten Grote
7c0c9c2cae [db] add support for detecting swap repos
Note that those are not really meant to be added to the DB as they are ephemeral by nature.
2023-10-18 11:39:38 +00:00
Torsten Grote
f068d920bd Add RepoManagerAddAllIntegrationTest which adds all known (stable) repos
See: https://forum.f-droid.org/t/known-repositories/721
2023-10-18 11:39:38 +00:00
Torsten Grote
03a5b697bb [db] Handle fdroidrepos:// Uris as well 2023-10-18 11:39:38 +00:00
Torsten Grote
7b52db331c [db] Catch NotFoundException in RepoAdder 2023-10-18 11:39:38 +00:00
Torsten Grote
40c71e4b06 [db] Reject invalid URIs when adding repos 2023-10-18 11:39:38 +00:00
Torsten Grote
aaa4b56a9d [download] Add HttpManager method for checking URI validity 2023-10-18 11:39:38 +00:00
Torsten Grote
6abf3e3a8f [db] Add execution delay in attempt to fix flaky RepoAdder test 2023-10-18 11:39:38 +00:00
Torsten Grote
35481a8011 Initial support for fdroid.link URIs 2023-10-18 11:39:38 +00:00
Aayush Gupta
17faf8d3ef Mark apps with target SDK lower than 23 as incompatiable
* Reason: https://developer.android.com/about/versions/14/behavior-changes-all#minimum-target-api-level

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
2023-10-13 23:58:05 +05:30
Torsten Grote
7c9083fea1 Add test for compat flag in AppOverviewItems 2023-10-10 11:08:10 -03:00
Torsten Grote
30ad12cc57 Fix missing flag in RepoV2StreamReceiver 2023-10-10 11:05:24 -03:00
sim
b1f73e8cb7 Do not list incompatible app
Fix #41
2023-10-10 13:50:34 +00:00
Torsten Grote
9e34611969 [index] add temporary debug hack to see what causes JsonDecodingException in FileV2 2023-09-12 14:58:05 +02:00
Torsten Grote
d4a77e4aba [download] Fix download of v1 images
As v1 images don't have a sha256 hash, we were using the name as the glide cache key. In some cases (e.g. repo icons), this caused false re-use of a cached image. Now we use the first mirror and the file name as the cache key.
2023-09-06 07:21:38 +00:00
Torsten Grote
93979a5dc7 [db] don't return default archive repos for getRepository() query based on certificate 2023-08-23 11:57:47 +02:00
Torsten Grote
1e54751142 [db] handle SerializationException when parsing index for RepoAdder 2023-08-23 10:53:44 +02:00
Torsten Grote
26b2c7b2fd Upgrade test dependencies and fix instrumentation test issue 2023-08-23 10:30:21 +02:00
Torsten Grote
f3e8a0a45b [db] Add plumping for fetching and adding a new repo 2023-08-21 10:52:34 +02:00
Torsten Grote
937fe99062 [download] expose method for getting an InputStream from a DownloadRequest
Also add a DigestInputStream variant, so we can verify the SHA-256 hash while reading from the stream.

This can be useful when we don't want to save a file, but already process a download while downloading.
2023-08-21 10:52:20 +02:00
Torsten Grote
43816ffe8d [db] validate repo certificate
for now only for initial repos, but eventually we should validate for CoreRepository as well to prevent invalid certs from entering the DB by other means.
2023-08-02 09:16:44 +02:00
Hans-Christoph Steiner
2537c9d2be skip when NameNotFoundException on adding apps to local repo
I can't really figure out this specific issue, but seems like it
should skip apps after NameNotFoundException regardless of why.  This
is used elsewhere, like `DbUpdateChecker.getSuggestedVersion()`.

Here's the error that I saw on CalyxOS:
```
android.content.pm.PackageManager$NameNotFoundException: org.calyxos.customization
  at android.app.ApplicationPackageManager.getPackageInfoAsUser(ApplicationPackageManager.java:253)
  at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:213)
  at android.app.ApplicationPackageManager.getPackageInfo(ApplicationPackageManager.java:207)
  at org.fdroid.index.v1.IndexV1Creator.addApp(IndexV1Creator.kt:67)
  at org.fdroid.index.v1.IndexV1Creator.createIndex(IndexV1Creator.kt:49)
  at org.fdroid.index.v1.IndexV1Creator.createRepo(IndexV1Creator.kt:37)
  at org.fdroid.fdroid.nearby.LocalRepoManager.generateIndex(LocalRepoManager.java:259)
  at org.fdroid.fdroid.nearby.LocalRepoService.runProcess(LocalRepoService.java:107)
  at org.fdroid.fdroid.nearby.LocalRepoService$GenerateLocalRepoThread.run(LocalRepoService.java:96)
```
2023-07-20 16:52:59 +02:00
Hans-Christoph Steiner
b9cb80db56 delete existing when copying APKs into local repo, #2629 2023-07-20 16:52:59 +02:00
Torsten Grote
8d4da28936 [app] some pre-repo mirror nitpicks 2023-07-11 13:29:45 -03:00
Michael Pöhn
bcd9cc0548 🧭 add mirrors to default_repos.xml 2023-07-11 16:19:26 +00:00
Torsten Grote
4aa244bd1a Downgrade kotlinx-serialization-json to 1.4.1 to fix #2637
https://github.com/Kotlin/kotlinx.serialization/issues/2231
2023-06-20 09:11:20 -03:00
Torsten Grote
d62e4b7735 Upgrade kotlinx-serialization-json to 1.5.1 in hope to fix #2637 2023-06-19 10:32:02 -03:00
Torsten Grote
26262e77bc [index] Require at least SDK 24 for BestLocale test 2023-06-15 10:28:40 +00:00
Torsten Grote
e80323e57f [download] TLS 1.3 is only supported on SDK 29 and up 2023-06-15 10:28:40 +00:00
Torsten Grote
7853354394 [db] Require SDK 28 for instrumentation tests 2023-06-15 10:28:40 +00:00
Torsten Grote
e83bf6f94c Run KVM tests on SDK 28 due to mock limitation 2023-06-15 10:28:40 +00:00
Torsten Grote
6a5022511e Run library instrumentation tests together with app instrumentation tests
This job already takes the longest to complete due to the slow emulator. Therefore splitting this off doesn't make much sense.
2023-06-15 10:28:40 +00:00
Torsten Grote
373d038cc9 Enable gradle build cache within each pipeline
in order to speed up the CI.

This does not enable the build cache on local dev machines.
2023-06-15 10:28:40 +00:00
Torsten Grote
b70b3a9a06 [app] Use RepoManager for enabling/disabling repos 2023-06-07 13:52:21 +00:00
Torsten Grote
e382900f39 [app] Use RepoManager for deleting repositories 2023-06-07 13:52:21 +00:00
Torsten Grote
e819741c1a [app] Introduce RepoManager for managing list of repos
Later this will also be used for adding/removing repos.
2023-06-07 13:52:21 +00:00
Torsten Grote
0b28cced32 [db] Expose repoId of category and add method to get localized icon
The repoId is needed, so we can download the category icon from the correct repo.
2023-06-07 13:52:21 +00:00
Torsten Grote
b0d04e3664 [download] increase high HTTP timeouts to 5min
Apparently, this can still be a sane choice for Tor as well :o
2023-06-07 09:47:20 -03:00
Torsten Grote
fe78d954b6 [download] Allow making connections with higher HTTP timeouts
always use that for Tor proxies
2023-06-06 11:47:16 -03:00
Torsten Grote
21f8a23814 Upgrade all (most of) the things 2023-05-30 09:39:15 -03:00
Torsten Grote
9c50183b68 Upgrade to Android Studio Electric Eel to solve some test bugs 2023-05-30 09:39:15 -03:00
Torsten Grote
d83822510c Compile libraries with SDK 33 as well 2023-05-29 12:00:49 -03:00