public MainPage()
        {
            this.InitializeComponent();
            DisplayProperties.OrientationChanged += Orientation;

            BQ = new BlueQueenCore(@"http://usafeapi.bluequeen.tk", "v1", "token");
            CultureInfo culture = new CultureInfo("en-US");

            WeatherData  = BQ.getWeatherData(fromDate: DateTime.Now.ToString("d", culture));
            PressureData = BQ.getPressureData(fromDate: DateTime.Now.ToString("d", culture));

            //var test = WeatherData;
            fillTextBlock();

            //tile
            var tileXml   = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText01);
            var tileImage = tileXml.GetElementsByTagName("image")[0] as XmlElement;

            tileImage.SetAttribute("src", "ms-appx:///Assets/Square71x71Logo.scale-100.png");

            var          tileText  = tileXml.GetElementsByTagName("text");
            WeatherInfo  lastTemp  = WeatherData.Last(x => x.ID > 0);
            PressureInfo lastPress = PressureData.Last(x => x.ID > 0);

            (tileText[0] as XmlElement).InnerText = "Wejherowo";
            (tileText[1] as XmlElement).InnerText = lastTemp.Date.ToString();
            (tileText[2] as XmlElement).InnerText = string.Format("{0}°C", lastTemp.Value.ToString());
            (tileText[3] as XmlElement).InnerText = string.Format("{0} hPa", lastPress.Pressure.ToString());
            var tileNotification = new TileNotification(tileXml);

            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
            // eoTile
        }
예제 #2
0
        private async void updateInfor()
        {
            string msg    = "";
            string status = "";
            var    local  = ApplicationData.Current.LocalFolder;

            var file = await local.GetFileAsync(@"\Data\data.txt");

            IList <string> lines = await FileIO.ReadLinesAsync(file);

            foreach (var item in lines)
            {
                string[] d = item.Split(' ', '\n');
                status = d[0];
            }


            var networkInfor = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();


            // msg = (networkInfor == null) ? "No Internet Access" : "Internet Access";
            msg = (networkInfor == null) ? "No Internet Access" : status;


            XmlDocument xdoc = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text03);

            xdoc.GetElementsByTagName("text")[0].InnerText = msg;
            TileNotification notification = new TileNotification(xdoc);

            TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
        }
예제 #3
0
        private static void UpdateTile(string caption, string message)
        {
#if WNS_PUSH_SERVICE
            var tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
            //tileUpdater.EnableNotificationQueue(false);
            tileUpdater.EnableNotificationQueue(true);
            tileUpdater.EnableNotificationQueueForSquare150x150(false);
            //tileUpdater.EnableNotificationQueueForWide310x150(true);

            var wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150IconWithBadgeAndText);
            SetImage(wideTileXml, "IconicSmall110.png");
            SetText(wideTileXml, caption, message);

            var squareTile150Xml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150IconWithBadge);
            SetImage(squareTile150Xml, "IconicTileMedium202.png");
            AppendTile(wideTileXml, squareTile150Xml);

            var squareTile71Xml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare71x71IconWithBadge);
            SetImage(squareTile71Xml, "IconicSmall110.png");
            AppendTile(wideTileXml, squareTile71Xml);

            try
            {
                tileUpdater.Update(new TileNotification(wideTileXml));
            }
            catch (Exception ex)
            {
                Telegram.Logs.Log.Write(ex.ToString());
            }
#endif
        }
