Skip to content

Commit f40a419

Browse files
committed
Add interface for [NotificationXmlContent]
1 parent 1302d39 commit f40a419

File tree

6 files changed

+24
-6
lines changed

6 files changed

+24
-6
lines changed

Microsoft.Toolkit.Uwp.Notifications/Adaptive/Elements/Element_AdaptiveText.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace Microsoft.Toolkit.Uwp.Notifications.Adaptive.Elements
99
{
10-
internal sealed class Element_AdaptiveText : IElement_TileBindingChild, IElement_AdaptiveSubgroupChild, IElement_ToastBindingChild, IHaveXmlName, IHaveXmlNamedProperties
10+
internal sealed class Element_AdaptiveText : IElement_TileBindingChild, IElement_AdaptiveSubgroupChild, IElement_ToastBindingChild, IHaveXmlName, IHaveXmlNamedProperties, IHaveXmlText
1111
{
1212
internal const AdaptiveTextStyle DEFAULT_STYLE = AdaptiveTextStyle.Default;
1313
internal const AdaptiveTextAlign DEFAULT_ALIGN = AdaptiveTextAlign.Default;

Microsoft.Toolkit.Uwp.Notifications/Common/Serialization/IHaveAdditionalProperties.cs renamed to Microsoft.Toolkit.Uwp.Notifications/Common/Serialization/IHaveXmlAdditionalProperties.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ namespace Microsoft.Toolkit.Uwp.Notifications;
1111
/// <summary>
1212
/// An interface for a notification XML element with additional properties.
1313
/// </summary>
14-
internal interface IHaveAdditionalProperties
14+
internal interface IHaveXmlAdditionalProperties
1515
{
1616
/// <summary>
1717
/// Gets the mapping of additional properties.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Licensed to the .NET Foundation under one or more agreements.
2+
// The .NET Foundation licenses this file to you under the MIT license.
3+
// See the LICENSE file in the project root for more information.
4+
5+
namespace Microsoft.Toolkit.Uwp.Notifications;
6+
7+
/// <summary>
8+
/// An interface for a notification XML element with an explicit XML text content.
9+
/// </summary>
10+
internal interface IHaveXmlText
11+
{
12+
/// <summary>
13+
/// Gets the text content of the current element.
14+
/// </summary>
15+
string Text { get; }
16+
}

Microsoft.Toolkit.Uwp.Notifications/Common/XmlWriterHelper.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static void Write(System.Xml.XmlWriter writer, object element)
5555
// If it's a content attribute
5656
else if (attributes.OfType<NotificationXmlContentAttribute>().Any())
5757
{
58-
content = propertyValue;
58+
continue;
5959
}
6060

6161
// Otherwise it's an element or collection of elements
@@ -68,7 +68,9 @@ public static void Write(System.Xml.XmlWriter writer, object element)
6868
}
6969
}
7070

71-
foreach (var property in (element as IHaveAdditionalProperties)?.AdditionalProperties ?? Enumerable.Empty<KeyValuePair<string, string>>())
71+
content = (element as IHaveXmlText)?.Text;
72+
73+
foreach (var property in (element as IHaveXmlAdditionalProperties)?.AdditionalProperties ?? Enumerable.Empty<KeyValuePair<string, string>>())
7274
{
7375
writer.WriteAttributeString(property.Key, property.Value);
7476
}

Microsoft.Toolkit.Uwp.Notifications/Toasts/Elements/Element_Toast.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
namespace Microsoft.Toolkit.Uwp.Notifications
99
{
10-
internal sealed class Element_Toast : BaseElement, IElement_ToastActivatable, IHaveAdditionalProperties, IHaveXmlName, IHaveXmlNamedProperties
10+
internal sealed class Element_Toast : BaseElement, IElement_ToastActivatable, IHaveXmlAdditionalProperties, IHaveXmlName, IHaveXmlNamedProperties
1111
{
1212
internal const ToastScenario DEFAULT_SCENARIO = ToastScenario.Default;
1313
internal const Element_ToastActivationType DEFAULT_ACTIVATION_TYPE = Element_ToastActivationType.Foreground;

Microsoft.Toolkit.Uwp.Notifications/Toasts/Elements/Element_ToastText.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
namespace Microsoft.Toolkit.Uwp.Notifications
88
{
9-
internal sealed class Element_ToastText : IElement_ToastBindingChild, IHaveXmlName, IHaveXmlNamedProperties
9+
internal sealed class Element_ToastText : IElement_ToastBindingChild, IHaveXmlName, IHaveXmlNamedProperties, IHaveXmlText
1010
{
1111
internal const ToastTextPlacement DEFAULT_PLACEMENT = ToastTextPlacement.Inline;
1212

0 commit comments

Comments
 (0)