public void StartDiscovery(string serviceId, TimeSpan?advertisingDuration,
                                   IDiscoveryListener listener)
        {
            Misc.CheckNotNull(serviceId, "serviceId");
            Misc.CheckNotNull(listener, "listener");

            var listenerOnGameThread = new OnGameThreadDiscoveryListener(listener);

            if (advertisingDuration.HasValue && advertisingDuration.Value.Ticks < 0)
            {
                throw new InvalidOperationException("advertisingDuration must be positive");
            }

            using (var endpointDiscoveryCallback = new AndroidJavaObject(
                       "com.google.games.bridge.EndpointDiscoveryCallbackProxy",
                       new EndpointDiscoveryCallback(listenerOnGameThread)))
                using (var discoveryOptions = CreateDiscoveryOptions())
                    using (var task = mClient.Call <AndroidJavaObject>("startDiscovery", serviceId, endpointDiscoveryCallback,
                                                                       discoveryOptions))
                    {
                        AndroidTaskUtils.AddOnSuccessListener <AndroidJavaObject>(
                            task,
                            v => NearbyHelperObject.StartDiscoveryTimer(advertisingDuration)
                            );
                    }
        }
        private static NativeEndpointDiscoveryListenerHelper ToDiscoveryListener(
            IDiscoveryListener listener)
        {
            listener = new OnGameThreadDiscoveryListener(listener);
            var helper = new NativeEndpointDiscoveryListenerHelper();

            helper.SetOnEndpointFound((localClientId, endpoint) =>
                                      listener.OnEndpointFound(endpoint.ToDetails()));
            helper.SetOnEndpointLostCallback((localClientId, lostEndpointId) =>
                                             listener.OnEndpointLost(lostEndpointId));

            return(helper);
        }
Exemple #3
0
        private static NativeEndpointDiscoveryListenerHelper ToDiscoveryListener(IDiscoveryListener listener)
        {
            listener = new OnGameThreadDiscoveryListener(listener);
            NativeEndpointDiscoveryListenerHelper nativeEndpointDiscoveryListenerHelper = new NativeEndpointDiscoveryListenerHelper();

            nativeEndpointDiscoveryListenerHelper.SetOnEndpointFound(delegate(long localClientId, NativeEndpointDetails endpoint)
            {
                listener.OnEndpointFound(endpoint.ToDetails());
            });
            nativeEndpointDiscoveryListenerHelper.SetOnEndpointLostCallback(delegate(long localClientId, string lostEndpointId)
            {
                listener.OnEndpointLost(lostEndpointId);
            });
            return(nativeEndpointDiscoveryListenerHelper);
        }
        private static NativeEndpointDiscoveryListenerHelper ToDiscoveryListener(
            IDiscoveryListener listener)
        {
            listener = new OnGameThreadDiscoveryListener(listener);
            var helper = new NativeEndpointDiscoveryListenerHelper();

            helper.SetOnEndpointFound((localClientId, endpoint) =>
            listener.OnEndpointFound(endpoint.ToDetails()));
            helper.SetOnEndpointLostCallback((localClientId, lostEndpointId) =>
            listener.OnEndpointLost(lostEndpointId));

            return helper;
        }