422 Commits

Author SHA1 Message Date
Peter Serwylo
38059ec324 WIP: Initial state handling for swap process.
The state is saved to a preference file, but that is abstracted from
the SwapWorkflowActivity. It interacts with a SwapState object, which
is relatively safe in that you should not be able to save it into an
invalid state.

Note: At this point it is not tied to any service. I'm not sure it will
ever have to be either, as the service needs to persist state somewhere
anyway, so that will probably also end up saving to a preferences file
too.
2015-05-23 13:17:33 +10:00
Peter Serwylo
38eafdeedd WIP: Refactored wifi QR fragment into view.
As per the select apps list, there is quite a bit of business logic
in this class, which is now spread between the activity and the view.
The activity needs to handle some stuff, because the zxing library
routes intents to either an activity or a fragment.
2015-05-23 01:11:16 +10:00
Peter Serwylo
97994c5e43 WIP: Refactored NFC fragment to view. 2015-05-23 00:55:39 +10:00
Peter Serwylo
1fd6e447af WIP: Refactored join wifi fragment into view.
There is quite a lot of business logic that was moved directly from
the fragment to the view. Before this feature is complete, that logic
should either be moved into the activity, or into some sort of
associated Presenter class for the JoinWifiView.
2015-05-23 00:46:40 +10:00
Peter Serwylo
4f7f7b2cb5 WIP: Refactored select apps to swap into view.
Not worrying about styling yet, just functionality. Added an InnerView
interface that these views can implement. Currently it asks them to
populate the menu. It may be slightly inefficient if we end up with a
popup menu, because it is called onPrepareOptionsMenu, but expects the
inner view to inflate the menu. However, for swap this shouldn't be an
issue, as all the menus pretty much fit in the action bar of most screen
sizes.
2015-05-23 00:10:50 +10:00
Peter Serwylo
b6415dadb4 WIP: Refactored start swap fragment into a view.
Added a SwapWorkflowActivity to re-implement the SwapActivity.
Once all the fragments have been refactored into views, then the
SwapActivity will be removed.
2015-05-23 00:10:07 +10:00
Dominik Schürmann
767db8a598 Improve system install process by killing FDroid to prevent hanging, cleanup dialog builders 2015-05-20 23:56:50 +02:00
Peter Serwylo
f298ed7156 Merge branch 'fix-263/explicitly-add-swap-repo' into integration 2015-05-21 07:52:35 +10:00
Peter Serwylo
3aac399456 Merge branch 'fix-267/nfc-swap' into integration 2015-05-21 07:52:10 +10:00
Dominik Schürmann
fc631c8781 Better strings for system installer, cleanup 2015-05-20 23:27:57 +02:00
Dominik Schürmann
b393befb70 Implement notification for install into system feature 2015-05-20 21:59:24 +02:00
Dominik Schürmann
2befa22b2c Remove uneeded case of no new permissions in InstallConfirmActivity 2015-05-20 21:59:24 +02:00
Dominik Schürmann
f48236deb9 Do not show install confirm activity if there are no new permissions, externalize app diff for this functionality 2015-05-20 21:59:24 +02:00
Dominik Schürmann
62a4d58756 Use right theme in InstallConfirmActivity, cleanup 2015-05-20 21:59:24 +02:00
Daniel Martí
8e62d9ae7e Add install confirm+perms screen to SystemInstaller 2015-05-20 21:59:24 +02:00
Daniel Martí
6e89a55879 Add confirmation dialog to uninstalling via SystemInstaller 2015-05-20 21:56:45 +02:00
Dominik Schürmann
a7aa554f66 Remove root installer 2015-05-20 21:56:45 +02:00
Dominik Schürmann
51b2aeda1a Rename for consistency 2015-05-20 21:56:45 +02:00
Dominik Schürmann
03b7f59dce Add missing chmod command 2015-05-20 21:56:45 +02:00
Dominik Schürmann
709bd9d699 Simplify subclass changes, fix mkdir missing on lollipop 2015-05-20 21:56:45 +02:00
Peter Serwylo
4775c17653 Refactored system app converter into classes.
The multiple occurances of "if (Build.SDK_INT < ... )" statements
hint at the prospect that there are a couple of different implementations
of this class which behave differently. The new classes start with
InstallFDroidAsSystem, and then there are SDK specific subclasses
which provide the customization relevant for those subclasses.
2015-05-20 21:56:44 +02:00
Dominik Schürmann
c27d8f6287 Enable system installer directly on first start if FDroid is a system-app 2015-05-20 21:56:44 +02:00
Dominik Schürmann
dbbad1c95c Finish transparent activity on dialog cancels 2015-05-20 21:56:44 +02:00
Dominik Schürmann
f328a9de5e Install F-Droid as system-app via root access 2015-05-20 21:56:44 +02:00
Dominik Schürmann
9f7536a926 Allow downgrade via root installer 2015-05-20 21:56:44 +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
Peter Serwylo
9824e8df09 NFC swap now goes to confirm swap, not manage repos activity.
The NFC message now is handled by the FDroid activity, so it is treated
the same way as every other incoming repo URL. Because FDroid handles
incoming intents correctly, the NFC one just magically works when
the <intent-filter> is moved from ManageReposAcivity to FDroid without
further code changes.

