From: kenstir Date: Sat, 7 Nov 2015 02:03:35 +0000 (-0500) Subject: checkpoint: Now downloads json async and populates spinner. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=98c5e9943b16e9006703329297f69f530b6c9ff5;p=working%2FEvergreen.git checkpoint: Now downloads json async and populates spinner. --- diff --git a/Open-ILS/src/Android/core/res/layout/activity_choose_library.xml b/Open-ILS/src/Android/core/res/layout/activity_choose_library.xml index 8eeea10c3d..57e0649d49 100644 --- a/Open-ILS/src/Android/core/res/layout/activity_choose_library.xml +++ b/Open-ILS/src/Android/core/res/layout/activity_choose_library.xml @@ -18,7 +18,6 @@ android:id="@+id/choose_library_spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="#000000" android:layout_marginTop="5dip" android:layout_marginBottom="5dip" /> diff --git a/Open-ILS/src/Android/core/src/org/evergreen_ils/views/ChooseConsortiumActivity.java b/Open-ILS/src/Android/core/src/org/evergreen_ils/views/ChooseConsortiumActivity.java index 29e3d5bfed..864e407e03 100644 --- a/Open-ILS/src/Android/core/src/org/evergreen_ils/views/ChooseConsortiumActivity.java +++ b/Open-ILS/src/Android/core/src/org/evergreen_ils/views/ChooseConsortiumActivity.java @@ -1,24 +1,25 @@ 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. @@ -27,14 +28,16 @@ public class ChooseConsortiumActivity extends ActionBarActivity { 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 consortiums = new ArrayList(); + String consortium_url = null; + List consortiums = new ArrayList(); - private class FetchConsortiumsTask extends AsyncTask { - protected void doInBackground(String... params) { + private class FetchConsortiumsTask extends AsyncTask { + protected String doInBackground(String... params) { String url = params[0]; - String result; + String result = null; try { Log.d(TAG, "fetching "+url); result = Utils.getNetPageContent(url); @@ -46,11 +49,20 @@ public class ChooseConsortiumActivity extends ActionBarActivity { protected void onPostExecute(String result) { Log.d(TAG, "results available: "+result); + consortiums = parseEvergreenConsortiums(result); + ArrayList l = new ArrayList(consortiums.size()); + for (Consortium consortium : consortiums) { + l.add(consortium.name); + } + //ArrayAdapter adapter = CompatSpinnerAdapter.CreateCompatSpinnerAdapter(context, l); + ArrayAdapter adapter = new ArrayAdapter(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 @@ -59,42 +71,32 @@ public class ChooseConsortiumActivity extends ActionBarActivity { 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 parseEvergreenConsortiums(String json) { + List consortiums = new ArrayList(); if (json != null) { - List l; + List> l; try { - l = new JSONReader(json).readArray(); + l = (List>) 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 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); }