Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save nabeelnazir163/e93df5ad7694fa6d0b7b15d1d89055b0 to your computer and use it in GitHub Desktop.
Save nabeelnazir163/e93df5ad7694fa6d0b7b15d1d89055b0 to your computer and use it in GitHub Desktop.
for a demo purpose i want to move to home_nav avtivity after clicking on a text
package com.example.nabeel.ask;
import com.bumptech.glide.Glide;
import com.facebook.CallbackManager;
import com.facebook.FacebookCallback;
import com.facebook.FacebookException;
import com.facebook.FacebookSdk;
import com.facebook.appevents.AppEventsLogger;
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.common.api.Result;
import com.google.android.gms.common.api.ResultCallback;
import com.google.android.gms.common.api.Status;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class signin extends AppCompatActivity implements View.OnClickListener, GoogleApiClient.OnConnectionFailedListener {
Intent i;
private LinearLayout Prof_Section;
private LoginButton loginButton;
private CallbackManager callbackManager;
private Button SignOut;
private TextView Name , Email;
private SignInButton SignIn;
private GoogleApiClient googleApiClient;
private static final int REQ_CODE = 9001;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
setContentView(R.layout.activity_signin);
Prof_Section = (LinearLayout)findViewById(R.id.prof_section);
SignOut = (Button)findViewById(R.id.bn_logout);
Name = (TextView)findViewById(R.id.name);
Email = (TextView)findViewById(R.id.email);
SignIn = (SignInButton)findViewById(R.id.bn_login);
SignIn.setOnClickListener(this);
SignOut.setOnClickListener(this);
Prof_Section.setVisibility(View.GONE);
GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN).requestEmail().build();
googleApiClient = new GoogleApiClient.Builder(this).enableAutoManage(this,this).addApi(Auth.GOOGLE_SIGN_IN_API,signInOptions).build();
loginButton = (LoginButton)findViewById(R.id.login_button);
callbackManager = CallbackManager.Factory.create();
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
i = new Intent(signin.this , home.class);
startActivity(i);
}
@Override
public void onCancel() {
}
@Override
public void onError(FacebookException error) {
}
});
TextView tv_su = (TextView) findViewById(R.id.signup);
tv_su.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i = new Intent(signin.this, signup.class);
startActivity(i);
}
});
TextView tv_si = (TextView) findViewById(R.id.login);
tv_si.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent si = new Intent(signin.this, home_nav.class);
startActivity(si);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == REQ_CODE) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
handleresult(result);
}
else {
callbackManager.onActivityResult(requestCode, resultCode, data);
} }
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.bn_login:
signIn();
break;
case R.id.bn_logout:
signOut();
break;
}
}
@Override
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
}
private void signIn(){
Intent intent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult(intent,REQ_CODE);
}
private void signOut(){
Auth.GoogleSignInApi.signOut(googleApiClient).setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
updateUI(false);
}
});
}
private void handleresult(GoogleSignInResult result){
if(result.isSuccess()){
i = new Intent(signin.this , home.class);
startActivity(i);
GoogleSignInAccount account = result.getSignInAccount();
String name = account.getDisplayName();
String email = account.getEmail();
Name.setText(name);
Email.setText(email);
updateUI(true);
}
else
updateUI(false);
}
private void updateUI(boolean isLogin){
if(isLogin){
Prof_Section.setVisibility(View.VISIBLE);
SignIn.setVisibility(View.GONE);
}
else{
Prof_Section.setVisibility(View.GONE);
SignIn.setVisibility(View.VISIBLE);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment