diff --git a/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs b/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs index 1a127000..d5a5985c 100644 --- a/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs +++ b/PepperDashEssentials/UI/JoinConstants/UIBoolJoin.cs @@ -57,7 +57,10 @@ namespace PepperDash.Essentials /// 1008 /// public const uint MeetingLeavePress = 1008; - + /// + /// 1009 + /// + public const uint RecordingConsentVisible = 1009; @@ -987,5 +990,16 @@ namespace PepperDash.Essentials /// 15307 /// public const uint PasswordPromptErrorVisible = 15307; + + // Meeting Recording Consent Dialog + + /// + /// 15311 + /// + public const uint MeetingRecodingConsentAgree = 15311; + /// + /// 15312 + /// + public const uint MeetingRecodingConsentDisgree = 15312; } } \ No newline at end of file diff --git a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs index 40671238..092e1cb6 100644 --- a/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs +++ b/PepperDashEssentials/UIDrivers/VC/EssentialsVideoCodecUiDriver.cs @@ -215,10 +215,11 @@ namespace PepperDash.Essentials.UIDrivers.VC StartSearchBackspaceRepeat, StopSearchBackspaceRepeat, SearchKeypadBackspacePress); - if (Codec is IPasswordPrompt) - { - SetupPasswordPrompt(); - } + + SetupPasswordPrompt(); + + + SetupMeetingRecordingConsentPrompt(); // If the codec is ready, then get the values we want, otherwise wait @@ -1944,12 +1945,31 @@ namespace PepperDash.Essentials.UIDrivers.VC { var passwordPromptCodec = Codec as IPasswordPrompt; + if (passwordPromptCodec == null) return; + passwordPromptCodec.PasswordRequired += new EventHandler(passwordPromptCodec_PasswordRequired); TriList.SetSigFalseAction(UIBoolJoin.PasswordPromptCancelPress, HidePasswordPrompt); TriList.SetSigFalseAction(UIBoolJoin.PasswordPromptTextPress, RevealKeyboard); } + void SetupMeetingRecordingConsentPrompt() + { + var recordingCodec = Codec as IHasMeetingRecordingWithPrompt; + + if (recordingCodec == null) return; + + recordingCodec.RecordConsentPromptIsVisible.OutputChange += new EventHandler(RecordConsentPromptIsVisible_OutputChange); + + TriList.SetSigFalseAction(UIBoolJoin.MeetingRecodingConsentAgree, () => recordingCodec.RecordingPromptAcknowledgement(true)); + TriList.SetSigFalseAction(UIBoolJoin.MeetingRecodingConsentDisgree, () => recordingCodec.RecordingPromptAcknowledgement(false)); + } + + void RecordConsentPromptIsVisible_OutputChange(object sender, FeedbackEventArgs e) + { + TriList.SetBool(UIBoolJoin.RecordingConsentVisible, e.BoolValue); + } + void passwordPromptCodec_PasswordRequired(object sender, PasswordPromptEventArgs e) { if (e.LoginAttemptCancelled)