예제 #4
0
        private async Task setLiveTile()   //开启磁贴
        {
            try
            {
                TimeSpan tn = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
                long     allSeconds = 105695630 + ((long)tn.TotalSeconds - 1606379872) * 7;
                long     dd, mm, hh, ss; //用于存储最终数值
                dd = allSeconds / 60 / 60 / 24 % 9999999;
                hh = allSeconds / 60 / 60 % 24;
                mm = allSeconds / 60 % 60;
                ss = allSeconds % 60;

                var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01);

                var tileAttributes = tileXml.GetElementsByTagName("text");
                tileAttributes[0].AppendChild(tileXml.CreateTextNode("时间众筹总计"));
                tileAttributes[1].AppendChild(tileXml.CreateTextNode(dd + "天"));
                tileAttributes[2].AppendChild(tileXml.CreateTextNode(hh + "小时"));
                tileAttributes[3].AppendChild(tileXml.CreateTextNode(mm + "分钟"));
                var tileNotification = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
            }
            catch { }

            var tileContent       = new Uri("https://add-one-second.papapoi.workers.dev/"); //自建网站
            var requestedInterval = PeriodicUpdateRecurrence.HalfHour;                      //半小时一次

            var updater = TileUpdateManager.CreateTileUpdaterForApplication();

            updater.StartPeriodicUpdate(tileContent, requestedInterval);
        }
        private static void UpdateTile()
        {
            // TileUpdateManeger pour l'application
            var tileUpdateManager = TileUpdateManager.CreateTileUpdaterForApplication();

            tileUpdateManager.EnableNotificationQueue(true);
            tileUpdateManager.Clear();

            var imagePath = "";

#if DEBUG
            try
            {
                new Uri(@"ms-appx:///" + "JC_Logo_310x150.png", UriKind.RelativeOrAbsolute);
            }
            catch (Exception ex)
            { }
#endif

            imagePath = @"ms-appx:///" + "JC_Logo_310x150.png";

            // Chargement du modèle XML: une image large dont la taille correspond aux logos en PNG présents dans la solution
            var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150ImageAndText02);

            // Travail sur les noeuds (CF: Helper.Toasting(...))
            XmlNodeList tileImageAttributes = tileXml.GetElementsByTagName("image");
            ((XmlElement)tileImageAttributes[0]).SetAttribute("src", imagePath);
            ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "> Image <");

            XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");
            tileTextAttributes[0].InnerText = defaultText;

            tileUpdateManager.Update(new TileNotification(tileXml));
        }
        /// <summary>
        /// Delegate to update the secondary tile. This is called from the OnSuspending event handler in App.xaml.cs
        /// </summary>
        private void UpdateTile()
        {
            // Simulate a long-running task. For illustration purposes only.
            if (Debugger.IsAttached)
            {
                // Set a larger delay to give you time to select "Suspend" from the "LifetimeEvents" dropdown in Visual Studio in
                // order to simulate the app being suspended when the new tile is created.
                Task.Delay(8000).Wait();
            }
            else
            {
                // When the app is not attached to the debugger, the app will be suspended so we can use a
                // more realistic delay.
                Task.Delay(2000).Wait();
            }

            // Update the tile we created using a notification.
            var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Image);

            // The TileSquare150x150Image template only contains one image entry, so retrieve it.
            var imageElement = tileXml.GetElementsByTagName("image").Single();

            // Set the src propertry on the image entry. The image in this sample is a lime green image with the word "Updated" in white text
            imageElement.Attributes.GetNamedItem("src").NodeValue = "ms-appx:///Assets/updatedTileImage.png";

            // Create a new tile notification.
            var notification = new Windows.UI.Notifications.TileNotification(tileXml);

            // Create a tile updater.
            var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(SCENARIO2_TILEID);

            // Send the update notification for the tile.
            updater.Update(notification);
        }
예제 #7
0
        public void UpdateNewSecondaryTile()
        {
            string name = ApplicationSettingsHelper.ReadResetSettingsValue(AppConstants.TileName) as string;
            string id   = ApplicationSettingsHelper.ReadResetSettingsValue(AppConstants.TileId) as string;
            string type = ApplicationSettingsHelper.ReadResetSettingsValue(AppConstants.TileType) as string;

            XmlDocument tileXml            = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text02);
            XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");

            tileTextAttributes[0].InnerText = type;
            tileTextAttributes[1].InnerText = name;

            XmlDocument wideTile = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text09);
            XmlNodeList textAttr = wideTile.GetElementsByTagName("text");

            textAttr[0].InnerText = type;
            textAttr[1].InnerText = name;

            IXmlNode node = tileXml.ImportNode(wideTile.GetElementsByTagName("binding").Item(0), true);

            tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

            TileNotification tileNotification = new TileNotification(tileXml);

            TileUpdateManager.CreateTileUpdaterForSecondaryTile(id).Update(tileNotification);
        }
