Age | Commit message (Collapse) | Author |
|
|
|
|
|
We no longer use BundleExtras named as the action ProviderAPI is
intended to perform, but we standardise this name
(ProviderAPI.PARAMETERS), and use setAction to pass that action string.
|
|
New login dialog shows the original username, so that if the user failed
writing his/her password, s/he does not have to write again the
username.
|
|
This fixes #3287
|
|
|
|
If login is successful, dialog is dismissed and toast is showed.
If login is not successful and the user cancels the new login dialog
presented to him/her, then Dashboard is showed.
|
|
If the CA cert was correctly downloaded, we assume it can be used to
validate the string download.
If CA cert cannot validate that connection, then if the trust completely
checkbox was checked it will try with the other methods. If it was not
checked, a certificate error is shown (telling the user the
provider is not trusted).
|
|
Only if all downloading methods fail and the last one throws an
IOException, the certificate error message toast is shown.
|
|
I've also rearranged how we handle SSL errors. In first place, if the
user checked the "Trust completely" checkbox, leap_android tries to use
the CA cert pointed out by provider.json.
If that does not succeed, it uses an always-returning-true hostname
verifier (this was previously done before using CA cert).
|
|
|
|
|
|
|
|
Fixes VPN reconnection when framework rebuilds view, triggering onCheckedChangeListener
|
|
|
|
|
|
Includes AlertDialog if the user attempts to stop EIP while a connection is being established
|
|
|
|
|
|
|
|
|
|
If an empty json string is received after sending M1 (that means no M2
in return), bad user/password message is shown.
This fixes bug 3153.
|
|
Login option is not shown if the user is already logged in, and logout
option is not shown if the user is not logged in.
I've also removed a debug line from ProviderDetailFragment, which
returned true when it returned false because of an exception.
|
|
LeapHttpClient can fetch the main CA certificate downloaded from the
provider and add it to its in-memory keystore, without saving the
certificate in a file.
This is a very important feature, I think it can be cherry picked (it has
little modifications, and very localized).
It's very important because authentication does not work without this
bug fix in the latest branches, because I removed the code that saved
the certificate in a file but didn't test the authentication part.
|
|
If a download didn't occurr due to an IOException, we assume it was for
an SSL error and notify the user telling him/her that LEAP provider is
not trusted.
|
|
I've set ProviderAPI to show its own toast depending on the exception
that getStringFromProvider issues. If the socket timeout reaches its
end, a toast different from when an IOException or a MalformedException
occur.
|
|
Feature #3023 first solution.
I don't like to tell anything to the user when s/he wants to exit
pressing the back button. I assume s/he is saying: "Wanna go out!!"
I've implemented the behaviour written in UI Rev II.
If a user selects a new provider when coming back from Switch Provider,
the previous provider is forgotten and we assume s/he wants to change of
provider but he is not sure to which. That means that previous provider
configuration will be removed (that means there is no provider selected
and Dashboard will not be launched before a new provider is selected).
|
|
When login is not successful, a new recovery dialog is prompted with a
message about the previous error.
|
|
|
|
It works ok (it simply starts ConfigurationWizard activity for result),
but when entering again to Dashboard a NullPointer happens in
serviceItemEIP(((ViewStub)
findViewById(R.id.eipOverviewStub)).inflate();).
It also adds (I forgot to commit before leaving the retry-login branch)
ProgressDialogs to login and logout operations.
|
|
If the user enters his/her password incorrectly, the dialog appears
again.
|
|
It only contains the "About LEAP" option.
If the user clicks again that option while the About fragment is up, no
new fragment is added and pressing 1 time the back button drives him/her
to the ConfigurationWizard activity.
|
|
If the user selects a provider, gets into provider detail, discards it,
further trials of selecting a provider trigger the same ProgressDialogs
than the initial trials.
|
|
If the user decides not to choose any provider, the app quits. I'll
create another branch to handle this exit properly, warning the user
with an AlertDialog as suggested in #3023.
|
|
Once in the provider detail fragment, if the user presses the back
button, provider.json is removed from sharedpreferences (so that
Dashboard does not start as if the user had selected the canceled
provider) and ConfigurationWizard gets the focus.
|
|
I was treating the former exception simply as a kind of the latter, but
user messages are different. Now, each one shows its different error
message.
|
|
I forgot to add an else in the IOException from getStringFromProvider.
This was causing that even if the user checked the trusted completely
beckbox and everything was fine, the "not trusted provider" message was
being shown.
|
|
The previous commit broke functionality, and instead of discarding it
I've decided to undo with a new commit for future references.
It would seem that IOException can be substitued by
SSLHandshakeException, but the previous commit proves it cannot.
|
|
In getStringFromProvider, there is no IOException but an
SSLHandshakeException. Substituing this gives our code more semantics.
|
|
If a download didn't occurr due to an IOException, we assume it was for
an SSL error and notify the user telling him/her that LEAP provider is
not trusted.
|
|
I've set ProviderAPI to show its own toast depending on the exception
that getStringFromProvider issues. If the socket timeout reaches its
end, a toast different from when an IOException or a MalformedException
occur.
|
|
Buttons from this fragment are shown if the key is present and contains
a "true" value, but if an exception occurs the button it's not showed.
|
|
They are commented, just in case we decide to include any of them before
releasing 0.2.0.
|
|
I return an intent with ConfigHelper.LOG_IN extra present. Dashboard
looks for it, and if found, starts LogInDialog.
|
|
Tested with dev.bitmask.net, I use the previously downloaded certificate
(I should not do that, I'll file an issue because I should download it
once the user has requested to do so).
Next step: login button from ProviderDetailFragment.
|
|
Domain, name and description come from provider.json
Next step: code buttons to login or to use anonymously.
|
|
backing Collection
|
|
If ssl errors don't vanish using CA cert from provider, we go further and let the certificate not to be validated at all.
|
|
I've also removed a lot of finishes when things go wrong (so that it should be returning to the previous activity/fragment).
|
|
Items from the provider's list have 2 rows, first one with the domain and the other with the name.
Names from preseeded providers are fetched from the assets file, because we don't download provider.json until they select it.
|