package co.smartreceipts.android.sync.network; import android.content.Context; import android.support.annotation.NonNull; import com.google.common.base.Preconditions; public class NetworkProviderFactory { private final Context mContext; public NetworkProviderFactory(@NonNull Context context) { mContext = Preconditions.checkNotNull(context.getApplicationContext()); } @NonNull public NetworkProvider get(@NonNull SupportedNetworkType supportedNetworkType) { if (supportedNetworkType == SupportedNetworkType.WifiOnly) { return new WifiNetworkProviderImpl(mContext); } else { return new CompositeNetworkProviderImpl(new WifiNetworkProviderImpl(mContext), new MobileNetworkProviderImpl(mContext)); } } }