protected override BrowserViewController CreateBrowserViewController()
        {
            var photos = new List<Photo>(_images.Count);
            foreach (var img in _images)
            {
                var photo = new Photo(UIImage.FromFile(img.Path)) { Icon = img.Icon };
                if (img.Icon)
                    photo.CornerRadius = 80f;
                if (img.Category != null)
                    photo.Caption = img.Category;
                photos.Add(photo);
            }

            return new LocalBrowserViewController(photos, _images);
        }
        private void LoadImages()
        {
            if (_state != State.Waiting)
                return;

            _state = State.Loading;
            var hud = new RedPlum.MBProgressHUD(View.Frame)
            {
                Mode = RedPlum.MBProgressHUDMode.Indeterminate,
                TitleText = "Loading...",
                TitleFont = UIFont.BoldSystemFontOfSize(14f)
            };

            this.View.AddSubview(hud);
            hud.Show(false);

            //Do the loading
            ThreadPool.QueueUserWorkItem(delegate {
                try
                {
                    _icons = RequestFactory.GetIcons();
                    _loadedImages = new List<Photo>();
                    _icons.ForEach(x => {
                        var photo = new Photo(new NSUrl(x.FullUrl)) { Caption = x.App, Icon = true, CornerRadius = 512f * (10f / 57f) };
                        _loadedImages.Add(photo);
                    });

                    BeginInvokeOnMainThread(() => {
                        _state = State.Loaded;
                        hud.Hide(true);
                        hud.RemoveFromSuperview();
                        CollectionView.ReloadData();
                    });
                }
                catch (Exception e)
                {
                    BeginInvokeOnMainThread(() =>  {
                        _state = State.Waiting;
                        hud.Hide(true);
                        hud.RemoveFromSuperview();
                        var alert = new UIAlertView {Message = e.Message, Title = "Error"};
                        alert.CancelButtonIndex = alert.AddButton("Ok");
                        alert.Show();
                    });
                }
            });
        }