示例#1
0
        private async void Mainbutton_Clicked(object sender, EventArgs e)
        {
            lock (syncLock)
            {
                if (isInCall)
                {
                    return;
                }
                isInCall = true;
            }

            try
            {
                var data        = Xamarin.Forms.Application.Current.Properties;
                var SenderName  = (sender as Xamarin.Forms.Button).ClassId;
                var loadingPage = new LoadingPopup();
                await Navigation.PushPopupAsync(loadingPage); //KYR EDW AMA KOLLAEI

                ContentPage contentPage = null;
                //switch (SenderName)
                //{
                //    case "Overview":
                //        break;
                //    case "Breakfast":
                //        break;
                //    case "Brunch":
                //        break;
                //    case "Lunch":
                //        break;
                //    case "Supper":
                //        break;
                //    case "Dinner":
                //        break;
                //    case "Extra":
                //        break;
                //    case "Settings":
                //        break;

                //}
                if (SenderName == "Overview")
                {
                    //string x = "Calories: " + data["todayscal"].ToString() + " Fat: " + data["todaysfat"].ToString() + " Prot: " + data["todaysprot"].ToString() + " Carb: " + data["todayscarb"].ToString();
                    //var datestoshow = Convert.ToInt32(data["datestoshow"]);
                    //if (datestoshow > 0)
                    //{
                    //    for (int i = 1; i <= datestoshow; i++)
                    //    {
                    //        x += UnixTimeStampToDateTime(Convert.ToDouble(data[i.ToString() + "datetoshow"].ToString()));
                    //        x += "\n";
                    //        x += "Calories: " + data[i.ToString() + "cal"].ToString() + " Fat: " + data[i.ToString() + "fat"].ToString() + " Prot: " + data[i.ToString() + "prot"].ToString() + " Carb: " + data[i.ToString() + "carb"].ToString();
                    //        x += "\n";
                    //    }
                    //}
                    //var alert = new PopupAlert(x);
                    //await Navigation.RemovePopupPageAsync(loadingPage);
                    //await Navigation.PushPopupAsync(alert);


                    var exists = data["goalset"].ToString();
                    if (exists != "true")
                    {
                        var alert = new PopupAlert("Set your goals in the settings menu first!");
                        await Navigation.PushPopupAsync(alert);

                        await Navigation.RemovePopupPageAsync(loadingPage);

                        return;
                    }

                    contentPage = new OverviewView();
                }
                else if (SenderName == "Settings")
                {
                    contentPage = new SettingsView();
                }
                else
                {
                    int.TryParse(SenderName, out int i);
                    contentPage = new MealView((FoodModel.TimeOfDayEmum)i);
                }

                string myinput = await OpenPageFromMain(this.Navigation, loadingPage, contentPage, SenderName);

                if (myinput == "ok")
                {
                }
            }
            finally
            {
                lock (syncLock)
                {
                    isInCall = false;
                }
            }
        }
        public void ShowPopup(PopupAlert popup)
        {
            Image popupImage = null;

            LastError = "";


            if (!string.IsNullOrEmpty(popup.AlertAudioFile) && _audioPlayer != null)
            {
                var audioFile = Path.Combine(Path.Combine(popup.SourcePath, "audio"), popup.AlertAudioFile);
                try
                {
                    _audioPlayer.PlayAudio(audioFile, popup.LoopAudio);
                }
                catch (Exception ex)
                {
                    LastError = "Unable to play audio file [" + audioFile + "': " + ex.Message;
                }
            }

            //if(popup.AlertImageFile!="" && File.Exists(popup.AlertImageFile))
            if (!string.IsNullOrEmpty(popup.AlertImageFile))
            {
                var imageFile = Path.Combine(Path.Combine(popup.SourcePath, "images"), popup.AlertImageFile);
                try
                {
                    popupImage = Image.FromFile(imageFile);
                }
                catch (Exception ex)
                {
                    LastError = "Unable to LOAD image file '" + imageFile + "' (" + ex.Message + ")";
                }
            }

            FontFamily fontFamily = new FontFamily("Arial");
            Font       font       = new Font(
                fontFamily,
                30,
                FontStyle.Regular,
                GraphicsUnit.Pixel);

            _popupNotifier = new PopupNotifier
            {
                ShowCloseButton   = popup.AllowClose,
                ShowOptionsButton = true,
                ShowGrip          = false,
                AnimationDuration = 100,
                Scroll            = false,
                ContentFont       = font,
                TitleFont         = font,
                TitleText         = popup.AlertTitle,
                ContentText       = popup.AlertContent,
                Size  = new Size(popup.PopupWidth, popup.PopupHeight),
                Delay = popup.PopupDuration,
                Image = popupImage
            };

            _popupNotifier.Disappear += new EventHandler(PopupClosed);
            _popupNotifier.Close     += new EventHandler(PopupClosed);

            _popupNotifier.Popup();
        }
