ppamorim

Untitled

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