Exemplo n.º 1
0
        internal GameHelperManager(AndroidClient client)
        {
            mAndroidClient = client;
            Logger.d("Setting up GameHelperManager.");

            // create GameHelper
            Logger.d("GHM creating GameHelper.");
            mGameHelper = new AndroidJavaObject(GameHelperClass, mAndroidClient.GetActivity());
            if (mGameHelper == null)
            {
                throw new System.Exception("Failed to create GameHelper.");
            }

            // set up the GameHelper
            Logger.d("GHM setting up GameHelper.");
            mGameHelper.Call("enableDebugLog", Logger.DebugLogEnabled, "GameHelper");
            int flags = mGameHelper.GetStatic <int>("CLIENT_ALL");

            Logger.d("GHM client request flags: " + flags);
            GameHelperListener listenerProxy = new GameHelperListener(this, ORIGIN_MAIN_ACTIVITY);

            Logger.d("GHM calling GameHelper.setRequestedClients, " + flags);
            mGameHelper.Call("setRequestedClients", flags);
            Logger.d("GHM calling GameHelper.setup");
            mGameHelper.Call("setup", listenerProxy);

            // set up callbacks so we're informed of pause/unpause events
            PlayGamesHelperObject.SetPauseCallback((bool paused) => {
                if (paused)
                {
                    OnPause();
                }
                else
                {
                    OnResume();
                }
            });

            // start silent auth
            Logger.d("GHM calling GameHelper.onStart to try silent auth.");
            mConnectionState = ConnectionState.Connecting;
            mGameHelper.Call("onStart", mAndroidClient.GetActivity());
        }
Exemplo n.º 2
0
        internal GameHelperManager(AndroidClient client)
        {
            mAndroidClient = client;
            Logger.d("Setting up GameHelperManager.");

            // create GameHelper
            Logger.d("GHM creating GameHelper.");
            int flags = JavaConsts.GAMEHELPER_CLIENT_ALL;

            Logger.d("GHM calling GameHelper constructor with flags=" + flags);
            mGameHelper = new AndroidJavaObject(GameHelperClass, mAndroidClient.GetActivity(),
                                                flags);
            if (mGameHelper == null)
            {
                throw new System.Exception("Failed to create GameHelper.");
            }

            // set up the GameHelper
            Logger.d("GHM setting up GameHelper.");
            mGameHelper.Call("enableDebugLog", Logger.DebugLogEnabled, "GameHelper");


            GameHelperListener listenerProxy = new GameHelperListener(this, ORIGIN_MAIN_ACTIVITY);


            // IMPORTANT: we need to tweak the default behavior of GameHelper because
            // it should never attempt to automatically start the
            // sign in flow, because this must be done by the SignInActivity! This
            // is why we call setMaxAutoSignInAttempts(0). This is important because if THIS
            // GameHelper were to attempt the sign-in flow, nothing would work, because
            // it needs onActivityResult to be hooked up, and we have no way to access
            // onActivityResult on the Unity player activity. This is why we use a separate
            // Activity for the sign in flow.

            Logger.d("GHM Setting GameHelper options.");
            mGameHelper.Call("setMaxAutoSignInAttempts", 0);
            AndroidJavaClass  gameOptionsClass = JavaUtil.GetGmsClass("games.Games$GamesOptions");
            AndroidJavaObject builder          = gameOptionsClass.CallStatic <AndroidJavaObject>("builder");
            AndroidJavaObject tmp = builder.Call <AndroidJavaObject>("setSdkVariant",
                                                                     JavaConsts.SDK_VARIANT);
            AndroidJavaObject options = builder.Call <AndroidJavaObject>("build");

            mGameHelper.Call("setGamesApiOptions", options);
            options.Dispose();
            options = null;
            tmp.Dispose();
            tmp = null;
            builder.Dispose();
            builder = null;

            Logger.d("GHM calling GameHelper.setup");
            mGameHelper.Call("setup", listenerProxy);
            Logger.d("GHM: GameHelper setup done.");

            // set up callbacks so we're informed of pause/unpause events
            Logger.d("GHM Setting up lifecycle.");
            PlayGamesHelperObject.SetPauseCallback((bool paused) => {
                if (paused)
                {
                    OnPause();
                }
                else
                {
                    OnResume();
                }
            });

            // start initial auth
            Logger.d("GHM calling GameHelper.onStart to try initial auth.");
            mConnectionState = ConnectionState.Connecting;
            mGameHelper.Call("onStart", mAndroidClient.GetActivity());
        }
Exemplo n.º 3
0
        internal GameHelperManager(AndroidClient client)
        {
            this.mAndroidClient = client;
            Logger.d("Setting up GameHelperManager.");
            Logger.d("GHM creating GameHelper.");
            int num = 7;

            Logger.d("GHM calling GameHelper constructor with flags=" + num);
            this.mGameHelper = new AndroidJavaObject("com.google.example.games.basegameutils.GameHelper", new object[]
            {
                this.mAndroidClient.GetActivity(),
                num
            });
            if (this.mGameHelper == null)
            {
                throw new Exception("Failed to create GameHelper.");
            }
            Logger.d("GHM setting up GameHelper.");
            this.mGameHelper.Call("enableDebugLog", new object[]
            {
                Logger.DebugLogEnabled
            });
            GameHelperManager.GameHelperListener gameHelperListener = new GameHelperManager.GameHelperListener(this, 1000);
            Logger.d("GHM Setting GameHelper options.");
            this.mGameHelper.Call("setMaxAutoSignInAttempts", new object[]
            {
                0
            });
            AndroidJavaClass  gmsClass           = JavaUtil.GetGmsClass("games.Games$GamesOptions");
            AndroidJavaObject androidJavaObject  = gmsClass.CallStatic <AndroidJavaObject>("builder", new object[0]);
            AndroidJavaObject androidJavaObject2 = androidJavaObject.Call <AndroidJavaObject>("setSdkVariant", new object[]
            {
                37143
            });
            AndroidJavaObject androidJavaObject3 = androidJavaObject.Call <AndroidJavaObject>("build", new object[0]);

            this.mGameHelper.Call("setGamesApiOptions", new object[]
            {
                androidJavaObject3
            });
            androidJavaObject3.Dispose();
            androidJavaObject2.Dispose();
            androidJavaObject.Dispose();
            Logger.d("GHM calling GameHelper.setup");
            this.mGameHelper.Call("setup", new object[]
            {
                gameHelperListener
            });
            Logger.d("GHM: GameHelper setup done.");
            Logger.d("GHM Setting up lifecycle.");
            PlayGamesHelperObject.SetPauseCallback(delegate(bool paused)
            {
                if (paused)
                {
                    this.OnPause();
                }
                else
                {
                    this.OnResume();
                }
            });
            Logger.d("GHM calling GameHelper.onStart to try initial auth.");
            this.mGameHelper.Call("onStart", new object[]
            {
                this.mAndroidClient.GetActivity()
            });
        }