ppamorim

Untitled

Jun 9th, 2015
281
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.50 KB | None | 0 0
  1. import android.content.Context;
  2. import com.facebook.FacebookRequestError;
  3. import com.facebook.LoginActivity;
  4. import com.facebook.Request;
  5. import com.facebook.Response;
  6. import com.facebook.Session;
  7. import com.facebook.SessionState;
  8. import com.facebook.model.GraphUser;
  9. import java.util.List;
  10.  
  11. public class Facebook {
  12.  
  13.   private Context context;
  14.   private Session session;
  15.   private Session.OpenRequest request;
  16.  
  17.   private List<String> permissions;
  18.  
  19.   private Callback callback;
  20.  
  21.   public Facebook(Context context) {
  22.     this.context = context;
  23.   }
  24.  
  25.   public Facebook permissions(List<String> permissions) {
  26.     this.permissions = permissions;
  27.     return this;
  28.   }
  29.  
  30.   public Facebook login(Callback callback) {
  31.     this.callback = callback;
  32.     request = new Session.OpenRequest((LoginActivity)context);
  33.     request.setPermissions(permissions);
  34.     request.setCallback(callbackFacebook);
  35.     session = new Session(context);
  36.     Session.setActiveSession(session);
  37.     session.openForRead(request);
  38.     return this;
  39.   }
  40.  
  41.   private Session.StatusCallback callbackFacebook = new Session.StatusCallback() {
  42.     @Override public void call(Session session, SessionState state, Exception exception) {
  43.       if(exception != null) {
  44.         DebugUtil.log("EXCEPTION_THROWNED");
  45.         return;
  46.       }
  47.       if (session.isOpened()) {
  48.         Request request = Request.newMeRequest(session, new Request.GraphUserCallback() {
  49.           @Override public void onCompleted(GraphUser user, Response response) {
  50.             if(response != null &&
  51.                 response.getError() != null &&
  52.                 response.getError().getErrorCode() ==
  53.                     FacebookRequestError.INVALID_ERROR_CODE) {
  54.               callback.onFail();
  55.               return;
  56.             }
  57.             if (response != null && response.getGraphObject() == null) {
  58.               callback.onFail();
  59.               return;
  60.             }
  61.             if (user != null) {
  62.               try {
  63.                 callback.onSuccess(user);
  64.               } catch (Exception e) {
  65.                 if(DebugUtil.DEBUG) {
  66.                   e.printStackTrace();
  67.                 }
  68.                 callback.onFail();
  69.               }
  70.             } else {
  71.               callback.onFail();
  72.             }
  73.           }
  74.         });
  75.         request.executeAsync();
  76.       } else {
  77.         callback.onFail();
  78.       }
  79.     }
  80.   };
  81.  
  82.   public interface Callback {
  83.     void onSuccess(GraphUser graphUser);
  84.     void onFail();
  85.   }
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment