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); }
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; }