package com.novoda.bonfire.login;
import android.content.Intent;
import android.support.annotation.NonNull;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.api.GoogleApiClient;
import com.novoda.bonfire.BaseActivity;
import com.novoda.bonfire.R;
import com.novoda.notils.logger.simple.Log;
public class LoginGoogleApiClient {
private final BaseActivity activity;
private GoogleApiClient apiClient;
public LoginGoogleApiClient(BaseActivity activity) {
this.activity = activity;
}
public void setupGoogleApiClient() {
String string = activity.getString(R.string.default_web_client_id);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(string)
.requestEmail()
.build();
apiClient = new GoogleApiClient.Builder(activity)
.enableAutoManage(
activity, new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Log.d("FireChat", "Failed to connect to GMS");
//TODO handle error
}
})
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
}
public Intent getSignInIntent() {
return Auth.GoogleSignInApi.getSignInIntent(apiClient);
}
public GoogleSignInResult getSignInResultFromIntent(Intent data) {
return Auth.GoogleSignInApi.getSignInResultFromIntent(data);
}
}