306 Commits

Author SHA1 Message Date
Nico Alt
a653b0156a improve AppDetails
- App icon is now 72dp x 72dp
- Description is expandable
- License, categories, Website, Source Code, Issues and Donate (#232) are moved from header to summary
- Buttons to install, update and run are moved from action bar to header
- Permissions are expandable and always shown
- Add myself to copyright holders of "F-Droid/res/layout/app_details_header.xml", "F-Droid/res/layout/app_details_summary.xml" and
"F-Droid/src/org/fdroid/fdroid/AppDetails.java"
2015-06-10 15:48:11 +02:00
Daniel Martí
ee6daf356b Bump all bundled repo versions to 13 2015-06-10 15:48:02 +02:00
Daniel Martí
5f27b65a92 Remove duplicate ICON_URL values.put() line 2015-06-08 23:53:51 +02:00
Daniel Martí
ab7067f247 Also bundle repo versions in the client
Without them, some features like proper density icons only worked after the
first update, but not on the first index update itself since the version
defaulted to 0.
2015-06-08 23:53:07 +02:00
Daniel Martí
3b962b7546 Bump to 0.92 with changelog 2015-06-08 17:06:27 +02:00
Daniel Martí
9795b31b69 Add missing language code for Sardinian in the settings
Closes #272
2015-05-30 12:19:39 +02:00
Daniel Martí
578a98250b Add script to detect missing language codes in the settings
This will prevent future issues like #272
2015-05-30 12:19:25 +02:00
Daniel Martí
38ab8ac353 Don't add count=-1 to bytesRead when finished 2015-05-30 00:51:35 +02:00
Daniel Martí
29403c1d84 Use KiB for progress in apk downloads
Quick improvement for #270, but a proper solution would be more complex to
also do MiB when appropriate. It would probably involve a modified
ProgressDialog.
2015-05-29 23:39:28 +02:00
Daniel Martí
d70fd02178 Hide more debug logs from release builds 2015-05-29 17:00:08 +02:00
Daniel Martí
02ed2293e6 Make "failed" log messages be warnings, not debugs 2015-05-29 16:59:40 +02:00
Daniel Martí
35f9900101 Update UIL to 1.9.4 2015-05-29 12:34:02 +02:00
Daniel Martí
8fd1bc39f3 Remove unused reset() from Hasher 2015-05-20 19:05:24 +02:00
Daniel Martí
8a3001465f Take some suggestions from PMD 2015-05-20 19:01:23 +02:00
Daniel Martí
3eab46d7f9 Group compileOptions together 2015-05-20 18:37:05 +02:00
Hans-Christoph Steiner
c39e1cab6e Merge branch 'fix-117/landscape-swap' into 'master'
Force entire swap process to be portrait.

Although this is usually regarded as poor form, it is currently better
than the alternative which is the whole swap process poohing itself
when a device is rotated. In the future, it may be worthwhile investing
in designing a proper UX for landscape swap too. However the process
of swapping can be quite complex if not presented well, and so it might
end up being too much work to maintain two different UXes for landscape
and portrait.

See merge request !89
2015-05-19 18:07:42 +00:00
Daniel Martí
f5ce844803 Add some missing spacings 2015-05-19 14:40:59 +02:00
Peter Serwylo
3df1327b9b Force entire swap process to be portrait.
Although this is usually regarded as poor form, it is currently better
than the alternative which is the whole swap process poohing itself
when a device is rotated. In the future, it may be worthwhile investing
in designing a proper UX for landscape swap too. However the process
of swapping can be quite complex if not presented well, and so it might
end up being too much work to maintain two different UXes for landscape
and portrait.
2015-05-19 21:41:38 +10:00
Daniel Martí
cbf59f9dd0 Fix minsdk to be 8 instead of 7
Java 1.7 is supported from 8, not 7, so we dropped support for 7 long ago.
Very few devices run 7 and quite a few things wouldn't work on 7 anyway.
2015-05-19 13:08:55 +02:00
Daniel Martí
fc52e3e1c0 Bump to 0.91 2015-05-18 23:08:32 +02:00
Daniel Martí
f41be4bbe4 Bump to 0.90-test 2015-05-15 17:37:53 +02:00
Peter Serwylo
f8578b178e Fix #254 - regression where TOFU repos were not working.
The code for promoting an untrusted repo with no fingerprint, to
a repo with a pubkey and a fingerprint, was still there. The problem
was that it was being executed after we verified the index.jar cert
against the pubkey stored against the repo (which is empty for TOFU
repos).

This change makes it so that if we are updating a repo without a
fingerprint, then it is a TOFU request, and we don't try to verify
the certificates.

closes #85 https://gitlab.com/fdroid/fdroidclient/merge_requests/85
closes #254 https://gitlab.com/fdroid/fdroidclient/issues/254
2015-05-14 23:23:14 -04:00
Daniel Martí
c5bb3adfdc Following 09444b0 - also use maxSdk when building an index 2015-05-14 17:11:14 +02:00
Daniel Martí
a936b5d070 Properly list maxSdkVersion as an incompatible reason 2015-05-14 17:07:32 +02:00
Daniel Martí
09444b0181 Also populate maxSdkVersion when parsing a package
There is no reason why this should fail, so make the default be 0.
2015-05-14 17:03:33 +02:00
Daniel Martí
70a93b01db Don't crash if links on descriptions cannot be handled
Basically the same safety net for ActivityNotFoundException that we had for
links in the menus, but for links in the descriptions too now.
2015-05-14 16:39:11 +02:00
Peter Serwylo
40925009bb Shortened log tags to below 23 chars (required by lint) 2015-05-14 22:24:40 +10:00
Peter Serwylo
52c4554877 Removed localrepo classes that were used before "swap".
All of the relevant code from them has been ported across to swap,
and they are no longer needed as a reference for how to implement
app swapping.
2015-05-14 22:24:40 +10:00
Daniel Martí
ec44c1efe5 ACCESS_SUPERUSER permission is now deprecated 2015-05-14 12:29:52 +02:00
Peter Serwylo
c33cacedaf Merge branch 'master' into 'master'
improved, but still rudimentary, hotspot handling in swap

My previous merge request fdroid/fdroidclient!78 was based on one broken assumption: `WIFI_STATE_UNKNOWN` means that the hotspot is active.  Apparently, that's not always the case.  Also, sometimes when the hotspot is active, its `WIFI_STATE_DISABLED`.  Even worse, there is no broadcast message sent on final config of the hotspot.  There is only a `WIFI_STATE_DISABLING` from turning off the wifi, but then never a broadcast for `WIFI_STATE_UNKNOWN` and/or `WIFI_STATE_DISABLED`.  But I found some tricks that seem to work for now.  We'll need to use your library, @mvdan, to really get good support of hotspots.

This also includes some basic UI tweaks to represent the hotspot mode in the swap wifi screen.

See merge request !79
2015-05-10 22:39:12 +00:00
Daniel Martí
da9396fff1 Remove unnecessary and confusing import 2015-05-10 16:08:43 +02:00
Peter Serwylo
3df03bbb1e Fix #250. Fix #251. Normalize URLs before saving, and disallow invalid URLs.
Removes trailing slashes from URLs, replaces multiple consecutive forward
slashes in the path with a single slash. Canonicalizes the URL.

If the URL is invalid, display a message to the user and don't let it get
added.

NOTE: This does *not* normalize existing URLs in the database.
2015-05-10 23:22:35 +10:00
Peter Serwylo
93339cbbfb Fix issue 246: Rewrite process for verifying existing repos.
Previously it would only compare the details of a new repo to existing
ones if the new repo came via an intent. Now it does it whenever you
change the text in the new repo dialog (shouldn't be too much of a
performance hit, it isn't doing very much).

The things it (still) doesn't do is:
 * verify that the url looks like a url
 * sanitize the newly input uri and compare it to sanitized saved repos

The second point means that you can end up with:
 http://10.0.1.50/ and
 http://10.0.1.50

both in the list. I'm going to log an issue for this, because it should
be fixed, but doesn't need to hold this up.
2015-05-10 21:56:40 +10:00
Hans-Christoph Steiner
12b3a5af12 initial sketch of how to display hotspot mode on the swap wifi screen
This is really just a placeholder, there is lots of work to be done here.
Really, this screen should have the SSID of the hotspot, but we need to use
a private API to get that.  Coming soon...

The icon is free software from:
https://commons.wikimedia.org/wiki/File:Wifi.svg
2015-05-10 00:37:05 -04:00
Hans-Christoph Steiner
962a2fb3d6 improve detection of hotspot mode
hotspot mode is not well represented with the WifiState stuff.  It can be
active when the WifiState is DISABLED or UNKNOWN.  Also, when switching
from active wifi to hotspot mode, WIFI_STATE_DISABLING broadcasts will be
sent, but WIFI_STATE_DISABLED/WIFI_STATE_UNKNOWN will not.
2015-05-10 00:37:05 -04:00
Daniel Martí
0db225e07c Bump to 0.89-test 2015-05-09 22:34:04 +02:00
Daniel Martí
05332409be Suppress fallthrough java warning 2015-05-09 22:24:41 +02:00
Hans-Christoph Steiner
96b7c35a2a rework WifiStateChangeService to support hotspots (aka WiFi AP on device)
When a device is setup as a WiFi Access Point aka "hotspot", the standard
API for getting the WiFi settings returns nothing.  We have to use a
separate API to get the IP address of the WiFi AP.  As far as I could tell,
there is no public API for getting the SSID/BSSID of the WiFi AP, so for
now that is left blank.  That means the wifi screen in swap is confusing
because it will say it is not attached when the device is a hotspot

@mvdan's https://github.com/mvdan/libaccesspoint should help there

#193 https://gitlab.com/fdroid/fdroidclient/issues/193
2015-05-09 13:41:30 -04:00
Hans-Christoph Steiner
edb3564e29 unified IP/Wifi state handling in WifiStateChangeService
To handle hotspots, this code will become more complicated.  Therefore,
first simplify things by putting all of the logic into one place, rather
than spread out across FDroidApp, the receiver, and the service
2015-05-09 13:41:30 -04:00
Hans-Christoph Steiner
2b59644e02 eliminate nested try/catch blocks for clearer code 2015-05-09 13:41:30 -04:00
Hans-Christoph Steiner
6703fa3652 rename to FDroidApp.restartLocalRepoServiceIfRunning() for clarity
This method handles checking if the service is running, and only restarts
it if it was running.
2015-05-09 13:41:30 -04:00
Hans-Christoph Steiner
c1b0b854fc on launch, check wifi if WIFI_STATE_ENABLED, the receiver handles the rest
On launch, we need to get the current state of the Wifi.  We only need to
start the WifiStateChangeService on WIFI_STATE_ENABLED, since any other
wifi state will be received by WifiStateChangeReceiver, which will launch
WifiStateChangeService when appropriate.

This reduces the chance that WifiStateChangeService will start when it is
not needed.
2015-05-09 13:41:29 -04:00
Hans-Christoph Steiner
bdc190a7d6 reset swap wifi info if it is not connected
Before, it was keeping the last active wifi, which is confusing when you
are not connected.
2015-05-09 13:41:29 -04:00
Daniel Martí
29b78df530 Remove "fdroid." from TAGs, add a comment on filtering by packagename 2015-05-08 23:28:32 +02:00
Hans-Christoph Steiner
0702183210 merge Fragment into ConnectSwapActivity to fix crash on rotate
I was getting frequent crash-on-rotate NullPointerExceptions after scanning
QR Codes.  This fixes it for me.

ConfirmReceiveSwapFragment is only ever used once in ConnectSwapActivity,
so it is a pointless abstraction.  It makes the code a lot more complicated
and also creates very complicated situations to handle when the screen is
rotated.  All of this gets much easier when everything is just included in
the Activity, since there is no problem being solved by the Fragments.
Fragments are for reusing chunks of UI in multiple places, or for showing
multiple chunks of UI in the same Activity.  Both of those cases can also
be handled, arguably better, without using Fragments:
https://corner.squareup.com/2014/10/advocating-against-android-fragments.html
2015-05-08 15:44:11 -04:00
Hans-Christoph Steiner
367387f967 move RepoUpdaterTest to the same package as RepoUpdater 2015-05-08 12:51:46 -04:00
Hans-Christoph Steiner
6e5912a633 move RepoUpdater from .updater package next to RepoXMLHandler
This gets rid of the .updater package, which now only contains RepoUpdater
2015-05-07 22:11:05 -04:00
Hans-Christoph Steiner
157b1e242f remove support for unsigned repos
This has been discussed quite a bit now.  It is very easy to generate a
signed repo on the server, and supporting unsigned repos adds complexity
and security issues, including "BZ-01-002 TOFU Requests too easy to
recognize and intercept" from the audit.

https://gitlab.com/fdroid/fdroidserver/merge_requests/48
closes #12 https://gitlab.com/fdroid/fdroidclient/issues/12
2015-05-07 22:11:05 -04:00
Hans-Christoph Steiner
1c5256a5d7 remove importRepo() method, it is very short and only used in one place 2015-05-07 22:11:05 -04:00
Hans-Christoph Steiner
4820ab3694 add forgotten import (I'm better at merge requests than direct pulls) 2015-05-07 22:10:38 -04:00