public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            storyboard   = UIStoryboard.FromName("Main", null);
            UserInitials = new UILabel()
            {
                TextAlignment = UITextAlignment.Center,
                Frame         = new CGRect(0, 0, UserPicture.Frame.Width, UserPicture.Frame.Height),
                TextColor     = UIColor.White,
                Font          = UIFont.FromDescriptor(UIFont.PreferredTitle1.FontDescriptor, 48f)
            };
            UserPicture.AddSubview(UserInitials);
            LogOutButton.TouchUpInside += async(x, y) =>
            {
                if (File.Exists(Constants.Images + Profile.Instance.UserId + ".jpg"))
                {
                    File.Delete(Constants.Images + Profile.Instance.UserId + ".jpg");
                }
                await RemoteService.LogOut();

                ProfileImage = null;
                ((ProfileViewController)(ParentViewController.ParentViewController)).PresentContainerView(0);
                RemoteService.NeededProfilePageNum = 0;
                UIApplication.SharedApplication.UnregisterForRemoteNotifications();
            };

            ChoosePicture.UserInteractionEnabled = true;
            UILongPressGestureRecognizer longp = new UILongPressGestureRecognizer(LongPress);

            ChoosePicture.AddGestureRecognizer(longp);
        }
Beispiel #2
0
        private async void SelectPicture()
        {
            SelectPictureResult pictureResult = null;

            if (UseChoosePicture)
            {
                var request = new ChoosePictureRequest {
                    MaxPixelDimension = 500
                };
                pictureResult = await ChoosePicture.ExecuteAsync(request);
            }
            else
            {
                var request = new TakePictureRequest {
                    MaxPixelDimension = 500, CameraOption = CameraOption.Back
                };
                pictureResult = await TakePicture.ExecuteAsync(request);
            }

            if (pictureResult.IsValid())
            {
                Model.Data.Mug = pictureResult.Image;
            }
            else
            {
                Message = pictureResult.Notification.ToString();
            }
        }
        public override async Task <RecognizePersonResult> ExecuteAsync(RecognizePersonContext request)
        {
            var retResult = new RecognizePersonResult();

            SelectPictureResult pictureResult = null;

            if (request.UseCamera)
            {
                var pictureRequest = new TakePictureRequest {
                    CameraOption = request.CameraOption, MaxPixelDimension = 500
                };
                pictureResult = await TakePicture.ExecuteAsync(pictureRequest);
            }
            else
            {
                var choosePictureRequest = new ChoosePictureRequest {
                    MaxPixelDimension = 500
                };
                pictureResult = await ChoosePicture.ExecuteAsync(choosePictureRequest);
            }

            retResult.Notification.AddRange(retResult.Notification);

            if (retResult.IsValid() && pictureResult.TaskResult == TaskResult.Success)
            {
                var faceContext = new RecognizeFaceContext {
                    FaceImage = pictureResult.Image, GroupId = Constants.GroupId
                };
                var recogResult = await RecognizeCommand.ExecuteAsync(faceContext);

                retResult.Notification.AddRange(recogResult.Notification);

                if (retResult.IsValid())
                {
                    var personResult = await PersonStore.FindPersonAsync(recogResult.Person.PersonId.ToString());

                    if (personResult == null)
                    {
                        UserData userData = null;
                        if (recogResult.Person.UserData != null)
                        {
                            userData = JsonConvert.DeserializeObject <UserData>(recogResult.Person.UserData);
                        }
                        Mutant newPerson = new Mutant
                        {
                            Name = recogResult.Person.Name,
                            Id   = recogResult.Person.PersonId.ToString(),
                            Data = userData
                        };
                        await PersonStore.AddPersonAsync(newPerson);

                        personResult = newPerson;
                    }

                    retResult.Person = personResult;
                }
            }

            return(retResult);
        }
Beispiel #4
0
        public override async Task <DetectPersonResult> ExecuteAsync(DetectPersonContext request)
        {
            var retResult = new DetectPersonResult();

            SelectPictureResult pictureResult;

            if (request.UseCamera)
            {
                var pictureRequest = new TakePictureRequest {
                    CameraOption = request.CameraOption, MaxPixelDimension = 500
                };
                pictureResult = await TakePicture.ExecuteAsync(pictureRequest);
            }
            else
            {
                var choosePictureRequest = new ChoosePictureRequest {
                    MaxPixelDimension = 500
                };
                pictureResult = await ChoosePicture.ExecuteAsync(choosePictureRequest);
            }

            retResult.Notification.AddRange(retResult.Notification);

            if (retResult.IsValid() && pictureResult.TaskResult == TaskResult.Success)
            {
                var faceContext = new DetectFaceContext
                {
                    FaceImage            = pictureResult.Image,
                    DetectFaceAttributes = request.DetectFaceAttributes,
                    DetectFaceId         = request.DetectFaceId,
                    DetectFaceLandmarks  = request.DetectFaceLandmarks
                };
                var recogResult = await DetectFace.ExecuteAsync(faceContext);

                retResult.Notification.AddRange(recogResult.Notification);

                if (retResult.IsValid())
                {
                    retResult.FaceData = recogResult.Face;
                }
            }

            return(retResult);
        }
