package criticker.client;
import java.util.ArrayList;
import java.util.Iterator;
import criticker.lib.ApiResponse;
import criticker.lib.ApiResponseObject;
import criticker.lib.ApiResponseObjectList;
import criticker.lib.Const;
import criticker.lib.Criticker;
import criticker.lib.DataStore;
import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class MyRankingsActivity extends ListActivity
{
ProgressDialog mDialog = null;
ArrayList<Object> mFilmList = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mDialog = new ProgressDialog(MyRankingsActivity.this);
mDialog.setIndeterminate(true);
mDialog.setTitle(R.string.myrankingsui_loadingtitle);
mDialog.setMessage(getResources().getString(R.string.generic_loading));
mDialog.show();
Criticker.GetInstance().ListRankings(new ApiResponse()
{
@Override public void OnSuccess(ApiResponseObjectList data)
{
mDialog.dismiss();
ProcessData(data.GetResponseList());
}
@Override public void OnFailure(ApiResponseObject data)
{
Toast.makeText(MyRankingsActivity.this, data.GetResponseText(), Toast.LENGTH_LONG).show();
}
}
);
}
private void ProcessData(ArrayList<Object> films)
{
//TODO: Make custom adaptor for this, showing relevant data in the list (pic, film title, rating)
mFilmList = films;
String[] titles = new String[mFilmList.size()];
Iterator<Object> iter = mFilmList.iterator();
int i = 0;
while(iter.hasNext())
{
DataStore film = (DataStore)iter.next();
titles[i] = film.GetDataString(Const.FILM_NAME);
i++;
}
PopulateList(titles);
}
private void PopulateList(String[] titles)
{
setListAdapter(new ArrayAdapter<String>(this, R.layout.myrankingsui, titles));
getListView().setOnItemClickListener(new OnItemClickListener()
{
//!@Override
public void onItemClick(AdapterView<?> parent, View v, int pos, long id)
{
Intent i = new Intent(MyRankingsActivity.this, FilmViewActivity.class);
i.putExtra(Const.FILM_ID,((DataStore)mFilmList.get(pos)).GetDataString(Const.FILM_ID));
startActivity(i);
}
}
);
}
}
|