/* * Copyright 2016. Alejandro Sánchez * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package com.asanchezyu.retrofitsoap.injection.application; import com.asanchezyu.retrofitsoap.RetrofitSoapApplication; import com.asanchezyu.retrofitsoap.api.UsStatesApi; import org.simpleframework.xml.Serializer; import org.simpleframework.xml.convert.AnnotationStrategy; import org.simpleframework.xml.core.Persister; import org.simpleframework.xml.strategy.Strategy; import java.util.concurrent.TimeUnit; import javax.inject.Singleton; import dagger.Module; import dagger.Provides; import okhttp3.OkHttpClient; import okhttp3.logging.HttpLoggingInterceptor; import retrofit2.Retrofit; import retrofit2.converter.simplexml.SimpleXmlConverterFactory; /** * Class Description. * * @author [email protected]. * @version 1.0. * @since 15/6/16. */ @Module @Singleton public class ApplicationModule { private RetrofitSoapApplication application; public ApplicationModule(RetrofitSoapApplication application) { this.application = application; } @Provides @Singleton public UsStatesApi providesApi(){ HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor(); interceptor.setLevel(HttpLoggingInterceptor.Level.BODY); Strategy strategy = new AnnotationStrategy(); Serializer serializer = new Persister(strategy); OkHttpClient okHttpClient = new OkHttpClient.Builder() .addInterceptor(interceptor) .connectTimeout(2, TimeUnit.MINUTES) .writeTimeout(2, TimeUnit.MINUTES) .readTimeout(2, TimeUnit.MINUTES) .build(); Retrofit retrofit = new Retrofit.Builder() .addConverterFactory(SimpleXmlConverterFactory.create(serializer)) .baseUrl("http://www.webservicex.net/") .client(okHttpClient) .build(); return retrofit.create( UsStatesApi.class); } }