Commit Graph

66 Commits

Author SHA1 Message Date
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
Torsten Grote
d7b52abf43 [db] Clarify method documentation for clearing/resetting 2023-04-06 08:34:02 -03:00
Torsten Grote
7489f8466b [db] Rework AppDao#clearAll() method to fix critical bug
This is a breaking change.

The new method is in FDroidDatabase and called clearAllAppData(). It now also resets repository timestamps, so we will not try to apply a diff when we should use a full index.
2023-04-05 17:34:36 -03:00
Torsten Grote
21f40158a2 [db] escape search query
to prevent sqlite FTS search features from messing up query

Fixes acra-crash-reports#217
2023-03-14 13:28:48 +00:00
Torsten Grote
2500915a03 Bump library versions and update their README 2023-02-23 10:45:53 +00:00
Torsten Grote
a70f89a255 [download] Consider that MirrorChooser can auto-resume downloads as well
Also try next mirror when you need to resume, but the current one doesn't support it.
2023-02-08 21:22:12 +01:00
Torsten Grote
d2473d8ae8 [download] remove deprecated HttpGlideUrlLoader as we always use DownloadRequest with mirrors now 2023-02-01 14:25:14 -03:00
Hans-Christoph Steiner
9ab226b3fb re-add sig field for use in swap v1 compatibility checks
With index-v2, "signer" will be the only field used, since "sig" is
deprecated and should be removed.  "sig" needs to be kept only for
generating the index-v1.jar in nearby/swap repos so that it remains
compatible with older clients.  This code base should no longer use
"sig" for anything besides writing it out to index-v1.json.
2023-01-20 15:21:11 +01:00
Hans-Christoph Steiner
e3550171aa rename all cases where "sig" or "signature" should be "signer"
* "signer": standard SHA-256 fingerprint of the APK Signing Certificate
* "sig": fdroid-specific MD5 fingerprint of the APK Signing Certificate
2023-01-20 15:21:11 +01:00
Torsten Grote
7ff61fde50 [app] Don't treat apps with known-vulnerabilities like real updates 2023-01-19 08:36:04 +00:00
Torsten Grote
7a2d0e31f3 [db] Handle users with a thousand apps or more installed in AppDao 2023-01-13 08:41:37 +00:00
Torsten Grote
a474198c34 [db] Handle users with a thousand apps or more installed in VersionDao 2023-01-13 08:41:37 +00:00
Torsten Grote
6d26927b44 [download] Don't log URLs, filenames or site content in release builds 2022-12-22 11:48:02 -03:00
Torsten Grote
50722f8270 [db] Ensure that we never return an empty list of mirrors for Repository#getMirrors() 2022-12-21 14:29:06 +00:00
Torsten Grote
efafc86b87 [app] fix NPE when de-serializing apkFile
Closes acra-crash-reports#127
2022-12-20 12:09:16 -03:00
Torsten Grote
90a14f82a1 [db] Add method for clearing all app data from DB (old resetTransient) 2022-12-19 11:01:35 -03:00
Hans-Christoph Steiner
be5b7d89f8 fix ktlint
libs/database/src/dbTest/java/org/fdroid/database/AppListItemsTest.kt:68:1 Exceeded max line length (100) (cannot be auto-corrected) (max-line-length)
libs/database/src/dbTest/java/org/fdroid/database/AppListItemsTest.kt:121:1 Exceeded max line length (100) (cannot be auto-corrected) (max-line-length)
2022-12-16 11:34:46 +01:00
Isira Seneviratne
4ae3da15f0 Use PackageInfoCompat.getLongVersionCode(). 2022-12-15 18:28:29 +01:00
Torsten Grote
818767b6c0 Update Room DB schema to match actual schema used 2022-12-15 17:10:08 +00:00
Hans-Christoph Steiner
bdc77a31b3 IndexCreator: if symlink fails, copy file into repo
Roboletric apparently does not support Os.symlink, and some devices might
have wonky implementations.  Copying is slower and takes more disk space,
but is much more reliable.  So it is a workable fallback.
2022-12-01 17:43:14 +01:00
Torsten Grote
cae10f11d9 Make index file name constants public and replace their string usages 2022-12-01 17:43:14 +01:00
Torsten Grote
b1499c89d4 [db] add lastUpdated to AppListItem so it can be used for custom sorting in UI 2022-12-01 17:43:14 +01:00
Torsten Grote
367e9e9d0c [db] attach install data from PackageManager to search results
otherwise all found apps are considered not installed
2022-12-01 17:43:13 +01:00
Torsten Grote
7c5ce606d0 Explicitly bubble up NotFoundException to UI
Otherwise, the UI might not catch it and crash. This can happen if a file is not available anymore on all mirrors.
2022-12-01 17:43:13 +01:00
Torsten Grote
e86063937a Change repo attribute icons to be localized
This affects anti-features and categories. Reflection diffing has been made more robust in the process with the earlier FileV2 hack removed and better error messages.
2022-12-01 17:43:13 +01:00
Torsten Grote
3eca9402fe [db] expose preferredSigner to AppListItems (needed for picking correct version)
and add a test for checking preferredSigner in DbUpdateChecker
2022-12-01 17:43:13 +01:00
Torsten Grote
aa6f30f34d [download] properly calculate hash when resuming downloads
Before, we were ignoring the already downloaded bytes which caused the hash verification to fail.
2022-12-01 17:43:13 +01:00
Torsten Grote
6a805c464e [db] only consider enabled repos for getApp() query 2022-12-01 17:43:13 +01:00
Torsten Grote
d512c909c3 [download] Fix corrupted download after mirror fail-over bug
When we had already read bytes from one mirror, but needed to fail-over to another mirror, we would re-read the same bytes again corrupting our download.

