package org.michenux.drodrolib.gms.auth;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.common.SignInButton;
import org.michenux.drodrolib.MCXApplication;
import org.michenux.drodrolib.R;
import org.michenux.drodrolib.security.UserHelper;
import org.michenux.drodrolib.security.UserSessionCallback;
import javax.inject.Inject;
public class GoogleAuthFragment extends Fragment implements UserSessionCallback, View.OnClickListener {
@Inject
UserHelper mUserHelper;
private GoogleAuthDelegate mGoogleAuthDelegate;
private SignInButton mSignInButton;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MCXApplication) getActivity().getApplication()).inject(this);
mGoogleAuthDelegate = new GoogleAuthDelegate(this.getActivity(), mUserHelper);
mGoogleAuthDelegate.setUserSessionCallback(this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.login_googleplus, container, false);
mSignInButton = (SignInButton) view.findViewById(R.id.sign_in_button);
mSignInButton.setOnClickListener(this);
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
mGoogleAuthDelegate.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onStart() {
super.onStart();
mGoogleAuthDelegate.onStart();
}
@Override
public void onLogin() {
updateButtons(true);
this.getActivity().finish();
}
@Override
public void onLogout() {
updateButtons(false);
}
private void updateButtons(boolean isSignedIn) {
if (isSignedIn) {
mSignInButton.setVisibility(View.INVISIBLE);
} else {
mSignInButton.setVisibility(View.VISIBLE);
}
}
@Override
public void onClick(View view) {
if (view.getId() == R.id.sign_in_button) {
mGoogleAuthDelegate.signIn(this.getActivity());
}
}
}