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() ), }, } }, }, }; }
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 ); } }
public static AlphaApp SetApp(AlphaApp app) { return(Instance.App = app); }