Exemplo n.º 1
0
 static void UpdateSound(IXmlDocument content, IPredefinedToastNotificationInfo info)
 {
     if (info.Sound != PredefinedSound.Notification_Default)
     {
         SetSound(content, info.Sound);
     }
 }
Exemplo n.º 2
0
        internal static IXmlDocument GetDocument(IToastNotificationManager manager, IPredefinedToastNotificationInfo info)
        {
            var content = manager.GetTemplateContent(info.ToastTemplateType);

            for (uint i = 0; i < info.Lines.Length; i++)
            {
                SetTextLine(content, i, info.Lines[i]);
            }
            if (!string.IsNullOrEmpty(info.ImagePath))
            {
                SetImageSrc(content, new System.Uri(info.ImagePath).AbsoluteUri);
            }
            NotificationDuration actualDuration = info.Duration;

            if (info.Sound != PredefinedSound.Notification_Default)
            {
                SetSound(content, info.Sound);
                if (IsLoopingSound(info.Sound))
                {
                    actualDuration = NotificationDuration.Long;
                }
            }
            if (actualDuration != NotificationDuration.Default)
            {
                SetDuration(content, actualDuration);
            }
            return(content);
        }
        internal static string GetXml(IPredefinedToastNotificationInfo info)
        {
            string xml;

            ((Window.Data.Xml.Dom.IXmlNodeSerializer)GetDocument(info)).GetXml(out xml);
            return(xml);
        }
Exemplo n.º 4
0
 static void UpdateTemplate(IXmlDocument xmldoc, IPredefinedToastNotificationInfo info)
 {
     if (info.ToastTemplateType != ToastTemplateType.ToastGeneric)
     {
         return;
     }
     SetAttribute(xmldoc, "binding", "template", "ToastGeneric");
 }
 IToastNotification IToastNotificationAdapter.Create(IPredefinedToastNotificationInfo info) {
     var content = ToastNotificationManager.GetDocument(manager, info);
     if(factory == null)
         factory = ComFunctions.RoGetActivationFactory<IToastNotificationFactory>();
     IToastNotification result;
     ComFunctions.CheckHRESULT(factory.CreateToastNotification(content, out result));
     return result;
 }
Exemplo n.º 6
0
 static ToastTemplateType GetToastTemplateType(IPredefinedToastNotificationInfo info)
 {
     if (info.ToastTemplateType != ToastTemplateType.ToastGeneric)
     {
         return(info.ToastTemplateType);
     }
     return(ToastTemplateType.ToastText04);
 }
Exemplo n.º 7
0
        static void UpdateText(IXmlDocument xmldoc, IPredefinedToastNotificationInfo info)
        {
            IXmlNodeList nodes = GetNodes(xmldoc, "text");

            Debug.Assert(nodes.Length >= info.Lines.Length);
            for (uint i = 0; i < info.Lines.Length; i++)
            {
                SetNodeValueString(info.Lines[i] ?? string.Empty, xmldoc, GetNode(nodes, i));
            }
        }
Exemplo n.º 8
0
        static void UpdateHeroImage(IPredefinedToastNotificationInfo info, IXmlDocument content)
        {
            IPredefinedToastNotificationInfoGeneric infoGeneric = info as IPredefinedToastNotificationInfoGeneric;

            if (!string.IsNullOrEmpty(infoGeneric.HeroImagePath) && info.ToastTemplateType == ToastTemplateType.ToastGeneric)
            {
                string   heroImagePath = new System.Uri(infoGeneric.HeroImagePath).AbsoluteUri;
                IXmlNode heroImageNode = CreateInlineImageNode(content, heroImagePath);
                SetAttribute(heroImageNode, "placement", "hero");
            }
        }
            IToastNotification IToastNotificationAdapter.Create(IPredefinedToastNotificationInfo info)
            {
                var content = ToastNotificationManager.GetDocument(manager, info);

                if (factory == null)
                {
                    factory = ComFunctions.RoGetActivationFactory <IToastNotificationFactory>();
                }
                IToastNotification result;

                ComFunctions.CheckHRESULT(factory.CreateToastNotification(content, out result));
                return(result);
            }
Exemplo n.º 10
0
        static void UpdateDuration(IXmlDocument xmldoc, IPredefinedToastNotificationInfo info)
        {
            NotificationDuration duration = info.Duration;

            if (IsLoopingSound(info.Sound))
            {
                duration = NotificationDuration.Long;
            }
            if (duration != NotificationDuration.Default)
            {
                SetAttribute(xmldoc, "toast", "duration", "long");
            }
        }
Exemplo n.º 11
0
        static void UpdateDisplayTimestamp(IXmlDocument xmldoc, IPredefinedToastNotificationInfo info)
        {
            IPredefinedToastNotificationInfoGeneric infoGeneric = info as IPredefinedToastNotificationInfoGeneric;

            if (infoGeneric.DisplayTimestamp == null)
            {
                return;
            }
            IXmlNode toastNode        = GetNode(xmldoc, "toast");
            string   displayTimestamp = infoGeneric.DisplayTimestamp.Value.ToLocalTime().ToString("yyyy-MM-ddTHH:mm:ssZ");

            SetAttribute(toastNode, "displayTimestamp", displayTimestamp);
        }
