From 018eb179f820b09d2e65c5ede1d4a867957bbce4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Parm=C3=A9nides=20GV?= <parmegv@sdf.org>
Date: Thu, 28 Feb 2013 16:56:51 +0100
Subject: Now, ProviderAPI sends result to ConfigurationWizard.

Refactored downloadJsonFiles in ProviderAPI, new method from block in
the intent identification.
---
 src/se/leap/leapclient/ConfigHelper.java        |  4 ++-
 src/se/leap/leapclient/ConfigurationWizard.java |  9 ++++-
 src/se/leap/leapclient/ProviderAPI.java         | 44 ++++++++++++++++---------
 3 files changed, 39 insertions(+), 18 deletions(-)

(limited to 'src')

diff --git a/src/se/leap/leapclient/ConfigHelper.java b/src/se/leap/leapclient/ConfigHelper.java
index 7649fca..c981051 100644
--- a/src/se/leap/leapclient/ConfigHelper.java
+++ b/src/se/leap/leapclient/ConfigHelper.java
@@ -37,7 +37,9 @@ public class ConfigHelper {
 			"EEAF0AB9ADB38DD69C33F80AFA8FC5E86072618775FF3C0B9EA2314C9C256576D674DF7496EA81D3383B4813D692C6E0E0D5D8E250B98BE48E495C1D6089DAD15DC7D7B46154D6B6CE8EF4AD69B15D4982559B297BCF1885C529F566660E57EC68EDBC3C05726CC02FD4CBF4976EAA9AFD5138FE8376435B9FC61D2FC0EB06E3";
 	final public static BigInteger g = BigInteger.valueOf(2);
 	
-	final public static int CUSTOM_PROVIDER_ADDED = 0; 
+	final public static int CUSTOM_PROVIDER_ADDED = 0;
+	final public static int CORRECTLY_DOWNLOADED_JSON_FILES = 0;
+	final public static int INCORRECTLY_DOWNLOADED_JSON_FILES = 0; 
 
 	static void saveSharedPref(String shared_preferences_key, JSONObject content) {
 
diff --git a/src/se/leap/leapclient/ConfigurationWizard.java b/src/se/leap/leapclient/ConfigurationWizard.java
index e252fa6..e41eb5c 100644
--- a/src/se/leap/leapclient/ConfigurationWizard.java
+++ b/src/se/leap/leapclient/ConfigurationWizard.java
@@ -159,6 +159,7 @@ public class ConfigurationWizard extends Activity
 		method_and_parameters.putString(ConfigHelper.eip_service_key, current_provider_item.eip_service_json_url);
 		
 		provider_API_command.putExtra(ConfigHelper.downloadJsonFilesBundleExtra, method_and_parameters);
+		provider_API_command.putExtra("receiver", providerAPI_result_receiver);
 		
 		startService(provider_API_command);
 		
@@ -188,12 +189,12 @@ public class ConfigurationWizard extends Activity
 
 		provider_API_command.putExtra(ConfigHelper.downloadNewProviderDotJSON, method_and_parameters);
 		provider_API_command.putExtra("receiver", providerAPI_result_receiver);
+		
 		startService(provider_API_command);
 	}
 
 	@Override
 	public void onReceiveResult(int resultCode, Bundle resultData) {
-		// TODO Auto-generated method stub
 		if(resultCode == ConfigHelper.CUSTOM_PROVIDER_ADDED){
 			ProviderListFragment providerList = new ProviderListFragment();
 
@@ -202,5 +203,11 @@ public class ConfigurationWizard extends Activity
 				.replace(R.id.configuration_wizard_layout, providerList, "providerlist")
 				.commit();
 		}
+		else if(resultCode == ConfigHelper.INCORRECTLY_DOWNLOADED_JSON_FILES) {
+			// TODO Show error
+		}
+		else if(resultCode == ConfigHelper.CORRECTLY_DOWNLOADED_JSON_FILES) {
+			// TODO Show nothing? Show success?
+		}
 	}
 }
diff --git a/src/se/leap/leapclient/ProviderAPI.java b/src/se/leap/leapclient/ProviderAPI.java
index 9654415..19404c2 100644
--- a/src/se/leap/leapclient/ProviderAPI.java
+++ b/src/se/leap/leapclient/ProviderAPI.java
@@ -44,25 +44,14 @@ public class ProviderAPI extends IntentService {
 	@Override
 	protected void onHandleIntent(Intent task_for) {
 		final ResultReceiver receiver = task_for.getParcelableExtra("receiver");
+		
 		Bundle task;
 		System.out.println("onHandleIntent called");
 		if((task = task_for.getBundleExtra(ConfigHelper.downloadJsonFilesBundleExtra)) != null) {
-			String cert_url = (String) task.get(ConfigHelper.cert_key);
-			String eip_service_json_url = (String) task.get(ConfigHelper.eip_service_key);
-			try {
-				String cert_string = getStringFromProvider(cert_url);
-				JSONObject cert_json = new JSONObject("{ \"certificate\" : \"" + cert_string + "\"}");
-				ConfigHelper.saveSharedPref(ConfigHelper.cert_key, cert_json);
-				JSONObject eip_service_json = getJSONFromProvider(eip_service_json_url);
-				ConfigHelper.saveSharedPref(ConfigHelper.eip_service_key, eip_service_json);
-			} catch (IOException e) {
-				// TODO Auto-generated catch block
-				e.printStackTrace();
-			} catch (JSONException e) {
-				ConfigHelper.rescueJSONException(e);
-			} catch(Exception e) {
-				e.printStackTrace();
-			}
+			if(!downloadJsonFiles(task))
+				receiver.send(ConfigHelper.INCORRECTLY_DOWNLOADED_JSON_FILES, Bundle.EMPTY);
+			else
+				receiver.send(ConfigHelper.CORRECTLY_DOWNLOADED_JSON_FILES, Bundle.EMPTY);
 		}
 		else if ((task = task_for.getBundleExtra(ConfigHelper.downloadNewProviderDotJSON)) != null) {
 			boolean custom = true;
@@ -128,6 +117,29 @@ public class ProviderAPI extends IntentService {
 		}
 	}
 	
+	private boolean downloadJsonFiles(Bundle task) {
+		String cert_url = (String) task.get(ConfigHelper.cert_key);
+		String eip_service_json_url = (String) task.get(ConfigHelper.eip_service_key);
+		try {
+			String cert_string = getStringFromProvider(cert_url);
+			JSONObject cert_json = new JSONObject("{ \"certificate\" : \"" + cert_string + "\"}");
+			ConfigHelper.saveSharedPref(ConfigHelper.cert_key, cert_json);
+			JSONObject eip_service_json = getJSONFromProvider(eip_service_json_url);
+			ConfigHelper.saveSharedPref(ConfigHelper.eip_service_key, eip_service_json);
+			return true;
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+			return false;
+		} catch (JSONException e) {
+			ConfigHelper.rescueJSONException(e);
+			return false;
+		} catch(Exception e) {
+			e.printStackTrace();
+			return false;
+		}
+	}
+
 	private void sendM1(BigInteger m2, BigInteger k, BigInteger clientA,
 			BigInteger serverB, int salt, String username) throws NoSuchAlgorithmException {
 		BigInteger M1 = generateM1(k, clientA, serverB, salt, username);
-- 
cgit v1.2.3