public void SetOptions(ConnectivityManagerOptions options) { Options = options ?? throw new InvalidOperationException("Please set valid options."); Timer = _timerFactory.Create(new TaskReference(IsNetworkAvailableInternalAsync), Options.TimerInterval); TaskDeferral = new TaskDeferral <bool>(); }
protected BaseInternetConnectionManager(ILogManager manager, IConnectivity connectivity, ITimerFactory timerFactory) { _connectivityPlugin = connectivity; _timerFactory = timerFactory; TaskDeferral = new TaskDeferral <bool>(); Logger = manager.GetLogger <BaseInternetConnectionManager>(); SetOptions(new ConnectivityManagerOptions("www.google.com")); }
protected override Task <bool> IsNetworkAvailableInternalAsync() { return(TaskDeferral.DoWorkAsync(async() => { var state = CrossConnectivity.Current.IsConnected && await CheckConnectionAsync().ConfigureAwait(false); TryToUpdateInternetResult(state); return IsInternetConnectionAvailable == true; })); }
protected override Task <bool> IsNetworkAvailableInternalAsync() { return(TaskDeferral.DoWorkAsync(async() => { var isHostReachable = await IsHostReachableAsync().ConfigureAwait(false); UpdateIsInternetConnectionAvailable(isHostReachable); return IsInternetConnectionAvailable == true; })); }