TASK 4 ship step 7: one-click go live + private-only enforcement (req 8) — the Go Live dialog is locked to Private (GoLiveViewModel.Visibility is a get-only string, no dropdown; settings' dead Default Visibility dropdown + Visibilities/DefaultStreamVisibility removed); YouTubeStreamService.CreateBroadcast always sends privacyStatus='private' and gained an injectable HttpClient? http = null seam; BeginGoLive fires CreateBroadcastAsync which stashes _currentBroadcastId for TASK 5's bind/transition (failure → StreamStatus.Error via AppLog, never a crash) alongside the frame pump, and StopStream clears it; the REC sign shows a dark-red PRIVATE badge next to REC whenever the live stream is private (IsLivePrivate) — the broadcast-insert integration test asserts the request body carries privacyStatus private (RecordingHandler seam) + a no-session guard test — 173 tests passing, 0 warnings
This commit is contained in:
@@ -9,12 +9,16 @@ public class GoLiveViewModel : ViewModelBase
|
||||
private readonly Func<Task<YouTubeChannel?>> _signInProvider;
|
||||
private string _streamTitle = string.Empty;
|
||||
private string _streamDescription = string.Empty;
|
||||
private string _visibility = "Public";
|
||||
private bool _isSignedIn;
|
||||
private string _accountDisplayName = string.Empty;
|
||||
private string _accountAvatarUrl = string.Empty;
|
||||
private bool _isBusy;
|
||||
|
||||
/// <summary>Streams always start Private (ship step 7 — private-only by
|
||||
/// enforcement); the creator can change visibility on YouTube after going
|
||||
/// live. No dropdown — no dead-end option.</summary>
|
||||
public string Visibility => "Private";
|
||||
|
||||
public GoLiveViewModel(Func<Task<YouTubeChannel?>> signInProvider, YouTubeChannel? account)
|
||||
{
|
||||
_signInProvider = signInProvider;
|
||||
@@ -39,14 +43,6 @@ public class GoLiveViewModel : ViewModelBase
|
||||
set => SetProperty(ref _streamDescription, value);
|
||||
}
|
||||
|
||||
public string Visibility
|
||||
{
|
||||
get => _visibility;
|
||||
set => SetProperty(ref _visibility, value);
|
||||
}
|
||||
|
||||
public string[] Visibilities { get; } = { "Public", "Unlisted", "Private" };
|
||||
|
||||
public bool IsSignedIn
|
||||
{
|
||||
get => _isSignedIn;
|
||||
|
||||
Reference in New Issue
Block a user