Hans-Christoph Steiner
421270ad5f
handle implied READ_EXTERNAL_STORAGE permissions
...
Having _WRITE_EXTERNAL_STORAGE_ will implied _READ_EXTERNAL_STORAGE_:
https://developer.android.com/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE
closes #1702
2019-02-14 15:33:57 +01:00
Hans-Christoph Steiner
1deec1c9b3
sanitize all packageNames from the index
...
This is insurance to make sure that packageNames are not abused for
exploiting F-Droid. The database queries already use SQL Prepared
Statements, but who know what else might be exploitable.
fdroid/fdroidclient#1588
2019-01-03 14:52:32 +01:00
Hans-Christoph Steiner
26c1ef3033
move RepoXMLHandler to org.fdroid.fdroid.data
...
This should be lumped with the classes it uses.
2019-01-03 14:52:32 +01:00
Hans-Christoph Steiner
9c8cc20a80
validate all data in repo push requests
...
This should get us closer towards not having to trust the server.
fdroid/fdroidclient#1588
https://stackoverflow.com/questions/5205339/regular-expression-matching-fully-qualified-class-names/5205467
2019-01-03 14:52:32 +01:00
Peter Serwylo
d82023b943
Add test for loading app icons from correct repository
2018-12-22 19:34:23 +11:00
Hans-Christoph Steiner
e0f346d4b4
fix repo tests after change in mirror list logic
...
Why didn't these tests fail earlier?
this should have been included in ac1a5e0ad8bed1c658885c8f6142367a3812815d
fdroid/fdroidclient!769
2018-12-21 15:26:02 +01:00
Hans-Christoph Steiner
0e5dd45859
fix a couple missed renames for IndexUpdater
...
* 0e6b4acabf72050e47dc80a273f5a5d1ec4ce222
* fdroid/fdroidclient!767
2018-12-21 00:06:15 +01:00
Hans-Christoph Steiner
0e6b4acabf
rename RepoUpdater to IndexUpdater
2018-12-17 17:17:28 +01:00
Hans-Christoph Steiner
c1db27715c
switch all SDK version values to integers, as per definition
...
```
sed -E -i 's,("[a-z]+SdkVersion": )"([0-9]+)",\1 \2,' app/src/test/resources/*.json
```
* fdroid/fdroidserver!596
* fdroid/fdroidserver#593
* fdroid/fdroidserver#596
2018-12-06 16:07:56 +00:00
Hans-Christoph Steiner
eb023887a5
fix checkstyle complaints
...
* LocalFinalVariableName
* EqualsAvoidNull
* EmptyLineSeparator
* SeparatorWrap
* LineLength
2018-10-18 15:07:54 +02:00
Hans-Christoph Steiner
409846e199
force DBHelperTest.canAddAdditionalRepos() to run on CI
2018-10-18 15:07:54 +02:00
Hans-Christoph Steiner
6dd4523d3c
clean up whitespace in repo descriptions
...
This cleans up the whitespace in the description item, since the
XML parsing will include the linefeeds and indenting in the description.
2018-10-18 15:07:54 +02:00
Hans-Christoph Steiner
1788546267
rename parseXmlRepos to parseAdditionalReposXml
2018-10-18 15:07:54 +02:00
Hans-Christoph Steiner
aace086da4
separate defaultRepos from initialRepos, which includes additionalRepos
2018-10-18 15:07:53 +02:00
Hans-Christoph Steiner
e8264d7dbb
rename REPO_XML_ARG_COUNT to REPO_XML_ITEM_COUNT
2018-10-18 15:07:53 +02:00
Hans-Christoph Steiner
95c375ac26
fix DBHelperTest to actually load and parse additional_repos.xml
2018-10-18 15:07:53 +02:00
Dimitri Rusin
dd08655d43
changed the tests: now testing only DBHelper.parseXmlRepos()
2018-09-20 19:12:14 +00:00
Dimitri Rusin
dc19b11ae1
finished additional repos test
2018-09-17 13:54:15 +00:00
Dimitri Rusin
59d0f7d6be
some minor style changes
2018-09-17 13:54:15 +00:00
Dimitri Rusin
324cb2998b
minor style changes
2018-09-17 13:54:15 +00:00
Dimitri Rusin
27e0eaad9e
implemented creating xml file on oem partition; not sure whether it works cause gradle runs forever (>20min)
2018-09-17 13:54:15 +00:00
Dimitri Rusin
895166e9db
started implementing test
2018-09-17 13:54:15 +00:00
Hans-Christoph Steiner
e215c26517
tests: ensure all database usages are properly closed
...
Leaving lots of DB connections open seems to make OpenJDK crash a lot,
giving false fails for the CI tests.
2018-08-17 10:09:59 +02:00
Hans-Christoph Steiner
90acd75b90
purge broken, semi-used root filtering preference
...
RequiresRoot should become an Anti-Feature or <uses-feature> or
something like that. Having it a one-off makes it too brittle
fdroid/fdroidclient#928
2018-07-30 18:03:12 +02:00
Hans-Christoph Steiner
109a927a68
show downloading header on Downloading/PendingInstall status
...
PendingInstall means that the user considers the install still in process,
like when F-Droid gets killed in the background. There is unfortunately no
reliable way currently to ensure that removePendingInstall() is called when
the app is finally installed so we can't use it here.
This reverts a small part of 1c50e2891054b629e2af6b2d0b1fc89e0b1cf18b
closes fdroid/fdroidclient#1527
fdroid/fdroidclient#1532
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
1c50e28910
use new PendingInstall mechanism to control AppDetails buttons
...
This should hopefully give more reliable display/hiding of the buttons.
refs #1357
2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
d9781d735c
ban internal Repo vars from being set by the index JSON
...
These things should never be settable from the server.
2018-07-11 16:05:53 +02:00
Hans-Christoph Steiner
5ffec23b2f
set default values of preferences only in preferences.xml
...
This removes a layer of redundancy where there were defaults set in the
Preferences class, as well as in preferences.xml. This makes it possible
for whitelabel versions to change the default values of the preferences by
changing it only in preferences.xml.
2018-06-18 16:46:26 +02:00
Hans-Christoph Steiner
ea80704598
split up everything into 'full' and 'basic' build flavor
...
"full" is the original F-Droid app with all the features. It should still
build the exact same app after this change. "basic" is the smallest
version of F-Droid possible. It does not yet build, nor work.
2018-06-15 23:27:03 +02:00
Hans-Christoph Steiner
b13394fdb0
run all Robolectric tests against the target SDK
2018-06-13 13:55:06 +02:00
Hans-Christoph Steiner
a3d9850a42
update to latest robolectric 3.8 and mockito 2.7.22
...
http://robolectric.org/getting-started/#building-with-gradle
2018-04-19 15:51:44 +02:00
Hans-Christoph Steiner
14474aed01
reenable line length errors on ProperMultiRepoUpdaterTest
2018-04-19 15:51:44 +02:00
Hans-Christoph Steiner
dfc6524fc1
switch Robolectric to use compile SDK version
2018-04-19 15:51:44 +02:00
Hans-Christoph Steiner
36c76070e5
Apk.versionName can be null, and the code should handle it
...
closes #1418
2018-04-17 15:30:56 +02:00
Hans-Christoph Steiner
615e559ce1
only prompt to swap back to proper swap URLs
...
Before, it was possible to annoy the user by sending HTTP POST with any
repo URL in it.
2018-04-13 00:20:52 +02:00
Hans-Christoph Steiner
34381f9cfb
simplify creation of Repo instances in tests
...
Creating a Repo instance first seems totally redundant and confusing.
2018-03-29 22:33:42 +02:00
Hans-Christoph Steiner
cc540301d1
purge all references to ICON_URL_LARGE, its unused
...
This was only partially hooked up and often not even populated.
It was added in 4895e2d790ec3b91fa4271a24e1ea0ae69d362f4, but things have
changed a lot now. We should be moving towards preferring the drawable XML
vector icons, which will scale nicely for all DPIs.
2018-03-21 20:10:37 +01:00
Marcus Hoffmann
10e2bf2a7c
add liberapay field and donation option
...
This add the liberapayID index field to the local db and then displays a
donation badge for apps that provide this.
2018-02-15 19:58:12 +01:00
Hans-Christoph Steiner
6d011c3895
use triedEmptyUpdate methods in Preferences throughout the codebase
...
We have these methods, they should be used!
2018-01-31 16:20:23 +01:00
Hans-Christoph Steiner
d8879dd425
make DBHelper follow the Java Singleton pattern
...
It was already behaving like a singleton, but the code was spread around in
other classes. DBHelper does not use a private constructor though since
the tests prevent it.
2018-01-31 16:20:23 +01:00
Michael Pöhn
96def8adca
added parsing for repository signing key property to provisioning files
2018-01-25 23:28:15 +01:00
Michael Pöhn
4a5ad0a33d
implemented parser for (repository) provisioning
2018-01-25 23:28:15 +01:00
Hans-Christoph Steiner
55aa8e9aa6
use standard buffer size for Utils.getBinaryHash()
...
While a large buffer might make things slightly faster, the smaller buffer
size should play much nicer when F-Droid is doing things in the background.
Since calculating the hash is part of the update procedure, which can now
happen in the background, this method will be often running in the
background.
The tests showed no difference in time between the large and small buffer.
2018-01-12 13:50:32 +01:00
Hans-Christoph Steiner
92f94ef195
Merge branch 'trim-names-and-summaries' into 'master'
...
Trim names and summaries
See merge request fdroid/fdroidclient!613
2017-12-01 11:17:12 +00:00
Hans-Christoph Steiner
427d0d0aa0
add 'debug' to applicationId and versionName for debug builds
2017-11-23 10:55:13 +01:00
Jonas Kalderstam
44d984786f
Trim names and summaries on database insert
...
When metadata is read from localized files such as
Fastlane/Triple-Play the names/summaries get stored on the server with
a trailing newline. This is not a problem when displaying as HTML as
in a browser but causes unwanted whitespace in the app.
See also https://gitlab.com/fdroid/fdroidserver/merge_requests/375 ,
and https://gitlab.com/fdroid/fdroidclient/issues/1114
2017-11-20 00:36:12 +01:00
Peter Serwylo
0551b0d1fc
Allow user to ignore messages about vulnerable apps
2017-09-27 15:03:03 +10:00
Peter Serwylo
5f64985b34
Added 'ignore vuln' preference for apps
2017-09-27 15:03:03 +10:00
Peter Serwylo
7424220c02
Add apps with known vulnerabilities to updates tab.
...
Currently only supports "Uninstall", but will soon also support "Upgrade
to a newer version".
2017-09-27 15:03:03 +10:00
Peter Serwylo
504854547b
Add query to get installed apps with known vuln + tests.
...
Note that I don't think the query will work correctly across multiple repos,
because it is currently only querying the app with the "preferred
metadata".
2017-09-27 15:03:02 +10:00