Skip to content

Instantly share code, notes, and snippets.

@mondoktamas
Created December 30, 2016 09:36
Show Gist options
  • Save mondoktamas/9ccbaf7c36c10a1efbb121d2acfe24ce to your computer and use it in GitHub Desktop.
Save mondoktamas/9ccbaf7c36c10a1efbb121d2acfe24ce to your computer and use it in GitHub Desktop.
package com.booklava.booklava.domain.utils;
import android.content.Context;
import com.booklava.booklava.data.network.BookApiService;
import com.booklava.booklava.data.network.BookmarkApiService;
import com.booklava.booklava.data.network.CartApiService;
import com.booklava.booklava.data.network.CategoryApiService;
import com.booklava.booklava.data.network.CountryApiService;
import com.booklava.booklava.data.network.CreditApiService;
import com.booklava.booklava.data.network.FAQApiService;
import com.booklava.booklava.data.network.FeedbackApiService;
import com.booklava.booklava.data.network.LibraryApiService;
import com.booklava.booklava.data.network.ListeningTimeApiService;
import com.booklava.booklava.data.network.SearchApiService;
import com.booklava.booklava.data.network.SocialApiService;
import com.booklava.booklava.data.network.SupportRequestApiService;
import com.booklava.booklava.data.network.SyncApiService;
import com.booklava.booklava.data.network.UserApiService;
import com.booklava.booklava.data.network.WishlistApiService;
import com.booklava.booklava.data.network.config.BooklavaNetworkConfig;
import com.booklava.booklava.data.network.config.LinkedInNetworkConfig;
import com.booklava.booklava.data.repository.BookRepository;
import com.booklava.booklava.data.repository.BookmarkRepository;
import com.booklava.booklava.data.repository.CartRepository;
import com.booklava.booklava.data.repository.CategoriesRepository;
import com.booklava.booklava.data.repository.CountryRepository;
import com.booklava.booklava.data.repository.CreditRepository;
import com.booklava.booklava.data.repository.FAQRepository;
import com.booklava.booklava.data.repository.FeedbackRepository;
import com.booklava.booklava.data.repository.LibraryRepository;
import com.booklava.booklava.data.repository.ListeningTimeRepository;
import com.booklava.booklava.data.repository.RepositoryFactory;
import com.booklava.booklava.data.repository.SearchRepository;
import com.booklava.booklava.data.repository.SocialAuthRepository;
import com.booklava.booklava.data.repository.SupportRepository;
import com.booklava.booklava.data.repository.SyncRepository;
import com.booklava.booklava.data.repository.UserRepository;
import com.booklava.booklava.data.repository.WishlistRepository;
import com.booklava.core.data.network.ServiceGenerator;
public class Injection {
static final ServiceGenerator sServiceGenerator;
static {
sServiceGenerator = ServiceGenerator.getInstance();
}
public static synchronized UserRepository provideUserRepository(final Context context) {
return RepositoryFactory.getUserRepository(
sServiceGenerator.createServiceFromConfiguration(UserApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static synchronized CategoriesRepository provideCategoryRepository(final Context context) {
return RepositoryFactory.getCategoryRepository(
sServiceGenerator.createServiceFromConfiguration(CategoryApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static synchronized CountryRepository provideCountryRepository(final Context context) {
return RepositoryFactory.getCountryRepository(
sServiceGenerator.createServiceFromConfiguration(CountryApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static synchronized BookRepository provideBookRepository(final Context context) {
return RepositoryFactory.getBookRepository(
sServiceGenerator.createServiceFromConfiguration(BookApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static synchronized LibraryRepository provideLibraryRepository(final Context context) {
return RepositoryFactory.getLibraryRepository(
sServiceGenerator.createServiceFromConfiguration(LibraryApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static synchronized WishlistRepository provideWishlistRepository(final Context context) {
return RepositoryFactory.getWishlistRepository(
sServiceGenerator.createServiceFromConfiguration(WishlistApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static synchronized CartRepository provideCartRepository(final Context context){
return RepositoryFactory.getCartRepository(
sServiceGenerator.createServiceFromConfiguration(CartApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static synchronized SocialAuthRepository provideSocialAuthRepository() {
return RepositoryFactory.getSocialAuthRepo(
sServiceGenerator.createServiceFromConfiguration(SocialApiService.class,
LinkedInNetworkConfig.getInstance()));
}
public static FeedbackRepository provideFeedbackRepository(final Context context) {
return RepositoryFactory.getFeedbackRepository(
sServiceGenerator.createServiceFromConfiguration(FeedbackApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static SearchRepository provideSearchRepository(final Context context) {
return RepositoryFactory.getSearchRepository(
sServiceGenerator.createServiceFromConfiguration(SearchApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static ListeningTimeRepository provideListeningTimeRepository(final Context context){
return RepositoryFactory.getListeningTimeRepository(
sServiceGenerator.createServiceFromConfiguration(ListeningTimeApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static SyncRepository provideSyncRepository(final Context context) {
return RepositoryFactory.getSyncRepository(
sServiceGenerator.createServiceFromConfiguration(SyncApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static CreditRepository provideCreditRepository(final Context context) {
return RepositoryFactory.getCreditRepository(
sServiceGenerator.createServiceFromConfiguration(CreditApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static BookmarkRepository provideBookmarkRepository(final Context context) {
return RepositoryFactory.getBookmarkRepository(
sServiceGenerator.createServiceFromConfiguration(BookmarkApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static FAQRepository provideFaqRepository(final Context context) {
return RepositoryFactory.getFaqRepository(sServiceGenerator.createServiceFromConfiguration(FAQApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
public static SupportRepository provideSupportRepository(final Context context) {
return RepositoryFactory.getSupportRepository(sServiceGenerator.createServiceFromConfiguration(SupportRequestApiService.class,
BooklavaNetworkConfig.getInstance(context)));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment