Android Open Source - android-model-record Load List Callback From Project Back to project page android-model-record .
License The source code is released under:
MIT License
If you think the Android project android-model-record listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.fanpics.opensource.android.modelrecord.callback;
/ / w w w . j a v a 2 s . c o m
import android.os.Handler;
import com.fanpics.opensource.android.modelrecord.HttpReport;
import com.fanpics.opensource.android.modelrecord.RecordCache;
import com.fanpics.opensource.android.modelrecord.configuration.BaseRecordConfiguration;
import com.fanpics.opensource.android.modelrecord.configuration.MultiRecordConfiguration;
import com.fanpics.opensource.android.modelrecord.event.EventProcessor;
import com.fanpics.opensource.android.modelrecord.event.SuccessEvent;
import java.util.List;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
public class LoadListCallback<T> extends BaseRecordCallback implements Callback<List<T>> {
protected MultiRecordConfiguration<T> configuration;
protected Object key;
protected LoadListCallback(MultiRecordConfiguration<T> configuration, EventProcessor eventProcessor, HttpReport httpReport){
super (eventProcessor, httpReport);
this.configuration = configuration;
}
protected LoadListCallback(MultiRecordConfiguration<T> configuration, EventProcessor eventProcessor, HttpReport httpReport, Handler handler) {
super (eventProcessor, httpReport, handler);
this.configuration = configuration;
}
public static <T> LoadListCallback createFromConfiguration(MultiRecordConfiguration<T> settings, EventProcessor eventProcessor, HttpReport httpReport, Handler handler) {
return new LoadListCallback<>(settings, eventProcessor, httpReport, handler);
}
public void setKey(Object key) {
this.key = key;
}
protected void cacheIfExists(final List<T> model) {
new Thread(new Runnable() {
@Override
public void run() {
final RecordCache<T> cache = configuration.getCache();
if (cache != null) {
cache.store(key, model);
}
}
}).start();
}
@Override
public void success(List<T> model, Response response) {
success(model, response, true);
}
public void synchronousSuccess(List<T> model, Response response) {
success(model, response, false);
}
private void success(List<T> models, Response response, boolean shouldPostResult) {
final SuccessEvent<List<T>> event = configuration.getSuccessEvent();
event.setResult(models);
event.setHasFinished(true);
cacheIfExists(models);
sendHttpReport(response);
configuration.callSuccessCallback(models);
if (shouldPostResult) {
postSuccessEvent(event);
}
}
@Override
public void failure(RetrofitError retrofitError) {
postFailure(retrofitError);
}
@Override
protected BaseRecordConfiguration getRecordConfiguration() {
return configuration;
}
}
Java Source Code List com.fanpics.opensource.android.modelrecord.HttpReport.java com.fanpics.opensource.android.modelrecord.ModelRecordTest.java com.fanpics.opensource.android.modelrecord.ModelRecord.java com.fanpics.opensource.android.modelrecord.RecordCache.java com.fanpics.opensource.android.modelrecord.ResponseParser.java com.fanpics.opensource.android.modelrecord.Result.java com.fanpics.opensource.android.modelrecord.callback.BaseRecordCallback.java com.fanpics.opensource.android.modelrecord.callback.CreateCallback.java com.fanpics.opensource.android.modelrecord.callback.DeleteCallbackTest.java com.fanpics.opensource.android.modelrecord.callback.DeleteCallback.java com.fanpics.opensource.android.modelrecord.callback.FailureCallback.java com.fanpics.opensource.android.modelrecord.callback.LoadCallback.java com.fanpics.opensource.android.modelrecord.callback.LoadListCallback.java com.fanpics.opensource.android.modelrecord.callback.RecordCallbackTest.java com.fanpics.opensource.android.modelrecord.callback.RecordCallback.java com.fanpics.opensource.android.modelrecord.callback.SuccessCallback.java com.fanpics.opensource.android.modelrecord.callback.UpdateCallback.java com.fanpics.opensource.android.modelrecord.configuration.BaseRecordConfigurationTest.java com.fanpics.opensource.android.modelrecord.configuration.BaseRecordConfiguration.java com.fanpics.opensource.android.modelrecord.configuration.MultiRecordConfigurationTest.java com.fanpics.opensource.android.modelrecord.configuration.MultiRecordConfiguration.java com.fanpics.opensource.android.modelrecord.configuration.SingleRecordConfigurationTest.java com.fanpics.opensource.android.modelrecord.configuration.SingleRecordConfiguration.java com.fanpics.opensource.android.modelrecord.event.EventProcessor.java com.fanpics.opensource.android.modelrecord.event.FailureEvent.java com.fanpics.opensource.android.modelrecord.event.OttoProcessorTest.java com.fanpics.opensource.android.modelrecord.event.OttoProcessor.java com.fanpics.opensource.android.modelrecord.event.SuccessEventTest.java com.fanpics.opensource.android.modelrecord.event.SuccessEvent.java com.fanpics.opensource.android.modelrecord.sample.data.cache.ImgurDataCache.java com.fanpics.opensource.android.modelrecord.sample.data.model.ImgurData.java com.fanpics.opensource.android.modelrecord.sample.data.model.ImgurItem.java com.fanpics.opensource.android.modelrecord.sample.data.model.record.ImgurDataRecord.java com.fanpics.opensource.android.modelrecord.sample.data.network.ImgurItemService.java com.fanpics.opensource.android.modelrecord.sample.event.ImgurDataLoadFailedEvent.java com.fanpics.opensource.android.modelrecord.sample.event.ImgurDataLoadSucceededEvent.java com.fanpics.opensource.android.modelrecord.sample.ui.activity.MainActivity.java com.fanpics.opensource.android.modelrecord.sample.ui.adapter.ImgurAdapter.java