예제 #8
0
        public async static Task SetQuoteNotifications()
        {
            TileUpdateManager.CreateTileUpdaterForApplication().Clear();
            TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);

            var tileXml   = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText04);
            var tileImage = tileXml.GetElementsByTagName("image")[0] as XmlElement;

            var quotes = LoadQuotes();
            var i      = 0;
            TileNotification tileNotification;

            foreach (var quote in quotes)
            {
                tileImage.SetAttribute("src", quote.ImageUrl);

                var tileText = tileXml.GetElementsByTagName("text");
                (tileText[0] as XmlElement).InnerText = quote.Quote;

                tileNotification     = new TileNotification(tileXml);
                tileNotification.Tag = i.ToString();
                i++;

                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
            }
        }
        public MainPage()
        {
            this.InitializeComponent();

            this.navigationHelper            = new NavigationHelper(this);
            this.navigationHelper.LoadState += this.NavigationHelper_LoadState;
            this.navigationHelper.SaveState += this.NavigationHelper_SaveState;

            var doc = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150ImageAndText01);
            var tileTextAttributes = doc.GetElementsByTagName("text");

            tileTextAttributes[0].InnerText = "Hello There! My name is Derek";

            var tileImageAttributes = doc.GetElementsByTagName("image");

            ((XmlElement)tileImageAttributes[0]).SetAttribute("src", "http://www.contoso.com/redWide.png");
            ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "red graphic");

            XmlDocument squareTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text04);

            XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text");

            squareTileTextAttributes[0].AppendChild(squareTileXml.CreateTextNode("Hello World! My very own tile notification"));

            IXmlNode node = doc.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true);

            doc.GetElementsByTagName("visual").Item(0).AppendChild(node);

            TileNotification tileNotification = new TileNotification(doc);

            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
        }
예제 #10
0
        private static void UpdateTile(SyndicationFeed feed)
        {
            // Create a tile update manager for the specified syndication feed.
            var updater = TileUpdateManager.CreateTileUpdaterForApplication();

            updater.EnableNotificationQueue(true);
            updater.Clear();

            // Keep track of the number feed items that get tile notifications.
            int itemCount = 0;

            // Create a tile notification for each feed item.
            foreach (var item in feed.Items)
            {
                Windows.Data.Xml.Dom.XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text03);

                var    title     = item.Title;
                string titleText = title.Text == null ? String.Empty : title.Text;
                tileXml.GetElementsByTagName(textElementName)[0].InnerText = titleText;

                // Create a new tile notification.
                updater.Update(new TileNotification(tileXml));

                // Don't create more than 5 notifications.
                if (itemCount++ > 5)
                {
                    break;
                }
            }
        }
예제 #11
0
        private void tileUpdateButton_Click(object sender, RoutedEventArgs e)
        {
            // タイルのテンプレート選択
            // http://msdn.microsoft.com/ja-jp/library/windows/apps/hh761491.aspx#TileSquareText03
            XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImageAndText01);

            // キューに複数のタイル通知を設定可能にする
            //TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);

            XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");

            tileTextAttributes[0].InnerText = this.tileText.Text;

            XmlNodeList tileImageAttributes = tileXml.GetElementsByTagName("image");

            ((XmlElement)tileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/wideTile.png");
            ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "wideTile.png");

            XmlDocument squareTileXml            = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText04);
            XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text");

            squareTileTextAttributes[0].AppendChild(squareTileXml.CreateTextNode(this.tileText.Text));
            IXmlNode node = tileXml.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true);

            tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

            TileNotification tileNotification = new TileNotification(tileXml);

            tileNotification.Tag = this.tileText.Text;

            //tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddSeconds(10);

            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
        }
예제 #12
0
        /// <summary>
        /// Update the application's tile with the most recent quote
        /// </summary>
        /// <param name="quote">The quote's content to update the tile with</param>
        public void UpdateTile(BackgroundQuote quote)
        {
            XmlDocument tileXml            = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText09);
            XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");

            tileTextAttributes[0].InnerText = quote.Author;
            tileTextAttributes[1].InnerText = quote.Content;

            // Square tile
            XmlDocument squareTileXml            = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text02);
            XmlNodeList squareTileTextAttributes = squareTileXml.GetElementsByTagName("text");

            //squareTileTextAttributes[0].AppendChild(squareTileXml.CreateTextNode("Hello World! My very own tile notification"));
            squareTileTextAttributes[0].InnerText = quote.Author;
            squareTileTextAttributes[1].InnerText = quote.Content;

            // Integration of the two tile templates
            IXmlNode node = tileXml.ImportNode(squareTileXml.GetElementsByTagName("binding").Item(0), true);

            tileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

            // Tile Notification
            TileNotification tileNotification = new TileNotification(tileXml);

            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
        }
예제 #13
0
파일: Kit-Base.cs 프로젝트: Daoting/dt
        /// <summary>
        /// 更新磁贴内容,最多支持四行信息
        /// </summary>
        /// <param name="p_msgs"></param>
        public static void Tile(params string[] p_msgs)
        {
#if UWP
            // 最多支持四行信息!
            int cnt = p_msgs.Length > 4 ? 4 : p_msgs.Length;
            if (cnt == 0)
            {
                return;
            }

            Windows.Data.Xml.Dom.XmlDocument xml   = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text03);
            Windows.Data.Xml.Dom.XmlNodeList nodes = xml.GetElementsByTagName("text");
            for (uint i = 0; i < cnt; i++)
            {
                nodes.Item(i).InnerText = p_msgs[i];
            }
            TileUpdateManager.CreateTileUpdaterForApplication().Update(new TileNotification(xml));
