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

How to use SUM() in MySQL for calculated values -

loops - Spock: How to use test data with @Stepwise -