Получение ошибки в методе enableAutoManage при передаче контекста. В основном я аутентифицирую пользователя с помощью Firebase, но запускаю свой собственный API для хранения информации о пользователе
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
sharedPreferenceManager = new SharedPreferenceManager(context);
initialize();
String first = getResources().getString(R.string.by_continuing_terms);
String second = getResources().getString(R.string.terms_n_condition);
terms_and_conditions.setText(Html.fromHtml(first + second));
//Remove Text from Google's Sign In Button
TextView textView = (TextView) google.getChildAt(0);
textView.setText(BLANK);
callbackManager = CallbackManager.Factory.create();
skipLoginHandler();
nextClickHandler();
progressDialog = new ProgressDialog(LoginActivity.this);
progressDialog.setTitle(getResources().getString(R.string.authenticating));
progressDialog.setMessage(getResources().getString(R.string.please_wait_while_we_check_your_credentials));
progressDialog.setCanceledOnTouchOutside(false);
mAuth = FirebaseAuth.getInstance();
mAuthListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
firebaseUser = firebaseAuth.getCurrentUser();
}
};
google.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "Google button is tapped", Toast.LENGTH_SHORT).show();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(LoginActivity.this,
new GoogleApiClient.OnConnectionFailedListener() {
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
Toast.makeText(context, getResources().getString(R.string.google_play_services_error), Toast.LENGTH_LONG).show();
}
})
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
}
@Override
protected void onPause() {
super.onPause();
if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) {
mGoogleApiClient.stopAutoManage(LoginActivity.this);
mGoogleApiClient.disconnect();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount account = result.getSignInAccount();
sharedPreferenceManager.addDetailToSharedPreferences(GOOGLE_ID_TOKEN, account != null ? account.getIdToken() : BLANK);
if(account != null) {
firebaseAuthWithGoogle(account);
} else {
System.out.println("Account is NULL!!");
}
} else {
System.out.println("Google Login Unsuccessful!!");
}
}
}
private void firebaseAuthWithGoogle(GoogleSignInAccount googleSignInAccount) {
AuthCredential credential = GoogleAuthProvider.getCredential(googleSignInAccount.getIdToken(), null);
mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
этот метод вызывается для регистрации пользователя registerOrLoginUsingGoogle ();} else {Toast.makeText (context, getResources (). getString (R.string.google_signin_failed), Toast.LENGTH_SHORT) .show ();}}});} Мой импорт для этой операции
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.annotation.NonNull;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.Html;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import android.util.Log;
import com.android.volley.Request;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonArrayRequest;
import com.ango.DueDateActivity;
import com.ango.HealthFeedsActivityNew;
import com.ango.MotherOrFather;
import com.ango.MotherOrFatherDetails;
import com.ango.R;
import com.ango.global.AngoConfigurations;
import com.ango.global.SharedPreferenceManager;
import com.ango.helper.Constants;
import com.ango.helper.PatientDetailsHelper;
import com.ango.helper.RequestQueueSingleton;
import com.facebook.AccessToken;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.facebook.login.widget.LoginButton;
import com.google.android.gms.auth.api.Auth;
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
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.SignInButton;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthCredential;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FacebookAuthProvider;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.GoogleAuthProvider;
import com.hbb20.CountryCodePicker;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.regex.Matcher;
import java.util.regex.Pattern;