wxr
2021-11-29 dd7e4794fd611de967c6322dd0bb7ffda41c2f7b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
using System;
 
using CoreGraphics;
using Foundation;
using HDLSceneSiri;
//using HDLSceneSiri;
using Intents;
using IntentsUI;
using UIKit;
 
namespace SiriIntentsUI
{
    public partial class IntentViewController : UIViewController, IINUIHostedViewControlling
    {
        protected IntentViewController(IntPtr handle) : base(handle)
        {
        }
 
        //public override void ViewDidLoad()
        //{
        //    base.ViewDidLoad();
 
        //    // Do any required interface  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)
        {
            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, 180);
            CGSize size = new CGSize(DesiredSize().Width, 180);
 
 
            if (completion != null)
                completion(true, parameters, size);
 
 
            //var intent = interaction.Intent as OrderSoupIntent;
            //if (intent is null)
            //{
            //    completion(false, new NSSet<INParameter>(), CGSize.Empty);
            //}
 
            //var order = Order.FromOrderSoupIntent(intent);
 
            //foreach (var view in View.Subviews)
            //{
            //    view.RemoveFromSuperview();
            //}
 
            //// Different UIs can be displayed depending if the intent is in the 
            //// confirmation phase or the handle phase.
            //var desiredSize = CGSize.Empty;
 
            //if (interaction.IntentHandlingStatus == INIntentHandlingStatus.Ready)
            //{
            //    desiredSize = DisplayInvoice(order, intent);
            //}
            //else if (interaction.IntentHandlingStatus == INIntentHandlingStatus.Success)
            //{
            //    var response = interaction.IntentResponse as OrderSoupIntentResponse;
            //    if (!(response is null))
            //    {
            //        desiredSize = DisplayOrderConfirmation(order, intent, response);
            //    }
            //}
 
            //completion(true, parameters, desiredSize);
        }
 
 
    }
}