#elif IOS
            throw new NotImplementedException();
#elif ANDROID
            throw new NotImplementedException();
#elif WASM
            throw new NotImplementedException();
#endif
        }
예제 #14
0
        public static void CreateLogoNotifications()
        {
            TileUpdater notifier = TileUpdateManager.CreateTileUpdaterForApplication();

            if (notifier.Setting == NotificationSetting.Enabled)
            {
                notifier.EnableNotificationQueue(true);

                var MainSquareTemplate = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareImage);
                MainSquareTemplate.GetElementsByTagName("image")[0].Attributes[1].NodeValue = "ms-appx:///Assets/Logo.png";
                var squareNode = MainSquareTemplate.CreateAttribute("branding");
                squareNode.Value = "name";  //none|logo|name
                MainSquareTemplate.GetElementsByTagName("binding")[0].Attributes.SetNamedItem(squareNode);

                var MainWideTemplate = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideImage);
                MainWideTemplate.GetElementsByTagName("image")[0].Attributes[1].NodeValue = "ms-appx:///Assets/WideLogo.png";
                var wideNode = MainWideTemplate.CreateAttribute("branding");
                wideNode.Value = "none";
                MainWideTemplate.GetElementsByTagName("binding")[0].Attributes.SetNamedItem(wideNode);

                var Mainnode = MainWideTemplate.ImportNode(MainSquareTemplate.GetElementsByTagName("binding").Item(0), true);
                MainWideTemplate.GetElementsByTagName("visual").Item(0).AppendChild(Mainnode);
                var MaintileNotification = new TileNotification(MainWideTemplate);
                notifier.Update(MaintileNotification);
            }
        }
예제 #15
0
    private void UpdateTile(string style, string value)
    {
        TileTemplateType template = (TileTemplateType)Enum.Parse(typeof(TileTemplateType), style);
        XmlDocument      tile     = TileUpdateManager.GetTemplateContent(template);
        XmlNodeList      text     = tile.GetElementsByTagName("text");

        if (text.Length > 0)
        {
            for (int i = 0; i < text.Length; i++)
            {
                text[i].AppendChild(tile.CreateTextNode(value));
            }
        }
        XmlNodeList image = tile.GetElementsByTagName("image");

        if (image.Length > 0)
        {
            for (int i = 0; i < image.Length; i++)
            {
                image[i].Attributes.GetNamedItem("src").NodeValue =
                    "Assets/Square44x44Logo.scale-200.png";
            }
        }
        TileNotification notification = new TileNotification(tile);
        string           output       = tile.GetXml();

        TileUpdateManager.CreateTileUpdaterForApplication().Update(notification);
    }
예제 #16
0
        // Initialize the app's tiles on the Start page. There are three different sizes of tiles users can
        // choose from.
        private void InitializeTiles()
        {
            tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();
            var mediumSquareTile = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText01);
            var largeSquareTile  = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare310x310ImageAndText02);
            var wideTile         = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150PeekImage02);

            tileUpdater.EnableNotificationQueue(true);

            mediumSquareTile.GetElementsByTagName("text")[0].InnerText = "TicTacToe";
            largeSquareTile.GetElementsByTagName("text")[0].InnerText  = "TicTacToe";
            wideTile.GetElementsByTagName("text")[0].InnerText         = "TicTacToe";

            var node1 = wideTile.ImportNode(mediumSquareTile.GetElementsByTagName("binding")[0], true);

            wideTile.GetElementsByTagName("visual")[0].AppendChild(node1);

            var node2 = wideTile.ImportNode(largeSquareTile.GetElementsByTagName("binding")[0], true);

            wideTile.GetElementsByTagName("visual")[0].AppendChild(node2);

            var testNotification = new TileNotification(wideTile);

            testNotification.Tag = "Test";
            tileUpdater.Update(testNotification);

            badgeUpdater = BadgeUpdateManager.CreateBadgeUpdaterForApplication();
        }