示例#3
0
        public static Task <string> CustomAlert(INavigation navigation, string msg)
        {
            //apo edw kai katw gia na ginei to return
            var tcs  = new TaskCompletionSource <string>();
            var page = new PopupPage();


            var grid = new Grid
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Center
            };

            grid.RowDefinitions.Add(new RowDefinition {
                Height = GridLength.Auto
            });
            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = GridLength.Auto
            });
            grid.ColumnDefinitions.Add(new ColumnDefinition {
                Width = GridLength.Auto
            });


            var btnYes = new RadButton
            {
                Text            = "Yes",
                BackgroundColor = Color.FromRgb(0.8, 0.8, 0.8),
            };
            var btnNo = new RadButton
            {
                Text            = "No",
                BackgroundColor = Color.FromRgb(0.8, 0.8, 0.8),
            };


            grid.Children.Add(btnYes);
            grid.Children.Add(btnNo);
            Grid.SetRow(btnYes, 0);
            Grid.SetRow(btnNo, 0);
            Grid.SetColumn(btnYes, 0);
            Grid.SetColumn(btnNo, 1);

            var slButtons = new StackLayout
            {
                Children = { grid },
                //Children = { btnOk, btnCancel },
            };
            //apo edw kai panw gia na ginei to return



            //var layout = new StackLayout
            //{

            //    VerticalOptions = LayoutOptions.CenterAndExpand,
            //    HorizontalOptions = LayoutOptions.CenterAndExpand,
            //    Orientation = StackOrientation.Vertical,
            //    //Children = { lblTitle, lblMessage, carview, slButtons },
            //    Children = {  carview },

            //};

            // create and show page
            //var page = new ContentPage();
            //page.Content = layout;

            var carview = new PopupAlert(msg, false, true);

            var layout = new StackLayout
            {
                Children        = { carview.Content, slButtons },
                VerticalOptions = LayoutOptions.Center
            };

            page.Content = layout;
            navigation.PushPopupAsync(page);
            btnYes.Clicked += async(s, e) =>
            {
                // close page

                await navigation.RemovePopupPageAsync(page);

                tcs.SetResult("yes");
            };
            btnNo.Clicked += async(s, e) =>
            {
                // close page

                await navigation.RemovePopupPageAsync(page);

                tcs.SetResult("no");
            };
            // open keyboard
            //txtInput.Focus();

            // code is waiting her, until result is passed with tcs.SetResult() in btn-Clicked
            // then proc returns the result
            return(tcs.Task);
        }
        public void timerTick(object sender, EventArgs e)
        {
            try
            {
                _timer.Stop();

                var alertFilePath = Path.Combine(_scanPath, "alert.json");
                if (File.Exists(alertFilePath))
                {
                    var errorText = "";
                    if (File.Exists(alertFilePath + ".failed"))
                    {
                        File.Delete(alertFilePath + ".failed");
                    }
                    if (File.Exists(Path.Combine(_scanPath, "alert_error.txt")))
                    {
                        File.Delete(Path.Combine(_scanPath, "alert_error.txt"));
                    }
                    if (File.Exists(Path.Combine(_scanPath, "alert_warn.txt")))
                    {
                        File.Delete(Path.Combine(_scanPath, "alert_warn.txt"));
                    }


                    PopupAlert alert = null;
                    try
                    {
                        alert = JsonConvert.DeserializeObject <PopupAlert>(File.ReadAllText(alertFilePath));
                    }
                    catch (Exception ex)
                    {
                        errorText = "Unable to decode json file '" + alertFilePath + "': " + ex.Message;
                    }

                    if (alert != null)
                    {
                        alert.SourcePath = _scanPath;
                        try
                        {
                            _popupEngine.ShowPopup(alert);
                        }
                        catch (Exception ex)
                        {
                            errorText = "Runtime error in ShowPopup: '" + ex.ToString() + "'";
                        }
                    }
                    if (errorText != "") //alert failed
                    {
                        File.WriteAllText(Path.Combine(_scanPath, "alert_error.txt"), errorText);
                        try
                        {
                            File.Move(alertFilePath, alertFilePath + ".failed");
                        }
                        finally
                        {
                        }
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(_popupEngine.LastError))
                        {
                            File.WriteAllText(Path.Combine(_scanPath, "alert_warn.txt"), _popupEngine.LastError);
                        }
                    }
                    if (File.Exists(alertFilePath))
                    {
                        File.Delete(alertFilePath);
                    }
                }
            }
            finally
            {
                _timer.Start();
            }
        }