public void RouteCalculated() { Device.BeginInvokeOnMainThread(() => { if (webviewMap != null) { slFake.Children.Remove(webviewMap); } webviewMap = null; RefreshContent(); }); }
public void StartCalcDistances() { if (CalcDistance) { return; } CalcDistance = true; Task.Run(async() => { while (CalcDistance) { while (webviewMap != null) { await Task.Delay(500); CalcTime += 500; if (CalcTime > 90000) { Device.BeginInvokeOnMainThread(() => { if (webviewMap != null) { slFake.Children.Remove(webviewMap); } webviewMap = null; }); if (calcOrder != null) { calcOrder.CalcDistanceDate = DateTime.Now; } } } if (!CalcDistance) { return; } calcOrder = null; if ((DateTime.Now - (AppData.Crew.ActiveOrder?.CalcDistanceDate ?? DateTime.Now)).TotalMinutes > 3) { calcOrder = AppData.Crew.ActiveOrder; } if (calcOrder == null) { calcOrder = curOrders?.FirstOrDefault(x => (DateTime.Now - x.CalcDistanceDate).TotalMinutes > 3); } if (calcOrder != null) { var curLoc = DependencyService.Get <IAPIHelper>().GetCurrentLocation(); if (curLoc?.Latitude > 0 && curLoc?.Longitude > 0) { webviewMap = new WebviewMap { ParentPage = this, MapId = MapType.OptimalRoute, Order = calcOrder, HeightRequest = 0, WidthRequest = 0 }; Device.BeginInvokeOnMainThread(() => { if (webviewMap != null) { slFake.Children.Add(webviewMap); } }); } } await Task.Delay(60000); } }); }
public WebviewJSBridge(WebviewMapRenderer WebviewMap) { this.WebviewMap = WebviewMap; WebView = WebviewMap.Element as WebviewMap; }