All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.octo.android.robospice.GoogleHttpClientSpiceService Maven / Gradle / Ivy

package com.octo.android.robospice;

import java.util.Set;

import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.http.HttpRequestFactory;
import com.google.api.client.http.HttpTransport;
import com.octo.android.robospice.request.CachedSpiceRequest;
import com.octo.android.robospice.request.googlehttpclient.GoogleHttpClientSpiceRequest;
import com.octo.android.robospice.request.listener.RequestListener;

/**
 * This class offers a {@link SpiceService} that injects a
 * {@link HttpRequestFactory} from Google Http Client into every
 * {@link GoogleHttpClientSpiceRequest} it has to execute. Developpers can
 * override {@link #createRequestFactory()} in addition to the usual
 * {@link #createCacheManager(android.app.Application)} methods to create a
 * {@link HttpRequestFactory} and configure it.
 * @author sni
 */
public abstract class GoogleHttpClientSpiceService extends SpiceService {

    protected HttpRequestFactory httpRequestFactory;

    @Override
    public void onCreate() {
        super.onCreate();
        httpRequestFactory = createRequestFactory();
    }

    public static HttpRequestFactory createRequestFactory() {
        HttpTransport httpTransport = AndroidHttp.newCompatibleTransport();
        return httpTransport.createRequestFactory();
    }

    @Override
    public void addRequest(CachedSpiceRequest request, Set> listRequestListener) {
        if (request.getSpiceRequest() instanceof GoogleHttpClientSpiceRequest) {
            ((GoogleHttpClientSpiceRequest) request.getSpiceRequest()).setHttpRequestFactory(httpRequestFactory);
        }
        super.addRequest(request, listRequestListener);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy