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;
// www . j a  v a2  s.  co  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