summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorParménides GV <parmegv@sdf.org>2013-06-29 12:54:15 +0200
committerSean Leonard <meanderingcode@aetherislands.net>2013-07-12 11:45:45 -0600
commit755633af514c8f425f936bc5185815175397937c (patch)
tree169ff0a23ed0321716e2c00fd32f74301013c47b /src
parent9d89c120aa1f01874b3b41169456efdfc5407b17 (diff)
Distinguish non LEAP provider and down provider.
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.
Diffstat (limited to 'src')
-rw-r--r--src/se/leap/leapclient/ConfigurationWizard.java11
-rw-r--r--src/se/leap/leapclient/ProviderAPI.java32
2 files changed, 29 insertions, 14 deletions
diff --git a/src/se/leap/leapclient/ConfigurationWizard.java b/src/se/leap/leapclient/ConfigurationWizard.java
index df7da8ff..840e4e6d 100644
--- a/src/se/leap/leapclient/ConfigurationWizard.java
+++ b/src/se/leap/leapclient/ConfigurationWizard.java
@@ -101,13 +101,12 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn
e.printStackTrace();
mProgressDialog.dismiss();
- Toast.makeText(this, getResources().getString(R.string.config_error_parsing), Toast.LENGTH_LONG);
+ //Toast.makeText(this, getResources().getString(R.string.config_error_parsing), Toast.LENGTH_LONG);
setResult(RESULT_CANCELED, mConfigState);
}
}
else if(resultCode == ConfigHelper.INCORRECTLY_UPDATED_PROVIDER_DOT_JSON) {
mProgressDialog.dismiss();
- Toast.makeText(getApplicationContext(), R.string.incorrectly_updated_provider_dot_json_message, Toast.LENGTH_LONG).show();
setResult(RESULT_CANCELED, mConfigState);
}
else if(resultCode == ConfigHelper.CORRECTLY_DOWNLOADED_JSON_FILES) {
@@ -123,20 +122,16 @@ implements ProviderListFragment.Callbacks, NewProviderDialog.NewProviderDialogIn
}
}
else if(resultCode == ConfigHelper.INCORRECTLY_DOWNLOADED_JSON_FILES) {
- Toast.makeText(getApplicationContext(), R.string.incorrectly_downloaded_json_files_message, Toast.LENGTH_LONG).show();
+ //Toast.makeText(getApplicationContext(), R.string.incorrectly_downloaded_json_files_message, Toast.LENGTH_LONG).show();
setResult(RESULT_CANCELED, mConfigState);
}
else if(resultCode == ConfigHelper.CORRECTLY_DOWNLOADED_CERTIFICATE) {
mProgressDialog.dismiss();
- //Toast.makeText(getApplicationContext(), R.string.correctly_downloaded_json_files_message, Toast.LENGTH_LONG).show();
- //Toast.makeText(getApplicationContext(), R.string.success, Toast.LENGTH_LONG).show();
- //mConfigState.putExtra(CERTIFICATE_RETRIEVED, true); // If this isn't the last step and finish() is moved...
setResult(RESULT_OK);
- //finish();
showProviderDetails(getCurrentFocus());
} else if(resultCode == ConfigHelper.INCORRECTLY_DOWNLOADED_CERTIFICATE) {
mProgressDialog.dismiss();
- Toast.makeText(getApplicationContext(), R.string.incorrectly_downloaded_certificate_message, Toast.LENGTH_LONG).show();
+ //Toast.makeText(getApplicationContext(), R.string.incorrectly_downloaded_certificate_message, Toast.LENGTH_LONG).show();
setResult(RESULT_CANCELED, mConfigState);
}
}
diff --git a/src/se/leap/leapclient/ProviderAPI.java b/src/se/leap/leapclient/ProviderAPI.java
index 11ad2e1d..b9cbdf24 100644
--- a/src/se/leap/leapclient/ProviderAPI.java
+++ b/src/se/leap/leapclient/ProviderAPI.java
@@ -52,9 +52,11 @@ import se.leap.leapclient.ProviderListContent.ProviderItem;
import android.app.IntentService;
import android.content.Intent;
import android.os.Bundle;
+import android.os.Handler;
import android.os.ResultReceiver;
import android.util.Base64;
import android.util.Log;
+import android.widget.Toast;
/**
* Implements HTTP api methods used to manage communications with the provider server.
@@ -67,10 +69,28 @@ import android.util.Log;
*/
public class ProviderAPI extends IntentService {
+ private Handler mHandler;
+
public ProviderAPI() {
super("ProviderAPI");
Log.v("ClassName", "Provider API");
}
+
+ @Override
+ public void onCreate() {
+ super.onCreate();
+ mHandler = new Handler();
+ }
+
+ private void displayToast(final int toast_string_id) {
+ mHandler.post(new Runnable() {
+
+ @Override
+ public void run() {
+ Toast.makeText(ProviderAPI.this, toast_string_id, Toast.LENGTH_LONG).show();
+ }
+ });
+ }
@Override
protected void onHandleIntent(Intent task_for) {
@@ -304,7 +324,7 @@ public class ProviderAPI extends IntentService {
provider_json = getJSONFromProvider(provider_json_url, danger_on);
if(provider_json == null) {
result.putBoolean(ConfigHelper.RESULT_KEY, false);
- } else {
+ } else {
ConfigHelper.saveSharedPref(ConfigHelper.PROVIDER_KEY, provider_json);
ConfigHelper.saveSharedPref(ConfigHelper.DANGER_ON, danger_on);
@@ -344,14 +364,14 @@ public class ProviderAPI extends IntentService {
url_connection.setConnectTimeout(seconds_of_timeout*1000);
json_file_content = new Scanner(url_connection.getInputStream()).useDelimiter("\\A").next();
} catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ displayToast(R.string.malformed_url);
} catch(SocketTimeoutException e) {
- return "";
+ displayToast(R.string.server_is_down_message);
} catch (IOException e) {
if(provider_url != null && danger_on) {
json_file_content = getStringFromProviderWithoutValidate(provider_url);
}
+ displayToast(R.string.malformed_url);
} catch (Exception e) {
if(provider_url != null && danger_on) {
json_file_content = getStringFromProviderWithoutValidate(provider_url);
@@ -385,8 +405,7 @@ public class ProviderAPI extends IntentService {
urlConnection.setHostnameVerifier(hostnameVerifier);
json_string = new Scanner(urlConnection.getInputStream()).useDelimiter("\\A").next();
} catch (MalformedURLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
+ Toast.makeText(getApplicationContext(), R.string.malformed_url, Toast.LENGTH_LONG).show();
} catch (IOException e) {
json_string = getStringFromProviderWithCACertAdded(string_url);
}
@@ -450,6 +469,7 @@ public class ProviderAPI extends IntentService {
} catch (IOException e) {
// The downloaded certificate doesn't validate our https connection.
json_file_content = getStringFromProviderIgnoringCertificate(url);
+ Toast.makeText(getApplicationContext(), R.string.malformed_url, Toast.LENGTH_LONG).show();
} catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();