예제 #17
0
        //更新磁贴的方法
        private void UpdateTile()
        {
            //通过这个方法,我们就可以为动态磁贴的添加做基础。
            var updater = TileUpdateManager.CreateTileUpdaterForApplication();

            //这里设置的是所以磁贴都可以为动态
            updater.EnableNotificationQueue(true);
            updater.Clear();

            //然后这里是重点:记得分3步走:
            //foreach (var item in feed.Items)
            //{
            //1:创建xml对象,这里看你想显示几种动态磁贴,如果想显示正方形和长方形的,那就分别设置一个动态磁贴类型即可。
            //下面这两个分别是矩形的动态磁贴,和方形的动态磁贴,具体样式,自己可以去微软官网查一查。我这里用到的是换行的文字形式。
            //XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text03);
            XmlDocument tileXml2 = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text01);


            //2.接着给这个xml对象赋值
            XmlNodeList tileTextAttributes = tileXml2.GetElementsByTagName("text");

            tileTextAttributes[0].InnerText = "百度经验个人助手";
            tileTextAttributes[1].InnerText = textVisitAll.Text;
            tileTextAttributes[2].InnerText = textVisitRecent20.Text;
            tileTextAttributes[3].InnerText = textVoteAll.Text;
            tileTextAttributes[4].InnerText = textCollectAll.Text;

            //3.然后用Update方法来更新这个磁贴
            updater.Update(new TileNotification(tileXml2));

            //4.最后这里需要注意的是微软规定动态磁贴的队列数目小于5个,所以这里做出判断。
            //}
        }
예제 #18
0
        public void UpdateTile()
        {
            if (refreshDate == null || refreshDate.Value.Add(refreshInterval) < DateTime.Now)
            {
                return;
            }
            if (SecondaryTile.Exists(this.Id))
            {
                XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Text01);
                var         texts   = tileXml.GetElementsByTagName("text");
                texts[0].InnerText = balance.TileString;
                if (balances != null)
                {
                    for (int n = 0; n < Math.Min(texts.Count - 1, balances.Count); n++)
                    {
                        texts[n + 1].InnerText = balances[n].TileString;
                    }
                }

                var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(this.Id);
                updater.Clear();
                updater.Update(new TileNotification(tileXml)
                {
                    // Lai nerādītu, kad nolasīja datus, noņem informāciju pēc lietotāja noteiktā intervāla.
                    ExpirationTime = DateTimeOffset.Now.Add(RefreshInterval)
                });
            }
        }
        private static void UpdateTile(Dictionary <string, StockData> stocks)
        {
            // Create a tile update manager for the specified syndication feed.
            var updater = TileUpdateManager.CreateTileUpdaterForApplication();

            updater.EnableNotificationQueue(true);

            // Keep track of the number feed items that get tile notifications.
            int itemCount = 0;

            // Create a tile notification for each feed item.
            foreach (var stock in stocks)
            {
                XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text03);

                var    ticker    = stock.Key;
                string titleText = ticker == null ? String.Empty : ticker;
                tileXml.GetElementsByTagName(textElementName)[0].InnerText = titleText;
                TileContent      tileContent  = Notification.CreateNotification(stock.Key, stock.Value);
                TileNotification notification = new TileNotification(tileContent.GetXml());
                notification.Tag = ticker;
                var coming = updater.GetScheduledTileNotifications();

                updater.Update(notification);
                // Create a new tile notification.
                // updater.Update(new TileNotification(tileXml));

                // Don't create more than 5 notifications.
                if (itemCount++ > 5)
                {
                    break;
                }
            }
        }
