コード例 #1
0
        protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
        {
            base.OnActivityResult(requestCode, resultCode, data);
            if (requestCode == RequestCodeOpenDirectory && resultCode == Result.Ok)
            {
                bool successful;
                (successful, _files) = RequestFiles(Uri.Parse(Uri.Decode(data.DataString)));

                if (_files.Any())
                {
                    _currentFile  = _files.First();
                    _currentIndex = 0;
                    Image.SetImageURI(_currentFile.Uri);
                    ImageText.Text = $"{_currentFile.Name} ({_files.IndexOf(_currentFile) + 1}/{_files.Count})";
                }

                else
                {
                    _currentFile  = null;
                    _currentIndex = 0;
                    Image.SetImageURI(null);
                    ImageText.Text = successful
                        ? "Empty directory, load another."
                        : "An error occured retrieving files from this directory.";
                }

                UpdateSendVisibility();
            }
        }
コード例 #2
0
        private void MoveImage(ImageMove direction)
        {
            if (_files.Count > 0 && !_sending)
            {
                switch (direction)
                {
                case ImageMove.Next:
                    _currentIndex = Math.Min(_currentIndex + 1, _files.Count - 1);
                    break;

                case ImageMove.Previous:
                    _currentIndex = Math.Max(_currentIndex - 1, 0);
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(direction), direction, null);
                }
                _currentFile = _files[_currentIndex];
                Image.SetImageURI(_currentFile.Uri);
                ImageText.Text = $"{_currentFile.Name} ({_currentIndex + 1}/{_files.Count})";
            }
        }