{"id":6908,"date":"2014-05-11T17:43:22","date_gmt":"2014-05-11T17:43:22","guid":{"rendered":"https:\/\/unknownerror.org\/index.php\/2014\/05\/11\/libgdx-facebook-login-go-to-screen-collection-of-common-programming-errors\/"},"modified":"2014-05-11T17:43:22","modified_gmt":"2014-05-11T17:43:22","slug":"libgdx-facebook-login-go-to-screen-collection-of-common-programming-errors","status":"publish","type":"post","link":"https:\/\/unknownerror.org\/index.php\/2014\/05\/11\/libgdx-facebook-login-go-to-screen-collection-of-common-programming-errors\/","title":{"rendered":"libgdx facebook login go to screen-Collection of common programming errors"},"content":{"rendered":"<p>i have integrate facebook with libgdx, at my main class i call facebook dialog and another screen, and i want after login, it will go to another screen,<\/p>\n<pre><code>if (mFacebook.isSessionValid()) {\n        String name = SessionStore.getName(this);\n        name        = (name.equals(\"\")) ? \"Unknown\" : name;\n        pk          = name;\n        initialize(new GO(), false);\n    }\n    else{\n        initialize(new GOloginscreen(), false);\n        mFacebook.authorize(this, PERMISSIONS, -1, new FbLoginDialogListener());\n    }\n<\/code><\/pre>\n<p>if it has login session it will go to main menu screen, but if not it will call fb login dialog. after login i set initialize here<\/p>\n<pre><code>public void onComplete(Bundle values) {\n        SessionStore.save(mFacebook, AndroidStarter.this);\n        getFbName();\n        initialize(new GO(), false);\n    }\n<\/code><\/pre>\n<p>but it won&#8217;t work since initialize must be in oncreate method?<\/p>\n<p>anyone know how could i do this, or have another solution?<\/p>\n<p>i have been stuck at this, here my full code<\/p>\n<pre><code>public class AndroidStarter extends AndroidApplication{\nprivate Facebook mFacebook;\nprivate ProgressDialog mProgress;\nString PERMISSIONS[] = { \"read_stream\", \"user_relationship_details\",\n        \"user_religion_politics\", \"user_work_history\",\n        \"user_relationships\", \"user_interests\", \"user_likes\",\n        \"user_location\", \"user_hometown\", \"user_education_history\",\n        \"user_activities\", \"offline_access\" };\nString APP_ID = \"thismyfbid2133\";\npublic static String pk;\n\/** Called when the activity is first created. *\/\n@Override\npublic void onCreate(Bundle savedInstanceState) {\n    super.onCreate(savedInstanceState);\n\n    pk = \"id\";\n    \/\/ Do the stuff that initialize() would do for you\n    requestWindowFeature(Window.FEATURE_NO_TITLE);\n    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, \n                    WindowManager.LayoutParams.FLAG_FULLSCREEN);\n    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);\n\n    mProgress       = new ProgressDialog(this);\n    mFacebook       = new Facebook(APP_ID);       \n    SessionStore.restore(mFacebook, this);\n    if (mFacebook.isSessionValid()) {\n        String name = SessionStore.getName(this);\n        name        = (name.equals(\"\")) ? \"Unknown\" : name;\n        pk          = name;\n        initialize(new GO(), false);\n    }\n    else{\n        initialize(new GOloginscreen(), false);\n        mFacebook.authorize(this, PERMISSIONS, -1, new FbLoginDialogListener());\n    }\n}\n\n\nprivate final class FbLoginDialogListener implements DialogListener {\n    public void onComplete(Bundle values) {\n        SessionStore.save(mFacebook, AndroidStarter.this);\n        getFbName();\n    }\n\n    public void onFacebookError(FacebookError error) {\n        Toast.makeText(AndroidStarter.this, \"Facebook connection failed\", Toast.LENGTH_SHORT).show();\n    }\n\n    public void onError(DialogError error) {\n        Toast.makeText(AndroidStarter.this, \"Facebook connection failed\", Toast.LENGTH_SHORT).show(); \n    }\n\n    public void onCancel() {\n    }\n}\n\nprivate void getFbName() {\n    mProgress.setMessage(\"Finalizing ...\");\n    mProgress.show();\n\n    new Thread() {\n        @Override\n        public void run() {\n            String name = \"\";\n            int what = 1;\n\n            try {\n                String me = mFacebook.request(\"me\");\n\n                JSONObject jsonObj = (JSONObject) new JSONTokener(me).nextValue();\n                name = jsonObj.getString(\"name\");\n                what = 0;\n            } catch (Exception ex) {\n                ex.printStackTrace();\n            }\n\n            mFbHandler.sendMessage(mFbHandler.obtainMessage(what, name));\n        }\n    }.start();\n}\n\nprivate Handler mFbHandler = new Handler() {\n    @Override\n    public void handleMessage(Message msg) {\n        mProgress.dismiss();\n\n        if (msg.what == 0) {\n            String username = (String) msg.obj;\n            username = (username.equals(\"\")) ? \"No Name\" : username;\n\n            SessionStore.saveName(username, AndroidStarter.this);\n\n            Toast.makeText(AndroidStarter.this, \"Connected to Facebook as \" + username, Toast.LENGTH_SHORT).show();\n        } else {\n            Toast.makeText(AndroidStarter.this, \"Connected to Facebook\", Toast.LENGTH_SHORT).show();\n        }\n    }\n};\n<\/code><\/pre>\n<p>}<\/p>\n","protected":false},"excerpt":{"rendered":"<p>i have integrate facebook with libgdx, at my main class i call facebook dialog and another screen, and i want after login, it will go to another screen, if (mFacebook.isSessionValid()) { String name = SessionStore.getName(this); name = (name.equals(&#8220;&#8221;)) ? &#8220;Unknown&#8221; : name; pk = name; initialize(new GO(), false); } else{ initialize(new GOloginscreen(), false); mFacebook.authorize(this, PERMISSIONS, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-6908","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6908","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/comments?post=6908"}],"version-history":[{"count":0,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/posts\/6908\/revisions"}],"wp:attachment":[{"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/media?parent=6908"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/categories?post=6908"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/unknownerror.org\/index.php\/wp-json\/wp\/v2\/tags?post=6908"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}