A game about forced loneliness, made by TACStudios
1using System; 2 3using UnityEngine; 4using UnityEngine.UIElements; 5 6using Codice.Client.Common; 7using Codice.Client.Common.Authentication; 8using Codice.Client.Common.WebApi; 9using Codice.CM.Common; 10using PlasticGui; 11using Unity.PlasticSCM.Editor.UI; 12using Unity.PlasticSCM.Editor.UI.UIElements; 13using PlasticGui.Configuration.CloudEdition.Welcome; 14 15namespace Unity.PlasticSCM.Editor.Configuration.CloudEdition.Welcome 16{ 17 internal class SignInPanel : VisualElement 18 { 19 internal SignInPanel( 20 CloudEditionWelcomeWindow parentWindow, IPlasticWebRestApi restApi) 21 { 22 mParentWindow = parentWindow; 23 mRestApi = restApi; 24 25 InitializeLayoutAndStyles(); 26 27 BuildComponents(); 28 } 29 30 internal void Dispose() 31 { 32 mSignInWithUnityIdButton.clicked -= SignInWithUnityIdButton_Clicked; 33 mSignInWithEmailButton.clicked -= SignInWithEmailButton_Clicked; 34 mPrivacyPolicyStatementButton.clicked -= PrivacyPolicyStatementButton_Clicked; 35 mSignUpButton.clicked -= SignUpButton_Clicked; 36 37 if (mSignInWithEmailPanel != null) 38 mSignInWithEmailPanel.Dispose(); 39 40 if (mWaitingSignInPanel != null) 41 mWaitingSignInPanel.Dispose(); 42 } 43 44 void SignInWithEmailButton_Clicked() 45 { 46 mSignInWithEmailPanel = new SignInWithEmailPanel(mParentWindow, mRestApi); 47 48 mParentWindow.ReplaceRootPanel(mSignInWithEmailPanel); 49 } 50 51 void SignUpButton_Clicked() 52 { 53 Application.OpenURL(UnityUrl.DevOps.GetSignUp()); 54 } 55 56 internal void SignInWithUnityIdButton_Clicked() 57 { 58 mWaitingSignInPanel = new WaitingSignInPanel( 59 mParentWindow, mParentWindow, mRestApi); 60 61 mParentWindow.ReplaceRootPanel(mWaitingSignInPanel); 62 63 Guid state = Guid.NewGuid(); 64 65 mWaitingSignInPanel.OAuthSignIn( 66 GetAuthProviders.GetUnityIdAuthProvider(string.Empty, state), 67 GetCredentialsFromState.Build( 68 string.Empty, state, SEIDWorkingMode.SSOWorkingMode, mRestApi)); 69 } 70 71 internal void SignInWithUnityIdButtonAutoLogin() 72 { 73 mWaitingSignInPanel = new WaitingSignInPanel( 74 mParentWindow, mParentWindow, mRestApi); 75 76 mWaitingSignInPanel.OnAutoLogin(); 77 78 mParentWindow.ReplaceRootPanel(mWaitingSignInPanel); 79 } 80 81 void PrivacyPolicyStatementButton_Clicked() 82 { 83 Application.OpenURL(UnityUrl.DevOps.GetPrivacyPolicy()); 84 } 85 86 void BuildComponents() 87 { 88 BuildSignUpArea(); 89 BuildSignInUnityIdArea(); 90 BuildSignInEmailArea(); 91 BuildPrivatePolicyArea(); 92 } 93 94 void BuildPrivatePolicyArea() 95 { 96 this.SetControlText<Label>( 97 "privacyStatementText", 98 PlasticLocalization.Name.PrivacyStatementText, 99 PlasticLocalization.GetString(PlasticLocalization.Name.PrivacyStatement)); 100 101 mPrivacyPolicyStatementButton = this.Query<Button>("privacyStatement"); 102 mPrivacyPolicyStatementButton.text = PlasticLocalization.Name.PrivacyStatement.GetString(); 103 mPrivacyPolicyStatementButton.clicked += PrivacyPolicyStatementButton_Clicked; 104 } 105 106 void BuildSignInEmailArea() 107 { 108 this.SetControlImage( 109 "iconEmail", 110 Images.Name.ButtonSsoSignInEmail); 111 112 mSignInWithEmailButton = this.Query<Button>("emailButton"); 113 mSignInWithEmailButton.text = PlasticLocalization.Name.SignInWithEmail.GetString(); 114 mSignInWithEmailButton.clicked += SignInWithEmailButton_Clicked; 115 } 116 117 void BuildSignInUnityIdArea() 118 { 119 this.SetControlImage( 120 "iconUnity", 121 Images.Name.ButtonSsoSignInUnity); 122 123 mSignInWithUnityIdButton = this.Query<Button>("unityIDButton"); 124 mSignInWithUnityIdButton.text = PlasticLocalization.Name.SignInWithUnityID.GetString(); 125 mSignInWithUnityIdButton.clicked += SignInWithUnityIdButton_Clicked; 126 } 127 128 void BuildSignUpArea() 129 { 130 Label signUpLabel = this.Query<Label>("signUpLabel"); 131 signUpLabel.text = PlasticLocalization.Name.LoginOrSignUp.GetString(); 132 133 mSignUpButton = this.Query<Button>("signUpButton"); 134 mSignUpButton.text = PlasticLocalization.Name.SignUpButton.GetString(); 135 mSignUpButton.clicked += SignUpButton_Clicked; 136 } 137 138 void InitializeLayoutAndStyles() 139 { 140 AddToClassList("grow"); 141 142 this.LoadLayout(typeof(SignInPanel).Name); 143 this.LoadStyle(typeof(SignInPanel).Name); 144 } 145 146 SignInWithEmailPanel mSignInWithEmailPanel; 147 WaitingSignInPanel mWaitingSignInPanel; 148 Button mSignInWithUnityIdButton; 149 Button mSignInWithEmailButton; 150 Button mPrivacyPolicyStatementButton; 151 Button mSignUpButton; 152 153 readonly CloudEditionWelcomeWindow mParentWindow; 154 readonly IPlasticWebRestApi mRestApi; 155 } 156}