3692 Commits

Author SHA1 Message Date
Daniel Martí
72c6b86376 Merge branch 'permission-fix' into 'master'
Check that permissions are a subset of listed ones

* uses containsAll() instead of equals()

Fixes #703

See merge request !344
2016-06-27 06:40:48 +00:00
Dominik Schürmann
3162e93b35 Check that permissions are a subset of listed ones
* uses containsAll() instead of equals()

Fixes #703
2016-06-26 17:48:19 +02:00
F-Droid Translatebot
5dd95754cd Pull translation updates from Weblate
Translators:

Allan Nordhøy               Norwegian Bokmål
Allan Nordhøy               Swedish
ezjerry liao                Traditional Chinese
halcyonest                  Korean
Kristjan Räts               Estonian
Mikkel Kirkgaard Nielsen    Danish
riotism                     Chinese (Hong Kong)
Thomas Craig                Simplified Chinese
xinxinxinxinxin             French
YFdyh000                    Simplified Chinese
2016-06-25 20:51:06 +01:00
Daniel Martí
07a8b7a935 Merge branch 'emulator-v23' into 'master'
CI: replace v17 emulator with v23



See merge request !340
2016-06-23 11:02:37 +00:00
Daniel Martí
3b649138bd Bump buildToolsVersions
The new CI image has 24, not 23.0.3.
2016-06-23 11:42:53 +01:00
Daniel Martí
c7fd3f238d CI: replace v17 emulator with v23 2016-06-23 11:42:53 +01:00
Peter Serwylo
64bc13de8a Use symlink instead of hardlink, which was accidentally used on API < 19.
At the same time, also changed visibility of methods to package local
to remove need for test class.
2016-06-23 11:14:43 +10:00
Daniel Martí
95d8537187 Merge branch 'gradle-changes' into 'master'
Lint updates, update ACRA

This might fix #677, although hard to tell since I cannot reproduce the issue.

See merge request !343
2016-06-22 10:30:51 +00:00
Daniel Martí
a383c7a457 Sync changelog with stable branch 2016-06-21 17:02:10 +01:00
Daniel Martí
29689338f9 Merge branch 'master' into 'master'
two more crash fixes for 0.100.1

fixed two more from the ACRA reports

See merge request !342
2016-06-21 12:47:12 +00:00
Hans-Christoph Steiner
65cbc9dc10 do not crash if there are no cache files to delete
java.lang.NullPointerException
at org.fdroid.fdroid.Utils.clearOldFiles(Utils.java:347)
at org.fdroid.fdroid.CleanCacheService.onHandleIntent(CleanCacheService.java:51)
at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.os.HandlerThread.run(HandlerThread.java:60)
2016-06-21 14:37:01 +02:00
Daniel Martí
cd1f59fb29 Bump ACRA to 4.9.0
Also change the overrides from onCreate to init as suggested in the
changelog:

https://github.com/ACRA/acra/wiki/ChangeLog#acra-490-rc-1-2-may-2016

The behaviour should be very similar, although overriding the wrong
method (which we were doing) could cause all sorts of weird issues.
2016-06-21 13:35:29 +01:00
Daniel Martí
26f5286f97 lint: don't unnecessarily disable warnings
Those that are sometimes false positives but could still point out valid
issues should be warnings, not disabled entirely.

The first two are warnings already, the third is an error.
2016-06-21 13:26:56 +01:00
Daniel Martí
ae2def3e0d Merge branch 'master' into 'master'
a couple of fixes, including enabling lint errors to fail the CI build!

Three fixes, including enabling lint errors to fail the CI build!  Comments in the commit message. 09eea0d40bcf6b7a5612ef719177fd4ab2d2193b should be cherry-picked into stable-v0.100 for 0.100.1.  Its already in my repo as fb70aada63029e430f2b4f2fb68427e719b63753.

See merge request !341
2016-06-21 11:50:24 +00:00
Hans-Christoph Steiner
09eea0d40b ignore "java.lang.IllegalArgumentException: Could not parse [null/24]"
This is currently baffling me as to how it can happen.  This isn't a pretty
fix but it is better that letting F-Droid crash.  db9bdc31 was supposed to
make it so that only one thread at a time ever updated the static vars on
FDroidApp.

