quality: convert getter property to method so that sensible information can be hidden via an argument

This commit is contained in:
tsrk 2023-02-06 21:30:55 +00:00
parent 1baaae35a9
commit da10166628
No known key found for this signature in database
GPG Key ID: EBD46BB3049B56D6
3 changed files with 13 additions and 19 deletions

View File

@ -98,7 +98,7 @@ private void updateStatus()
if (status.Value is UserStatusOnline && activity.Value != null) if (status.Value is UserStatusOnline && activity.Value != null)
{ {
presence.State = truncate(privacyMode.Value == DiscordRichPresenceMode.Limited ? activity.Value.LimitedStatus : activity.Value.Status); presence.State = truncate(activity.Value.GetStatus(privacyMode.Value == DiscordRichPresenceMode.Limited));
presence.Details = truncate(getDetails(activity.Value)); presence.Details = truncate(getDetails(activity.Value));
if (getBeatmap(activity.Value) is IBeatmapInfo beatmap && beatmap.OnlineID > 0) if (getBeatmap(activity.Value) is IBeatmapInfo beatmap && beatmap.OnlineID > 0)

View File

@ -106,7 +106,7 @@ private void displayStatus(UserStatus status, UserActivity activity = null)
// Set status message based on activity (if we have one) and status is not offline // Set status message based on activity (if we have one) and status is not offline
if (activity != null && !(status is UserStatusOffline)) if (activity != null && !(status is UserStatusOffline))
{ {
statusMessage.Text = activity.Status; statusMessage.Text = activity.GetStatus();
statusIcon.FadeColour(activity.GetAppropriateColour(Colours), 500, Easing.OutQuint); statusIcon.FadeColour(activity.GetAppropriateColour(Colours), 500, Easing.OutQuint);
return; return;
} }

View File

@ -4,7 +4,6 @@
#nullable disable #nullable disable
using osu.Game.Beatmaps; using osu.Game.Beatmaps;
using osu.Game.Configuration;
using osu.Game.Graphics; using osu.Game.Graphics;
using osu.Game.Online.Rooms; using osu.Game.Online.Rooms;
using osu.Game.Rulesets; using osu.Game.Rulesets;
@ -15,24 +14,19 @@ namespace osu.Game.Users
{ {
public abstract class UserActivity public abstract class UserActivity
{ {
public abstract string Status { get; } public abstract string GetStatus(bool hideIdentifiableInformation = false);
/// <summary>
/// This property is used when the <see cref="DiscordRichPresenceMode"/> is <see cref="DiscordRichPresenceMode.Limited"/>
/// </summary>
public virtual string LimitedStatus => Status;
public virtual Color4 GetAppropriateColour(OsuColour colours) => colours.GreenDarker; public virtual Color4 GetAppropriateColour(OsuColour colours) => colours.GreenDarker;
public class Modding : UserActivity public class Modding : UserActivity
{ {
public override string Status => "Modding a map"; public override string GetStatus(bool hideIdentifiableInformation = false) => "Modding a map";
public override Color4 GetAppropriateColour(OsuColour colours) => colours.PurpleDark; public override Color4 GetAppropriateColour(OsuColour colours) => colours.PurpleDark;
} }
public class ChoosingBeatmap : UserActivity public class ChoosingBeatmap : UserActivity
{ {
public override string Status => "Choosing a beatmap"; public override string GetStatus(bool hideIdentifiableInformation = false) => "Choosing a beatmap";
} }
public abstract class InGame : UserActivity public abstract class InGame : UserActivity
@ -47,7 +41,7 @@ protected InGame(IBeatmapInfo beatmapInfo, IRulesetInfo ruleset)
Ruleset = ruleset; Ruleset = ruleset;
} }
public override string Status => Ruleset.CreateInstance().PlayingVerb; public override string GetStatus(bool hideIdentifiableInformation = false) => Ruleset.CreateInstance().PlayingVerb;
} }
public class InMultiplayerGame : InGame public class InMultiplayerGame : InGame
@ -57,7 +51,7 @@ public InMultiplayerGame(IBeatmapInfo beatmapInfo, IRulesetInfo ruleset)
{ {
} }
public override string Status => $@"{base.Status} with others"; public override string GetStatus(bool hideIdentifiableInformation = false) => $@"{base.GetStatus(hideIdentifiableInformation)} with others";
} }
public class SpectatingMultiplayerGame : InGame public class SpectatingMultiplayerGame : InGame
@ -67,7 +61,7 @@ public SpectatingMultiplayerGame(IBeatmapInfo beatmapInfo, IRulesetInfo ruleset)
{ {
} }
public override string Status => $"Watching others {base.Status.ToLowerInvariant()}"; public override string GetStatus(bool hideIdentifiableInformation = false) => $"Watching others {base.GetStatus(hideIdentifiableInformation).ToLowerInvariant()}";
} }
public class InPlaylistGame : InGame public class InPlaylistGame : InGame
@ -95,7 +89,7 @@ public Editing(IBeatmapInfo info)
BeatmapInfo = info; BeatmapInfo = info;
} }
public override string Status => @"Editing a beatmap"; public override string GetStatus(bool hideIdentifiableInformation = false) => @"Editing a beatmap";
} }
public class Watching : UserActivity public class Watching : UserActivity
@ -111,12 +105,12 @@ public Watching(ScoreInfo score)
this.score = score; this.score = score;
} }
public override string Status => $@"Watching {Username}"; public override string GetStatus(bool hideIdentifiableInformation = false) => hideIdentifiableInformation ? @"Watching a game" : $@"Watching {Username}";
} }
public class Spectating : Watching public class Spectating : Watching
{ {
public override string Status => $@"Spectating {Username}"; public override string GetStatus(bool hideIdentifiableInformation = false) => hideIdentifiableInformation ? @"Spectating a game" : $@"Spectating {Username}";
public Spectating(ScoreInfo score) public Spectating(ScoreInfo score)
: base(score) : base(score)
@ -126,12 +120,12 @@ public Spectating(ScoreInfo score)
public class SearchingForLobby : UserActivity public class SearchingForLobby : UserActivity
{ {
public override string Status => @"Looking for a lobby"; public override string GetStatus(bool hideIdentifiableInformation = false) => @"Looking for a lobby";
} }
public class InLobby : UserActivity public class InLobby : UserActivity
{ {
public override string Status => @"In a lobby"; public override string GetStatus(bool hideIdentifiableInformation = false) => @"In a lobby";
public readonly Room Room; public readonly Room Room;