From 0c51019d4ebe570bf78ee14d957b106ab5574d6d Mon Sep 17 00:00:00 2001 From: rbehshad Date: Fri, 23 Feb 2018 11:34:06 -0800 Subject: [PATCH] This will fix the login callback not being called on Android if the player backgrounds the app with the login screen visible, and resumes the app from the app launcher (not the recent apps). --- .../facebook/unity/FBUnityLoginActivity.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java b/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java index 3182db3c1..e4aaca0e7 100644 --- a/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java +++ b/facebook-android-wrapper/src/com/facebook/unity/FBUnityLoginActivity.java @@ -21,6 +21,7 @@ package com.facebook.unity; import com.facebook.CallbackManager; +import com.facebook.FacebookSdk; import android.app.Activity; import android.content.Intent; @@ -30,6 +31,8 @@ public class FBUnityLoginActivity extends BaseActivity { public static final String LOGIN_PARAMS = "login_params"; public static final String LOGIN_TYPE = "login_type"; + private boolean didReceiveActivityResult = false; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -62,4 +65,20 @@ public enum LoginType { TV_PUBLISH } + @Override + public void onActivityResult(int requestCode, int resultCode, Intent data) { + super.onActivityResult(requestCode, resultCode, data); + didReceiveActivityResult = true; + } + + @Override + public void onDestroy() { + super.onDestroy(); + if(!didReceiveActivityResult) + { + didReceiveActivityResult = true; + int loginRequestCode = FacebookSdk.getCallbackRequestCodeOffset(); + mCallbackManager.onActivityResult(loginRequestCode, RESULT_CANCELED, null); + } + } }