mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-16 02:56:09 -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 ) ) );
|
125, 50, (x, y) => game.SetScreen( new MainScreen( game ) ) );
|
||||||
MakeLabelAt( "", titleFont, Anchor.Centre, Anchor.Centre, 0, 100 );
|
MakeLabelAt( "", titleFont, Anchor.Centre, Anchor.Centre, 0, 100 );
|
||||||
MakeLabelAt( "Use classicube.net for skins", inputFont, Anchor.Centre, Anchor.Centre, 30, 130 );
|
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 );
|
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 ) {
|
protected void MakeLabelAt( string text, Font font, Anchor horAnchor, Anchor verAnchor, int x, int y ) {
|
||||||
if( widgets[widgetIndex] != null ) {
|
if( widgets[widgetIndex] != null ) {
|
||||||
LauncherLabelWidget input = (LauncherLabelWidget)widgets[widgetIndex];
|
LauncherLabelWidget label = (LauncherLabelWidget)widgets[widgetIndex];
|
||||||
input.DrawAt( drawer, text, font, horAnchor, verAnchor, x, y );
|
label.DrawAt( drawer, text, font, horAnchor, verAnchor, x, y );
|
||||||
} else {
|
} else {
|
||||||
LauncherLabelWidget widget = new LauncherLabelWidget( game, text );
|
LauncherLabelWidget widget = new LauncherLabelWidget( game, text );
|
||||||
widget.DrawAt( drawer, text, font, horAnchor, verAnchor, x, y );
|
widget.DrawAt( drawer, text, font, horAnchor, verAnchor, x, y );
|
||||||
@ -175,13 +175,14 @@ namespace Launcher2 {
|
|||||||
widgetIndex++;
|
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 ) {
|
int width, int height, int x, int y, Action<int, int> onClick ) {
|
||||||
if( widgets[widgetIndex] != null ) {
|
if( widgets[widgetIndex] != null ) {
|
||||||
LauncherBooleanWidget input = (LauncherBooleanWidget)widgets[widgetIndex];
|
LauncherBooleanWidget widget = (LauncherBooleanWidget)widgets[widgetIndex];
|
||||||
input.DrawAt( drawer, horAnchor, verAnchor, x, y );
|
widget.DrawAt( drawer, horAnchor, verAnchor, x, y );
|
||||||
} else {
|
} else {
|
||||||
LauncherBooleanWidget widget = new LauncherBooleanWidget( game, font, width, height );
|
LauncherBooleanWidget widget = new LauncherBooleanWidget( game, font, width, height );
|
||||||
|
widget.Value = initValue;
|
||||||
widget.DrawAt( drawer, horAnchor, verAnchor, x, y );
|
widget.DrawAt( drawer, horAnchor, verAnchor, x, y );
|
||||||
widget.OnClick = onClick;
|
widget.OnClick = onClick;
|
||||||
widgets[widgetIndex] = widget;
|
widgets[widgetIndex] = widget;
|
||||||
|
@ -9,6 +9,7 @@ namespace Launcher2 {
|
|||||||
|
|
||||||
public sealed partial class MainScreen : LauncherInputScreen {
|
public sealed partial class MainScreen : LauncherInputScreen {
|
||||||
|
|
||||||
|
const int skipSSLIndex = 9;
|
||||||
public override void Init() {
|
public override void Init() {
|
||||||
base.Init();
|
base.Init();
|
||||||
Resize();
|
Resize();
|
||||||
@ -82,6 +83,13 @@ namespace Launcher2 {
|
|||||||
}
|
}
|
||||||
if( signingIn ) return;
|
if( signingIn ) return;
|
||||||
UpdateSignInInfo( Get( 0 ), Get( 1 ) );
|
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.Session.LoginAsync( Get( 0 ), Get( 1 ) );
|
||||||
game.MakeBackground();
|
game.MakeBackground();
|
||||||
@ -108,6 +116,15 @@ namespace Launcher2 {
|
|||||||
Environment.NewLine + "Unable to resolve classicube.net" +
|
Environment.NewLine + "Unable to resolve classicube.net" +
|
||||||
Environment.NewLine + "you may not be connected to the internet.";
|
Environment.NewLine + "you may not be connected to the internet.";
|
||||||
SetStatus( text );
|
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 {
|
} else {
|
||||||
string text = "&eFailed to " + action + ":" +
|
string text = "&eFailed to " + action + ":" +
|
||||||
Environment.NewLine + ex.Status;
|
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() {
|
void StoreFields() {
|
||||||
Dictionary<string, object> metadata;
|
Dictionary<string, object> metadata;
|
||||||
if( !game.ScreenMetadata.TryGetValue( "screen-CC", out metadata ) ) {
|
if( !game.ScreenMetadata.TryGetValue( "screen-CC", out metadata ) ) {
|
||||||
|
@ -10,7 +10,7 @@ namespace Launcher2 {
|
|||||||
public MainScreen( LauncherWindow game ) : base( game, true ) {
|
public MainScreen( LauncherWindow game ) : base( game, true ) {
|
||||||
buttonFont = new Font( "Arial", 16, FontStyle.Bold );
|
buttonFont = new Font( "Arial", 16, FontStyle.Bold );
|
||||||
enterIndex = 2;
|
enterIndex = 2;
|
||||||
widgets = new LauncherWidget[11];
|
widgets = new LauncherWidget[13];
|
||||||
LoadResumeInfo();
|
LoadResumeInfo();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -44,8 +44,12 @@ namespace Launcher2 {
|
|||||||
MakeButtonAt( "Update check", 160, buttonHeight, buttonFont,
|
MakeButtonAt( "Update check", 160, buttonHeight, buttonFont,
|
||||||
Anchor.BottomOrRight, Anchor.BottomOrRight, -10, -10,
|
Anchor.BottomOrRight, Anchor.BottomOrRight, -10, -10,
|
||||||
(x, y) => game.SetScreen( new UpdatesScreen( game ) ) );
|
(x, y) => game.SetScreen( new UpdatesScreen( game ) ) );
|
||||||
|
if( widgets[widgetIndex] != null ) {
|
||||||
|
MakeSSLSkipValidationBoolean();
|
||||||
|
MakeSSLSkipValidationLabel();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const int buttonWidth = 220, buttonHeight = 35, sideButtonWidth = 150;
|
const int buttonWidth = 220, buttonHeight = 35, sideButtonWidth = 150;
|
||||||
string resumeUser, resumeIp, resumePort, resumeMppass;
|
string resumeUser, resumeIp, resumePort, resumeMppass;
|
||||||
bool resumeCCSkins, resumeValid;
|
bool resumeCCSkins, resumeValid;
|
||||||
|
@ -28,7 +28,7 @@ namespace Launcher2 {
|
|||||||
DrawTextArgs args = new DrawTextArgs( "X", font, false );
|
DrawTextArgs args = new DrawTextArgs( "X", font, false );
|
||||||
Size size = drawer.MeasureSize( ref args );
|
Size size = drawer.MeasureSize( ref args );
|
||||||
args.SkipPartsCheck = true;
|
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 );
|
Y + (Height - size.Height) / 2 );
|
||||||
}
|
}
|
||||||
drawer.DrawRectBounds( FastColour.White, 2, X, Y, Width, Height );
|
drawer.DrawRectBounds( FastColour.White, 2, X, Y, Width, Height );
|
||||||
|
Loading…
x
Reference in New Issue
Block a user