예제 #20
0
        public static void UpdateMainTileForPlayback(DbMediaFile item, string imageUrl)
        {
            lock (_lock)
            {
                // Not supported on IoT and Holographic platform.
                if (PlatformInfo.CurrentPlatform != Platform.WindowsMobile &&
                    PlatformInfo.CurrentPlatform != Platform.WindowsDesktop)
                {
                    return;
                }

                // Large tile
                var largeTileXml =
                    TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare310x310ImageAndTextOverlay02);
                var largeTileTextAttributes = largeTileXml.GetElementsByTagName("text");
                largeTileTextAttributes[0].InnerText = item.Title;
                largeTileTextAttributes[1].InnerText = $"{item.Album} by {item.Artist}";
                var largeTileImageAttributes = largeTileXml.GetElementsByTagName("image");
                ((XmlElement)largeTileImageAttributes[0]).SetAttribute("src", string.IsNullOrEmpty(imageUrl) ?
                                                                       CommonSharedStrings.DefaultAlbumImagePath : imageUrl);
                ((XmlElement)largeTileImageAttributes[0]).SetAttribute("alt", item.Album);

                // Wide tile
                var tileXml            = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150SmallImageAndText02);
                var tileTextAttributes = tileXml.GetElementsByTagName("text");
                tileTextAttributes[0].InnerText = item.Title;
                tileTextAttributes[1].InnerText = item.Album;
                tileTextAttributes[2].InnerText = item.Artist;
                tileTextAttributes[3].InnerText = CommonSharedStrings.LiveTileLine3;
                var tileImageAttributes = tileXml.GetElementsByTagName("image");
                ((XmlElement)largeTileImageAttributes[0]).SetAttribute("src", string.IsNullOrEmpty(imageUrl) ?
                                                                       CommonSharedStrings.DefaultAlbumImagePath : imageUrl);
                ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", item.Album);

                // Square tile
                var sqTileXml            = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150PeekImageAndText02);
                var sqTileTextAttributes = sqTileXml.GetElementsByTagName("text");
                sqTileTextAttributes[0].InnerText = item.Title;
                sqTileTextAttributes[1].InnerText = $"{item.Album} by {item.Artist}";
                var sqTileImageAttributes = sqTileXml.GetElementsByTagName("image");
                ((XmlElement)largeTileImageAttributes[0]).SetAttribute("src", string.IsNullOrEmpty(imageUrl) ?
                                                                       CommonSharedStrings.DefaultAlbumImagePath : imageUrl);
                ((XmlElement)sqTileImageAttributes[0]).SetAttribute("alt", item.Album);

                // Merge
                var node = largeTileXml.ImportNode(tileXml.GetElementsByTagName("binding").Item(0), true);
                // ReSharper disable once PossibleNullReferenceException
                largeTileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);
                node = largeTileXml.ImportNode(sqTileXml.GetElementsByTagName("binding").Item(0), true);
                // ReSharper disable once PossibleNullReferenceException
                largeTileXml.GetElementsByTagName("visual").Item(0).AppendChild(node);

                var tileNotification = new TileNotification(largeTileXml)
                {
                    ExpirationTime = DateTimeOffset.UtcNow.AddHours(2.0)
                };

                TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
            }
        }
예제 #21
0
        private static void UpdateTile(SyndicationFeed feed)
        {
            var updater = TileUpdateManager.CreateTileUpdaterForApplication();

            updater.EnableNotificationQueue(true);
            updater.Clear();

            int itemCount = 0;

            foreach (var item in feed.Items)
            {
                XmlDocument tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText03);

                var    title     = item.Title;
                string titleText = title.Text == null ? String.Empty : title.Text;
                tileXml.GetElementsByTagName(textElementName)[0].InnerText = titleText;

                updater.Update(new TileNotification(tileXml));

                if (itemCount++ > 5)
                {
                    break;
                }
            }
        }