Beispiel #5
0
        void ReleaseDesignerOutlets()
        {
            if (ChoosePicture != null)
            {
                ChoosePicture.Dispose();
                ChoosePicture = null;
            }

            if (CreateAlertForAll != null)
            {
                CreateAlertForAll.Dispose();
                CreateAlertForAll = null;
            }

            if (EmailLabel != null)
            {
                EmailLabel.Dispose();
                EmailLabel = null;
            }

            if (FullNameLabel != null)
            {
                FullNameLabel.Dispose();
                FullNameLabel = null;
            }

            if (LogOutButton != null)
            {
                LogOutButton.Dispose();
                LogOutButton = null;
            }

            if (StatusLabel != null)
            {
                StatusLabel.Dispose();
                StatusLabel = null;
            }

            if (UserPicture != null)
            {
                UserPicture.Dispose();
                UserPicture = null;
            }
        }
Beispiel #6
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            Title =
                new UILabel(new CGRect(60, 0, NavigationController.Toolbar.Frame.Width,
                                       NavigationController.Toolbar.Frame.Height))
            {
                TextColor       = Style.Header.TextColor,
                BackgroundColor = UIColor.Clear
            };

            GoBackButton = new UIButton(new CGRect(0, 0, 60, NavigationController.Toolbar.Frame.Height))
            {
                TintColor = Style.Header.TextColor,
                Hidden    = true
            };

            GoBackButton.TouchDown += OnClickGoBack;
            GoBackButton.SetImage(UIImage.FromBundle("back").ImageWithRenderingMode(UIImageRenderingMode.AlwaysTemplate), UIControlState.Normal);

            GalleryView = new UIView()
            {
                Hidden = true
            };

            ChoosePicture       = UIButton.FromType(UIButtonType.RoundedRect);
            ChoosePicture.Frame = new CGRect(0, 0, View.Frame.Width / 2, 40);

            ChoosePicture.TintColor       = Style.Header.TextColor;
            ChoosePicture.BackgroundColor = UIColor.LightGray;

            ChoosePicture.SetTitle(Translator.GetText("choose_picture"), UIControlState.Normal);

            ChoosePicture.TouchDown += OnClickChoosePicture;

            TakePicture       = UIButton.FromType(UIButtonType.RoundedRect);
            TakePicture.Frame = new CGRect(View.Frame.Width / 2, 0, View.Frame.Width / 2, 40);

            TakePicture.TintColor       = Style.Header.TextColor;
            TakePicture.BackgroundColor = UIColor.LightGray;

            TakePicture.SetTitle(Translator.GetText("take_picture"), UIControlState.Normal);

            TakePicture.TouchDown += OnClickTakePicture;

            GalleryView.AddSubviews(ChoosePicture, TakePicture);

            NavigationController.NavigationBar.AddSubviews(GoBackButton);

            NavigationController.NavigationBar.TintColor    = Style.Header.TextColor;
            NavigationController.NavigationBar.BarTintColor = Style.Header.BackgroundColor;

            NavigationController.NavigationBar.AddSubviews(Title);

            var scrollView = new UIScrollView(View.Frame)
            {
                ShowsHorizontalScrollIndicator = false,
                AutoresizingMask = UIViewAutoresizing.FlexibleHeight
            };

            WebView = new UIWebView
            {
                ScalesPageToFit = true
            };

            scrollView.AddSubviews(WebView, GalleryView);

            Add(scrollView);

            View.AddConstraints(
                scrollView.AtLeftOf(View),
                scrollView.AtTopOf(View),
                scrollView.WithSameWidth(View),
                scrollView.WithSameHeight(View),

                WebView.AtLeftOf(scrollView),
                WebView.AtTopOf(scrollView),
                WebView.WithSameWidth(scrollView),
                WebView.WithSameHeight(scrollView),

                GalleryView.AtLeftOf(scrollView),
                GalleryView.AtTopOf(scrollView),
                GalleryView.WithSameWidth(scrollView),
                GalleryView.WithSameHeight(scrollView),

                TakePicture.AtLeftOf(GalleryView),
                TakePicture.AtTopOf(GalleryView),

                ChoosePicture.AtRightOf(GalleryView),
                ChoosePicture.AtTopOf(GalleryView)
                );

            View.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
            scrollView.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();

            MenuClickEvent.AddListener(this);

            var menuItem = MenuViewModel.MenuItems.First();

            OnMenuItemClick(menuItem.menu_title, menuItem.url, 0);

            _spinner = new Spinner(View);

            WebView.Delegate = new WebViewDelegate(_spinner, this);
        }