package com.codepath.apps.restclienttemplate;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.GridView;
import com.codepath.apps.restclienttemplate.models.FlickrPhoto;
import com.loopj.android.http.JsonHttpResponseHandler;
public class PhotosActivity extends Activity {
FlickrClient client;
ArrayList<FlickrPhoto> photoItems;
GridView gvPhotos;
PhotoArrayAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photos);
client = FlickrClientApp.getRestClient();
photoItems = new ArrayList<FlickrPhoto>();
gvPhotos = (GridView) findViewById(R.id.gvPhotos);
adapter = new PhotoArrayAdapter(this, photoItems);
gvPhotos.setAdapter(adapter);
loadPhotos();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.photos, menu);
return true;
}
public void loadPhotos() {
client.getInterestingnessList(new JsonHttpResponseHandler() {
public void onSuccess(JSONObject json) {
Log.d("DEBUG", "result: " + json.toString());
// Add new photos to SQLite
try {
JSONArray photos = json.getJSONObject("photos").getJSONArray("photo");
for (int x = 0; x < photos.length(); x++) {
String uid = photos.getJSONObject(x).getString("id");
FlickrPhoto p = FlickrPhoto.byPhotoUid(uid);
if (p == null) { p = new FlickrPhoto(photos.getJSONObject(x)); };
p.save();
}
} catch (JSONException e) {
e.printStackTrace();
Log.e("debug", e.toString());
}
// Load into GridView from DB
for (FlickrPhoto p : FlickrPhoto.recentItems()) {
adapter.add(p);
}
Log.d("DEBUG", "Total: " + photoItems.size());
}
});
}
}