Android Open Source - android-model-record Record 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.SingleRecordConfiguration;
import com.fanpics.opensource.android.modelrecord.event.EventProcessor;
import com.fanpics.opensource.android.modelrecord.event.SuccessEvent;
import retrofit.Callback;
import retrofit.RetrofitError;
import retrofit.client.Response;
public class RecordCallback<T> extends BaseRecordCallback implements Callback<T> {
protected SingleRecordConfiguration<T> configuration;
protected Object key;
protected RecordCallback(SingleRecordConfiguration<T> configuration, EventProcessor eventProcessor, HttpReport httpReport){
super (eventProcessor, httpReport);
this.configuration = configuration;
}
public RecordCallback(SingleRecordConfiguration<T> configuration, EventProcessor bus, HttpReport httpReport, Handler handler) {
super (bus, httpReport, handler);
this.configuration = configuration;
}
public void setKey(Object key) {
this.key = key;
}
public Object getKey() {
return key;
}
@Override
public void success(T model, Response response) {
success(model, response, true);
}
public void synchronousSuccess(T model, Response response) {
success(model, response, false);
}
private void success(T model, Response response, boolean shouldPostResult) {
final SuccessEvent<T> event = configuration.getSuccessEvent();
event.setResult(model);
event.setHasFinished(true);
runCacheThread(model);
sendHttpReport(response);
configuration.callSuccessCallback(model);
if (shouldPostResult) {
postSuccessEvent(event);
}
}
protected void runCacheThread(final T model) {
new Thread(new Runnable() {
@Override
public void run() {
manageCacheIfExists(model);
}
}).start();
}
protected void manageCacheIfExists(T model) {
final RecordCache<T> cache = configuration.getCache();
if (cache != null) {
cache.store(key, model);
}
}
@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