closes #690
2016-06-21 13:03:37 +02:00
Hans-Christoph Steiner
ba88bd7060 only show update notification if updates are going to happen
UpdateService.onHandleIntent() starts with a time check for whether an
update is actually scheduled.  Before, UpdateService put up a notification
when it started.  This changes it so that the notification is put up after
the check, so it should only show the notification if UpdateService is
actually going to run, and no longer when it is just waking up to check the
time.

!307 #662
2016-06-21 12:52:05 +02:00
Hans-Christoph Steiner
80b158e7d6 enable build fail on lint error to catch them in CI builds
The spongycastle issue is taking a long time to get resolved, has not yet
affected us, and would be a lot of work to fix in a different way. So the
'InvalidPackage' error is just disabled for now.
2016-06-21 12:52:05 +02:00
Daniel Martí
015343f9df Bump to 0.101-alpha1 v0.101-alpha1 2016-06-20 21:52:26 +01:00
F-Droid Translatebot
d718528466 Pull translation updates from Weblate
Translators:

Danial Behzadi     Persian
ezjerry liao       Traditional Chinese
Marian Hanzel      Slovak
xinxinxinxinxin    French
2016-06-20 21:51:32 +01:00
Daniel Martí
34aa8ab062 Merge branch 'apkfileprovider' into 'master'
Provide content Uris to downloaded apks via FileProvider

* moves apk verification back inside the Installer class
* uses support libs FileProvider for content Uris
* move apk file caching and storage methods into ApkFileProvider class

Some of the ugly version checks for Android N can be removed after Android N has been released. Unfortunately Google decided to keep SDK version at 23 for Android N dev preview and only change the CODENAME, thus ``Build.VERSION.SDK_INT <= Build.VERSION_CODES.M`` returns true on Android N preview :/ , see https://commonsware.com/blog/2016/03/17/backwards-compatibility-n-developer-preview.html

Tested on Android N dev preview 3 emulator, Android 6 stock and Android 5.1 rooted with priv extension.

See merge request !331
2016-06-20 15:44:26 +00:00
Daniel Martí
ef403928cf Merge branch 'issue-564--filter-anti-features--refactor-and-test-in-prep' into 'master'
Tests + Refactorings in preperation for #564  (Filter anti features)

As described in #564, there is a small amount of ground work to be done in order to support a UI for filtering anti features. This is the first stage of that. A subsequent MR will add a database migration to put anti features in their own table, and have a join table between apps and anti features. See commit messages for more detailed descriptions.

See merge request !339
2016-06-20 14:53:20 +00:00
Peter Serwylo
243bb1948f Added tests for two helper methods for comma separated string parsing. 2016-06-21 00:21:19 +10:00
Peter Serwylo
a192389318 Completely removed CommaSeparatedList class, replaced with two helper methods in Utils.
The two helper methods alleviate the need for copious null checks. They also provide
consistent behaviour when there are zero elements (i.e. they return null, rather than
an empty string or empty array, as was the case before).
2016-06-21 00:21:19 +10:00
Peter Serwylo
d99b357a1f Replace CommaSeparatedList with String[].
This is a combination of:
 * `String[].split(",")` and
 * `TextUtils.join(",", values)`

It seems a bit wastefull to have our own implementation of these two things
which lightly wrap this code, and produce a datastructure which is non standard
and foreign to Java developers.
2016-06-21 00:21:19 +10:00
Peter Serwylo
57c63a8e2a Test coverage of anti feature parsing in RepoUpdater. 2016-06-21 00:21:19 +10:00
Dominik Schürmann
5facd1b9a1 Proper SDK 24 version check
* not targetting SDK 24 due to
  https://gitlab.com/fdroid/fdroidserver/issues/185
2016-06-20 14:53:43 +02:00
Dominik Schürmann
16f97125d7 Provide content Uris via FileProvider
* moves apk verification back inside the Installer class
* uses support libs FileProvider for content Uris
* move apk file caching and storage methods into
ApkCache class
2016-06-20 11:07:06 +02:00
Daniel Martí
780c3968b5 Merge branch 'alpha1' into 'master'
version bumps before alpha1

