1339 Commits

Author SHA1 Message Date
Allan Nordhøy
2a577af5a2 Translated using Weblate (Swedish)
Currently translated at 100.0% (385 of 385 strings)
2017-10-09 15:57:05 +02:00
Hadrián Candela
b3c3527b04 Translated using Weblate (Galician)
Currently translated at 100.0% (385 of 385 strings)
2017-10-09 15:57:05 +02:00
Hans-Christoph Steiner
dfcb4a15f4 Weblate 2017-10-09 12:33:45 +00:00
Peter Serwylo
de75c1fef5 Bump db version to force early adopters to upgrade db again.
Also does this with the additional field for ignoring vuln apps.
This should be safe, because there is a check for if (columnExists())
which will only pass if people don't already have this column.

Fixes #1181.
2017-10-05 17:06:11 +11:00
Hans-Christoph Steiner
fe626e3fd8 versionCode 1000005 2017-10-04 23:33:21 +02:00
Hans-Christoph Steiner
24512f6465 fix lint "DefaultLocale: Implied default locale in case conversion" 2017-10-04 23:29:36 +02:00
Hans-Christoph Steiner
58a10a9ab6 fix db upgrade from 1.0-alpha3 --> 1.0-alpha4
This should have been set to 75 in the original commit that added this:
caa1ead689eedd2023fa5b6b29bde40517d84668

#1181
2017-10-04 23:29:36 +02:00
Hans-Christoph Steiner
461fe4292b LocaleList is not properly sorted, so do our own best approx.
It seems that LocaleList does not necessarily return the "Language
Priority List" in the order that the user has prioritized things. So
we have to kind of fake it by first adding the default locale, then
adding the locales from LocaleList based on longest order first (e.g.
de-AT then de).

#987
2017-10-04 23:29:36 +02:00
Hans-Christoph Steiner
b4938879d0 Weblate 2017-10-04 21:30:32 +00:00
hotlittlewhitedog
a86b0657ff science and education category bgcolor 2017-10-03 19:39:11 +02:00
Peter Serwylo
ecd70c94b8 Be more defensive when checking cached downloads.
Attempt to fix #1172, but couldn't reproduce it. So instead made sure to
document in detail why such a defensive check was put in place.
2017-09-28 12:34:58 +10:00
Hans-Christoph Steiner
fa859466da versionCode 1000004 2017-09-27 23:03:11 +02:00
Hans-Christoph Steiner
695394fe71 Merge branch 'issue-1131--swipe-to-dismiss-updates' into 'master'
Swipe to dismiss updates

Closes #1131

See merge request fdroid/fdroidclient!584
2017-09-27 20:59:09 +00:00
Peter Serwylo
b69a26463c Allow swipe-to-refresh on categories and updates tab.
The swipe-to-refresh from the latest tab is now also implemented
for the categories and updates tab. It was a bit weird before how
you could swipe to refresh on the first tab, which would show
"Updating repos" at the top. It would then also show the same
message on the categories tab, but you couldn't swipe-to-refresh
that tab. Additionally, several people have requested this on the
updates tab, the tab where it probably makes the most sense.

Fix #1079.
2017-09-28 00:44:24 +10:00
Peter Serwylo
784733cd76 Show 'download cancelled' message when dismissing downloading app 2017-09-28 00:03:58 +10:00
Peter Serwylo
b5ae78cf4d Specify whether dismissing an item requires a list rebuild or not.
The controller in charge of dismissing an item will have an insight into
whether it will cause a re-query for an existing cursor or not. If a re-query
will occur in response to a `ContentResolver#notifyChange()` invokation (in this
case in response to updating `AppPrefs`), then the `UpdatesAdapter` doesn't
need to rebuild itself yet. If it is a status update, then it should update
the adapter right away.

Seeing as the controller was already returning one thing (a message to be
displayed in a `Toast` and now it also needs to return an opinion on whether
to rebuild the adapter or not, this has been extracted into a value object
which has a message and a rebuild adapter flag.
2017-09-27 23:48:43 +10:00
Peter Serwylo
25897df85b Update the badge on the bottom nav when dismissing 'ready to install' apps 2017-09-27 23:31:20 +10:00
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
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.
2017-09-27 15:03:01 +10: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
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 2017-09-12 22:38:43 +02: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
d65273cdb9 Weblate 2017-09-12 16:07:50 +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.
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
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