diff options
author | Parménides GV <parmegv@ma.sdf.org> | 2013-06-25 16:44:22 +0200 |
---|---|---|
committer | Sean Leonard <meanderingcode@aetherislands.net> | 2013-06-26 22:39:35 -0600 |
commit | dff5aa6e1c4df4af012899df7bf26e4f20f3ab26 (patch) | |
tree | ec37eacdff6b7d638ba9941257a2b8cffe0f0912 | |
parent | 50db5b5816476751f39bb7b8adc927562a0cc677 (diff) |
ConfigurationWizard shows domain and name.
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.
-rw-r--r-- | res/layout/provider_list_fragment.xml | 3 | ||||
-rw-r--r-- | src/se/leap/leapclient/ProviderListContent.java | 122 | ||||
-rw-r--r-- | src/se/leap/leapclient/ProviderListFragment.java | 25 |
3 files changed, 90 insertions, 60 deletions
diff --git a/res/layout/provider_list_fragment.xml b/res/layout/provider_list_fragment.xml index 9bb775d..d52fcca 100644 --- a/res/layout/provider_list_fragment.xml +++ b/res/layout/provider_list_fragment.xml @@ -10,6 +10,7 @@ android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
+ android:layout_alignParentTop="true"
android:drawSelectorOnTop="false" />
<Button
@@ -18,4 +19,4 @@ android:onClick="addNewProvider"
android:text="@string/new_provider_button" />
-</LinearLayout>
\ No newline at end of file +</LinearLayout>
diff --git a/src/se/leap/leapclient/ProviderListContent.java b/src/se/leap/leapclient/ProviderListContent.java index 8727b16..991034b 100644 --- a/src/se/leap/leapclient/ProviderListContent.java +++ b/src/se/leap/leapclient/ProviderListContent.java @@ -6,6 +6,8 @@ import java.util.ArrayList; import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.net.URL;
+import java.net.MalformedURLException;
import org.json.JSONException;
import org.json.JSONObject;
@@ -18,54 +20,59 @@ import org.json.JSONObject; */
public class ProviderListContent {
- public static List<ProviderItem> ITEMS = new ArrayList<ProviderItem>();
+ public static List<ProviderItem> ITEMS = new ArrayList<ProviderItem>();
- public static Map<String, ProviderItem> ITEM_MAP = new HashMap<String, ProviderItem>();
-
- /**
- * Adds a new provider item to the end of the items map, and to the items list.
- * @param item
- */
- public static void addItem(ProviderItem item) {
- ITEMS.add(item);
- ITEM_MAP.put(String.valueOf(ITEMS.size()), item);
- }
+ public static Map<String, ProviderItem> ITEM_MAP = new HashMap<String, ProviderItem>();
- /**
- * A provider item.
- */
- public static class ProviderItem {
- public boolean custom = false;
- public String id;
- public String name;
- public String provider_json_url;
+ /**
+ * Adds a new provider item to the end of the items map, and to the items list.
+ * @param item
+ */
+ public static void addItem(ProviderItem item) {
+ ITEMS.add(item);
+ ITEM_MAP.put(String.valueOf(ITEMS.size()), item);
+ }
+
+ /**
+ * A provider item.
+ */
+ public static class ProviderItem {
+ public boolean custom = false;
+ public String id;
+ public String name;
+ public String domain;
+ public String provider_json_url;
public JSONObject provider_json;
- public String provider_json_filename;
- public String eip_service_json_url;
- public String cert_json_url;
- public boolean danger_on = false;
+ public String provider_json_filename;
+ public String eip_service_json_url;
+ public String cert_json_url;
+ public boolean danger_on = false;
+
+ /**
+ * @param name of the provider
+ * @param urls_file_input_stream file input stream linking with the assets url file
+ * @param custom if it's a new provider entered by the user or not
+ * @param danger_on if the user trusts completely the new provider
+ */
+ public ProviderItem(String name, InputStream urls_file_input_stream, boolean custom, boolean danger_on) {
- /**
- * @param name of the provider
- * @param urls_file_input_stream file input stream linking with the assets url file
- * @param custom if it's a new provider entered by the user or not
- * @param danger_on if the user trusts completely the new provider
- */
- public ProviderItem(String name, InputStream urls_file_input_stream, boolean custom, boolean danger_on) {
-
- try {
- byte[] urls_file_bytes = new byte[urls_file_input_stream.available()];
- urls_file_input_stream.read(urls_file_bytes);
- String urls_file_content = new String(urls_file_bytes);
+ try {
+ byte[] urls_file_bytes = new byte[urls_file_input_stream.available()];
+ urls_file_input_stream.read(urls_file_bytes);
+ String urls_file_content = new String(urls_file_bytes);
JSONObject file_contents = new JSONObject(urls_file_content);
id = name;
this.name = name;
provider_json_url = file_contents.getString(ConfigHelper.PROVIDER_JSON_URL);
- provider_json_filename = file_contents.getString("assets_json_provider");
+ domain = new URL(provider_json_url).getHost();
+ //provider_json_filename = file_contents.getString("assets_json_provider");
eip_service_json_url = file_contents.getString("json_eip_service");
cert_json_url = file_contents.getString(ConfigHelper.CERT_KEY);
this.custom = custom;
this.danger_on = danger_on;
+ } catch (MalformedURLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
@@ -73,37 +80,42 @@ public class ProviderListContent { // TODO Auto-generated catch block
e.printStackTrace();
}
- }
+ }
+
+ /**
+ * @param name of the provider
+ * @param provider_json_url used to download provider.json file of the provider
+ * @param provider_json already downloaded
+ * @param custom if it's a new provider entered by the user or not
+ * @param danger_on if the user trusts completely the new provider
+ */
+ public ProviderItem(String name, String provider_json_url, JSONObject provider_json, boolean custom, boolean danger_on) {
- /**
- * @param name of the provider
- * @param provider_json_url used to download provider.json file of the provider
- * @param provider_json already downloaded
- * @param custom if it's a new provider entered by the user or not
- * @param danger_on if the user trusts completely the new provider
- */
- public ProviderItem(String name, String provider_json_url, JSONObject provider_json, boolean custom, boolean danger_on) {
-
- try {
+ try {
id = name;
- this.name = name;
+ //this.name = name;
this.provider_json_url = provider_json_url;
this.provider_json = provider_json;
+ this.name = provider_json.getJSONObject("name").getString("en");
+ domain = new URL(provider_json_url).getHost();
eip_service_json_url = provider_json.getString(ConfigHelper.API_URL_KEY) + "/" + provider_json.getString(ConfigHelper.API_VERSION_KEY) + "/" + ConfigHelper.EIP_SERVICE_API_PATH;
- cert_json_url = (String) provider_json.get("ca_cert_uri");
+ cert_json_url = provider_json.getString("ca_cert_uri");
this.custom = custom;
this.danger_on = danger_on;
if(custom)
provider_json_filename = name + "_provider.json".replaceFirst("__", "_");
+ } catch (MalformedURLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- }
+ }
- @Override
- public String toString() {
- return name;
- }
- }
+ @Override
+ public String toString() {
+ return name;
+ }
+ }
}
diff --git a/src/se/leap/leapclient/ProviderListFragment.java b/src/se/leap/leapclient/ProviderListFragment.java index ee3ee8e..f4f5feb 100644 --- a/src/se/leap/leapclient/ProviderListFragment.java +++ b/src/se/leap/leapclient/ProviderListFragment.java @@ -9,6 +9,8 @@ import android.view.View; import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
+import android.content.Context;
+import android.widget.TwoLineListItem;
/**
* A list fragment representing a list of Providers. This fragment
@@ -74,10 +76,25 @@ public class ProviderListFragment extends ListFragment { super.onCreate(savedInstanceState);
content_adapter = new ArrayAdapter<ProviderListContent.ProviderItem>(
getActivity(),
- android.R.layout.simple_list_item_activated_1,
- android.R.id.text1,
- ProviderListContent.ITEMS);
- setListAdapter(content_adapter);
+ android.R.layout.simple_list_item_activated_2,
+ ProviderListContent.ITEMS) {
+ @Override
+ public View getView(int position, View convertView, ViewGroup parent){
+ TwoLineListItem row;
+ if (convertView == null) {
+ LayoutInflater inflater = (LayoutInflater)getActivity().getApplicationContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
+ row = (TwoLineListItem)inflater.inflate(android.R.layout.simple_list_item_2, null);
+ } else {
+ row = (TwoLineListItem)convertView;
+ }
+ ProviderListContent.ProviderItem data = ProviderListContent.ITEMS.get(position);
+ row.getText1().setText(data.domain);
+ row.getText2().setText(data.name);
+
+ return row;
+ }
+ };
+ setListAdapter(content_adapter);
}
@Override
|