The more we test these updates the better, so the best moment to update libs is now.

See merge request !338
2016-06-19 22:00:47 +00:00
Daniel Martí
4fbc327a91 Bump robolectric to 3.1 now that it's out
And remove the now unnecessary -rc justification comment.
2016-06-17 15:51:50 +01:00
Daniel Martí
3d59f4f192 Bump commons-net to 3.5 2016-06-17 15:51:50 +01:00
Daniel Martí
b71cb37cad Bump commons-io to 2.5 2016-06-17 15:51:50 +01:00
Daniel Martí
1ac53078ee Bump support libs to 24.0.0
Also bump the docker image since it contains the newer support m2 repo.
2016-06-17 15:51:25 +01:00
Daniel Martí
783d6d1ba6 Remove now unused ic_stat_notify
The code that used it got removed for good in f6cc716f.
2016-06-17 15:29:38 +01:00
F-Droid Translatebot
5dd1cd6ee6 Pull translation updates from Weblate
Translators:

Francesco Giordano    Italian
Jaroslav Lichtblau    Czech
Mutante Citta         Italian
2016-06-16 20:59:55 +01:00
Daniel Martí
95b7201868 Merge branch 'fix-582--lint-errors' into 'master'
Extracted new API styles dependent on API 16 and 17 into values-17.

This involved the typical Android design pattern of a "Base" style in
`values/styles.xml`, then the an empty normal style which uses that Base style
as a `parent` also in `values/styles.xml`, and finally any API specific
styles in another version of the normal style in a `values/styles-v17` folder.

Same was done for android:actionBarStyle moving it into into values-v11.
This time, didn't worry about the base style, because there was not much to be
gained. by doing so.

Fixes #582.

See merge request !335
2016-06-16 19:44:08 +00:00
Daniel Martí
4f67437bc9 Merge branch 'two-0.101-fixes' into 'master'
Two 0.101 fixes

This includes two fixes for 0.101.  One of them has already been included in stable-v0.100 for 0.100.1.

See merge request !337
2016-06-16 19:14:25 +00:00
Hans-Christoph Steiner
89e2c9948a fix off-by-one error in update check for db-version/56
We missed an off-by-one in my previous DB change:
90467bf8bf2f8e4a46cb1db563154df4035bf746

This causes the installed app parsing to happen on each start when on any
build that is on db-version/56.  Its not a big deal since the broken code
was not shipped at all, even in an alpha.
2016-06-16 16:50:29 +02:00
Hans-Christoph Steiner
5523a443f8 never have null Apks in InstallManagerService
In order to avoid having null guards making the code ugly, use a "blank"
instance of Apk which will work for the various comparisons.  This fixes
this crash:

fixes #688

java.lang.NullPointerException
	at org.fdroid.fdroid.installer.InstallManagerService$4.onReceive(InstallManagerService.java:243)
	at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297)
	at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46)
	at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116)
	at android.os.Handler.dispatchMessage(Handler.java:102)
	at android.os.Looper.loop(Looper.java:136)
	at android.app.ActivityThread.main(ActivityThread.java:5001)
	at java.lang.reflect.Method.invokeNative(Native Method)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
	at dalvik.system.NativeStart.main(Native Method)
2016-06-16 16:50:29 +02:00
Daniel Martí
e285fd6f38 Merge branch 'prep-providers-for-download-progress' into 'master'
Improve order by/selection logic for database layer.

This was extracted from the postponed !311.

The order by stuff previously only allowed specifying a particular field. We should also be able to sort based on arbitrary expressions, and such expressions will require the ability to bind arguments using the "?" syntax. This change provides a Java abstraction for the order by, and improves the handling of selection arguments that need to bind to "?" so that both the selection (i.e. `WHERE` clause) and the `ORDER BY` clause can provide arguments as required.

See merge request !329
2016-06-16 13:00:45 +00:00
Daniel Martí
81ff5f3cd2 Merge branch 'fix-686--install-npe' into 'master'
Make sure to query package manager for `PackageInfo` when required.

A previous commit accidentally pushed the code which queries the
`PackageManager` to a different method, but then still used the
`packageInfo` which was supposed to be populated by that code.

