1857 Commits

Author SHA1 Message Date
Hans-Christoph Steiner
add211ff67 Weblate 2018-08-17 14:38:19 +00:00
Hans-Christoph Steiner
efd577b36b add Share button to "Installed Apps" to export CSV list
refs #1484
2018-08-17 15:32:27 +02:00
Hans-Christoph Steiner
aead26f02c show "Open" button when media is installed and viewable
This checks if there is an app that can view the installed media file, and
if so, it shows an "Open" button where the "Run" button is for apps.
2018-08-17 15:32:27 +02:00
Hans-Christoph Steiner
6b6ab02c9c bump to bouncycastle 1.60 2018-08-17 15:05:00 +02:00
Hans-Christoph Steiner
6db0fa6387 add clickable list of APKs to the swap HTML index page
This allows for rapid, direct download of APKs.  It is sometimes useful, as
long as it doesn't get in the way.
2018-08-17 15:05:00 +02:00
Hans-Christoph Steiner
ab8948eb5a fix "Send F-Droid via Bluetooth"
The 'com.mediatek.bluetooth' Bluetooth or android-23 devices were not
being granted URI permissions.
2018-08-17 15:05:00 +02:00
Hans-Christoph Steiner
db5ac3bdfc stop throwing an exception in DBHelper.onDowngrade()
I missed this little detail ind64a55e013882a7d6b3de646955ed68647a82e97,
the super version of this throws an exception, so it stops the downgrade.

fdroid/fdroidclient!729
2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
c291b8f0f8 retry index downloads from mirrors when failing for a networking reason
f1f56abd0f4253d69ee91bccaf09ce3730a648a3
fdroid/fdroidclient!697
2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
e02a5987d2 make DownloaderService use urlString var names like rest of code 2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
20a1b4c83d standardize on "sha256" as the hash name, like fdroidserver uses
fdroidserver has always written "sha256" to the index.xml file, so client
should use the same.  The Java hashers will correctly respond to both
"sha256" and "SHA-256", and the only place that the hashType is read from
the DB and used is in the swap repo index.xml generation, where it should
also use "sha256".
2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
20c93c64d8 eliminate .views.fragments package used by a single class 2018-08-17 14:33:50 +02:00
Hans-Christoph Steiner
8ce08c5920 fully ignore Espresso tests until something works out with gitlab-ci 2018-08-17 14:15:23 +02:00
Hans-Christoph Steiner
558dde5f77 run Deflator.end() to get rid of StrictMode errors:
java.lang.Throwable: Explicit termination method 'end' not called
	at dalvik.system.CloseGuard.open(CloseGuard.java:180)
	at java.util.zip.Deflater.<init>(Deflater.java:171)
	at kellinwood.zipio.ZioEntryOutputStream.<init>(ZioEntryOutputStream.java:35)
	at kellinwood.zipio.ZioEntry.getOutputStream(ZioEntry.java:482)
	at kellinwood.security.zipsigner.ZipSigner.signZip(ZipSigner.java:759)
	at kellinwood.security.zipsigner.ZipSigner.signZip(ZipSigner.java:664)
	at org.fdroid.fdroid.localrepo.LocalRepoKeyStore.signZip(LocalRepoKeyStore.java:213)
	at org.fdroid.fdroid.localrepo.LocalRepoManager.writeIndexJar(LocalRepoManager.java:492)
	at org.fdroid.fdroid.views.swap.SwapWorkflowActivity$PrepareSwapRepo.doInBackground(SwapWorkflowActivity.java:759)
	at org.fdroid.fdroid.views.swap.SwapWorkflowActivity$PrepareSwapRepo.doInBackground(SwapWorkflowActivity.java:709)
	at android.os.AsyncTask$2.call(AsyncTask.java:304)
	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
	at java.lang.Thread.run(Thread.java:761)
E StrictMode: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
2018-08-17 12:03:31 +02:00
Hans-Christoph Steiner
e450569a69 espresso: do extra memory clean up to keep StrictMode happy
There were some occasional StrictMode errors about multiple instances of
MainActivity.  This cleanup idea comes from Google:

6f3a38f3af
2018-08-17 12:03:31 +02:00
Hans-Christoph Steiner
9d8232472f tests: dismiss dialogs in the emulator with back button before run
The ARM emulator can show ANRs for 'system' on boot, so that dialog needs
to be dismissed before the Espresso tests can happen.

https://android.googlesource.com/platform/frameworks/testing/+/master/uiautomator_test_libraries/src/com/android/uiautomator/common/UiWatchers.java
2018-08-17 12:03:30 +02:00
Hans-Christoph Steiner
990d05dc0f skip Espresso tests on ARM emulators
ARM emulators are too slow to run these tests in a useful way.  The
sad thing is that it would probably work if Android didn't put up the
ANR "Process system isn't responding" on boot each time.  There seems
to be no way to increase the ANR timeout.
2018-08-17 12:03:08 +02:00
Hans-Christoph Steiner
fd7acd6304 disable all animations in emulator for Espresso tests
* https://gist.github.com/xrigau/11284124
* https://gist.github.com/xrigau/ea8d306e0a751fafb1e6
* https://artemzin.com/blog/easiest-way-to-give-set_animation_scale-permission-for-your-ui-tests-on-android/
* https://github.com/finn-no/android_emulator_hacks
* https://gist.github.com/caipivara/9371a79a7222a156ddad
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
2f038d81e0 error on NewApi/InlinedApi to catch compat issues with old devices 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
897a35aa76 enable lint TrustAllX509TrustManager as error 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
896d4a788f enable lint PackageManagerGetSignatures as error 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
4a684182ca enable lint "GetInstance" security check as error 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
0e6e839ed7 fix lint "WifiManager Potential Leak" 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
e75a1a7005 remove test runner that was needed by Jenkins and Eclipse
Even the project's README says it is no longer needed:
https://github.com/jsankey/android-junit-report
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
81b32120e9 fix UnusedResources errors left over from basic/full flavor split 2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
667197eeac remove old unused strings and translations
90acd75b90549d1cdc700672a6bb21cc1895f75a

