package com.donghoon;
import org.json.JSONObject;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import com.facebook.android.Facebook.AsyncFacebookRunner;
import com.facebook.android.Facebook.AsyncRequestListener;
import com.facebook.android.Facebook.DialogError;
import com.facebook.android.Facebook.Facebook;
import com.facebook.android.Facebook.FacebookError;
import com.facebook.android.Facebook.Session;
import com.facebook.android.Facebook.Facebook.DialogListener;
public class AppLoginListener implements DialogListener {
private Facebook mFacebook;
private FaceLoginCallback mCallback = null;
private Context mContext = null;
public AppLoginListener(Context context, Facebook fb,
FaceLoginCallback callBack) {
mContext = context;
mFacebook = fb;
mCallback = callBack;
}
public void onCancel() {
Log.d("app", "login canceled");
}
public void onComplete(Bundle values) {
/**
* We request the user's info so we can cache it locally and use it to
* render the new html snippets when the user updates her status or
* comments on a post.
*/
new AsyncFacebookRunner(mFacebook).request("/me",
new AsyncRequestListener() {
public void onComplete(JSONObject obj) {
// save the session data
String uid = obj.optString("id");
String name = obj.optString("name");
Session session = new Session(mFacebook, uid, name);
session.save(mContext);
mCallback.onCompleteLogin();
}
});
}
public void onError(DialogError e) {
Log.d("app", "dialog error: " + e);
}
public void onFacebookError(FacebookError e) {
Log.d("app", "facebook error: " + e);
}
}
|