Skip to content
This repository has been archived by the owner on May 15, 2024. It is now read-only.

Add Share Source Position #1002

Merged
merged 10 commits into from Dec 9, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
5 changes: 4 additions & 1 deletion Samples/Samples/ViewModel/ShareViewModel.cs
Expand Up @@ -104,7 +104,10 @@ async void OnFileRequest()
await Share.RequestAsync(new ShareFileRequest
{
Title = Title,
File = new ShareFile(file)
File = new ShareFile(file),
PresentationSourceBounds = Device.RuntimePlatform == Device.iOS && Device.Idiom == TargetIdiom.Tablet
? new System.Drawing.Rectangle(0, 20, 0, 0)
: System.Drawing.Rectangle.Empty
});
}
}
Expand Down
7 changes: 7 additions & 0 deletions Xamarin.Essentials/Share/Share.ios.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System.Drawing;
using System.Threading.Tasks;
using Foundation;
using UIKit;
Expand Down Expand Up @@ -27,6 +28,9 @@ static Task PlatformRequestAsync(ShareTextRequest request)
if (activityController.PopoverPresentationController != null)
{
activityController.PopoverPresentationController.SourceView = vc.View;

if (request.PresentationSourceBounds != Rectangle.Empty)
activityController.PopoverPresentationController.SourceRect = request.PresentationSourceBounds.ToPlatformRectangle();
}

return vc.PresentViewControllerAsync(activityController, true);
Expand All @@ -49,6 +53,9 @@ static Task PlatformRequestAsync(ShareFileRequest request)
if (activityController.PopoverPresentationController != null)
{
activityController.PopoverPresentationController.SourceView = vc.View;

if (request.PresentationSourceBounds != Rectangle.Empty)
activityController.PopoverPresentationController.SourceRect = request.PresentationSourceBounds.ToPlatformRectangle();
}

return vc.PresentViewControllerAsync(activityController, true);
Expand Down
20 changes: 14 additions & 6 deletions Xamarin.Essentials/Share/Share.shared.cs
@@ -1,6 +1,9 @@
using System;
using System.IO;
using System.Threading.Tasks;
#if !NETSTANDARD1_0
using System.Drawing;
#endif

namespace Xamarin.Essentials
{
Expand All @@ -21,7 +24,16 @@ public static Task RequestAsync(ShareFileRequest request)
}
}

public class ShareTextRequest
public abstract class ShareRequestBase
{
public string Title { get; set; }

#if !NETSTANDARD1_0
public Rectangle PresentationSourceBounds { get; set; } = Rectangle.Empty;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LOL for netstandard1.x

#endif
}

