Android : Calling new activity after facebook login | In Android

on Thursday, October 9, 2014


I have 2 activities in my android application. On the first one, I ask the user to login with facebook. after the user logs in the first activity page remains on the screen for a few seconds and then the next activity is called. there is a lag. How can I fix the lag?



@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.signin_popup);
ImageView cn = (ImageView) findViewById(R.id.cancle_button);

m_oBtnLoginfacebook = (ImageView) findViewById(R.id.fb);
m_oBtnLoginfacebook.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if(Config.ConnectionDetectorObj.isConnectingToInternet())
{
loginthroughfacebook();
}

}
});
m_oBtnLoginTwitter = (ImageView) findViewById(R.id.tw);
m_oBtnLoginTwitter.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
if(Config.ConnectionDetectorObj.isConnectingToInternet())
{
loginthroughtwitter();
}

}
});

}
Config.m_oParseUserCurrent = ParseUser.getCurrentUser();
if ((Config.m_oParseUserCurrent != null) && ParseTwitterUtils.isLinked(Config.m_oParseUserCurrent))
{
// Go to the user info activity
Config.m_bIsTwitter=true;
Config.m_bIsSignin=true;
Config.m_strTwitterScreenName=ParseTwitterUtils.getTwitter().getScreenName();
showHomeScreen();
finish();
}
// Check if there is a currently logged in user
// and they are linked to a Facebook account.
if ((Config.m_oParseUserCurrent != null) && ParseFacebookUtils.isLinked(Config.m_oParseUserCurrent))
{
// Go to the user info activity
Config.m_bIsTwitter=false;
Config.m_bIsSignin=true;
showHomeScreen();
finish();
}
}

}


private void loginthroughtwitter()
{
ParseTwitterUtils.logIn(this, new LogInCallback()
{
@Override
public void done(ParseUser user, ParseException err)
{
Config.m_bIsTwitter=true;
Config.m_bIsSignin=true;
if (user != null)
{
Config.m_strTwitterScreenName=ParseTwitterUtils.getTwitter().getScreenName();
Config.twitter_access_token = ParseTwitterUtils.getTwitter().getAuthToken();
Config.twitter_access_token_secret = ParseTwitterUtils.getTwitter().getAuthTokenSecret();
showHomeScreen();
if(user.isNew())
{
//for first time login
}
finish();
}
else
{
Config.m_bIsTwitter=true;
Config.m_strTwitterScreenName=ParseTwitterUtils.getTwitter().getScreenName();
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
ParseFacebookUtils.finishAuthentication(requestCode, resultCode, data);
}
private void loginthroughfacebook()
{
Log.d("Log in before", "First log in");
List<String> permissions = Arrays.asList("public_profile","user_friends", "user_about_me","user_relationships", "user_birthday","user_location");
try
{
ParseFacebookUtils.logIn(permissions, this, new LogInCallback()
{
@Override
public void done(ParseUser user, ParseException err)
{
Config.m_bIsTwitter=false;
Config.m_bIsSignin=true;

if(user == null)
{
Log.e("user is null fb", "user fb null "+err);
Config.m_bIsSignin=false;
}

if (user != null)
{
Session session = ParseFacebookUtils.getSession();
setupsession(session);


showHomeScreen();
if(user.isNew())
{
}
finish();
}
}
});
}
catch(Exception e)
{
e.printStackTrace();
Log.e("eee","e "+e);
}
}
private void showHomeScreen()
{
Config.m_bIsSignin=true;
finish();
}
public void setupsession(Session session)
{
Log.e("session","session"+session);

Session.setActiveSession(session);
}
private class SessionStatusCallback implements Session.StatusCallback
{
@Override
public void call(Session session, SessionState state,Exception exception)
{
//may be required anytime later
/*Request.executeMeRequestAsync(session, new GraphUserCallback()
{
@Override
public void onCompleted(GraphUser user, Response response)
{
if (user != null)
{
fetch_User_Data(user);
}
}
});*/
}
/*protected void fetch_User_Data(GraphUser user)
{
Log.i("user",user.toString());
Log.i("inner JSONobject",user.getInnerJSONObject().toString());
}*/
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
// If we've received a touch notification that the user has touched
// outside the app,dont finish the activity.
if (MotionEvent.ACTION_DOWN == event.getAction() || MotionEvent.ACTION_UP == event.getAction() ||MotionEvent.ACTION_MOVE== event.getAction())
{
return false;
}
// Delegate everything else to Activity.
return super.onTouchEvent(event);
}

}*

0 comments:

Post a Comment