From 437b565f8ebeaeafe75046a11355559551e2bd80 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Thu, 2 Jun 2016 20:35:54 -0400 Subject: [PATCH] navbar for extension. Added splash image as well --- src/iOS.Extension/ActionViewController.cs | 47 ++++++++++++++++------ src/iOS.Extension/Resources/Icon.png | Bin 0 -> 2053 bytes src/iOS.Extension/Resources/Icon@2x.png | Bin 0 -> 6499 bytes src/iOS.Extension/Resources/Icon@3x.png | Bin 0 -> 15925 bytes src/iOS.Extension/iOS.Extension.csproj | 3 ++ 5 files changed, 38 insertions(+), 12 deletions(-) create mode 100644 src/iOS.Extension/Resources/Icon.png create mode 100644 src/iOS.Extension/Resources/Icon@2x.png create mode 100644 src/iOS.Extension/Resources/Icon@3x.png diff --git a/src/iOS.Extension/ActionViewController.cs b/src/iOS.Extension/ActionViewController.cs index 8ab034816..65f47eb6d 100644 --- a/src/iOS.Extension/ActionViewController.cs +++ b/src/iOS.Extension/ActionViewController.cs @@ -48,12 +48,10 @@ namespace Bit.iOS.Extension private const string UTTypeAppExtensionFillWebViewAction = "org.appextension.fill-webview-action"; private const string UTTypeAppExtensionFillBrowserAction = "org.appextension.fill-browser-action"; + private UIImageView _splashImageView; + public ActionViewController() : base("ActionViewController", null) { - if(!Resolver.IsSet) - { - SetIoc(); - } } public string ProviderType { get; set; } @@ -98,6 +96,25 @@ namespace Bit.iOS.Extension public override void LoadView() { + View = new UIView(UIScreen.MainScreen.Bounds) + { + BackgroundColor = new UIColor(0.93f, 0.94f, 0.96f, 1.0f), + }; + + _splashImageView = new UIImageView(new UIImage("Icon.png")); + + View.AddSubview(_splashImageView); + } + + public override void ViewDidAppear(bool animated) + { + base.ViewDidAppear(animated); + + if(!Resolver.IsSet) + { + SetIoc(); + } + foreach(var item in ExtensionContext.InputItems) { var processed = false; @@ -121,11 +138,22 @@ namespace Bit.iOS.Extension } } - View = new UIView(new CGRect(x: 0.0, y: 0, width: 320.0, height: 200.0)); - var button = new UIButton(new CGRect(x: 10.0, y: 50.0, width: 200.0, height: 30.0)); + var navBar = new UINavigationBar(new CGRect(0, 0, View.Frame.Size.Width, 44)) + { + BackgroundColor = new UIColor(0.24f, 0.55f, 0.74f, 1.0f), + TintColor = UIColor.White + }; + + var button = new UIButton(new CGRect(x: 10.0, y: 50.0, width: View.Frame.Size.Width - 100, height: 30.0)) + { + BackgroundColor = UIColor.Black, + TintColor = UIColor.White + }; button.SetTitle("Done", UIControlState.Normal); button.TouchUpInside += Button_TouchUpInside; - View.AddSubview(button); + + _splashImageView.RemoveFromSuperview(); + View.AddSubviews(navBar, button); } private void Button_TouchUpInside(object sender, EventArgs e) @@ -171,11 +199,6 @@ namespace Bit.iOS.Extension ExtensionContext.CompleteRequest(returningItems, null); } - public override void ViewDidLoad() - { - base.ViewDidLoad(); - } - private bool ProcessItemProvider(NSItemProvider itemProvider, string type, Action action) { if(!itemProvider.HasItemConformingTo(type)) diff --git a/src/iOS.Extension/Resources/Icon.png b/src/iOS.Extension/Resources/Icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cf5c4a422ab6a517c9d659771068c00aa231e5fa GIT binary patch literal 2053 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 JPDHLkV1fp#&r|>a literal 0 HcmV?d00001 diff --git a/src/iOS.Extension/Resources/Icon@3x.png b/src/iOS.Extension/Resources/Icon@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d41121e610a4b27c2cb51409e3bdaecf95e98f GIT binary patch literal 15925 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 Always + + +