| | |
| | | using System; |
| | | |
| | | using CoreGraphics; |
| | | using Foundation; |
| | | using HDLSceneSiri; |
| | | //using HDLSceneSiri; |
| | | using Intents; |
| | | using IntentsUI; |
| | | using UIKit; |
| | | |
| | | namespace SiriIntentsUI |
| | | { |
| | | // As an example, this extension's Info.plist has been configured to handle interactions for INSendMessageIntent. |
| | | // You will want to replace this or add other intents as appropriate. |
| | | // The intents whose interactions you wish to handle must be declared in the extension's Info.plist. |
| | | |
| | | // You can test this example integration by saying things to Siri like: |
| | | // "Send a message using <myApp>" |
| | | public partial class IntentViewController : UIViewController, IINUIHostedViewControlling |
| | | { |
| | | protected IntentViewController(IntPtr handle) : base(handle) |
| | | { |
| | | // Note: this .ctor should not contain any initialization logic. |
| | | } |
| | | |
| | | public override void ViewDidLoad() |
| | | { |
| | | base.ViewDidLoad(); |
| | | |
| | | // Do any required interface initialization here. |
| | | } |
| | | |
| | | public override void DidReceiveMemoryWarning() |
| | | { |
| | | // Releases the view if it doesn't have a superview. |
| | | base.DidReceiveMemoryWarning(); |
| | | |
| | | // Release any cached data, images, etc that aren't in use. |
| | | } |
| | | |
| | | [Export("configureWithInteraction:context:completion:")] |
| | | public void Configure(INInteraction interaction, INUIHostedViewContext context, Action<CGSize> completion) |
| | | { |
| | | // Do configuration here, including preparing views and calculating a desired size for presentation. |
| | | |
| | | if (completion != null) |
| | | completion(DesiredSize()); |
| | | throw new NotImplementedException(); |
| | | } |
| | | |
| | | CGSize DesiredSize() |
| | | { |
| | | return ExtensionContext.GetHostedViewMaximumAllowedSize(); |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | [Export("configureViewForParameters:ofInteraction:interactiveBehavior:context:completion:")] |
| | | public void ConfigureView( |
| | | NSSet<INParameter> parameters, |
| | | INInteraction interaction, |
| | | INUIInteractiveBehavior interactiveBehavior, |
| | | INUIHostedViewContext context, |
| | | INUIHostedViewControllingConfigureViewHandler completion) |
| | | { |
| | | |
| | | |
| | | |
| | | |
| | | HDLRunSceneIntentResponse rsp = interaction.IntentResponse as HDLRunSceneIntentResponse; |
| | | this.lblMsg.Text = rsp.SuccessMessage; |
| | | this.lblMsg.TextColor = UIColor.Black; |
| | | this.lblMsg.Frame = new CGRect(0, 0, DesiredSize().Width, 100); |
| | | CGSize size = new CGSize(DesiredSize().Width, 100); |
| | | |
| | | |
| | | if (completion != null) |
| | | completion(true, parameters, size); |
| | | |
| | | } |
| | | |
| | | |
| | | } |
| | | } |