Untitled
plain_text
2 months ago
2.3 kB
3
Indexable
Never
package com.example.agricarbonuk.accessor.common; import android.content.Context; import com.example.agricarbonuk.BuildConfig; import com.example.agricarbonuk.accessor.AppConstantsAccessor; import com.example.agricarbonuk.accessor.AppOperatorLogAccessor; import com.example.agricarbonuk.accessor.AssignmentSearchAccessor; import com.example.agricarbonuk.accessor.UserLoginAccessor; import com.example.agricarbonuk.auth.AuthenticationInterceptor; import com.example.agricarbonuk.auth.TokenAuthenticator; import com.example.agricarbonuk.common.DateUtils; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import okhttp3.OkHttpClient; import retrofit2.Retrofit; import retrofit2.converter.gson.GsonConverterFactory; /** * Singleton class for Retrofit */ public class RetrofitInstance { private static Retrofit retrofit = null; private static Context context; private static String BASE_URL = BuildConfig.WEB_SERVER_BASE_URL; private static Gson gson = new GsonBuilder() .setDateFormat(DateUtils.DATE_FORMAT_ONLY_DATE) .registerTypeAdapter(Boolean.class, new BooleanTypeAdapter()) .create(); public static void initRetrofitInstance(Context context) { OkHttpClient client = new OkHttpClient.Builder() .addInterceptor(new AuthenticationInterceptor()) .addInterceptor(new ExceptionInterceptor()) .addInterceptor(new URLLoggerInterceptor()) .authenticator(new TokenAuthenticator(context)) .build(); retrofit = new Retrofit .Builder() .baseUrl(BASE_URL) .client(client) .addConverterFactory(GsonConverterFactory.create(gson)) .build(); } public static AppOperatorLogAccessor getAppOperatorLogAccessor() { return retrofit.create(AppOperatorLogAccessor.class); } public static AppConstantsAccessor getAppConstantsAccessor() { return retrofit.create(AppConstantsAccessor.class); } public static AssignmentSearchAccessor getAssignmentSearchAccessor() { return retrofit.create(AssignmentSearchAccessor.class); } public static UserLoginAccessor getUserLoginAccessor() { return retrofit.create(UserLoginAccessor.class); } }