4854 Commits

Author SHA1 Message Date
Peter Serwylo
1d4f4ce01d Correctly handle swiping to dismiss items in updates tab.
Items which can be updated (but have not yet been downloaded or queued for download)
will act as if the user selected "Ignore this update" from the app details view.

Items which represent app statuses (e.g. downloading, downloaded ready to install,
installed ready to run) will have the status removed. If required, we will also
forget that they are ready to install, so they wont be there next time.
2017-09-27 23:31:20 +10:00
Peter Serwylo
32c17e5f72 Initial framework to allow for dismissing apps in updates tab. 2017-09-27 23:31:20 +10:00
Peter Serwylo
13e2eddb6a Static import of inner class to improve readability 2017-09-27 23:31:17 +10:00
Hans-Christoph Steiner
8bececfa58 Merge branch 'issue-1070--known-vuln--ui' into 'master'
Show apps with known vulnerabilities in the updates tab.

Closes #1070

See merge request fdroid/fdroidclient!558
2017-09-27 12:46:59 +00:00
Hans-Christoph Steiner
dc61360824 Merge branch 'weblate' into 'master'
Weblate

See merge request fdroid/fdroidclient!583
2017-09-27 09:08:21 +00:00
Hans-Christoph Steiner
fd298d26fb Weblate 2017-09-27 09:08:20 +00:00
Peter Serwylo
2bd70fc6b5 Fixed query for known vulns.
Used to work, then the default join from `fdroid_app` to `fdroid_apk`
was removed for performance reasons. This adds the join back, but requires
queries to explicitly opt in to the join if they require it. The specific
query for known vulns is not a performance problem, because sqlite is able
to narrow the result set quite substantially before requiring a join onto the
fdroid_apk table anyway (e.g. by using the "installed app" table).
2017-09-27 15:37:09 +10:00
Peter Serwylo
382ee652b8 STILL-UNTESTED: Fix for upgrading app to newer, non vuln version.
Prior to this it was just trying to uninstall the app instead.
2017-09-27 15:03:03 +10:00
Peter Serwylo
63cf0742b7 Fixes after rebasing. 2017-09-27 15:03:03 +10: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
4e544e61fb UNTESTED: Prompt the user to update an app with a known vulnerability.
Untested because there are no apps in current repos which exhibit this
behaviour which have newer versions. Right now I'm testing with com.waze
from testy.at.or.at which only has the one version.

I'm also unsure of how important this is seeing as most the time it will
prompt people to update anyway.
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
9b20142fd9 Extract getInstalledApk() from AppDetails2 to App 2017-09-27 15:03:02 +10:00
Peter Serwylo
073cb199fc Move comment to correct field. 2017-09-27 15:03:02 +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
Peter Serwylo
1fc8828122 Save per-apk anti features to join table + tests.
Also use a newer version of testy.at.or.at index for the index-v1 test,
because it includes apks with "KnownVuln" anti features whereas the
older version did not.
2017-09-27 15:03:02 +10:00
Peter Serwylo
caa1ead689 Added anti-feature table + join onto apk.
Not used yet, but will be used soon for known vulnerability anti
features.
db-version/75
2017-09-27 15:03:01 +10:00
Hans-Christoph Steiner
5d17676a01 Merge branch 'issues-1171--fdroidrepos-regardless-of-path' into 'master'
Allow any path when adding fdroidrepo(s):// intents.

Closes #1171

See merge request fdroid/fdroidclient!582
2017-09-25 12:13:12 +00:00
Peter Serwylo
91a03be6f4 Allow any path when adding fdroidrepo(s):// intents.
When explicitly given an fdroidrepo(s) intent, it seems silly to restrict it based on
a path of /fdroid/repo, because it is plainly obvious it is an F-Droid repo.
Manifest and NewRepoConfig both had to be amended to allow this behaviour.

Fixes #1171.
2017-09-25 15:43:32 +10:00
Peter Serwylo
3a79a9b07f Merge branch 'dark-ui-fixes'
Closes !571 (Manually resolved merge conflicts by rebasing locally first).
2017-09-25 10:05:45 +10:00
Christine Emrich
bd796136f7 Set sane colors for night and dark themes 2017-09-25 09:48:08 +10:00
Christine Emrich
a5caea24e7 Change dark theme ripple color from green to default gray 2017-09-25 09:48:05 +10:00
Christine Emrich
1906dd2f67 Document how themes should roughly look 2017-09-25 09:46:22 +10:00
Christine Emrich
eed9effb0e Make list divider for searches look good in dark theme too 2017-09-25 09:46:22 +10:00
Hans-Christoph Steiner
e1743c70f6 versionCode 1000003 1.0-alpha3 2017-09-12 22:38:43 +02:00
Hans-Christoph Steiner
7db7cca716 update CHANGELOG for 1.0-alpha3 2017-09-12 22:38:00 +02:00
Hans-Christoph Steiner
445c275abe Merge branch 'fix-855--fs-corruption' into 'master'
Ignore errors that are likely due to filesystem corruption (rebase with added Toast)

Closes #855

See merge request !581
2017-09-12 20:25:58 +00:00
Hans-Christoph Steiner
9cc66e035a show Toast if InstalledAppProviderService encounters EIO errors
A notification would be better, but a Toast is better than nothing.
2017-09-12 21:44:48 +02:00
Peter Serwylo
dacebceff6 Ignore errors that are likely due to filesystem corruption.
There is a specific POSIX error "EIO" which seems to be the "general
purpose we don't know what went wrong but its probably bad" exception.
Our investigations in #855 resulted in the conclusion that it is likely
due to some sort of filesystem corruption or something like that.

Either way, it is annoying many people, so we need to prevent it or
ignore it, rather than prompting the user to submit a bug report.
After much investigation it was unable to be reproduced other than by
one of the original bug reporters. As such, this change ignores it.

Unfortunately Java `IOException`s don't have an API for getting the
errno of a POSIX IO error. Thus, this change results to parsing the
exception message instead :(

Fixes #855.
2017-09-12 21:35:08 +02:00
Hans-Christoph Steiner
42fa371e1b Merge branch 'weblate' into 'master'
Weblate

See merge request !580
2017-09-12 16:07:50 +00:00
Hans-Christoph Steiner
d65273cdb9 Weblate 2017-09-12 16:07:50 +00:00
Hans-Christoph Steiner
f4766a93c5 translation tools: detect missing "other" <item> from <plurals>
"other" is the only <item> that is required, or crashes are possible.
2017-09-12 17:38:59 +02:00
Hans-Christoph Steiner
6cb3cf1627 Merge branch 'issue-1143--performance' into 'master'
performance refactor for isApp --> isApk

Closes #1143 and #1156

See merge request !579
2017-09-12 15:34:52 +00:00
Peter Serwylo
71337a49b3 Added doc comment clarifying unsigned media 2017-09-12 16:51:44 +02:00
Peter Serwylo
3a3c170781 Fix CI failures (checkstyle/pmd) 2017-09-12 16:51:44 +02:00
Peter Serwylo
595f72d5b2 Calculate whether an app is an APK or not when updating repos.
This improves performance when we need to decide whether or not apps are
installed or not while scrolling through large lists.

Fixes #1143.

Also change Jackson tests to properly ignore App#isApk.
db-version/74
2017-09-12 16:51:44 +02:00
Peter Serwylo
ac1dce24d2 Don't assume all apps have a preferred signer, as media apps don't
Fixes #1156.
2017-09-12 16:38:33 +02:00
Peter Serwylo
620affa239 Remove unneeded join onto apk which was causing performance problems.
This join resulted in one row for each apk in the result set (before
doing a GROUP BY), instead of one row for each apk. That is a large
difference in number of rows and resulted in much more work for sqlite.
Turns out this join wasn't required.
2017-09-12 16:38:33 +02:00
Peter Serwylo
80259d00ba More precise (and correct) logging of slow queries in debug mode.
Some queries are deferred, and then forced to run by Android by invoking
`getCount()`. Under these circumstances, the measured speed of the query
execution is 1ms.

This adds speed logging around `getCount()` in case that is the first time
the query is run.
2017-09-12 16:38:33 +02:00
Hans-Christoph Steiner
d42d83321b gitlab-ci: don't fail build if clbin fails
clbin is just for making the logs easy to read, if it fails, the build
should not be marked as failed, especially since the logs are probably
not needed if the rest of the job succeeded.
2017-09-06 17:00:14 +02:00
Hans-Christoph Steiner
5144aedec9 Merge branch 'issue-1115--no-versions-multisig' into 'master'
Be more helpful when no versions available due to mismatching signatures.

Closes #1115

See merge request !577
2017-09-05 10:10:14 +00:00
Peter Serwylo
ba96819e40 Prompt user to go to settings to help with incompatible versions 2017-09-05 17:02:04 +10:00
Peter Serwylo
dd93df9ef2 Show mismatching sig apks when incompatible versions enabled.
This is in the spirit of the setting, where users can see which apks are
available even though they are not installable.

Adds a message explaining why it is incompatible (i.e. because the
signature doesn't match the installed version).
2017-09-05 17:02:01 +10:00
Peter Serwylo
ef717437a9 Explain multi-sig problems to user in app details. 2017-09-05 16:33:22 +10:00
Peter Serwylo
68e0f16b7c Minor simplification to view binding for app details.
Instead of casting to more specific view holders, all to call the
similarly named/behaved "bindModel()" method, push this to a base class.
2017-09-05 16:33:22 +10:00
Peter Serwylo
fc2093a9a6 Merge branch 'animation-fixes' into 'master'
Animation fixes

See merge request !566
2017-09-05 02:18:30 +00:00
Hans-Christoph Steiner
5739706cdd Build to 1000002 1.0-alpha2 2017-09-04 23:13:35 +02:00
Hans-Christoph Steiner
5e4095f3f1 update CHANGELOG for 1.0-alpha2 2017-09-04 23:13:24 +02:00
Hans-Christoph Steiner
15b27ef1f6 fix lint TypographyEllipsis programmatically 2017-09-04 23:12:35 +02:00