android - Facebook login in fragment -


i use facebook login in app. have registred app , added sdk project. however, tried follow tutorial documentation nothing worked (i need id , email profile , send to server).

fragment

public class loginfragment extends fragment {      @bindview(r.id.ivlogo) imageview ivlogo;     @bindview(r.id.email) edittext edemail;     @bindview(r.id.password) edittext edpassword;     @bindview(r.id.btnfblogin) loginbutton btnfblogin;      private callbackmanager callbackmanager;     private accesstokentracker accesstokentracker;     private profiletracker profiletracker;      string email, password, id;     user user;      public loginfragment() {         // required empty public constructor     }      public static loginfragment newinstance() {         loginfragment fragment = new loginfragment();         bundle args = new bundle();         fragment.setarguments(args);         return fragment;     }      @override     public void oncreate(bundle savedinstancestate) {         super.oncreate(savedinstancestate);          loginmanager.getinstance().registercallback(callbackmanager,                 new facebookcallback<loginresult>() {                     @override                     public void onsuccess(loginresult loginresult) {                         // app code                         log.i("success", "success");                     }                      @override                     public void oncancel() {                         // app code                     }                      @override                     public void onerror(facebookexception exception) {                         // app code                     }                 });     }      @override     public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) {         view view = inflater.inflate(r.layout.fragment_login_screen, container, false);         butterknife.bind(this, view);          btnfblogin.setreadpermissions("email");         btnfblogin.setfragment(this);          // callback registration         btnfblogin.registercallback(callbackmanager, new facebookcallback<loginresult>() {             @override             public void onsuccess(loginresult loginresult) {                 // app code             }              @override             public void oncancel() {                 // app code             }              @override             public void onerror(facebookexception exception) {                 // app code             }         });          return view;     }      @override     public void onviewcreated(view view, @nullable bundle savedinstancestate) {         super.onviewcreated(view, savedinstancestate);     }      @override     public void onresume() {         super.onresume();         ((mainactivity) getactivity()).getsupportactionbar().hide();     }      private void fbcallback() {         facebookcallback<loginresult> callback = new facebookcallback<loginresult>() {             @override             public void onsuccess(loginresult loginresult) {                 accesstoken accesstoken = loginresult.getaccesstoken();                 profile profile = profile.getcurrentprofile();                  graphrequest request = graphrequest.newmerequest(                         loginresult.getaccesstoken(),                         new graphrequest.graphjsonobjectcallback() {                             @override                             public void oncompleted(                                     jsonobject object,                                     graphresponse response) {                                  try {                                     string email = object.getstring("email");                                  } catch (jsonexception e) {                                     e.printstacktrace();                                 }                             }                         });             }              @override             public void oncancel() { }              @override             public void onerror(facebookexception e) { }         };          btnfblogin.setreadpermissions("email");         btnfblogin.registercallback(callbackmanager, callback);     }       private void loginemail() {         factoryapi.getinstancelogin().login("hardcoded mail", "hardcoded password").enqueue(new callback<userresponse>() {             @override             public void onresponse(call<userresponse> call, response<userresponse> response) {                 if (response.issuccessful()) {                     user = response.body().getuser();                     startactivity();                 } else {                     toast.maketext(getcontext(), r.string.email_password_is_not_right, toast.length_long).show();                 }             }              @override             public void onfailure(call<userresponse> call, throwable t) {             }         });     }      private void loginfb() {         factoryapi.getserviefblogin().loginfb(email, id).enqueue(new callback<userresponse>() {             @override             public void onresponse(call<userresponse> call, response<userresponse> response) {                 if (response.issuccessful()) {                     user = response.body().getuser();                     startactivity();                 } else {                     toast.maketext(getcontext(), "something went wrong", toast.length_long).show();                 }             }              @override             public void onfailure(call<userresponse> call, throwable t) {                 log.e("error", "error");             }         });     }      public void getemailpassword() {         email = edemail.gettext().tostring();         password = edpassword.gettext().tostring();         if (email.isempty() || password.isempty()) {             toast.maketext(getcontext(), r.string.empty_properties, toast.length_short).show();         }     }      public static boolean emailvalidation(charsequence target) {         return !textutils.isempty(target) && patterns.email_address.matcher(target).matches();     }      public void startactivity() {         intent intent = new intent(getcontext(), accountactivity.class);         intent.putextra("account", user);         startactivity(intent);     }      @override     public void onactivityresult(int requestcode, int responsecode, intent intent) {         super.onactivityresult(requestcode, responsecode, intent);         callbackmanager.onactivityresult(requestcode, responsecode, intent);     }      @onclick({r.id.sign_up_email, r.id.btnfblogin})     public void onclick(view view) {         switch (view.getid()) {             case r.id.sign_up_email:                 loginemail();             case r.id.btnfblogin:                 break;         }     }      private void getprofile(profile profile){         if(profile != null){             id = profile.getid();         }     } } 

as facebook login in fragment not in activity, callback comes in onactivityresult() of activity in fragment attached.

you can check after override onactivityresult() of activity, , put debug point there.

after getting result in activity onactivityresult() method, can send fragment's onactivityresult().

hope help.


Comments

Popular posts from this blog

amazon web services - S3 Pre-signed POST validate file type? -

c# - Check Keyboard Input Winforms -