The other change is that the two way swap only happens when both are
actually swapping. Otherwise, we will send a request for someone to
swap with us, when we are incapable of swapping with them.

Fixes #267.
2015-05-20 22:10:18 +10:00
Peter Serwylo
5065c37e13 Fix #263 "cannot manually add repo that was swapped before"
Pretends that the swap repo never existed, by deleting it before adding
the new repo, and showing the same message that is shown when a new
repo is added. This does not change behaviour for existing non-swap
repos. They are not deleted before being added again, or else we would
lose the ability to verify the fingerprint of an existing repo is the
same as a newly added one with the same URL.

Note that this has the effect that the fingerprint/pubkey of the swap
repo is nuked when adding that repo manually.

Internationalised the string "BAD FINGERPRINT" while I was at it.
2015-05-20 08:26:57 +10:00
Daniel Martí
f5ce844803 Add some missing spacings 2015-05-19 14:40:59 +02: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
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
92430e163e WIP 2015-05-14 18:40:25 +10:00
Peter Serwylo
cb73e6352c Cleaned up some lint errors, i18n some strings. 2015-05-14 10:00:11 +10:00
Peter Serwylo
6f3ca8b9c4 WIP: Making 'scan' UI more solid 2015-05-13 16:54:50 +10:00
Peter Serwylo
d7b7af76b7 Cleanup after rebase. 2015-05-13 16:54:17 +10:00
Peter Serwylo
5e80b04266 WIP: Improving streme handling for bluetooth swap connections.
Brought in an Apache 2.0 licensed file from apache commons to help
with this, which is one of many similar classes online that do the
same thing. At this stage, didn't feel like pulling in all of apache
commons as a dependency.
2015-05-13 16:54:17 +10:00
Peter Serwylo
41b3eab1fd WIP: Bluetooth successfully sending entire HTTP responses to GET requests.
Now to move the code into a BluetoothDownloader and decide how best
to handle connections, error handling, multiple downloads over one
socket, etc.
2015-05-13 16:54:16 +10:00
Peter Serwylo
7dff9a9499 WIP: Bluetooth communication between devices is up and running (not finished).
Devices now make themselves discoverable, and the client sends a test ping.
They UI is not styles properly though, and it doesn't handle the case where
somebody chooses to make their device not-discoverable (because the desired
peer is already paired and it is unneccesary). It also doesn't handle failure
anywhere.
2015-05-13 16:53:10 +10:00
Peter Serwylo
fba02e32b5 WIP: Bluetooth list of paired devices. 2015-05-13 16:39:10 +10:00
Peter Serwylo
92e4d99c1c Added material icons from CC licensed "Google material icons" set.
Fixes #240.

To make this easier, I added a script to aid in downloading icons.
Checkout F-Droid/tools/download-material-icon.sh for more details.

The icons are licensed under the CCv4 attribution license, which I
added a shout out to under "License" in the README.md.
2015-05-12 01:26:31 +10: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