public class ShareTextRequest : ShareRequestBase
{
public ShareTextRequest()
{
Expand All @@ -32,16 +44,14 @@ public ShareTextRequest()
public ShareTextRequest(string text, string title)
: this(text) => Title = title;

public string Title { get; set; }

public string Subject { get; set; }

public string Text { get; set; }

public string Uri { get; set; }
}

public class ShareFileRequest
public class ShareFileRequest : ShareRequestBase
{
public ShareFileRequest()
{
Expand Down Expand Up @@ -69,8 +79,6 @@ public ShareFileRequest(FileBase file)
File = new ShareFile(file);
}

public string Title { get; set; }

public ShareFile File { get; set; }
}

Expand Down
7 changes: 5 additions & 2 deletions docs/en/FrameworksIndex/xamarin-essentials-android.xml
Expand Up @@ -632,15 +632,18 @@
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.FileBase)" />
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.ShareFile)" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.File" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareRequestBase" Id="T:Xamarin.Essentials.ShareRequestBase">
<Member Id="M:Xamarin.Essentials.ShareRequestBase.#ctor" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.PresentationSourceBounds" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareTextRequest" Id="T:Xamarin.Essentials.ShareTextRequest">
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String)" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String,System.String)" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Subject" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Text" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Title" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Uri" />
</Type>
<Type Name="Xamarin.Essentials.SizeExtensions" Id="T:Xamarin.Essentials.SizeExtensions">
Expand Down
7 changes: 5 additions & 2 deletions docs/en/FrameworksIndex/xamarin-essentials-ios.xml
Expand Up @@ -607,15 +607,18 @@
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.FileBase)" />
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.ShareFile)" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.File" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareRequestBase" Id="T:Xamarin.Essentials.ShareRequestBase">
<Member Id="M:Xamarin.Essentials.ShareRequestBase.#ctor" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.PresentationSourceBounds" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareTextRequest" Id="T:Xamarin.Essentials.ShareTextRequest">
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String)" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String,System.String)" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Subject" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Text" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Title" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Uri" />
</Type>
<Type Name="Xamarin.Essentials.SizeExtensions" Id="T:Xamarin.Essentials.SizeExtensions">
Expand Down
7 changes: 5 additions & 2 deletions docs/en/FrameworksIndex/xamarin-essentials-tvos.xml
Expand Up @@ -606,15 +606,18 @@
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.FileBase)" />
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.ShareFile)" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.File" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareRequestBase" Id="T:Xamarin.Essentials.ShareRequestBase">
<Member Id="M:Xamarin.Essentials.ShareRequestBase.#ctor" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.PresentationSourceBounds" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareTextRequest" Id="T:Xamarin.Essentials.ShareTextRequest">
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String)" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String,System.String)" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Subject" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Text" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Title" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Uri" />
</Type>
<Type Name="Xamarin.Essentials.Sms" Id="T:Xamarin.Essentials.Sms">
Expand Down
7 changes: 5 additions & 2 deletions docs/en/FrameworksIndex/xamarin-essentials-uwp.xml
Expand Up @@ -604,15 +604,18 @@
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.FileBase)" />
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.ShareFile)" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.File" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareRequestBase" Id="T:Xamarin.Essentials.ShareRequestBase">
<Member Id="M:Xamarin.Essentials.ShareRequestBase.#ctor" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.PresentationSourceBounds" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareTextRequest" Id="T:Xamarin.Essentials.ShareTextRequest">
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String)" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String,System.String)" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Subject" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Text" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Title" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Uri" />
</Type>
<Type Name="Xamarin.Essentials.SizeExtensions" Id="T:Xamarin.Essentials.SizeExtensions">
Expand Down
7 changes: 5 additions & 2 deletions docs/en/FrameworksIndex/xamarin-essentials-watchos.xml
Expand Up @@ -604,15 +604,18 @@
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.FileBase)" />
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.ShareFile)" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.File" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareRequestBase" Id="T:Xamarin.Essentials.ShareRequestBase">
<Member Id="M:Xamarin.Essentials.ShareRequestBase.#ctor" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.PresentationSourceBounds" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareTextRequest" Id="T:Xamarin.Essentials.ShareTextRequest">
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String)" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String,System.String)" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Subject" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Text" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Title" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Uri" />
</Type>
<Type Name="Xamarin.Essentials.Sms" Id="T:Xamarin.Essentials.Sms">
Expand Down
7 changes: 5 additions & 2 deletions docs/en/FrameworksIndex/xamarin-essentials.xml
Expand Up @@ -592,15 +592,18 @@
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.FileBase)" />
<Member Id="M:Xamarin.Essentials.ShareFileRequest.#ctor(Xamarin.Essentials.ShareFile)" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.File" />
<Member Id="P:Xamarin.Essentials.ShareFileRequest.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareRequestBase" Id="T:Xamarin.Essentials.ShareRequestBase">
<Member Id="M:Xamarin.Essentials.ShareRequestBase.#ctor" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.PresentationSourceBounds" />
<Member Id="P:Xamarin.Essentials.ShareRequestBase.Title" />
</Type>
<Type Name="Xamarin.Essentials.ShareTextRequest" Id="T:Xamarin.Essentials.ShareTextRequest">
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String)" />
<Member Id="M:Xamarin.Essentials.ShareTextRequest.#ctor(System.String,System.String)" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Subject" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Text" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Title" />
<Member Id="P:Xamarin.Essentials.ShareTextRequest.Uri" />
</Type>
<Type Name="Xamarin.Essentials.Sms" Id="T:Xamarin.Essentials.Sms">
Expand Down
28 changes: 3 additions & 25 deletions docs/en/Xamarin.Essentials/ShareFileRequest.xml
@@ -1,13 +1,13 @@
<Type Name="ShareFileRequest" FullName="Xamarin.Essentials.ShareFileRequest">
<TypeSignature Language="C#" Value="public class ShareFileRequest" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ShareFileRequest extends System.Object" />
<TypeSignature Language="C#" Value="public class ShareFileRequest : Xamarin.Essentials.ShareRequestBase" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ShareFileRequest extends Xamarin.Essentials.ShareRequestBase" />
<TypeSignature Language="DocId" Value="T:Xamarin.Essentials.ShareFileRequest" />
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
<BaseTypeName>Xamarin.Essentials.ShareRequestBase</BaseTypeName>
</Base>
<Interfaces />
<Docs>
Expand Down Expand Up @@ -132,27 +132,5 @@
</remarks>
</Docs>
</Member>
<Member MemberName="Title">
<MemberSignature Language="C#" Value="public string Title { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Title" />
<MemberSignature Language="DocId" Value="P:Xamarin.Essentials.ShareFileRequest.Title" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the title to use on the share user interface</summary>
<value>
<para />
</value>
<remarks>
<para />
</remarks>
</Docs>
</Member>
</Members>
</Type>
70 changes: 70 additions & 0 deletions docs/en/Xamarin.Essentials/ShareRequestBase.xml
@@ -0,0 +1,70 @@
<Type Name="ShareRequestBase" FullName="Xamarin.Essentials.ShareRequestBase">
<TypeSignature Language="C#" Value="public class ShareRequestBase" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ShareRequestBase extends System.Object" />
<TypeSignature Language="DocId" Value="T:Xamarin.Essentials.ShareRequestBase" />
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<summary></summary>
<remarks></remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public ShareRequestBase ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:Xamarin.Essentials.ShareRequestBase.#ctor" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary></summary>
<remarks></remarks>
</Docs>
</Member>
<Member MemberName="PresentationSourceBounds">
<MemberSignature Language="C#" Value="public System.Drawing.Rectangle PresentationSourceBounds { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Drawing.Rectangle PresentationSourceBounds" />
<MemberSignature Language="DocId" Value="P:Xamarin.Essentials.ShareRequestBase.PresentationSourceBounds" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Drawing.Rectangle</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the source rectangle to display the Share UI from.</summary>
<value></value>
<remarks>This is only used on iOS currently.</remarks>
</Docs>
</Member>
<Member MemberName="Title">
<MemberSignature Language="C#" Value="public string Title { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Title" />
<MemberSignature Language="DocId" Value="P:Xamarin.Essentials.ShareRequestBase.Title" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the title to use on the share user interface</summary>
<value>The title to be displayed.</value>
<remarks></remarks>
</Docs>
</Member>
</Members>
</Type>
26 changes: 3 additions & 23 deletions docs/en/Xamarin.Essentials/ShareTextRequest.xml
@@ -1,13 +1,13 @@
<Type Name="ShareTextRequest" FullName="Xamarin.Essentials.ShareTextRequest">
<TypeSignature Language="C#" Value="public class ShareTextRequest" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ShareTextRequest extends System.Object" />
<TypeSignature Language="C#" Value="public class ShareTextRequest : Xamarin.Essentials.ShareRequestBase" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit ShareTextRequest extends Xamarin.Essentials.ShareRequestBase" />
<TypeSignature Language="DocId" Value="T:Xamarin.Essentials.ShareTextRequest" />
<AssemblyInfo>
<AssemblyName>Xamarin.Essentials</AssemblyName>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
<BaseTypeName>Xamarin.Essentials.ShareRequestBase</BaseTypeName>
</Base>
<Interfaces />
<Docs>
Expand Down Expand Up @@ -114,26 +114,6 @@
</remarks>
</Docs>
</Member>
<Member MemberName="Title">
<MemberSignature Language="C#" Value="public string Title { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Title" />
<MemberSignature Language="DocId" Value="P:Xamarin.Essentials.ShareTextRequest.Title" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<AssemblyName>Xamarin.Essentials</AssemblyName>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the title to use on the share user interface.</summary>
<value>The title to display.</value>
<remarks>
<para />
</remarks>
</Docs>
</Member>
<Member MemberName="Uri">
<MemberSignature Language="C#" Value="public string Uri { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Uri" />
Expand Down
3 changes: 2 additions & 1 deletion docs/en/index.xml
Expand Up @@ -93,7 +93,7 @@
<AttributeName>System.Runtime.Versioning.TargetFramework("MonoAndroid,Version=v9.0", FrameworkDisplayName="Xamarin.Android v9.0 Support")</AttributeName>
</Attribute>
<Attribute>
<AttributeName>System.Reflection.AssemblyInformationalVersion("1.0.0+93121294be53f4171d1182fb463e3232d6d760c6")</AttributeName>
<AttributeName>System.Reflection.AssemblyInformationalVersion("1.0.0+ff9fe28695639322b3f845ff4ad7be931189987b")</AttributeName>
</Attribute>
</Attributes>
</Assembly>
Expand Down Expand Up @@ -190,6 +190,7 @@
<Type Name="Share" Kind="Class" />
<Type Name="ShareFile" Kind="Class" />
<Type Name="ShareFileRequest" Kind="Class" />
<Type Name="ShareRequestBase" Kind="Class" />
<Type Name="ShareTextRequest" Kind="Class" />
<Type Name="SizeExtensions" Kind="Class" />
<Type Name="Sms" Kind="Class" />
Expand Down