summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorE.Z. Hart <hartez@users.noreply.github.com>2016-05-04 07:08:54 -0600
committerRui Marinho <me@ruimarinho.net>2016-05-04 14:08:54 +0100
commit5b9094241b1d3da5419ed21be30bdcc07c469dbe (patch)
treecd22a4b646a7002c61e4b7fe0714c0f64e483d38
parenta2148444bafd728090c39c1f40700b43baded1e4 (diff)
downloadxamarin-forms-5b9094241b1d3da5419ed21be30bdcc07c469dbe.tar.gz
xamarin-forms-5b9094241b1d3da5419ed21be30bdcc07c469dbe.tar.bz2
xamarin-forms-5b9094241b1d3da5419ed21be30bdcc07c469dbe.zip
Prep StreamImageSource for removal of InternalsVisibleTo
-rw-r--r--Xamarin.Forms.Core/IStreamImageSource.cs11
-rw-r--r--Xamarin.Forms.Core/StreamImageSource.cs6
-rw-r--r--Xamarin.Forms.Core/Xamarin.Forms.Core.csproj1
-rw-r--r--Xamarin.Forms.Platform.Android/Renderers/StreamImagesourceHandler.cs2
-rw-r--r--Xamarin.Forms.Platform.WP8/ImageRenderer.cs4
-rw-r--r--Xamarin.Forms.Platform.WinRT/StreamImagesourceHandler.cs4
-rw-r--r--Xamarin.Forms.Platform.iOS/Renderers/ImageRenderer.cs4
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms/IStreamImageSource.xml35
-rw-r--r--docs/Xamarin.Forms.Core/Xamarin.Forms/StreamImageSource.xml38
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&lt;System.IO.Stream&gt; GetStreamAsync (System.Threading.CancellationToken userToken = null);" />
+ <MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Threading.Tasks.Task`1&lt;class System.IO.Stream&gt; 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&lt;System.IO.Stream&gt;</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&lt;System.IO.Stream&gt; IStreamImageSource.GetStreamAsync (System.Threading.CancellationToken userToken);" />
+ <MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance class System.Threading.Tasks.Task`1&lt;class System.IO.Stream&gt; 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/&lt;Xamarin-Forms-IStreamImageSource-GetStreamAsync&gt;d__5))</AttributeName>
+ </Attribute>
+ </Attributes>
+ <ReturnValue>
+ <ReturnType>System.Threading.Tasks.Task&lt;System.IO.Stream&gt;</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>