SignOut() public méthode

public SignOut ( ) : void
Résultat void
 private void AddOnFailureListenerWithSignOut(AndroidJavaObject task, Action <AndroidJavaObject> callback)
 {
     AndroidTaskUtils.AddOnFailureListener(
         task,
         exception =>
     {
         var statusCode = exception.Call <int>("getStatusCode");
         if (statusCode == /* CommonStatusCodes.SignInRequired */ 4 ||
             statusCode == /* GamesClientStatusCodes.CLIENT_RECONNECT_REQUIRED */ 26502)
         {
             mAndroidClient.SignOut();
         }
         callback(exception);
     });
 }
Exemple #2
0
        public void CreateWithInvitationScreen(uint minOpponents, uint maxOpponents, uint variant,
                                               RealTimeMultiplayerListener listener)
        {
            var listenerOnGameThread = new OnGameThreadForwardingListener(listener);

            lock (mSessionLock)
            {
                if (GetRoomStatus() == RoomStatus.Active)
                {
                    OurUtils.Logger.e("Received attempt to create a new room without cleaning up the old one.");
                    listenerOnGameThread.OnRoomConnected(false);
                    return;
                }

                AndroidHelperFragment.ShowRtmpSelectOpponentsUI(minOpponents, maxOpponents,
                                                                (status, result) =>
                {
                    if (status == UIStatus.NotAuthorized)
                    {
                        mAndroidClient.SignOut((() =>
                        {
                            listenerOnGameThread.OnRoomConnected(false);
                            CleanSession();
                        }));
                        return;
                    }

                    if (status != UIStatus.Valid)
                    {
                        listenerOnGameThread.OnRoomConnected(false);
                        CleanSession();
                        return;
                    }

                    using (var roomConfigClass =
                               new AndroidJavaClass("com.google.android.gms.games.multiplayer.realtime.RoomConfig"))
                        using (var roomUpdateCallback = new AndroidJavaObject(
                                   "com.google.games.bridge.RoomUpdateCallbackProxy",
                                   new RoomUpdateCallbackProxy(/* parent= */ this, listenerOnGameThread)))
                            using (var roomConfigBuilder =
                                       roomConfigClass.CallStatic <AndroidJavaObject>("builder", roomUpdateCallback))
                            {
                                if (result.MinAutomatchingPlayers > 0)
                                {
                                    using (var autoMatchCriteria = roomConfigClass.CallStatic <AndroidJavaObject>(
                                               "createAutoMatchCriteria", result.MinAutomatchingPlayers,
                                               result.MaxAutomatchingPlayers, /* exclusiveBitMask= */ (long)0))
                                        using (roomConfigBuilder.Call <AndroidJavaObject>("setAutoMatchCriteria",
                                                                                          autoMatchCriteria))
                                            ;
                                }

                                if (variant != 0)
                                {
                                    using (roomConfigBuilder.Call <AndroidJavaObject>("setVariant", (int)variant));
                                }

                                using (var messageReceivedListener =
                                           new AndroidJavaObject(
                                               "com.google.games.bridge.RealTimeMessageReceivedListenerProxy",
                                               new MessageReceivedListenerProxy(listenerOnGameThread)))
                                    using (roomConfigBuilder.Call <AndroidJavaObject>("setOnMessageReceivedListener",
                                                                                      messageReceivedListener))
                                        ;

                                using (var roomStatusUpdateCallback =
                                           new AndroidJavaObject("com.google.games.bridge.RoomStatusUpdateCallbackProxy",
                                                                 new RoomStatusUpdateCallbackProxy(this, listenerOnGameThread)))
                                    using (roomConfigBuilder.Call <AndroidJavaObject>("setRoomStatusUpdateCallback",
                                                                                      roomStatusUpdateCallback))
                                        ;

                                using (roomConfigBuilder.Call <AndroidJavaObject>("addPlayersToInvite",
                                                                                  AndroidJavaConverter.ToJavaStringList(result.PlayerIdsToInvite)))
                                {
                                    mRoomConfig = roomConfigBuilder.Call <AndroidJavaObject>("build");
                                }

                                mListener = listenerOnGameThread;
                            }

                    // the min number to start is the number of automatched + the number of named invitations +
                    // the local player.
                    mMinPlayersToStart = result.MinAutomatchingPlayers + result.PlayerIdsToInvite.Count + 1;

                    using (var task = mRtmpClient.Call <AndroidJavaObject>("create", mRoomConfig))
                    {
                        AndroidTaskUtils.AddOnFailureListener(
                            task,
                            exception =>
                        {
                            listenerOnGameThread.OnRoomConnected(false);
                            CleanSession();
                        });
                    }
                });
            }
        }