package org.marcinzelent.liberavem; import android.content.Intent; import android.os.Bundle; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.Toast; import com.android.volley.Request; import com.android.volley.RequestQueue; import com.android.volley.Response; import com.android.volley.VolleyError; import com.android.volley.toolbox.StringRequest; import com.android.volley.toolbox.Volley; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import org.jetbrains.annotations.Nullable; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; import java.util.TimeZone; /** * A simple {@link Fragment} subclass. */ public class AllObservationsFragment extends Fragment { Observation[] observations; Bird[] birds; public AllObservationsFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.observations_list, container, false); return rootView; } @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { final ListView observationsListView = view.findViewById(R.id.observations_list_view); observationsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView arg0, View arg1, int position, long arg3) { Intent detailsIntent = new Intent(getActivity(), ObservationDetailsActivity.class); detailsIntent.putExtra("Observation", observations[position]); //String photoUrl = ""; //for (Bird bird : birds) // if (bird.getId() == observations[position].getBirdId()) // photoUrl = bird.getPhotoUrl(); //detailsIntent.putExtra("Photo", photoUrl); startActivity(detailsIntent); } }); //final ObservationsListAdapter adapter = new ObservationsListAdapter(getActivity(), observations, birds); //observationsListView.setAdapter(adapter); String observationsUrl = "http://birdobservationservice.azurewebsites.net/Service1.svc/observations"; final StringRequest observationRequest = new StringRequest(Request.Method.GET, observationsUrl, new Response.Listener() { @Override public void onResponse(String response) { Gson gson = new GsonBuilder().create(); observations = gson.fromJson(response, Observation[].class); for (Observation o : observations) { int p = o.getCreated().indexOf('+'); long epoch = Long.parseLong(o.getCreated().substring(6, p)); Date date = new Date(epoch); String formatted = new SimpleDateFormat("dd.MM.yyyy HH:mm", Locale.ENGLISH).format(date); o.setCreated(formatted); } final ObservationsListAdapter adapter = new ObservationsListAdapter(getActivity(), observations, birds); observationsListView.setAdapter(adapter); } }, new com.android.volley.Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { Toast.makeText(getActivity(), "Database connection error :( ", Toast.LENGTH_LONG).show(); } }); Volley.newRequestQueue(getActivity()).add(observationRequest); } }