fdroid/fdroidclient#928
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
8fb43b29b2 misc lint fixes
fdroid/fdroidclient!543
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
32296910df set @NotNull properly when overriding methods
fdroid/fdroidclient!543
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
ae56d5c97c set some vars to final
fdroid/fdroidclient!543
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
e5d25ae8d0 use StringBuilder when assembling the repo fingerprint for display
Should speed things up a bit, and fixes a lint issue.
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
6f88dcdbf5 fix NewApi lint issue in InstallerService.uninstall
For whatever reason, this didn't seem to cause crashes on old devices. But
better safe than sorry.
2018-08-17 10:10:00 +02:00
Hans-Christoph Steiner
0e368c6d6e only disable lint in the basic flavor for UnusedResources
My hack before was actually always making exit with success, breaking the
CI runs :-/  I loathe gradle and groovy with a passion.
2018-08-17 10:09:59 +02:00
Hans-Christoph Steiner
3d05363c31 enable Espresso tests with some basic UI tasks 2018-08-17 10:09:59 +02:00
Hans-Christoph Steiner
8cae4da748 tests: fix running test suite in Android Studio
Sometimes the test suite just totally bombs out and fails on every single
job with the same Robolectric crash.  Adding this line seems to fix it.

https://github.com/robolectric/robolectric/issues/3846

Here's the error:
java.lang.VerifyError: class org.robolectric.android.fakes.RoboMonitoringInstrumentation overrides final method specifyDexMakerCacheProperty.()V
2018-08-17 10:09:59 +02: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
wsdfhjxc
0af7c18750 Set focus on the header section if there's a changelog 2018-08-15 22:23:13 +02:00
Hans-Christoph Steiner
d64a55e013 close the database after completing the test run 2018-08-08 00:00:20 +02:00
Hans-Christoph Steiner
2cf2fe5341 when downgrading, reset the database 2018-08-08 00:00:01 +02:00
Hans-Christoph Steiner
91c84a8588 version code 1003051 2018-08-07 23:33:33 +02:00
Hans-Christoph Steiner
0d1a53863e ./tools/png-pre-compress to strip unneeded stuff 2018-08-07 23:33:33 +02:00
Hans-Christoph Steiner
fc65502ce4 make some LocalHTTPD tests require no Keep-Alive 2018-08-07 23:33:33 +02:00
Hans-Christoph Steiner
e3b26b76f6 make swap webserver never support HTTP Connection Keep-Alive
NanoHTTPD has issues with HTTP Keep-Alive, especially when other requests
are mixed in, like the /request-swap POST or perhaps the F-Droid HEAD to
fetch the ETag before the GET.

This disables gzip encoding and sets a Content Security Policy while I'm at
it.  APKs, PNGs, and JARs are already compressed, so gzip would only ever
cause problems.  And the index page is meant to be viewed by browsers, so
having a CSP will limit potential malicious swap activity.
2018-08-07 23:33:33 +02:00
Hans-Christoph Steiner
47929fa4b3 Merge branch 'master' into 'master'
bump to latest netcipher to fix TLSv1.3

Closes #1040

See merge request fdroid/fdroidclient!728
2018-08-07 18:55:25 +00:00
Hans-Christoph Steiner
b6c69f7548 Weblate 2018-08-07 16:24:00 +00:00
Hans-Christoph Steiner
2194dbd649 bump to latest netcipher to fix TLSv1.3, closes #1040 2018-08-07 17:21:38 +02:00
Hans-Christoph Steiner
738216c205 totally rework LocalHTTPD based on nanohttpd 2.3.1
The webserver was totally broken since nanohttpd had changed so much since
the swap webserver was implemented.  This syncs up with the sample file and
gets rid of our hacks.  The only differences now are the stuff that is
removed since it is totally unused in F-Droid.  This also adds a full test
suite.

this actually closes #248
2018-08-07 13:51:47 +02:00
Hans-Christoph Steiner
f1e5653601 hardcode limited MIME Types for the swap webserver
The MIME Types only need to be set on files that we are actually using to
display in the browser.  All others should not be set so that they cannot
be abused.
2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
e4c9d1d522 move requestSwap method to static Intent-sending method pattern 2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
ddb85befa6 index.xml must use "sha256" as hash type, not "SHA-256"
Otherwise the string matching in RepoXMLHandler.endElement() fails, and the
swap repo's index.xml will use "SHA-256" instead of the correct "sha256".
2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
f56fbf4dcb swap connections fail with strange errors with keep-alive enabled 2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
57a00938a0 fix broken index.jar signing for swap repos
Broken in the switch to bouncycastle: 5c6c54cadfa8511296b8f7374b113c4e26b7b3a4
2018-08-07 11:28:48 +02:00