Fixes #2412

This commit resumes the download where the last mirror left off.
2022-12-01 17:43:13 +01:00
Torsten Grote
23966e4a09 [db] Add IPFS CIDv1 to database
and support new version of download library
2022-12-01 17:43:13 +01:00
Torsten Grote
0019535279 [index] Add support for IPFS CIDv1 in the index v2 format 2022-12-01 17:43:13 +01:00
Torsten Grote
77c4506420 [download] add support for IPFS HTTP gateways
This refactors the library so that Downloaders receive the IndexFile directly so that they get access to the IPFS CID, but also to the SHA256 hash and the file size. Mirrors can now be marked as IPFS gateways.
2022-12-01 17:43:13 +01:00
Torsten Grote
eef3c3fb0d Upgrade to Android Studio Chipmunk
and upgrade other dependencies as well
2022-11-28 12:48:58 +01:00
Torsten Grote
83dd06e682 [app] upgrade dependencies 2022-11-28 10:17:30 +01:00
Torsten Grote
8c64ad4707 [db] add test for DefaultUriBuilder 2022-11-25 12:59:00 +01:00
Torsten Grote
38e7bce982 Rename EntryV2 to Entry as requested by Hans in #2443 2022-11-25 12:24:33 +01:00
Torsten Grote
6d9f3a8d7e [download] Require ktor-client-core as API dependency, otherwise consumers can't use HttpManager 2022-11-24 22:34:50 +01:00
Torsten Grote
ce1d07b4b1 [index] in v1 the whatsNew refers to suggested version not first version 2022-11-24 22:34:50 +01:00
Torsten Grote
1608502569 [index] move v1 tests from app to index
and allow permission arrays of larger size for v1
2022-11-24 20:53:19 +01:00
Torsten Grote
4d3e03b89c [download] Fix double slash in repo URLs causing redirect exceptions 2022-11-24 20:53:17 +01:00
Torsten Grote
7d84689068 [db] Verify that v2 files start with /
and add a DbV2StreamReceiverTest for it
2022-09-12 09:46:15 +00:00
Torsten Grote
6b4e91ca0b [db] Assert that DB transaction gets rolled back when index update fails 2022-09-12 09:46:15 +00:00