mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-15 18:45:23 -04:00
Add a skip ssl validation button.
This commit is contained in:
parent
28b076a798
commit
cf6d029805
@ -46,7 +46,7 @@ namespace Launcher2 {
|
||||
125, 50, (x, y) => game.SetScreen( new MainScreen( game ) ) );
|
||||
MakeLabelAt( "", titleFont, Anchor.Centre, Anchor.Centre, 0, 100 );
|
||||
MakeLabelAt( "Use classicube.net for skins", inputFont, Anchor.Centre, Anchor.Centre, 30, 130 );
|
||||
MakeBooleanAt( Anchor.Centre, Anchor.Centre, booleanFont,
|
||||
MakeBooleanAt( Anchor.Centre, Anchor.Centre, booleanFont, true,
|
||||
30, 30, -110, 130, UseClassicubeSkinsClick );
|
||||
}
|
||||
|
||||
|
@ -165,8 +165,8 @@ namespace Launcher2 {
|
||||
|
||||
protected void MakeLabelAt( string text, Font font, Anchor horAnchor, Anchor verAnchor, int x, int y ) {
|
||||
if( widgets[widgetIndex] != null ) {
|
||||
LauncherLabelWidget input = (LauncherLabelWidget)widgets[widgetIndex];
|
||||
input.DrawAt( drawer, text, font, horAnchor, verAnchor, x, y );
|
||||
LauncherLabelWidget label = (LauncherLabelWidget)widgets[widgetIndex];
|
||||
label.DrawAt( drawer, text, font, horAnchor, verAnchor, x, y );
|
||||
} else {
|
||||
LauncherLabelWidget widget = new LauncherLabelWidget( game, text );
|
||||
widget.DrawAt( drawer, text, font, horAnchor, verAnchor, x, y );
|
||||
@ -175,13 +175,14 @@ namespace Launcher2 {
|
||||
widgetIndex++;
|
||||
}
|
||||
|
||||
protected void MakeBooleanAt( Anchor horAnchor, Anchor verAnchor, Font font,
|
||||
protected void MakeBooleanAt( Anchor horAnchor, Anchor verAnchor, Font font, bool initValue,
|
||||
int width, int height, int x, int y, Action<int, int> onClick ) {
|
||||
if( widgets[widgetIndex] != null ) {
|
||||
LauncherBooleanWidget input = (LauncherBooleanWidget)widgets[widgetIndex];
|
||||
input.DrawAt( drawer, horAnchor, verAnchor, x, y );
|
||||
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[widgetIndex];
|
||||
widget.DrawAt( drawer, horAnchor, verAnchor, x, y );
|
||||
} else {
|
||||
LauncherBooleanWidget widget = new LauncherBooleanWidget( game, font, width, height );
|
||||
widget.Value = initValue;
|
||||
widget.DrawAt( drawer, horAnchor, verAnchor, x, y );
|
||||
widget.OnClick = onClick;
|
||||
widgets[widgetIndex] = widget;
|
||||
|
@ -9,6 +9,7 @@ namespace Launcher2 {
|
||||
|
||||
public sealed partial class MainScreen : LauncherInputScreen {
|
||||
|
||||
const int skipSSLIndex = 9;
|
||||
public override void Init() {
|
||||
base.Init();
|
||||
Resize();
|
||||
@ -82,6 +83,13 @@ namespace Launcher2 {
|
||||
}
|
||||
if( signingIn ) return;
|
||||
UpdateSignInInfo( Get( 0 ), Get( 1 ) );
|
||||
|
||||
LauncherBooleanWidget booleanWidget = widgets[skipSSLIndex] as LauncherBooleanWidget;
|
||||
if( booleanWidget != null && booleanWidget.Value ) {
|
||||
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
|
||||
} else {
|
||||
ServicePointManager.ServerCertificateValidationCallback = null;
|
||||
}
|
||||
|
||||
game.Session.LoginAsync( Get( 0 ), Get( 1 ) );
|
||||
game.MakeBackground();
|
||||
@ -108,6 +116,15 @@ namespace Launcher2 {
|
||||
Environment.NewLine + "Unable to resolve classicube.net" +
|
||||
Environment.NewLine + "you may not be connected to the internet.";
|
||||
SetStatus( text );
|
||||
} else if( ex.Status == WebExceptionStatus.TrustFailure ) {
|
||||
string text = "&eFailed to validate SSL certificate";
|
||||
SetStatus( text );
|
||||
using( drawer ) {
|
||||
drawer.SetBitmap( game.Framebuffer );
|
||||
widgetIndex = 9;
|
||||
MakeSSLSkipValidationBoolean();
|
||||
MakeSSLSkipValidationLabel();
|
||||
}
|
||||
} else {
|
||||
string text = "&eFailed to " + action + ":" +
|
||||
Environment.NewLine + ex.Status;
|
||||
@ -115,6 +132,29 @@ namespace Launcher2 {
|
||||
}
|
||||
}
|
||||
|
||||
void MakeSSLSkipValidationBoolean() {
|
||||
MakeBooleanAt( Anchor.Centre, Anchor.Centre, inputFont, true, 30, 30, 160, -40, SSLSkipValidationClick );
|
||||
}
|
||||
|
||||
void MakeSSLSkipValidationLabel() {
|
||||
MakeLabelAt( "Skip SSL check", inputFont, Anchor.Centre, Anchor.Centre, 250, -40 );
|
||||
}
|
||||
|
||||
void SSLSkipValidationClick( int mouseX, int mouseY ) {
|
||||
using( drawer ) {
|
||||
drawer.SetBitmap( game.Framebuffer );
|
||||
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[skipSSLIndex];
|
||||
SetBool( !widget.Value );
|
||||
}
|
||||
}
|
||||
|
||||
void SetBool( bool value ) {
|
||||
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[skipSSLIndex];
|
||||
widget.Value = value;
|
||||
widget.Redraw( game.Drawer );
|
||||
Dirty = true;
|
||||
}
|
||||
|
||||
void StoreFields() {
|
||||
Dictionary<string, object> metadata;
|
||||
if( !game.ScreenMetadata.TryGetValue( "screen-CC", out metadata ) ) {
|
||||
|
@ -10,7 +10,7 @@ namespace Launcher2 {
|
||||
public MainScreen( LauncherWindow game ) : base( game, true ) {
|
||||
buttonFont = new Font( "Arial", 16, FontStyle.Bold );
|
||||
enterIndex = 2;
|
||||
widgets = new LauncherWidget[11];
|
||||
widgets = new LauncherWidget[13];
|
||||
LoadResumeInfo();
|
||||
}
|
||||
|
||||
@ -44,8 +44,12 @@ namespace Launcher2 {
|
||||
MakeButtonAt( "Update check", 160, buttonHeight, buttonFont,
|
||||
Anchor.BottomOrRight, Anchor.BottomOrRight, -10, -10,
|
||||
(x, y) => game.SetScreen( new UpdatesScreen( game ) ) );
|
||||
if( widgets[widgetIndex] != null ) {
|
||||
MakeSSLSkipValidationBoolean();
|
||||
MakeSSLSkipValidationLabel();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const int buttonWidth = 220, buttonHeight = 35, sideButtonWidth = 150;
|
||||
string resumeUser, resumeIp, resumePort, resumeMppass;
|
||||
bool resumeCCSkins, resumeValid;
|
||||
|
@ -28,7 +28,7 @@ namespace Launcher2 {
|
||||
DrawTextArgs args = new DrawTextArgs( "X", font, false );
|
||||
Size size = drawer.MeasureSize( ref args );
|
||||
args.SkipPartsCheck = true;
|
||||
drawer.DrawText( ref args, X + (Width - size.Width) / 2,
|
||||
drawer.DrawText( ref args, X + (Width + 2 - size.Width) / 2, // account for border
|
||||
Y + (Height - size.Height) / 2 );
|
||||
}
|
||||
drawer.DrawRectBounds( FastColour.White, 2, X, Y, Width, Height );
|
||||
|
Loading…
x
Reference in New Issue
Block a user