package fr.pagesjaunes.mdm; import android.accounts.AccountsException; import android.app.Activity; import fr.pagesjaunes.mdm.authenticator.ApiKeyProvider; import fr.pagesjaunes.mdm.core.BootstrapService; import fr.pagesjaunes.mdm.core.UserAgentProvider; import java.io.IOException; import javax.inject.Inject; import retrofit.RestAdapter; /** * Provider for a {@link fr.pagesjaunes.mdm.core.BootstrapService} instance */ public class BootstrapServiceProvider { private RestAdapter restAdapter; private ApiKeyProvider keyProvider; public BootstrapServiceProvider(RestAdapter restAdapter, ApiKeyProvider keyProvider) { this.restAdapter = restAdapter; this.keyProvider = keyProvider; } /** * Get service for configured key provider * <p/> * This method gets an auth key and so it blocks and shouldn't be called on the main thread. * * @return bootstrap service * @throws IOException * @throws AccountsException */ public BootstrapService getService(final Activity activity) throws IOException, AccountsException { // The call to keyProvider.getAuthKey(...) is what initiates the login screen. Call that now. keyProvider.getAuthKey(activity); // TODO: See how that affects the bootstrap service. return new BootstrapService(restAdapter); } }