Esempio n. 1
0
        public AlphaInfoPage()
        {
            AlphaApp Root = AlphaFactory.MakeSureApp();

            Languages.AlphaLanguage L = AlphaFactory.MakeSureLanguage();

            Title   = L["Information"];
            Content = new StackLayout
            {
                Children =
                {
                    new TableView
                    {
                        Root = new TableRoot
                        {
                            new TableSection(L["Version"])
                            {
                                AlphaFactory.MakeCircleImageCell
                                (
                                    ImageSource: Root.GetApplicationImageSource(),
                                    Text: "1.00.000",
                                    Command: new Command
                                    (
                                        o => Device.OpenUri
                                        (
                                            AlphaFactory.MakeSureDomain().GetApplicationStoreUri()
                                        )
                                    ),
                                    OptionImageSource: Root.GetExportImageSource()
                                ),
                            },
                            new TableSection(L["Auther"])
                            {
                                AlphaFactory.MakeCircleImageCell
                                (
                                    ImageSource: Root.GetWraithImageSource(),
                                    Text: "@wraith13",
                                    Command: new Command(o => Device.OpenUri(new Uri("https://twitter.com/wraith13"))),
                                    OptionImageSource: Root.GetExportImageSource()
                                ),
                            },
                            new TableSection(L["Github Repository"])
                            {
                                AlphaFactory.MakeCircleImageCell
                                (
                                    ImageSource: Root.GetGitHubImageSource(),
                                    Text: "wraith13/keep.grass",
                                    Command: new Command(o => Device.OpenUri(new Uri("https://github.com/wraith13/keep.grass"))),
                                    OptionImageSource: Root.GetExportImageSource()
                                ),
                            },
                        }
                    },
                },
            };
        }
Esempio n. 2
0
        public override void Build()
        {
            base.Build();
            Debug.WriteLine("AlphaMainPage.Rebuild();");

            AlphaApp Root = AlphaFactory.MakeSureApp();

            if (null == Friends || Settings.GetFriendCount() != Friends.Count())
            {
                Friends = Settings.GetFriendList().Select(i => AlphaFactory.MakeUserCircleGraph()).ToArray();
                for (var i = 0; i < Friends?.Count(); ++i)
                {
                    var Friend       = Settings.GetFriend(i);
                    var FriendCircle = Friends[i];
                    InitCircleGraph(FriendCircle, Friend);
                    FriendCircle.HorizontalOptions       = LayoutOptions.Center;
                    FriendCircle.VerticalOptions         = LayoutOptions.Center;
                    FriendCircle.IsVisibleLeftTimeBar    = false;
                    FriendCircle.IsVisibleSatelliteTexts = false;
                    FriendCircle.FontSize    *= 0.5f;
                    FriendCircle.CircleMargin = new Thickness(2.0);
                }
            }

            UpdateButton.Text = L["Update"];
            var SettingsButton = new Button
            {
                VerticalOptions   = LayoutOptions.Center,
                HorizontalOptions = LayoutOptions.FillAndExpand,
                Text    = L["Settings"],
                Command = new Command(o => Root.ShowSettingsPage()),
            };
            var ButtonFrame = new Grid()
            {
                VerticalOptions   = LayoutOptions.End,
                HorizontalOptions = LayoutOptions.CenterAndExpand,
            }
            .HorizontalJustificate
            (
                UpdateButton,
                SettingsButton
            );

            if (Width <= Height)
            {
                CircleGraph.WidthRequest  = Width;
                CircleGraph.HeightRequest = Math.Floor(Height * 0.10);
                foreach (var Friend in Friends)
                {
                    Friend.WidthRequest  = Math.Floor(Width / Math.Min(Math.Max(Friends.Count(), 2), 4));
                    Friend.HeightRequest = Friend.WidthRequest;
                }
                var StackContent = new StackLayout
                {
                    Spacing = 0.0,
                };
                StackContent.Children.Add(CircleGraph);
                BuildFriends(StackContent, StackOrientation.Horizontal);
                StackContent.Children.Add(ButtonFrame);
                Content = StackContent;
            }
            else
            {
                CircleGraph.WidthRequest  = Math.Floor(Width * 0.10);
                CircleGraph.HeightRequest = Math.Floor(Height * 0.60);
                foreach (var Friend in Friends)
                {
                    Friend.HeightRequest = Math.Floor(Height / Math.Min(Math.Max(Friends.Count(), 2), 4));
                    Friend.WidthRequest  = Friend.HeightRequest;
                }
                var StackContent = new StackLayout
                {
                    Orientation     = StackOrientation.Horizontal,
                    VerticalOptions = LayoutOptions.FillAndExpand,
                    Spacing         = 0.0,
                };
                StackContent.Children.Add(CircleGraph);
                BuildFriends(StackContent, StackOrientation.Vertical);
                Content = new StackLayout
                {
                    Spacing = 0.0,
                    //BackgroundColor = Color.White,
                    Children =
                    {
                        StackContent,
                        ButtonFrame,
                    },
                };
            }

            //  Indicator を表示中にレイアウトを変えてしまうと簡潔かつ正常に Indicator を再表示できないようなので、問答無用でテキストを表示してしまう。
            UpdateButton.ShowText();

            ApplyCircleGraph(i => i.IsInvalidCanvas = true);
            OnUpdateLastPublicActivity(Settings.UserName, Domain.GetLastPublicActivity(Settings.UserName));

            var SettingsButtonAnimation = "DefaultButtn";

            if (SettingsButton.AnimationIsRunning(SettingsButtonAnimation))
            {
                SettingsButton.AbortAnimation(SettingsButtonAnimation);
            }
            AlphaTheme.Apply(this);

            if (string.IsNullOrWhiteSpace(CircleGraph.User))
            {
                var Theme = AlphaTheme.Get();
                SettingsButton.Animate
                (
                    SettingsButtonAnimation,
                    d =>
                {
                    var Rate = Math.Abs(Math.Sin(d));
                    SettingsButton.TextColor       = ColorEx.MergeWithRate(Theme.AccentColor, Theme.BackgroundColor, Rate);
                    SettingsButton.BackgroundColor = ColorEx.MergeWithRate(Theme.BackgroundColor, Theme.AccentColor, Rate);
                },
                    0.0,
                    1000.0,
                    16,
                    (uint)2000000,
                    Easing.Linear
                );
            }
        }
Esempio n. 3
0
 public static AlphaApp SetApp(AlphaApp app)
 {
     return(Instance.App = app);
 }