From 10bc3917b531925a53c1bdadce68e8783f397aaf Mon Sep 17 00:00:00 2001 From: HoutarouOreki Date: Wed, 23 May 2018 11:17:13 +0200 Subject: [PATCH] Apply suggested changes --- osu.Game/Graphics/DrawableDate.cs | 72 +++++----------------- osu.Game/Overlays/Profile/ProfileHeader.cs | 4 +- 2 files changed, 16 insertions(+), 60 deletions(-) diff --git a/osu.Game/Graphics/DrawableDate.cs b/osu.Game/Graphics/DrawableDate.cs index c38deba007..ede5213772 100644 --- a/osu.Game/Graphics/DrawableDate.cs +++ b/osu.Game/Graphics/DrawableDate.cs @@ -13,61 +13,23 @@ namespace osu.Game.Graphics public class DrawableDate : OsuSpriteText, IHasTooltip { private readonly DateTimeOffset date; - private readonly String dateFormat; - private readonly String tooltipFormat; + private readonly string dateFormat; + private readonly string tooltipFormat; - public DrawableDate(DateTimeOffset date) + public DrawableDate(DateTimeOffset date, string dateFormat = null, string tooltipFormat = null) { AutoSizeAxes = Axes.Both; Font = "Exo2.0-RegularItalic"; this.date = date.ToLocalTime(); - // if date's format is not specified, set it to an empty string, - // so that later we will know to humanize it - dateFormat = ""; - // if tooltip's format is not specified, set it to an empty string - // so later we will know to default to a default time format - tooltipFormat = ""; - } - - public DrawableDate(string dateFormat, DateTimeOffset date) - { - AutoSizeAxes = Axes.Both; - Font = "Exo2.0-RegularItalic"; - - this.date = date.ToLocalTime(); - // set a date format for later from an argument + // The string to format the date text with. + // May be null if the humanized format should be used. this.dateFormat = dateFormat; - // if tooltip's format is not specified, set it to an empty string, - // so later we will know to default to a default time format - tooltipFormat = ""; - } - - public DrawableDate(DateTimeOffset date, string tooltipFormat) - { - AutoSizeAxes = Axes.Both; - Font = "Exo2.0-RegularItalic"; - - this.date = date.ToLocalTime(); - // if date's format is not specified, set it to an empty string, - // so that later we will know to humanize it - dateFormat = ""; - // set a tooltip format for later from an argument + // The string to format the tooltip text with. + // May be null if the default format should be used. this.tooltipFormat = tooltipFormat; } - - public DrawableDate(string dateFormat, DateTimeOffset date, string tooltipFormat) - { - AutoSizeAxes = Axes.Both; - Font = "Exo2.0-RegularItalic"; - - this.date = date.ToLocalTime(); - // set a date format for text generator from an argument - this.dateFormat = dateFormat; - // set a tooltip format for tooltip generator from an argument - this.tooltipFormat = tooltipFormat; - } - + [BackgroundDependencyLoader] private void load() { @@ -104,18 +66,12 @@ namespace osu.Game.Graphics public override bool HandleMouseInput => true; - // if date's format is specified - private void updateTime() => Text = dateFormat != "" ? - // format it as requested in a passed argument - String.Format(dateFormat, date) : - // otherwise, humanize it (for example: 2 hours ago) - date.Humanize(); + private void updateTime() => Text = string.IsNullOrEmpty(dateFormat) ? + date.Humanize() : + string.Format(dateFormat, date); - // if we know that the tooltip format exists - public string TooltipText => tooltipFormat != "" ? - // then we format the tooltip text using that format - String.Format(tooltipFormat, date) : - // but otherwise, simply convert the date to string - date.ToString(); + public string TooltipText => string.IsNullOrEmpty(tooltipFormat) ? + date.ToString() : + string.Format(tooltipFormat, date); } } diff --git a/osu.Game/Overlays/Profile/ProfileHeader.cs b/osu.Game/Overlays/Profile/ProfileHeader.cs index 1b7335bf81..dedfb294e2 100644 --- a/osu.Game/Overlays/Profile/ProfileHeader.cs +++ b/osu.Game/Overlays/Profile/ProfileHeader.cs @@ -364,12 +364,12 @@ namespace osu.Game.Overlays.Profile else { infoTextLeft.AddText("Joined ", lightText); - infoTextLeft.AddText(new DrawableDate("{0:MMMM yyyy}", user.JoinDate, "{0:d MMMM yyyy}"), boldItalic); + infoTextLeft.AddText(new DrawableDate(user.JoinDate, "{0:MMMM yyyy}", "{0:d MMMM yyyy}"), boldItalic); } infoTextLeft.NewLine(); infoTextLeft.AddText("Last seen ", lightText); - infoTextLeft.AddText(new DrawableDate(user.LastVisit, "{0:d MMMM yyyy H:mm \"UTC\"z}"), boldItalic); + infoTextLeft.AddText(new DrawableDate(user.LastVisit, null, "{0:d MMMM yyyy H:mm \"UTC\"z}"), boldItalic); infoTextLeft.NewParagraph(); if (user.PlayStyle?.Length > 0)