Exemplo n.º 12
0
        static void UpdateAttributionText(IXmlDocument xmldoc, IPredefinedToastNotificationInfo info)
        {
            IPredefinedToastNotificationInfoGeneric infoGeneric = info as IPredefinedToastNotificationInfoGeneric;

            if (string.IsNullOrWhiteSpace(infoGeneric.AttributionText))
            {
                return;
            }
            IXmlElement attributionTextElement = CreateElement(xmldoc, "text");
            IXmlNode    bindingNode            = GetNode(xmldoc, "binding");
            IXmlNode    appendedChild          = AppendNode(bindingNode, (IXmlNode)attributionTextElement);

            SetAttribute(appendedChild, "placement", "attribution");
            SetNodeValueString(infoGeneric.AttributionText, xmldoc, appendedChild);
        }
Exemplo n.º 13
0
        static void UpdateAppLogoImage(IPredefinedToastNotificationInfo info, IXmlDocument content)
        {
            IPredefinedToastNotificationInfoGeneric infoGeneric = info as IPredefinedToastNotificationInfoGeneric;

            if (!string.IsNullOrEmpty(infoGeneric.AppLogoImagePath) && info.ToastTemplateType == ToastTemplateType.ToastGeneric)
            {
                string   appLogoImagePath = new System.Uri(infoGeneric.AppLogoImagePath).AbsoluteUri;
                IXmlNode appLogoImageNode = CreateInlineImageNode(content, appLogoImagePath);
                SetAttribute(appLogoImageNode, "placement", "appLogoOverride");
                if (infoGeneric.AppLogoImageCrop == ImageCropType.Circle)
                {
                    SetAttribute(appLogoImageNode, "hint-crop", "circle");
                }
            }
        }
Exemplo n.º 14
0
 static void UpdateInlineImage(IPredefinedToastNotificationInfo info, IXmlDocument content)
 {
     if (!string.IsNullOrEmpty(info.ImagePath))
     {
         string imagePath = new System.Uri(info.ImagePath).AbsoluteUri;
         if (info.ToastTemplateType == ToastTemplateType.ToastGeneric)
         {
             CreateInlineImageNode(content, imagePath);
         }
         else
         {
             SetImageSrc(content, imagePath);
         }
     }
 }
Exemplo n.º 15
0
        static void UpdateContent(IXmlDocument xmldoc, IPredefinedToastNotificationInfo info)
        {
            string xml = ToastNotificationManager.GetXml((IXmlNodeSerializer)xmldoc);

            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
            doc.LoadXml(xml);
            IPredefinedToastNotificationInfoGeneric infoGeneric = info as IPredefinedToastNotificationInfoGeneric;

            if (infoGeneric.UpdateToastContent != null)
            {
                infoGeneric.UpdateToastContent.Invoke(doc);
            }
            infoGeneric.UpdateToastContent = null;
            ToastNotificationManager.LoadXml((IXmlDocumentIO)xmldoc, doc.OuterXml);
        }
Exemplo n.º 16
0
        internal static IXmlDocument GetDocument(IToastNotificationManager manager, IPredefinedToastNotificationInfo info)
        {
            var content = manager.GetTemplateContent(GetToastTemplateType(info));

            if (ToastNotificationManager.IsGenericTemplateSupported)
            {
                UpdateTemplate(content, info);
                UpdateAttributionText(content, info);
                UpdateDisplayTimestamp(content, info);
                UpdateAppLogoImage(info, content);
                UpdateHeroImage(info, content);
            }
            UpdateText(content, info);
            UpdateInlineImage(info, content);
            UpdateSound(content, info);
            UpdateDuration(content, info);
            UpdateContent(content, info);
            return(content);
        }
 internal static Window.Data.Xml.Dom.IXmlDocument GetDocument(IToastNotificationManager manager, IPredefinedToastNotificationInfo info)
 {
     return(WinRTToastNotificationContent.GetDocument(manager, info));
 }
 internal static Window.Data.Xml.Dom.IXmlDocument GetDocument(IPredefinedToastNotificationInfo info)
 {
     return(GetDocument(GetDefaultManager(), info));
 }
 IToastNotification IToastNotificationAdapter.Create(IPredefinedToastNotificationInfo info)
 {
     return(null);
 }
 internal static Window.Data.Xml.Dom.IXmlDocument GetDocument(IPredefinedToastNotificationInfo info) {
     return GetDocument(GetDefaultManager(), info);
 }
 internal static Window.Data.Xml.Dom.IXmlDocument GetDocument(IToastNotificationManager manager, IPredefinedToastNotificationInfo info) {
     return WinRTToastNotificationContent.GetDocument(manager, info);
 }
 internal static string GetXml(IPredefinedToastNotificationInfo info) {
     string xml;
     ((Window.Data.Xml.Dom.IXmlNodeSerializer)GetDocument(info)).GetXml(out xml);
     return xml;
 }
 internal static IXmlDocument GetDocument(IToastNotificationManager manager, IPredefinedToastNotificationInfo info) {
     var content = manager.GetTemplateContent(info.ToastTemplateType);
     for(uint i = 0; i < info.Lines.Length; i++) {
         SetTextLine(content, i, info.Lines[i]);
     }
     if(!string.IsNullOrEmpty(info.ImagePath)) {
         SetImageSrc(content, "file:///" + info.ImagePath);
     }
     NotificationDuration actualDuration = info.Duration;
     if(info.Sound != PredefinedSound.Notification_Default) {
         SetSound(content, info.Sound);
         if(IsLoopingSound(info.Sound)) {
             actualDuration = NotificationDuration.Long;
         }
     }
     if(actualDuration != NotificationDuration.Default) {
         SetDuration(content, actualDuration);
     }
     return content;
 }
 IToastNotification IToastNotificationAdapter.Create(IPredefinedToastNotificationInfo info) { return null; }