5440 Commits

Author SHA1 Message Date
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
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
e8ec045c55 Merge branch 'finalize-basic-flavor' into 'master'
add Latest view to basic flavor

Closes #48

See merge request fdroid/fdroidclient!723
2018-08-02 08:59:28 +00:00
Hans-Christoph Steiner
8ad951317a set basic flavor app name to "F-Droid Basic" 2018-07-31 16:20:31 +02:00
Hans-Christoph Steiner
cdf419d1fe set Basic to use auto-download by default
This will give us a nice testing ground for how this will work for the main
build flavor.

fdroid/fdroidclient#932
2018-07-31 16:20:07 +02:00
Hans-Christoph Steiner
49e1e0bf17 add separate, rough icon for F-Droid Basic 2018-07-31 16:09:45 +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
8e0c355534 version code 1003050 1.3 2018-07-31 14:40:32 +02:00
Hans-Christoph Steiner
a0bc2335ef update changelog 2018-07-31 14:40:32 +02:00
Hans-Christoph Steiner
6c6e3ad82d Merge branch 'finalize-1.3' into 'master'
Finalize 1.3

Closes #1438, #1533, and #1527

See merge request fdroid/fdroidclient!721
2018-07-31 11:11:12 +00:00
Hans-Christoph Steiner
8f393d9f43 hide "Include touchscreen apps" pref on devices with touchscreen
closes fdroid/fdroidclient#1438
2018-07-31 12:19:07 +02:00
Hans-Christoph Steiner
3a501c9eac show PendingInstall and Installing in the Updates tab 2018-07-30 18:03:45 +02:00
Hans-Christoph Steiner
fe37695751 show "Anti-features" in list view when app is filtered
closes fdroid/fdroidclient#1533
2018-07-30 18:03:45 +02:00
Hans-Christoph Steiner
90acd75b90 purge broken, semi-used root filtering preference
RequiresRoot should become an Anti-Feature or <uses-feature> or
something like that. Having it a one-off makes it too brittle

fdroid/fdroidclient#928
2018-07-30 18:03:12 +02:00
Hans-Christoph Steiner
109a927a68 show downloading header on Downloading/PendingInstall status
PendingInstall means that the user considers the install still in process,
like when F-Droid gets killed in the background.  There is unfortunately no
reliable way currently to ensure that removePendingInstall() is called when
the app is finally installed so we can't use it here.

This reverts a small part of 1c50e2891054b629e2af6b2d0b1fc89e0b1cf18b

closes fdroid/fdroidclient#1527
fdroid/fdroidclient#1532
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
8f8aa44f43 simplify reseting package when coming to App Details screen 2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
395efa2e3f mark app as installed only after F-Droid has processed the installed APK
InstalledAppProviderService also updates the AppUpdateStatus of any
package installs that are still in progress.  Most importantly, this
provides the final status update to mark the end of the installation
process.  It also errors out installation processes where some outside
factor uninstalled the package while the F-Droid process was underway, e.g.
uninstalling via adb, updates via Google Play, Yalp, etc.

fdroid/fdroidclient#1536
fdroid/fdroidclient#1357
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
7d808b6e73 prevent Update button in Updates tab from being clicked multiple times
fdroid/fdroidclient#1357
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
a2361df854 hide "Update All" button once clicked to prevent repeated clicks
fdroid/fdroidclient#1357
2018-07-30 18:02:03 +02:00
Hans-Christoph Steiner
e49d8c92df remove unused eu.chainfire:libsuperuser library
I forgot to remove this in ab767ce621b92c5aa82c16e1edfd0aa724293391

fdroid/fdroidclient#982
2018-07-30 18:02:03 +02:00
Markel Cuesta Manciles
d4ebed134d Translated using Weblate (Spanish)
Currently translated at 99.3% (432 of 435 strings)
2018-07-30 17:28:56 +02:00
Omar Aglan
fb98c75210 Translated using Weblate (Arabic)
Currently translated at 99.7% (434 of 435 strings)
2018-07-30 17:28:51 +02:00
Hans-Christoph Steiner
6184bf6813 Merge branch 'weblate' into 'master'
Weblate

See merge request fdroid/fdroidclient!720
2018-07-30 12:29:50 +00:00
Hans-Christoph Steiner
9cd3d81783 Weblate 2018-07-30 12:29:50 +00:00
Hans-Christoph Steiner
94e87d83c5 version code 1003005 1.3-alpha5 2018-07-21 00:52:13 +02:00
Hans-Christoph Steiner
2aa72ff2ac update CHANGELOG 2018-07-21 00:52:13 +02:00
Hans-Christoph Steiner
6876088ede Merge branch 'big-install-process-event-overhaul' into 'master'
Big install process event overhaul

Closes #1357

See merge request fdroid/fdroidclient!717
2018-07-20 22:55:23 +00:00
Hans-Christoph Steiner
01280d65a5 show different inline button when installing app
This could definitely use a better design treatment, but at least it is
better than showing the "click to install" button again during the install
process.

closes #1357
2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
5e75bc060c remove unneeded method, it is only called once by the method above 2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
8feb735140 disable inline install/progress button when active
refs #1357
2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
1c50e28910 use new PendingInstall mechanism to control AppDetails buttons
This should hopefully give more reliable display/hiding of the buttons.

refs #1357
2018-07-21 00:49:53 +02:00
Hans-Christoph Steiner
bda755584f Merge branch 'whitelabel-privileged-extension' into 'master'
support whitelabeled Privileged Extension

Closes #982

See merge request fdroid/fdroidclient!716
2018-07-20 22:09:21 +00:00
Hans-Christoph Steiner
d1cbbe72d7 when canceling download, delay removeApk() until its no longer needed
This was deleting the Apk from appMapping too fast, so the later status
updates couldn't be sent.
2018-07-21 00:07:54 +02:00
Hans-Christoph Steiner
2ff47ed5c3 remove unneeded startInstall() method to make tracing easier
Now tracing where .queue() is used is more direct.
2018-07-21 00:07:54 +02:00
Hans-Christoph Steiner
4bf1a4fa2b App Details: do not show cancel X on installing/uninstalling
It is not possible to cancel these, so do not show the X button.  This is a
hacky way to do it, but I couldn't see another way.
2018-07-21 00:07:54 +02:00
Hans-Christoph Steiner
a1edfdfc8d PendingInstall event for announcing start of process
This adds a new PendingInstall event which broadcasts that an install
process has started, but the state of it is not yet known, like
whether it needs to be downloaded still, or is ready to install.  It
marks the very first step of the whole InstallManagerService process.

Installer events should only be directly related to the install process as
managed by the Installer set of classes.  The newer AppStatusUpdate stuff
now tracks the whole lifecycle of the process.

This mostly reverts f0d6acd974548e24662a64271ae57922f74c3225 since there is
now the overarching concept of "Pending Install" to mark packages that are
somewhere in the whole process.

refs #828
refs #1357
2018-07-21 00:07:54 +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
b75fc8e011 let whitelabel builds set custom Privileged Extension
For fullstack custom builds, they'll also need a whitelabel build of
Privileged Extension, which will have a different Application ID and
signing key than F-Droid Privileged Extension.
2018-07-20 13:54:07 +02:00
Hans-Christoph Steiner
e374a3da5a Merge branch 'first-run-index-update' into 'master'
First run index update

See merge request fdroid/fdroidclient!714
2018-07-20 11:23:22 +00:00
Hans-Christoph Steiner
25016fdb2f gitlab-ci: switch to 24 emulator to get some useful results
The emulator support seems to have totally melted down, so this is a step
back towards the old working setup.
2018-07-20 12:27:04 +02:00
Hans-Christoph Steiner
2040d885f2 do not show Data/WiFi Settings Toast if device has no internet
Before, if the Data/WiFi Settings made it so the update process is not
allowed to run and the device was not offline or in Airplane Mode, it would
show this Toast then it would show the "your device is offline" Toast.
2018-07-20 10:43:34 +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
048d5531be only first trigger initial repo update if it is not already happening
I was seeing double index updates on first start.
2018-07-19 16:35:29 +02:00
Hans-Christoph Steiner
0d386b824f merges triedEmptyUpdate and lastUpdateCheck prefs into one useful one
This merges the triedEmptyUpdate preference into the lastUpdateCheck pref,
and uses that to determine whether the index update has ever run.  It seems
that lastUpdateCheck used to be used for that, but was semi-disabled. Then
triedEmptyUpdate was added. This merges the two into lastUpdateCheck, which
also tracks the timestamp of the last index update.
2018-07-19 16:34:14 +02:00