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 8 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 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>
25 changes: 3 additions & 22 deletions docs/en/Xamarin.Essentials/ShareTextRequest.xml
@@ -1,13 +1,14 @@
<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 FrameworkAlternate="xamarin-essentials">Xamarin.Essentials.ShareRequestBase</BaseTypeName>
</Base>
<Interfaces />
<Docs>
Expand Down Expand Up @@ -114,26 +115,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