예제 #22
0
        private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            listView.Items.Clear();
            ConnectionProfile profile = NetworkInformation.GetInternetConnectionProfile();
            bool          isinternet  = (profile != null) && profile.GetNetworkConnectivityLevel() == NetworkConnectivityLevel.InternetAccess;
            List <string> sites       = new List <string>();

            if (isinternet)
            {
                var sf = await Windows.Storage.ApplicationData.Current.LocalFolder.CreateFileAsync("sites.txt", Windows.Storage.CreationCollisionOption.OpenIfExists);

                using (var stream = await sf.OpenStreamForReadAsync())
                {
                    using (StreamReader sr = new StreamReader(stream))
                    {
                        while (!sr.EndOfStream)
                        {
                            string[] s = sr.ReadLine().Split(',');
                            if (s.Length > 1)
                            {
                                WPSite        wps     = new WPSite(s[0], s[1]);
                                WPListUpdate  wplu    = new WPListUpdate(wps);
                                List <string> plugins = await wplu.GetPluginsWithUpdate();

                                plugins.Insert(0, "Сайт " + s[0] + ":");
                                plugins.Add(string.Empty);
                                foreach (string ss in plugins)
                                {
                                    if (ss != "none" && ss != String.Empty)
                                    {
                                        listView.Items.Add(ss);
                                        if (!sites.Contains(s[0]) && ss != "Сайт " + s[0] + ":")
                                        {
                                            sites.Add(s[0]);
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                if (sites.Count > 0)
                {
                    var tiledoc = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Text04);
                    var nodes   = tiledoc.SelectNodes("tile/visual/binding/text");


                    string allsites = string.Empty;
                    foreach (string s in sites)
                    {
                        allsites += s + ", ";
                    }
                    nodes[0].InnerText = "Обновление от " + DateTime.Now + ". Имеются обновления плагинов на следующих сайтах: " + allsites.TrimEnd(new char[] { ',', ' ' });

                    TileNotification tile = new TileNotification(tiledoc);
                    TileUpdateManager.CreateTileUpdaterForApplication().Update(tile);
                }
            }
        }
예제 #23
0
        /// <summary>
        /// Setup for the TileUpdater
        /// </summary>
        /// <returns></returns>
        private static TileUpdater SetupUpdater()
        {
            TileUpdater tileUpdater = TileUpdateManager.CreateTileUpdaterForApplication();

            tileUpdater.EnableNotificationQueue(true);
            xmlDocument = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText09);
            return(tileUpdater);
        }
예제 #24
0
        /// <summary>
        /// Initializes a new instance of the <see cref="BaseTile"/> class.
        /// </summary>
        /// <param name="templateType">
        /// The template Type.
        /// </param>
        public BaseTile(TileTemplateType templateType) : base(TileUpdateManager.GetTemplateContent(templateType), GetTemplateName(templateType))
        {
            this.Type = templateType;

            var size = TemplateMap.Keys.FirstOrDefault(s => this.TemplateType.Contains(s));

            this.TileType = !string.IsNullOrWhiteSpace(size) ? TemplateMap[size] : TileTypes.Unknown;
        }
예제 #25
0
        private void changeTile_Click(object sender, RoutedEventArgs e)
        {
            XmlDocument tileXml     = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideText01);
            XmlElement  textElement = (XmlElement)tileXml.GetElementsByTagName("text")[0];

            textElement.AppendChild(tileXml.CreateTextNode(message.Text));
            tileUpdater.Update(new TileNotification(tileXml));
        }
예제 #26
0
        public override void BeforeSquareWideUpdate(XmlDocument doc, MusicItem track, Uri imageUri)
        {
            var largeXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare310x310ImageAndText02);

            TileUtil.SetImage(largeXml, imageUri);
            SetMeta(largeXml, track, includeAlbum: false);
            TileUtil.Embed(src: largeXml, dest: doc);
        }
예제 #27
0
        private async void CyclicToggleSwitch_Toggled(object sender, RoutedEventArgs e)
        {
            if (Cyclic.IsOn)
            {
                cyclicTile = new SecondaryTile(
                    "Cyclic",
                    "Cyclic",
                    "Arguments",
                    new Uri("ms-appx:///Assets/blue.150x150.png", UriKind.Absolute),
                    TileSize.Square150x150);
                await cyclicTile.RequestCreateAsync();

                TileUpdateManager.CreateTileUpdaterForSecondaryTile(cyclicTile.TileId).EnableNotificationQueueForSquare150x150(true);

                tileXml   = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquare150x150Image);
                tileImage = tileXml.GetElementsByTagName("image")[0] as XmlElement;

                tileImage.SetAttribute("src", "ms-appx:///Assets/blue.150x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForSecondaryTile(cyclicTile.TileId).Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/red.150x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForSecondaryTile(cyclicTile.TileId).Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/green.150x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForSecondaryTile(cyclicTile.TileId).Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/yellow.150x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForSecondaryTile(cyclicTile.TileId).Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/orange.150x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForSecondaryTile(cyclicTile.TileId).Update(notif);

                tileXml   = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWide310x150Image);
                tileImage = tileXml.GetElementsByTagName("image")[0] as XmlElement;

                tileImage.SetAttribute("src", "ms-appx:///Assets/blue.310x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/red.310x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/green.310x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/yellow.310x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(notif);
                tileImage.SetAttribute("src", "ms-appx:///Assets/orange.310x150.png");
                notif = new TileNotification(tileXml);
                TileUpdateManager.CreateTileUpdaterForApplication().Update(notif);
            }
            else
            {
                TileUpdateManager.CreateTileUpdaterForApplication().Clear();
                await cyclicTile.RequestDeleteAsync();
            }
        }
        private void SendLiveTileUpdate()
        {
            var tileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquarePeekImageAndText02);

            var tileTextAttributes = tileXml.GetElementsByTagName("text");

            tileTextAttributes[0].InnerText = CourseDetails.Code;
            tileTextAttributes[1].InnerText = CourseDetails.Intitule;

            var tileImageAttributes = tileXml.GetElementsByTagName("image");

            ((XmlElement)tileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/Logo150X150.png");
            ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "ITComp Logo");

            var sqTileBinding = (XmlElement)tileXml.GetElementsByTagName("binding").Item(0);

            if (sqTileBinding != null)
            {
                sqTileBinding.SetAttribute("branding", "none");
            }


            var wideTileXml = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideSmallImageAndText04);

            var wideTileTextAttributes = wideTileXml.GetElementsByTagName("text");

            wideTileTextAttributes[0].AppendChild(wideTileXml.CreateTextNode(this.CourseDetails.Code));
            wideTileTextAttributes[1].AppendChild(wideTileXml.CreateTextNode(this.CourseDetails.Intitule));

            var wideTileImageAttributes = wideTileXml.GetElementsByTagName("image");

            ((XmlElement)wideTileImageAttributes[0]).SetAttribute("src", "ms-appx:///Assets/Logo150X150.png");
            ((XmlElement)wideTileImageAttributes[0]).SetAttribute("alt", "ITComp Logo");

            var wideTileBinding = (XmlElement)wideTileXml.GetElementsByTagName("binding").Item(0);

            if (wideTileBinding != null)
            {
                wideTileBinding.SetAttribute("branding", "none");
            }


            var node    = tileXml.ImportNode(wideTileXml.GetElementsByTagName("binding").Item(0), true);
            var xmlNode = tileXml.GetElementsByTagName("visual").Item(0);

            if (xmlNode != null)
            {
                xmlNode.AppendChild(node);
            }


            var tileNotification = new TileNotification(tileXml)
            {
                ExpirationTime = DateTimeOffset.UtcNow.AddDays(1)
            };

            TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
        }
