private async Task OnEmotionalStatusSelectedAnimations(EmotionalStatus selectedEmotionalStatus) { if (_moveSelectedStatusToTop) { var notSelected = _emotionalStatesIcons.Where(x => x.EmotionalStatus != selectedEmotionalStatus); var selected = _emotionalStatesIcons.First(x => x.EmotionalStatus == selectedEmotionalStatus); await Task.WhenAll ( notSelected.Select(x => x.Image.FadeTo(0, Configuration.AnimationSpeed, Easing.SinIn)) ); double imageY = _emotionalIconsLayout.Y + _mainLayoutMargin + ((selected.Image.Height + _emotionalIconsLayout.RowSpacing) * (int)selectedEmotionalStatus); int distanceToTop = -(int)Math.Ceiling(imageY - (130 + EmoticonOffset)); EmotionalIconSize = new Size(selected.Image.Width, selected.Image.Height); await Task.WhenAll ( _titleLayout.DisappearLeft(Configuration.AnimationSpeed), selected.Image.TranslateTo(0, distanceToTop, Configuration.AnimationSpeed, Easing.CubicInOut) ); } else { await Task.WhenAll ( _titleLayout.DisappearLeft(Configuration.AnimationSpeed), _emotionalIconsLayout.DisappearLeft(Configuration.AnimationSpeed) ); } }
public EndProcessSummaryPage(Configuration configuration, EmotionalStatus emotionalStatus, bool useSelectedColor = false) : base(configuration) { _emotionalStatus = emotionalStatus; MiddleHeightProportion = 0.5; // 350; EnableBackButton = false; EnableNextButton = false; this.useSelectedColor = useSelectedColor; }
private Image ConfigureEmotionalStatusButton(EmotionalStatus emotionalStatus, char set, Size?size = null) { Image imageButton = FormsHelper.ConfigureImageButton($"{ emotionalStatus.ToString().ToLower() }.png", (s, e) => { var t = OnEmotionalStatusSelected(emotionalStatus); }, size); imageButton.WidthRequest = 100; imageButton.HorizontalOptions = LayoutOptions.Center; imageButton.VerticalOptions = LayoutOptions.FillAndExpand; imageButton.Aspect = Aspect.AspectFit; return(imageButton); }
private async Task OnEmotionalStatusSelected(EmotionalStatus selectedEmotionalStatus) { //await OnEmotionalStatusSelectedAnimations(selectedEmotionalStatus).ContinueWith((t) => { Device.BeginInvokeOnMainThread(() => { EmotionalStatusSelected?.Invoke(selectedEmotionalStatus); }); }); foreach (EmotionalStateIcon esi in _emotionalStatesIcons) { esi.Image.IsEnabled = false; } await OnEmotionalStatusSelectedAnimations(selectedEmotionalStatus).ContinueWith((t) => { //await Task.Delay(1); Task.Run(() => Device.BeginInvokeOnMainThread(() => { EmotionalStatusSelected?.Invoke(selectedEmotionalStatus); })); //Device.BeginInvokeOnMainThread(() => { EmotionalStatusSelected?.Invoke(selectedEmotionalStatus); }); }); }
internal void EndProcess(EmotionalStatus emotionalStatus) { SaveEventData(new DistractionEventData() { EventType = DistractionEventType.SelectEndEmotionalStatus, Time = DateTime.UtcNow, UserId = _configuration.UserId, Data = emotionalStatus.ToString(), }); SaveEventData(new DistractionEventData() { EventType = DistractionEventType.EndSession, Time = DateTime.UtcNow, UserId = _configuration.UserId, }); EndProcessSummaryPage endProcessSummaryPage = new EndProcessSummaryPage(_configuration, emotionalStatus, true); endProcessSummaryPage.StartAgainPressed += () => { //StartProcess(); //ShowSelectFirstEmotionalStatusPage(); _configuration.FirstEmoticons = "true"; ShowSelectChallengeTypePage(null); }; endProcessSummaryPage.ExitPressed += () => { System.Diagnostics.Process.GetCurrentProcess().Kill(); }; endProcessSummaryPage.Initialize(); Device.BeginInvokeOnMainThread(() => { Xamarin.Forms.Application.Current.MainPage = endProcessSummaryPage; }); currentPage = null; }