From fda800ca4c9d9a24b531721d7a18114169e2d8ec Mon Sep 17 00:00:00 2001 From: Kangho Hur Date: Tue, 16 Apr 2019 01:55:56 +0900 Subject: [PATCH] [Material] [Tizen] Adds Xamarin.Forms.Material.Tizen for Visual (#5453) * [Tizen] Adds Xamarin.Forms.Material.Tizen for Visual * Update Tizen.NET.MaterialComponent for applying color scheme * Don't build XF.Material.Tzien on iPhone and iPhoneSimulator * Fix MCanvas build issue * Update build-windows.yml for XF.Material.Tizen --- .nuspec/Xamarin.Forms.Visual.Material.nuspec | 8 +++ .../ControlGallery.Tizen.cs | 4 ++ .../Xamarin.Forms.ControlGallery.Tizen.csproj | 4 +- Xamarin.Forms.Core/Visuals/VisualMarker.cs | 2 +- Xamarin.Forms.Material.Android/MaterialColors.cs | 68 +++++++++++++++++-- Xamarin.Forms.Material.Tizen/FormsMaterial.cs | 18 +++++ .../MaterialFrameRenderer.cs | 38 +++++++++++ .../MaterialProgressBarRenderer.cs | 21 ++++++ .../MaterialSliderRenderer.cs | 21 ++++++ Xamarin.Forms.Material.Tizen/Native/MCanvas.cs | 79 ++++++++++++++++++++++ .../Xamarin.Forms.Material.Tizen.csproj | 28 ++++++++ Xamarin.Forms.Platform.Tizen/Platform.cs | 3 + .../Renderers/ProgressBarRenderer.cs | 2 +- Xamarin.Forms.sln | 23 +++++++ build/steps/build-windows.yml | 5 +- 15 files changed, 313 insertions(+), 11 deletions(-) create mode 100644 Xamarin.Forms.Material.Tizen/FormsMaterial.cs create mode 100644 Xamarin.Forms.Material.Tizen/MaterialFrameRenderer.cs create mode 100644 Xamarin.Forms.Material.Tizen/MaterialProgressBarRenderer.cs create mode 100644 Xamarin.Forms.Material.Tizen/MaterialSliderRenderer.cs create mode 100644 Xamarin.Forms.Material.Tizen/Native/MCanvas.cs create mode 100644 Xamarin.Forms.Material.Tizen/Xamarin.Forms.Material.Tizen.csproj diff --git a/.nuspec/Xamarin.Forms.Visual.Material.nuspec b/.nuspec/Xamarin.Forms.Visual.Material.nuspec index c0b74af..14b18b9 100644 --- a/.nuspec/Xamarin.Forms.Visual.Material.nuspec +++ b/.nuspec/Xamarin.Forms.Visual.Material.nuspec @@ -26,6 +26,10 @@ + + + + @@ -46,5 +50,9 @@ + + + + diff --git a/Xamarin.Forms.ControlGallery.Tizen/ControlGallery.Tizen.cs b/Xamarin.Forms.ControlGallery.Tizen/ControlGallery.Tizen.cs index 0ae8ae6..4a28a1b 100644 --- a/Xamarin.Forms.ControlGallery.Tizen/ControlGallery.Tizen.cs +++ b/Xamarin.Forms.ControlGallery.Tizen/ControlGallery.Tizen.cs @@ -1,6 +1,8 @@ using Xamarin.Forms.Platform.Tizen; using Xamarin.Forms.Controls; using ElmSharp; +using Tizen.Applications; +using Tizen.NET.MaterialComponents; namespace Xamarin.Forms.ControlGallery.Tizen { @@ -10,6 +12,7 @@ namespace Xamarin.Forms.ControlGallery.Tizen protected override void OnCreate() { base.OnCreate(); + ThemeLoader.Initialize(DirectoryInfo.Resource); NativeParent = MainWindow; LoadApplication(new App()); } @@ -19,6 +22,7 @@ namespace Xamarin.Forms.ControlGallery.Tizen var app = new MainApplication(); FormsMaps.Init("HERE", "write-your-API-key-here"); global::Xamarin.Forms.Platform.Tizen.Forms.Init(app); + FormsMaterial.Init(); app.Run(args); } } diff --git a/Xamarin.Forms.ControlGallery.Tizen/Xamarin.Forms.ControlGallery.Tizen.csproj b/Xamarin.Forms.ControlGallery.Tizen/Xamarin.Forms.ControlGallery.Tizen.csproj index a100732..b2192ac 100644 --- a/Xamarin.Forms.ControlGallery.Tizen/Xamarin.Forms.ControlGallery.Tizen.csproj +++ b/Xamarin.Forms.ControlGallery.Tizen/Xamarin.Forms.ControlGallery.Tizen.csproj @@ -9,11 +9,13 @@ Runtime - + + + diff --git a/Xamarin.Forms.Core/Visuals/VisualMarker.cs b/Xamarin.Forms.Core/Visuals/VisualMarker.cs index de89be7..8d220c5 100644 --- a/Xamarin.Forms.Core/Visuals/VisualMarker.cs +++ b/Xamarin.Forms.Core/Visuals/VisualMarker.cs @@ -16,7 +16,7 @@ return; _warnedAboutMaterial = true; - if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Android) + if (Device.RuntimePlatform == Device.iOS || Device.RuntimePlatform == Device.Android || Device.RuntimePlatform == Device.Tizen) Internals.Log.Warning("Visual", $"Material needs to be registered on {Device.RuntimePlatform} by calling FormsMaterial.Init() after the Xamarin.Forms.Forms.Init method call."); else Internals.Log.Warning("Visual", $"Material is currently not support on {Device.RuntimePlatform}."); diff --git a/Xamarin.Forms.Material.Android/MaterialColors.cs b/Xamarin.Forms.Material.Android/MaterialColors.cs index 238c382..47c8500 100644 --- a/Xamarin.Forms.Material.Android/MaterialColors.cs +++ b/Xamarin.Forms.Material.Android/MaterialColors.cs @@ -8,16 +8,23 @@ using AProgressBar = Android.Widget.ProgressBar; using ASeekBar = Android.Widget.AbsSeekBar; using PlatformColor = Android.Graphics.Color; using Xamarin.Forms.Platform.Android; -#else +#elif __IOS__ using MaterialComponents; using Xamarin.Forms.Platform.iOS; using PlatformColor = UIKit.UIColor; +#elif __TIZEN__ +using System; +using Tizen.NET.MaterialComponents; +using Xamarin.Forms.Platform.Tizen; +using PlatformColor = ElmSharp.Color; #endif #if __ANDROID__ namespace Xamarin.Forms.Material.Android -#else +#elif __IOS__ namespace Xamarin.Forms.Material.iOS +#elif __TIZEN__ +namespace Xamarin.Forms.Material.Tizen #endif { // Colors from material-components-android @@ -266,6 +273,26 @@ namespace Xamarin.Forms.Material.iOS OnSurfaceColor = OnSurfaceColor, }; } +#elif __TIZEN__ + class FormsLightColors : MColors + { + public override PlatformColor PrimaryColor => MaterialColors.Light.PrimaryColor; + public override PlatformColor PrimaryColorVariant => MaterialColors.Light.PrimaryColorVariant; + public override PlatformColor OnPrimaryColor => MaterialColors.Light.OnPrimaryColor; + public override PlatformColor SecondaryColor => MaterialColors.Light.SecondaryColor; + public override PlatformColor OnSecondaryColor => MaterialColors.Light.OnSecondaryColor; + + public override PlatformColor BackgroundColor => MaterialColors.Light.BackgroundColor; + public override PlatformColor ErrorColor => MaterialColors.Light.ErrorColor; + public override PlatformColor SurfaceColor => MaterialColors.Light.SurfaceColor; + public override PlatformColor OnBackgroundColor => MaterialColors.Light.OnBackgroundColor; + public override PlatformColor OnSurfaceColor => MaterialColors.Light.OnSurfaceColor; + }; + + public static MColors CreateColorScheme() + { + return new FormsLightColors(); + } #endif } @@ -306,6 +333,26 @@ namespace Xamarin.Forms.Material.iOS OnSurfaceColor = OnSurfaceColor, }; } +#elif __TIZEN__ + class FormsDarkColors : MColors + { + public override PlatformColor PrimaryColor => MaterialColors.Dark.PrimaryColor; + public override PlatformColor PrimaryColorVariant => MaterialColors.Dark.PrimaryColorVariant; + public override PlatformColor OnPrimaryColor => MaterialColors.Dark.OnPrimaryColor; + public override PlatformColor SecondaryColor => MaterialColors.Dark.SecondaryColor; + public override PlatformColor OnSecondaryColor => MaterialColors.Dark.OnSecondaryColor; + + public override PlatformColor BackgroundColor => MaterialColors.Dark.BackgroundColor; + public override PlatformColor ErrorColor => MaterialColors.Dark.ErrorColor; + public override PlatformColor SurfaceColor => MaterialColors.Dark.SurfaceColor; + public override PlatformColor OnBackgroundColor => MaterialColors.Dark.OnBackgroundColor; + public override PlatformColor OnSurfaceColor => MaterialColors.Dark.OnSurfaceColor; + }; + + public static MColors CreateColorScheme() + { + return new FormsDarkColors(); + } #endif } @@ -315,8 +362,10 @@ namespace Xamarin.Forms.Material.iOS { #if __ANDROID__ return color.ToAndroid(); -#else +#elif __IOS__ return color.ToUIColor(); +#elif __TIZEN__ + return color.ToNative(); #endif } @@ -326,8 +375,10 @@ namespace Xamarin.Forms.Material.iOS { #if __ANDROID__ return color.WithAlpha(color.A / 255f * alpha); -#else +#elif __IOS__ return color.ColorWithAlpha(color.CGColor.Alpha / 255f * alpha); +#elif __TIZEN__ + return color.WithAlpha(color.A / 255f * alpha); #endif } @@ -335,8 +386,10 @@ namespace Xamarin.Forms.Material.iOS { #if __ANDROID__ return color.WithAlpha(alpha); -#else +#elif __IOS__ return color.ColorWithAlpha(alpha); +#elif __TIZEN__ + return color.WithAlpha(alpha); #endif } @@ -345,9 +398,10 @@ namespace Xamarin.Forms.Material.iOS { #if __ANDROID__ return PlatformColor.Rgb(red, green, blue); -#else +#elif __IOS__ return PlatformColor.FromRGB(red, green, blue); - +#elif __TIZEN__ + return PlatformColor.FromRgb(red, green, blue); #endif } } diff --git a/Xamarin.Forms.Material.Tizen/FormsMaterial.cs b/Xamarin.Forms.Material.Tizen/FormsMaterial.cs new file mode 100644 index 0000000..e40f943 --- /dev/null +++ b/Xamarin.Forms.Material.Tizen/FormsMaterial.cs @@ -0,0 +1,18 @@ +using System; +using Tizen.NET.MaterialComponents; +using Xamarin.Forms.Material.Tizen; + +namespace Xamarin.Forms +{ + public static class FormsMaterial + { + public static void Init() + { + // my only purpose is to exist so when called + // this dll doesn't get removed + + VisualMarker.RegisterMaterial(); + MColors.Current = MaterialColors.Light.CreateColorScheme(); + } + } +} \ No newline at end of file diff --git a/Xamarin.Forms.Material.Tizen/MaterialFrameRenderer.cs b/Xamarin.Forms.Material.Tizen/MaterialFrameRenderer.cs new file mode 100644 index 0000000..4d49422 --- /dev/null +++ b/Xamarin.Forms.Material.Tizen/MaterialFrameRenderer.cs @@ -0,0 +1,38 @@ +using Xamarin.Forms; +using Xamarin.Forms.Platform.Tizen; +using Xamarin.Forms.Material.Tizen; +using Xamarin.Forms.Material.Tizen.Native; +using Tizen.NET.MaterialComponents; +using TForms = Xamarin.Forms.Platform.Tizen.Forms; + +[assembly: ExportRenderer(typeof(Frame), typeof(MaterialFrameRenderer), new[] { typeof(VisualMarker.MaterialVisual) })] +namespace Xamarin.Forms.Material.Tizen +{ + public class MaterialFrameRenderer : ViewRenderer + { + public MaterialFrameRenderer() + { + RegisterPropertyHandler(Frame.BorderColorProperty, UpdateBorderColor); + RegisterPropertyHandler(Frame.HasShadowProperty, UpdateShadowVisibility); + } + + protected override void OnElementChanged(ElementChangedEventArgs e) + { + if (Control == null) + { + SetNativeControl(new MCanvas(TForms.NativeParent)); + } + base.OnElementChanged(e); + } + + void UpdateBorderColor() + { + Control.BorderColor = Element.BorderColor.ToNative(); + } + + void UpdateShadowVisibility() + { + Control.HasShadow = Element.HasShadow; + } + } +} diff --git a/Xamarin.Forms.Material.Tizen/MaterialProgressBarRenderer.cs b/Xamarin.Forms.Material.Tizen/MaterialProgressBarRenderer.cs new file mode 100644 index 0000000..09756ff --- /dev/null +++ b/Xamarin.Forms.Material.Tizen/MaterialProgressBarRenderer.cs @@ -0,0 +1,21 @@ +using Xamarin.Forms; +using Xamarin.Forms.Platform.Tizen; +using Xamarin.Forms.Material.Tizen; +using Tizen.NET.MaterialComponents; +using TForms = Xamarin.Forms.Platform.Tizen.Forms; + +[assembly: ExportRenderer(typeof(ProgressBar), typeof(MaterialProgressBarRenderer), new[] { typeof(VisualMarker.MaterialVisual) })] +namespace Xamarin.Forms.Material.Tizen +{ + public class MaterialProgressBarRenderer : ProgressBarRenderer + { + protected override void OnElementChanged(ElementChangedEventArgs e) + { + if (Control == null) + { + SetNativeControl(new MProgressIndicator(TForms.NativeParent)); + } + base.OnElementChanged(e); + } + } +} diff --git a/Xamarin.Forms.Material.Tizen/MaterialSliderRenderer.cs b/Xamarin.Forms.Material.Tizen/MaterialSliderRenderer.cs new file mode 100644 index 0000000..c0eefe4 --- /dev/null +++ b/Xamarin.Forms.Material.Tizen/MaterialSliderRenderer.cs @@ -0,0 +1,21 @@ +using Xamarin.Forms; +using Xamarin.Forms.Platform.Tizen; +using Xamarin.Forms.Material.Tizen; +using Tizen.NET.MaterialComponents; +using TForms = Xamarin.Forms.Platform.Tizen.Forms; + +[assembly: ExportRenderer(typeof(Slider), typeof(MaterialSliderRenderer), new[] { typeof(VisualMarker.MaterialVisual) })] +namespace Xamarin.Forms.Material.Tizen +{ + public class MaterialSliderRenderer : SliderRenderer + { + protected override void OnElementChanged(ElementChangedEventArgs e) + { + if (Control == null) + { + SetNativeControl(new MSlider(TForms.NativeParent)); + } + base.OnElementChanged(e); + } + } +} diff --git a/Xamarin.Forms.Material.Tizen/Native/MCanvas.cs b/Xamarin.Forms.Material.Tizen/Native/MCanvas.cs new file mode 100644 index 0000000..a6a0e33 --- /dev/null +++ b/Xamarin.Forms.Material.Tizen/Native/MCanvas.cs @@ -0,0 +1,79 @@ +using System.Collections.Generic; +using System.Collections.Specialized; +using Xamarin.Forms.Platform.Tizen.Native; +using ElmSharp; +using Tizen.NET.MaterialComponents; + +namespace Xamarin.Forms.Material.Tizen.Native +{ + public class MCanvas : MCard, IContainable + { + readonly ObservableCollection _children = new ObservableCollection(); + + public MCanvas(EvasObject parent) : base(parent) + { + _children.CollectionChanged += (o, e) => + { + if (e.Action == NotifyCollectionChangedAction.Add) + { + foreach (var v in e.NewItems) + { + var view = v as EvasObject; + if (null != view) + { + OnAdd(view); + } + } + } + else if (e.Action == NotifyCollectionChangedAction.Remove) + { + foreach (var v in e.OldItems) + { + var view = v as EvasObject; + if (null != view) + { + OnRemove(view); + } + } + } + else if (e.Action == NotifyCollectionChangedAction.Reset) + { + OnRemoveAll(); + } + }; + } + + public new IList Children + { + get + { + return _children; + } + } + + protected override void OnUnrealize() + { + foreach (var child in _children) + { + child.Unrealize(); + } + + base.OnUnrealize(); + } + + void OnAdd(EvasObject view) + { + PackEnd(view); + } + + void OnRemove(EvasObject view) + { + UnPack(view); + } + + void OnRemoveAll() + { + UnPackAll(); + } + } +} diff --git a/Xamarin.Forms.Material.Tizen/Xamarin.Forms.Material.Tizen.csproj b/Xamarin.Forms.Material.Tizen/Xamarin.Forms.Material.Tizen.csproj new file mode 100644 index 0000000..52cd808 --- /dev/null +++ b/Xamarin.Forms.Material.Tizen/Xamarin.Forms.Material.Tizen.csproj @@ -0,0 +1,28 @@ + + + + tizen40 + false + Xamarin.Forms.Material.Tizen + Xamarin.Forms.Material + Library + Xamarin.Forms.Material.Tizen + __TIZEN__ + + + + + MaterialColors.cs + + + + + + + + + + + + + \ No newline at end of file diff --git a/Xamarin.Forms.Platform.Tizen/Platform.cs b/Xamarin.Forms.Platform.Tizen/Platform.cs index 619b28f..86b05fb 100644 --- a/Xamarin.Forms.Platform.Tizen/Platform.cs +++ b/Xamarin.Forms.Platform.Tizen/Platform.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Runtime.CompilerServices; using System.Linq; using System.Threading.Tasks; using System.ComponentModel; @@ -10,6 +11,8 @@ using EProgressBar = ElmSharp.ProgressBar; using EButton = ElmSharp.Button; using EColor = ElmSharp.Color; +[assembly: InternalsVisibleTo("Xamarin.Forms.Material")] + namespace Xamarin.Forms.Platform.Tizen { public static class Platform diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/ProgressBarRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/ProgressBarRenderer.cs index 23e4a40..cfe8189 100644 --- a/Xamarin.Forms.Platform.Tizen/Renderers/ProgressBarRenderer.cs +++ b/Xamarin.Forms.Platform.Tizen/Renderers/ProgressBarRenderer.cs @@ -65,7 +65,7 @@ namespace Xamarin.Forms.Platform.Tizen UpdatePulsingStatus(); } - void UpdateProgressColor(bool initialize) + protected virtual void UpdateProgressColor(bool initialize) { if (initialize && Element.ProgressColor.IsDefault) return; diff --git a/Xamarin.Forms.sln b/Xamarin.Forms.sln index eb8ebf6..0bee20e 100644 --- a/Xamarin.Forms.sln +++ b/Xamarin.Forms.sln @@ -194,6 +194,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Sandbox.UWP", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xamarin.Forms.Material.Android", "Xamarin.Forms.Material.Android\Xamarin.Forms.Material.Android.csproj", "{E1586CE6-8EAC-4388-A15A-1AABF108B5F8}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xamarin.Forms.Material.Tizen", "Xamarin.Forms.Material.Tizen\Xamarin.Forms.Material.Tizen.csproj", "{84B8819E-9123-43CE-A788-8CB05ABA32DA}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution Xamarin.Forms.Controls.Issues\Xamarin.Forms.Controls.Issues.Shared\Xamarin.Forms.Controls.Issues.Shared.projitems*{0a39a74b-6f7a-4d41-84f2-b0ccdce899df}*SharedItemsImports = 4 @@ -1680,6 +1682,26 @@ Global {E1586CE6-8EAC-4388-A15A-1AABF108B5F8}.Release|x64.Build.0 = Release|Any CPU {E1586CE6-8EAC-4388-A15A-1AABF108B5F8}.Release|x86.ActiveCfg = Release|Any CPU {E1586CE6-8EAC-4388-A15A-1AABF108B5F8}.Release|x86.Build.0 = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|ARM.ActiveCfg = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|ARM.Build.0 = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|x64.ActiveCfg = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|x64.Build.0 = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|x86.ActiveCfg = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Debug|x86.Build.0 = Debug|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|Any CPU.Build.0 = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|ARM.ActiveCfg = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|ARM.Build.0 = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|iPhone.ActiveCfg = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|x64.ActiveCfg = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|x64.Build.0 = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|x86.ActiveCfg = Release|Any CPU + {84B8819E-9123-43CE-A788-8CB05ABA32DA}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1750,6 +1772,7 @@ Global {160053B8-745A-41DB-9B33-30479729D6DC} = {ED56954D-28FE-42BF-A5FD-AD5AD5AF0A0C} {868A9B7B-3977-4B56-91F7-F6B75657198B} = {ED56954D-28FE-42BF-A5FD-AD5AD5AF0A0C} {E1586CE6-8EAC-4388-A15A-1AABF108B5F8} = {F6F6A11F-CA66-4C7E-AB84-CD21D817C2CD} + {84B8819E-9123-43CE-A788-8CB05ABA32DA} = {F6F6A11F-CA66-4C7E-AB84-CD21D817C2CD} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {650AE971-2F29-46A8-822C-FB4FCDC6A9A0} diff --git a/build/steps/build-windows.yml b/build/steps/build-windows.yml index a4c52ab..387e6da 100644 --- a/build/steps/build-windows.yml +++ b/build/steps/build-windows.yml @@ -61,6 +61,9 @@ steps: Xamarin.Forms.Material.Android/bin/$(BuildConfiguration)/**/*.dll Xamarin.Forms.Material.Android/bin/$(BuildConfiguration)/**/*.pdb Xamarin.Forms.Material.Android/bin/$(BuildConfiguration)/**/*.mdb + Xamarin.Forms.Material.Tizen/bin/$(BuildConfiguration)/**/*.dll + Xamarin.Forms.Material.Tizen/bin/$(BuildConfiguration)/**/*.pdb + Xamarin.Forms.Material.Tizen/bin/$(BuildConfiguration)/**/*.mdb Xamarin.Forms.Platform.WP8/bin/$(BuildConfiguration)/**/*.dll Xamarin.Forms.Platform.UAP/bin/$(BuildConfiguration)/**/*.pdb Xamarin.Forms.Platform.UAP/bin/$(BuildConfiguration)/**/*.dll @@ -133,4 +136,4 @@ steps: - task: PublishBuildArtifacts@1 displayName: 'Publish Artifact: win_build' inputs: - ArtifactName: 'win_build' \ No newline at end of file + ArtifactName: 'win_build' -- 2.7.4