Esempio n. 1
0
        private async Task GenerateSpan(Span addSpan, HtmlNode htmlNode)
        {
            try
            {
                //Check if span contains iframe
                HtmlAttribute iframeNode = htmlNode.Attributes.Where(x => x.Name.Contains("iframe")).FirstOrDefault();
                if (iframeNode != null)
                {
                    Debug.WriteLine("Adding span node with iframe.");
                    grid_item_webview webView = new grid_item_webview();
                    webView.item_status.Text = "Webview not loaded,\nopen in browser.";

                    InlineUIContainer iui = new InlineUIContainer();
                    iui.Child = webView;

                    addSpan.Inlines.Add(iui);
                    //addSpan.Inlines.Add(new LineBreak());
                }
                else
                {
                    await AddNodes(addSpan, htmlNode, false);
                }
            }
            catch { }
        }
Esempio n. 2
0
        private void GenerateWebview(Span addSpan, HtmlNode htmlNode)
        {
            try
            {
                //Check if webview limit reached
                if (vWebViewAdded == vWebViewLimit)
                {
                    grid_item_webview webView = new grid_item_webview();
                    webView.item_status.Text = "Webview not loaded,\nlimit has been reached.";

                    InlineUIContainer iui = new InlineUIContainer();
                    iui.Child = webView;

                    addSpan.Inlines.Add(iui);
                    //addSpan.Inlines.Add(new LineBreak());
                    return;
                }

                //Check if media loading is allowed
                if (!AppVariables.LoadMedia)
                {
                    grid_item_webview webView = new grid_item_webview();
                    webView.item_status.Text = "Webview not loaded,\nnetwork is not available.";

                    InlineUIContainer iui = new InlineUIContainer();
                    iui.Child = webView;

                    addSpan.Inlines.Add(iui);
                    //addSpan.Inlines.Add(new LineBreak());
                    return;
                }

                //Check if device is low on memory
                if (AVFunctions.DevMemoryAvailableMB() < 200)
                {
                    grid_item_webview webView = new grid_item_webview();
                    webView.item_status.Text = "Webview not loaded,\ndevice is low on memory.";

                    InlineUIContainer iui = new InlineUIContainer();
                    iui.Child = webView;

                    addSpan.Inlines.Add(iui);
                    //addSpan.Inlines.Add(new LineBreak());
                    return;
                }

                //Check if low bandwidth mode is enabled
                if ((bool)AppVariables.ApplicationSettings["LowBandwidthMode"])
                {
                    grid_item_image img = new grid_item_image();
                    img.item_status.Text = "Webview not loaded,\nlow bandwidth mode.";
                    img.IsHitTestVisible = false;

                    InlineUIContainer iui = new InlineUIContainer();
                    iui.Child = img;

                    addSpan.Inlines.Add(iui);
                    //addSpan.Inlines.Add(new LineBreak());
                    return;
                }

                //Create item webview
                string WebLink = htmlNode.Attributes["src"].Value;
                if (!string.IsNullOrWhiteSpace(WebLink))
                {
                    Debug.WriteLine("Opening webview: " + WebLink);

                    grid_item_webview webView = new grid_item_webview();
                    webView.item_source.Source = new Uri(WebLink);
                    webView.item_source.ContainsFullScreenElementChanged += webview_Full_ContainsFullScreenElementChanged;
                    webView.item_source.NewWindowRequested += webview_Full_NewWindowRequested;

                    InlineUIContainer iui = new InlineUIContainer();
                    iui.Child = webView;

                    addSpan.Inlines.Add(iui);
                    //addSpan.Inlines.Add(new LineBreak());

                    //Update the webview count
                    vWebViewAdded++;
                }
            }
            catch { }
        }