소스 검색

android exc

[email protected] 8 년 전
부모
커밋
881c3cc41d

+ 29 - 9
android/src/org/oxygine/facebook/FacebookAdapter.java

@@ -83,7 +83,25 @@ public class FacebookAdapter extends ActivityObserver
                 new FacebookCallback<GameRequestDialog.Result>() {
                     public void onSuccess(GameRequestDialog.Result result) {
                         //String id = result.getId();
-                        nativeGameRequest(result.getRequestId(), false);
+
+                        List<String> rec = result.getRequestRecipients();
+                        //rec.toArray(new String[rec.size()]);
+
+                        JSONObject js = new JSONObject();
+                        try {
+                            js.put("request", result.getRequestId());
+
+                            JSONArray arr = new JSONArray(rec);
+                            js.put("to", arr);
+                        }
+                        catch (JSONException exc)
+                        {
+
+                        }
+
+                        String data = js.toString();
+
+                        nativeGameRequest(data, false);
                     }
                     public void onCancel() {
                         nativeGameRequest(null, true);
@@ -300,12 +318,19 @@ public class FacebookAdapter extends ActivityObserver
         r.executeAsync();
     }
 
-    public void _requestInvitableFriends(Bundle params)
+
+    public void requestInvitableFriends(final String exclude_ids[])
     {
-        if (params == null)
-            params = new Bundle();
+        Bundle params = new Bundle();
         params.putString("fields", "id,name,picture");
 
+        String exc = "";
+        for (String id:exclude_ids){
+            exc += id + ",";
+        }
+
+        params.putString("exclude_ids", exc);
+
         GraphRequest r = new GraphRequest(
                 AccessToken.getCurrentAccessToken(),
                 "/me/invitable_friends",
@@ -315,11 +340,6 @@ public class FacebookAdapter extends ActivityObserver
         _requestInvitableFriends2(r);
     }
 
-    public void requestInvitableFriends()
-    {
-        _requestInvitableFriends(null);
-    }
-
 
     public boolean isLoggedIn() {
         Log.i(TAG, "isLoggedIn");

+ 8 - 6
src/android/AndroidFacebook.cpp

@@ -62,13 +62,13 @@ extern "C"
         });
     }
 
-    JNIEXPORT void JNICALL Java_org_oxygine_facebook_FacebookAdapter_nativeGameRequest(JNIEnv* env, jobject obj, jstring jrequestID, jboolean error)
+    JNIEXPORT void JNICALL Java_org_oxygine_facebook_FacebookAdapter_nativeGameRequest(JNIEnv* env, jobject obj, jstring jData, jboolean error)
     {
-        string requestID = jniGetString(env, jrequestID);
+        string data = jniGetString(env, jData);
 
         core::getMainThreadDispatcher().postCallback([ = ]()
         {
-            facebook::internal::gameRequestResult(requestID, (bool)error);
+            facebook::internal::gameRequestResult(data, (bool)error);
         });
     }
 
@@ -321,7 +321,7 @@ void jniFacebookGameRequest(const string& title, const string& text, const vecto
     env->CallVoidMethod(_jFacebookObject, jfunc, jTitle, jText, jdest, jobjectID, juserData);
 }
 
-void jniFacebookRequestInvitableFriends()
+void jniFacebookRequestInvitableFriends(const vector<string> &exc)
 {
     if (!isFacebookEnabled())
         return;
@@ -329,7 +329,9 @@ void jniFacebookRequestInvitableFriends()
     JNIEnv* env = jniGetEnv();
     LOCAL_REF_HOLDER(env);
 
-    jmethodID jFn = env->GetMethodID(_jFacebookClass, "requestInvitableFriends", "()V");
+    jmethodID jFn = env->GetMethodID(_jFacebookClass, "requestInvitableFriends", "([Ljava/lang/String;)V");
     JNI_NOT_NULL(jFn);
-    env->CallVoidMethod(_jFacebookObject, jFn);
+
+    jobjectArray arr =  jniGetObjectStringArray(exc, env);
+    env->CallVoidMethod(_jFacebookObject, jFn, arr);
 }

+ 1 - 1
src/android/AndroidFacebook.h

@@ -19,4 +19,4 @@ string jniFacebookGetAccessToken();
 vector<string> jniFacebookGetAccessTokenPermissions();
 string jniFacebookGetUserID();
 string jniFacebookGetAppID();
-void jniFacebookRequestInvitableFriends();
+void jniFacebookRequestInvitableFriends(const vector<string> &exc);

+ 3 - 3
src/sim/FacebookSimulator.cpp

@@ -311,9 +311,9 @@ vector<string> facebookSimulatorGetAccessTokenPermissions()
     return { "public_profile", "user_friends" };
 }
 
-void facebookSimulatorInvitableFriendsRequest()
+void facebookSimulatorInvitableFriendsRequest(const vector<string> &exclude)
 {
-    getStage()->addTween(TweenDummy(), 1000)->addDoneCallback([](Event*)
+    getStage()->addTween(TweenDummy(), 1000)->addDoneCallback([=](Event*)
     {
         facebook::InvitableFriendsEvent ev;
         ev.status = -1;
@@ -507,7 +507,7 @@ void facebookSimulatorInvitableFriendsRequest()
         if ((rand() % 3) < 2)
         {
             ev.status = 0;
-            facebookSimulatorInvitableFriendsRequest();
+            facebookSimulatorInvitableFriendsRequest(exclude);
         }
         facebook::internal::dispatch(&ev);
     });

+ 1 - 1
src/sim/FacebookSimulator.h

@@ -14,7 +14,7 @@ bool facebookSimulatorIsLoggedIn();
 void facebookSimulatorNewMeRequest();
 bool facebookSimulatorAppInviteDialog(const string& appLinkUrl, const string& previewImageUrl);
 void facebookSimulatorGameRequest(const std::string& title, const std::string& text, const std::vector<std::string>& dest, const std::string& objectID, const std::string& userData);
-void facebookSimulatorInvitableFriendsRequest();
+void facebookSimulatorInvitableFriendsRequest(const vector<string> &);
 vector<string> facebookSimulatorGetAccessTokenPermissions();
 
 std::string facebookSimulatorGetAccessToken();