public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options) { var tabController = Window.RootViewController as UINavigationController; if (AppSettings.User.IsAuthenticated) { var urlCollection = url.ToString().Replace("steepshot://", string.Empty); var nsFileManager = new NSFileManager(); var imageData = nsFileManager.Contents(urlCollection); var sharedPhoto = UIImage.LoadFromData(imageData); var inSampleSize = ImageHelper.CalculateInSampleSize(sharedPhoto.Size, Core.Constants.PhotoMaxSize, Core.Constants.PhotoMaxSize); var deviceRatio = UIScreen.MainScreen.Bounds.Width / UIScreen.MainScreen.Bounds.Height; var x = ((float)inSampleSize.Width - Core.Constants.PhotoMaxSize * (float)deviceRatio) / 2f; sharedPhoto = ImageHelper.CropImage(sharedPhoto, 0, 0, (float)inSampleSize.Width, (float)inSampleSize.Height, inSampleSize); var descriptionViewController = new DescriptionViewController(new List <Tuple <NSDictionary, UIImage> >() { new Tuple <NSDictionary, UIImage>(null, sharedPhoto) }, "jpg"); tabController.PushViewController(descriptionViewController, false); } else { tabController.PushViewController(new WelcomeViewController(), false); } return(true); }
public override bool OpenUrl(UIApplication app, NSUrl url, NSDictionary options) { var tabController = Window.RootViewController as UINavigationController; Task.Delay(500).ContinueWith(_ => InvokeOnMainThread(() => { if (BasePresenter.User.IsAuthenticated) { var urlCollection = url.ToString().Replace("steepshot://", string.Empty).Split('%'); var nsFileManager = new NSFileManager(); var imageData = nsFileManager.Contents(urlCollection[0]); var sharedPhoto = UIImage.LoadFromData(imageData); //TODO:KOA: Test System.IO.Path.GetExtension(urlCollection[0] expected something like .jpg / .gif etc. var descriptionViewController = new DescriptionViewController(sharedPhoto, System.IO.Path.GetExtension(urlCollection[0])); tabController.PushViewController(descriptionViewController, true); } else { var preLoginViewController = new PreLoginViewController(); tabController.PushViewController(preLoginViewController, true); } })); return(true); }