16 Commits

Author SHA1 Message Date
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
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
57a00938a0 fix broken index.jar signing for swap repos
Broken in the switch to bouncycastle: 5c6c54cadfa8511296b8f7374b113c4e26b7b3a4
2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
e0d6371147 use constants for index.xml and index.jar throughout the code 2018-08-07 11:28:48 +02:00
Hans-Christoph Steiner
af7b94ff4c add Latest view to basic flavor
This is a quick hack to reuse the Latest view with a slightly simpler
layout.  It makes the "basic" flavor fully functional as an fdroid client.
The goal here is just to have something simpler with as little new code as
possible.  It is essential that the whitelabeling and "Light" aka "basic"
flavor does not increase the maintenance load.

closes fdroid/fdroidclient#48
fdroid/fdroidclient!692
fdroid/fdroidclient!695
2018-07-31 15:06:09 +02:00
Hans-Christoph Steiner
ab767ce621 purge deprecated, broken ExtensionInstaller, only works < android-20
This code is unmaintained, semi-broken, and only works on old Android
versions.  Time to go!

closes #982
2018-07-20 14:18:57 +02:00
Hans-Christoph Steiner
34c788681b ensure single progressbar is shown while doing first index update 2018-07-20 10:43:34 +02:00
Hans-Christoph Steiner
339afa1e72 show indeterminite progress if doing initial index update
#509
2018-07-19 16:35:29 +02:00
Hans-Christoph Steiner
edb9fcd044 do not crash on mystery last second null IP addresses, closes #1434
java.lang.IllegalArgumentException: Could not parse [null/24]
 at org.apache.commons.net.util.SubnetUtils.calculate(SubnetUtils.java:275)
 at org.apache.commons.net.util.SubnetUtils.<init>(SubnetUtils.java:51)
 at org.fdroid.fdroid.net.WifiStateChangeService.setIpInfoFromNetworkInterface(WifiStateChangeService.java:261)
 at org.fdroid.fdroid.net.WifiStateChangeService.access$100(WifiStateChangeService.java:50)
 at org.fdroid.fdroid.net.WifiStateChangeService$WifiInfoThread.run(WifiStateChangeService.java:132)
2018-07-12 17:34:24 +02:00
Hans-Christoph Steiner
5295b6f0d1 rename FAB id to make it easier to find 2018-07-12 17:34:24 +02:00
Hans-Christoph Steiner
11c28bff2c use nearby icon in Nearby/Swap notification
closes #871
2018-07-12 17:34:23 +02:00
Hans-Christoph Steiner
0d1cdf84f9 stop all F-Droid services when hiding by querying for list
No need to list them out manually, it is easy to get the list of what is
actually registered for this app.
!629
2018-07-11 15:58:42 +02:00
Hans-Christoph Steiner
c87f6a64f9 get "basic" flavor building and running 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