package org.evergreen_ils.views;
+import android.content.Context;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
+import android.widget.AdapterView;
+import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import org.evergreen_ils.R;
import org.evergreen_ils.accountAccess.AccountAccess;
import org.evergreen_ils.globals.Utils;
import org.evergreen_ils.searchCatalog.Consortium;
+import org.evergreen_ils.utils.ui.CompatSpinnerAdapter;
import org.opensrf.util.JSONException;
import org.opensrf.util.JSONReader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
/**
* Created by kenstir on 2015-11-05.
private final String TAG = ChooseConsortiumActivity.class.getSimpleName();
public static String consortiumsJSONUrl = "http://evergreen-ils.org/testing/libraries.json";
- Spinner spinner;
+ Context context;
+ Spinner consortiumSpinner;
Button button;
- ArrayList<Consortium> consortiums = new ArrayList<Consortium>();
+ String consortium_url = null;
+ List<Consortium> consortiums = new ArrayList<Consortium>();
- private class FetchConsortiumsTask extends AsyncTask<String, void, String> {
- protected void doInBackground(String... params) {
+ private class FetchConsortiumsTask extends AsyncTask<String, Integer, String> {
+ protected String doInBackground(String... params) {
String url = params[0];
- String result;
+ String result = null;
try {
Log.d(TAG, "fetching "+url);
result = Utils.getNetPageContent(url);
protected void onPostExecute(String result) {
Log.d(TAG, "results available: "+result);
+ consortiums = parseEvergreenConsortiums(result);
+ ArrayList<String> l = new ArrayList<String>(consortiums.size());
+ for (Consortium consortium : consortiums) {
+ l.add(consortium.name);
+ }
+ //ArrayAdapter<String> adapter = CompatSpinnerAdapter.CreateCompatSpinnerAdapter(context, l);
+ ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item, l);
+ consortiumSpinner.setAdapter(adapter);
}
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ context = getApplicationContext();
// do not start SplashActivity here...it started us
ActionBar actionBar = getSupportActionBar();
actionBar.setSubtitle(AccountAccess.userName);
- spinner = (Spinner) findViewById(R.id.choose_library_spinner);
+ consortiumSpinner = (Spinner) findViewById(R.id.choose_library_spinner);
button = (Button) findViewById(R.id.choose_library_button);
//init asynctask here
- FetchConsortiumsTask task = new
+ FetchConsortiumsTask task = new FetchConsortiumsTask();
+ task.execute(consortiumsJSONUrl);
}
public void onButtonClick(View v) {
int id = v.getId();
}
- public void getEvergreenConsortiums() {
-
- String json = null;
-
- try {
- Log.d(TAG, "fetching " + consortiumsJSONUrl);
- json = Utils.getNetPageContent(consortiumsJSONUrl);
- } catch (Exception e) {
- Log.w(TAG, "failed fetching consortiums", e);
- }
-
+ public List<Consortium> parseEvergreenConsortiums(String json) {
+ List<Consortium> consortiums = new ArrayList<Consortium>();
if (json != null) {
- List l;
+ List<Map<String,?>> l;
try {
- l = new JSONReader(json).readArray();
+ l = (List<Map<String,?>>) new JSONReader(json).readArray();
} catch (JSONException e) {
Log.d(TAG, "failed parsing consortiums array", e);
return consortiums;
}
-
- // Convert json list into array
- for (int i=0; i<l.size(); ++i) {
- List item = (List)l.get(i);
+ for (Map<String, ?> map : l) {
Consortium c = new Consortium();
- c.name = "xyzzy";
+ c.name = (String) map.get("library_name");
+ c.library_url = (String) map.get("url");
consortiums.add(c);
}