package com.octo.android.robospice.sample.retrofit;
import android.os.Bundle;
import android.view.Window;
import android.widget.TextView;
import android.widget.Toast;
import com.octo.android.robospice.persistence.DurationInMillis;
import com.octo.android.robospice.persistence.exception.SpiceException;
import com.octo.android.robospice.request.listener.RequestListener;
import com.octo.android.robospice.sample.retrofit.model.Contributor;
import com.octo.android.robospice.sample.retrofit.network.SampleRetrofitSpiceRequest;
/**
* This sample demonstrates how to use RoboSpice to perform simple network requests.
* @author sni
*/
public class SampleSpiceActivity extends BaseSampleSpiceActivity {
// ============================================================================================
// ATTRIBUTES
// ============================================================================================
private TextView mTextView;
private SampleRetrofitSpiceRequest githubRequest;
// ============================================================================================
// ACTIVITY LIFE CYCLE
// ============================================================================================
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.main);
mTextView = (TextView) findViewById(R.id.textview_lorem_ipsum);
githubRequest = new SampleRetrofitSpiceRequest("octo-online", "robospice");
}
@Override
protected void onStart() {
super.onStart();
getSpiceManager().execute(githubRequest, "github", DurationInMillis.ONE_MINUTE, new ListContributorRequestListener());
}
// ============================================================================================
// PRIVATE METHODS
// ============================================================================================
private void updateContributors(final Contributor.List result) {
String originalText = getString(R.string.textview_text);
StringBuilder builder = new StringBuilder();
builder.append(originalText);
builder.append('\n');
builder.append('\n');
for (Contributor contributor : result) {
builder.append('\t');
builder.append(contributor.login);
builder.append('\t');
builder.append('(');
builder.append(contributor.contributions);
builder.append(')');
builder.append('\n');
}
mTextView.setText(builder.toString());
}
// ============================================================================================
// INNER CLASSES
// ============================================================================================
public final class ListContributorRequestListener implements RequestListener<Contributor.List> {
@Override
public void onRequestFailure(SpiceException spiceException) {
Toast.makeText(SampleSpiceActivity.this, "failure", Toast.LENGTH_SHORT).show();
}
@Override
public void onRequestSuccess(final Contributor.List result) {
Toast.makeText(SampleSpiceActivity.this, "success", Toast.LENGTH_SHORT).show();
updateContributors(result);
}
}
}