diff options
author | E.Z. Hart <hartez@users.noreply.github.com> | 2016-05-04 07:08:54 -0600 |
---|---|---|
committer | Rui Marinho <me@ruimarinho.net> | 2016-05-04 14:08:54 +0100 |
commit | 5b9094241b1d3da5419ed21be30bdcc07c469dbe (patch) | |
tree | cd22a4b646a7002c61e4b7fe0714c0f64e483d38 | |
parent | a2148444bafd728090c39c1f40700b43baded1e4 (diff) | |
download | xamarin-forms-5b9094241b1d3da5419ed21be30bdcc07c469dbe.tar.gz xamarin-forms-5b9094241b1d3da5419ed21be30bdcc07c469dbe.tar.bz2 xamarin-forms-5b9094241b1d3da5419ed21be30bdcc07c469dbe.zip |
Prep StreamImageSource for removal of InternalsVisibleTo
9 files changed, 92 insertions, 13 deletions
diff --git a/Xamarin.Forms.Core/IStreamImageSource.cs b/Xamarin.Forms.Core/IStreamImageSource.cs new file mode 100644 index 00000000..92a7e958 --- /dev/null +++ b/Xamarin.Forms.Core/IStreamImageSource.cs @@ -0,0 +1,11 @@ +using System.IO; +using System.Threading; +using System.Threading.Tasks; + +namespace Xamarin.Forms +{ + public interface IStreamImageSource + { + Task<Stream> GetStreamAsync(CancellationToken userToken = default(CancellationToken)); + } +}
\ No newline at end of file diff --git a/Xamarin.Forms.Core/StreamImageSource.cs b/Xamarin.Forms.Core/StreamImageSource.cs index ae59ea3c..06926749 100644 --- a/Xamarin.Forms.Core/StreamImageSource.cs +++ b/Xamarin.Forms.Core/StreamImageSource.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; namespace Xamarin.Forms { - public class StreamImageSource : ImageSource + public class StreamImageSource : ImageSource, IStreamImageSource { public static readonly BindableProperty StreamProperty = BindableProperty.Create("Stream", typeof(Func<CancellationToken, Task<Stream>>), typeof(StreamImageSource), default(Func<CancellationToken, Task<Stream>>)); @@ -21,9 +21,9 @@ namespace Xamarin.Forms if (propertyName == StreamProperty.PropertyName) OnSourceChanged(); base.OnPropertyChanged(propertyName); - } + } - internal async Task<Stream> GetStreamAsync(CancellationToken userToken = default(CancellationToken)) + async Task<Stream> IStreamImageSource.GetStreamAsync(CancellationToken userToken) { if (Stream == null) return null; diff --git a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj index e5a1b640..32cd9b88 100644 --- a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj +++ b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj @@ -140,6 +140,7 @@ <Compile Include="IRootObjectProvider.cs" /> <Compile Include="IScrollViewController.cs" /> <Compile Include="ISearchBarController.cs" /> + <Compile Include="IStreamImageSource.cs" /> <Compile Include="ItemTappedEventArgs.cs" /> <Compile Include="ItemVisibilityEventArgs.cs" /> <Compile Include="IValueConverterProvider.cs" /> diff --git a/Xamarin.Forms.Platform.Android/Renderers/StreamImagesourceHandler.cs b/Xamarin.Forms.Platform.Android/Renderers/StreamImagesourceHandler.cs index 44066975..3128995d 100644 --- a/Xamarin.Forms.Platform.Android/Renderers/StreamImagesourceHandler.cs +++ b/Xamarin.Forms.Platform.Android/Renderers/StreamImagesourceHandler.cs @@ -13,7 +13,7 @@ namespace Xamarin.Forms.Platform.Android var streamsource = imagesource as StreamImageSource; if (streamsource != null && streamsource.Stream != null) { - using (Stream stream = await streamsource.GetStreamAsync(cancelationToken).ConfigureAwait(false)) + using (Stream stream = await ((IStreamImageSource)streamsource).GetStreamAsync(cancelationToken).ConfigureAwait(false)) return await BitmapFactory.DecodeStreamAsync(stream).ConfigureAwait(false); } return null; diff --git a/Xamarin.Forms.Platform.WP8/ImageRenderer.cs b/Xamarin.Forms.Platform.WP8/ImageRenderer.cs index e0574095..9a758c11 100644 --- a/Xamarin.Forms.Platform.WP8/ImageRenderer.cs +++ b/Xamarin.Forms.Platform.WP8/ImageRenderer.cs @@ -122,7 +122,7 @@ namespace Xamarin.Forms.Platform.WinPhone } return Task.FromResult(image); } - } + } public sealed class StreamImagesourceHandler : IImageSourceHandler { @@ -133,7 +133,7 @@ namespace Xamarin.Forms.Platform.WinPhone var streamsource = imagesource as StreamImageSource; if (streamsource != null && streamsource.Stream != null) { - using (Stream stream = await streamsource.GetStreamAsync(cancelationToken)) + using (Stream stream = await ((IStreamImageSource)streamsource).GetStreamAsync(cancelationToken)) { bitmapimage = new BitmapImage(); bitmapimage.SetSource(stream); diff --git a/Xamarin.Forms.Platform.WinRT/StreamImagesourceHandler.cs b/Xamarin.Forms.Platform.WinRT/StreamImagesourceHandler.cs index faaa4988..20d2c504 100644 --- a/Xamarin.Forms.Platform.WinRT/StreamImagesourceHandler.cs +++ b/Xamarin.Forms.Platform.WinRT/StreamImagesourceHandler.cs @@ -10,7 +10,7 @@ namespace Xamarin.Forms.Platform.UWP #else namespace Xamarin.Forms.Platform.WinRT -#endif +#endif { public sealed class StreamImagesourceHandler : IImageSourceHandler { @@ -21,7 +21,7 @@ namespace Xamarin.Forms.Platform.WinRT var streamsource = imagesource as StreamImageSource; if (streamsource != null && streamsource.Stream != null) { - using (Stream stream = await streamsource.GetStreamAsync(cancellationToken)) + using (Stream stream = await ((IStreamImageSource)streamsource).GetStreamAsync(cancellationToken)) { if (stream == null) return null; diff --git a/Xamarin.Forms.Platform.iOS/Renderers/ImageRenderer.cs b/Xamarin.Forms.Platform.iOS/Renderers/ImageRenderer.cs index 4fd85c6a..37ae8d29 100644 --- a/Xamarin.Forms.Platform.iOS/Renderers/ImageRenderer.cs +++ b/Xamarin.Forms.Platform.iOS/Renderers/ImageRenderer.cs @@ -178,11 +178,11 @@ namespace Xamarin.Forms.Platform.iOS { public async Task<UIImage> LoadImageAsync(ImageSource imagesource, CancellationToken cancelationToken = default(CancellationToken), float scale = 1f) { - UIImage image = null; + UIImage image = null; var streamsource = imagesource as StreamImageSource; if (streamsource != null && streamsource.Stream != null) { - using (var streamImage = await streamsource.GetStreamAsync(cancelationToken).ConfigureAwait(false)) + using (var streamImage = await ((IStreamImageSource)streamsource).GetStreamAsync(cancelationToken).ConfigureAwait(false)) { if (streamImage != null) image = UIImage.LoadFromData(NSData.FromStream(streamImage), scale); diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/IStreamImageSource.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/IStreamImageSource.xml new file mode 100644 index 00000000..e50e0536 --- /dev/null +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/IStreamImageSource.xml @@ -0,0 +1,35 @@ +<Type Name="IStreamImageSource" FullName="Xamarin.Forms.IStreamImageSource"> + <TypeSignature Language="C#" Value="public interface IStreamImageSource" /> + <TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IStreamImageSource" /> + <AssemblyInfo> + <AssemblyName>Xamarin.Forms.Core</AssemblyName> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Interfaces /> + <Docs> + <summary>To be added.</summary> + <remarks>To be added.</remarks> + </Docs> + <Members> + <Member MemberName="GetStreamAsync"> + <MemberSignature Language="C#" Value="public System.Threading.Tasks.Task<System.IO.Stream> GetStreamAsync (System.Threading.CancellationToken userToken = null);" /> + <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Threading.Tasks.Task`1<class System.IO.Stream> GetStreamAsync(valuetype System.Threading.CancellationToken userToken) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <ReturnValue> + <ReturnType>System.Threading.Tasks.Task<System.IO.Stream></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="userToken" Type="System.Threading.CancellationToken" /> + </Parameters> + <Docs> + <param name="userToken">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> + </Members> +</Type> diff --git a/docs/Xamarin.Forms.Core/Xamarin.Forms/StreamImageSource.xml b/docs/Xamarin.Forms.Core/Xamarin.Forms/StreamImageSource.xml index 1e173b75..8fe54546 100644 --- a/docs/Xamarin.Forms.Core/Xamarin.Forms/StreamImageSource.xml +++ b/docs/Xamarin.Forms.Core/Xamarin.Forms/StreamImageSource.xml @@ -1,6 +1,6 @@ <Type Name="StreamImageSource" FullName="Xamarin.Forms.StreamImageSource"> - <TypeSignature Language="C#" Value="public class StreamImageSource : Xamarin.Forms.ImageSource" /> - <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit StreamImageSource extends Xamarin.Forms.ImageSource" /> + <TypeSignature Language="C#" Value="public class StreamImageSource : Xamarin.Forms.ImageSource, Xamarin.Forms.IStreamImageSource" /> + <TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit StreamImageSource extends Xamarin.Forms.ImageSource implements class Xamarin.Forms.IStreamImageSource" /> <AssemblyInfo> <AssemblyName>Xamarin.Forms.Core</AssemblyName> <AssemblyVersion>1.0.0.0</AssemblyVersion> @@ -14,7 +14,11 @@ <Base> <BaseTypeName>Xamarin.Forms.ImageSource</BaseTypeName> </Base> - <Interfaces /> + <Interfaces> + <Interface> + <InterfaceName>Xamarin.Forms.IStreamImageSource</InterfaceName> + </Interface> + </Interfaces> <Docs> <summary> <see cref="T:Xamarin.Forms.ImageSource" /> that loads an image from a <see cref="T:System.IO.Stream" />.</summary> @@ -110,5 +114,33 @@ <remarks>To be added.</remarks> </Docs> </Member> + <Member MemberName="Xamarin.Forms.IStreamImageSource.GetStreamAsync"> + <MemberSignature Language="C#" Value="System.Threading.Tasks.Task<System.IO.Stream> IStreamImageSource.GetStreamAsync (System.Threading.CancellationToken userToken);" /> + <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Threading.Tasks.Task`1<class System.IO.Stream> Xamarin.Forms.IStreamImageSource.GetStreamAsync(valuetype System.Threading.CancellationToken userToken) cil managed" /> + <MemberType>Method</MemberType> + <AssemblyInfo> + <AssemblyVersion>2.0.0.0</AssemblyVersion> + </AssemblyInfo> + <Attributes> + <Attribute> + <AttributeName>System.Diagnostics.DebuggerStepThrough</AttributeName> + </Attribute> + <Attribute> + <AttributeName>System.Runtime.CompilerServices.AsyncStateMachine(typeof(Xamarin.Forms.StreamImageSource/<Xamarin-Forms-IStreamImageSource-GetStreamAsync>d__5))</AttributeName> + </Attribute> + </Attributes> + <ReturnValue> + <ReturnType>System.Threading.Tasks.Task<System.IO.Stream></ReturnType> + </ReturnValue> + <Parameters> + <Parameter Name="userToken" Type="System.Threading.CancellationToken" /> + </Parameters> + <Docs> + <param name="userToken">To be added.</param> + <summary>To be added.</summary> + <returns>To be added.</returns> + <remarks>To be added.</remarks> + </Docs> + </Member> </Members> </Type> |