This change rectifies this, and in the process also clarifies/documents under
what circumstances the `PackageManager` needs to be queried, rather than
relying on the incoming intent.

Fixes #686.

See merge request !336
2016-06-16 10:24:24 +00:00
Peter Serwylo
3f9370371b Make sure to query package manager for PackageInfo when required.
A previous commit accidentally pushed the code which queries the
`PackageManager` to a different method, but then still used the
`packageInfo` which was supposed to be populated by that code.

This change rectifies this, and in the process also clarifies/documents under
what circumstances the `PackageManager` needs to be queried, rather than
relying on the incoming intent.

Fixes #686.
2016-06-16 16:26:23 +10:00
Peter Serwylo
aae87eb92e Extracted new API styles dependent on API 16 and 17 into values-17.
This involved the typical Android design pattern of a "Base" style in
`values/styles.xml`, then the an empty normal style which uses that Base style
as a `parent` also in `values/styles.xml`, and finally any API specific
styles in another version of the normal style in a `values/styles-v17` folder.

Same was done for android:actionBarStyle moving it into into values-v11.
This time, didn't worry about the base style, because there was not much to be
gained. by doing so.
2016-06-16 15:37:19 +10:00
Peter Serwylo
f023cd7757 Improve order by/selection logic.
The order by stuff previously only allowed specifying a particular field.
We should also be able to sort based on arbitrary expressions, and such
expressions will require the ability to bind arguments using the "?" syntax.
This changes provides a Java abstraction for the order by, and improves
the handling of selection arguments that need to bind to "?" so that both
the selection (i.e. WHERE clause) and the ORDER BY clause can provide
arguments as required.
2016-06-16 09:34:50 +10:00
Hans-Christoph Steiner
d47e87e53b Merge branch 'fix-685--downloading-unknown' into 'master'
Ask for all fields from the content provider.

**To be cherry-picked into `master` as well as this merge into `stable-v0.100`**

Fixes #684. 

![fixed](/uploads/dcef00026427778c9180b7da7ab0a9ee/fixed.png)

Ask for all fields from the `ContentProvider`.
    
It is not a particularly expensive operation in the scheme of things. When we are going to the database, the bottlneck is in disk access for the actual query of the database tables (looking up indexes, performing joins, etc). The difference between retrieving two columns or all the columns when the query is for a handful of apps is inconsequential. 
    
Thus, it is better to be safe than sorry and just ask for all the things so that our value objects are correctly populated. There are indeed suitable times to only request specific fields, but I'd suggest that they are probably only when we need to ask a question about thousands of apps at a time, and then the heap space becomes a concern.

See merge request !328
2016-06-14 21:40:17 +00:00
Peter Serwylo
f3cb1d5bd4 Ask for all fields from the content provider.
It is not a particularly expensive operation in the scheme of things. When we
are going to the database, the bottlneck is in disk access for the actual query
of the database tables. The difference between retrieving two columns or
all the columns when the query is for a handful of apps is inconsequential.

Thus, it is better to be safe than sorry and just ask for all the things so
that our value objects are correctly populated.
2016-06-15 06:12:17 +10:00
Daniel Martí
4685d82ee6 Remove a couple of unused strings
Updates #684.
2016-06-14 11:45:07 +01:00
F-Droid Translatebot
679fdb3fb1 Pull translation updates from Weblate
Translators:

Adrià García-Alzórriz    Catalan
Daniel Martí             Catalan
Enol Puente              Asturian
ezjerry liao             Traditional Chinese
Jonatan                  Swedish
Miss Min                 Persian
Nutchanon Wetchasit      Thai
Sergio Oller             Catalan
2016-06-14 11:35:45 +01:00
Daniel Martí
eac0df88af CI: bump image 2016-06-13 23:36:13 +01:00
Daniel Martí
05a5041971 Merge branch 'verify-target-sdk' into 'master'
ApkVerifier: check targetSdkVersion



See merge request !333
2016-06-13 21:19:32 +00:00
Dominik Schürmann
174b1d108f ApkVerifier: check targetSdkVersion 2016-06-13 20:42:08 +02:00