예제 #29
0
        private static void _updatePrimaryTile(string text, string imgSrc, string imgAlt, TileTemplateType templateType)
        {
            TileUpdateManager.CreateTileUpdaterForApplication().EnableNotificationQueue(true);

            XmlDocument tileXml = TileUpdateManager.GetTemplateContent(templateType);  //TileWide310x150ImageAndText01

            //version
            XmlNodeList tileVersionAttributes = tileXml.GetElementsByTagName("visual");

            ((XmlElement)tileVersionAttributes[0]).SetAttribute("version", "2");
            //tileXml.FirstChild.FirstChild.Attributes[0].NodeValue = "2";

            ////branding
            //XmlNodeList tileBindingAttributes = tileXml.GetElementsByTagName("binding");
            //((XmlElement)tileBindingAttributes[0]).SetAttribute("branding", "logo");


            //text
            XmlNodeList tileTextAttributes = tileXml.GetElementsByTagName("text");

            if (tileTextAttributes.Count > 0)
            {
                tileTextAttributes[0].InnerText = text;
            }
            //tileTextAttributes[1].InnerText = "xxxxx";

            //image
            XmlNodeList tileImageAttributes = tileXml.GetElementsByTagName("image");

            ////image from apps package
            //((XmlElement)tileImageAttributes[0]).SetAttribute("src", "ms-appx:///assets/redWide.png");
            //((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "red graphic");

            ////image from apps local storage
            //((XmlElement)tileImageAttributes[0]).SetAttribute("src", "ms-appdata:///local/redWide.png");
            //((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "red graphic");
            ((XmlElement)tileImageAttributes[0]).SetAttribute("src", imgSrc);
            ((XmlElement)tileImageAttributes[0]).SetAttribute("alt", imgAlt);

            ////image from the web
            //((XmlElement)tileImageAttributes[0]).SetAttribute("src", "http://www.contoso.com/redWide.png");
            //((XmlElement)tileImageAttributes[0]).SetAttribute("alt", "red graphic");

            //create notifcation
            //TileNotification tileNotification = new TileNotification(tileXml);
            ScheduledTileNotification stn = new ScheduledTileNotification(tileXml, DateTimeOffset.Now.AddSeconds(8));

            //notification expires in
            //tileNotification.ExpirationTime = DateTimeOffset.UtcNow.AddMinutes(10);

            //forced clear notification for app
            //Windows.UI.Notifications.TileUpdateManager.CreateTileUpdaterForApplication().Clear();

            //send notification to app tile
            //TileUpdateManager.CreateTileUpdaterForApplication().Update(tileNotification);
            TileUpdateManager.CreateTileUpdaterForApplication().AddToSchedule(stn);
        }
예제 #30
0
        private async void UpdateAllSecondaryTiles()
        {
            IReadOnlyList <SecondaryTile> tilelist = await SecondaryTile.FindAllAsync();

            foreach (var tile in tilelist)
            {
                UpdateTile(TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquarePeekImageAndText01), tile.TileId);
            }
        }