示例#1
0
        void SetIsEnabledForCurrentPhotoButton(bool isEnabled, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                IsTakeLeftPhotoButtonEnabled = isEnabled;
                break;

            case PlayerNumberType.Player2:
                IsTakeRightPhotoButtonEnabled = isEnabled;
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#2
0
        void LogPhotoButtonTapped(PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                Insights.Track(InsightsConstants.PhotoButton1Tapped);
                break;

            case PlayerNumberType.Player2:
                Insights.Track(InsightsConstants.PhotoButton2Tapped);
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#3
0
        void RevealPhotoButton(PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                OnRevealScoreButton1WithAnimation();
                break;

            case PlayerNumberType.Player2:
                OnRevealScoreButton2WithAnimation();
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#4
0
        void SetPhotoResultsText(string results, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                _photo1Results = results;
                break;

            case PlayerNumberType.Player2:
                _photo2Results = results;
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#5
0
        void SetIsCalculatingPhotoScore(bool isCalculatingScore, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                IsCalculatingPhoto1Score = isCalculatingScore;
                break;

            case PlayerNumberType.Player2:
                IsCalculatingPhoto2Score = isCalculatingScore;
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#6
0
        void SetIsVisibleForCurrentPhotoStack(bool isVisible, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                IsTakeLeftPhotoButtonStackVisible = isVisible;
                break;

            case PlayerNumberType.Player2:
                IsTakeRightPhotoButtonStackVisible = isVisible;
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#7
0
        void SetIsEnabledForCurrentPlayerScoreButton(bool isEnabled, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                IsScore1ButtonEnabled = isEnabled;
                break;

            case PlayerNumberType.Player2:
                IsScore2ButtonEnabled = isEnabled;
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#8
0
        void SetScoreButtonText(string scoreButtonText, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                ScoreButton1Text = scoreButtonText;
                break;

            case PlayerNumberType.Player2:
                ScoreButton2Text = scoreButtonText;
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#9
0
        async Task WaitForRevealScoreButtonWithAnimationEventToBeSubscribed(PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                await WaitForEventToBeSubscribed(RevealScoreButton1WithAnimation);

                break;

            case PlayerNumberType.Player2:
                await WaitForEventToBeSubscribed(RevealScoreButton2WithAnimation);

                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#10
0
        async void HandleGenerateEmotionResultsStarted(object sender, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                await RevealView(_photoImage1);
                await RevealView(_scoreButton1);

                break;

            case PlayerNumberType.Player2:
                await RevealView(_photoImage2);
                await RevealView(_scoreButton2);

                break;

            default:
                throw new NotSupportedException();
            }
        }
示例#11
0
        async Task <MediaFile> GetMediaFileFromCamera(string directory, PlayerNumberType playerNumber)
        {
            await CrossMedia.Current.Initialize();

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                OnDisplayNoCameraAvailableAlert();
                return(null);
            }

            var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
            {
                PhotoSize           = PhotoSize.Small,
                Directory           = directory,
                Name                = playerNumber.ToString(),
                DefaultCamera       = CameraDevice.Front,
                OverlayViewProvider = DependencyService.Get <ICameraService>()?.GetCameraOverlay()
            });

            return(file);
        }
示例#12
0
        void SetPhotoImageSource(MediaFile imageMediaFile, PlayerNumberType playerNumber)
        {
            switch (playerNumber)
            {
            case PlayerNumberType.Player1:
                Photo1ImageSource = ImageSource.FromStream(() =>
                {
                    return(GetPhotoStream(imageMediaFile, false));
                });
                break;

            case PlayerNumberType.Player2:
                Photo2ImageSource = ImageSource.FromStream(() =>
                {
                    return(GetPhotoStream(imageMediaFile, false));
                });
                break;

            default:
                throw new Exception(_playerNumberNotImplentedExceptionText);
            }
        }
示例#13
0
        public static async Task <MediaFile> GetMediaFileFromCamera(string directory, PlayerNumberType playerNumber)
        {
            await CrossMedia.Current.Initialize().ConfigureAwait(false);

            var arePermissionsGranted = await ArePermissionsGranted().ConfigureAwait(false);

            if (!arePermissionsGranted)
            {
                OnPermissionsDenied();
                return(null);
            }

            if (!CrossMedia.Current.IsCameraAvailable || !CrossMedia.Current.IsTakePhotoSupported)
            {
                OnNoCameraDetected();
                return(null);
            }

            var mediaFileTCS = new TaskCompletionSource <MediaFile>();

            Device.BeginInvokeOnMainThread(async() =>
            {
                var file = await CrossMedia.Current.TakePhotoAsync(new StoreCameraMediaOptions
                {
                    PhotoSize           = PhotoSize.Small,
                    Directory           = directory,
                    Name                = playerNumber.ToString(),
                    DefaultCamera       = CameraDevice.Front,
                    OverlayViewProvider = DependencyService.Get <ICameraService>()?.GetCameraOverlay()
                });

                mediaFileTCS.SetResult(file);
            });

            return(await mediaFileTCS.Task);
        }
示例#14
0
 public PlayerModel(PlayerNumberType playerNumber, string playerName) =>
 (PlayerNumber, PlayerName) = (playerNumber, playerName);
示例#15
0
 void DisableButtons(PlayerNumberType playerNumber)
 {
     SetIsEnabledForButtons(false, playerNumber);
 }
示例#16
0
 void EnableButtons(PlayerNumberType playerNumber)
 {
     SetIsEnabledForButtons(true, playerNumber);
 }
示例#17
0
 void SetIsEnabledForButtons(bool isEnabled, PlayerNumberType playerNumber)
 {
     SetIsEnabledForOppositePhotoButton(isEnabled, playerNumber);
     SetIsEnabledForCurrentPlayerScoreButton(isEnabled, playerNumber);
 }
示例#18
0
 public PlayerModel(PlayerNumberType playerNumber, string playerName)
 {
     _playerNumber = playerNumber;
     _playerName   = playerName;
 }