internal void _doOpenUrlWith(string component, core core, bool open_in_new_tab = false, Action <LoaderResult> callback = null) { core.callComponent(component, this, (ResultModel _r) => { LoaderResult r = (LoaderResult)_r; if (callback != null) { callback(r); } if (r.success) { core.openUrl(r.url, open_in_new_tab); } } ); }
/// <summary> /// Will check the current status of a session. /// </summary> /// <param name="callback"></param> public void checkSession(Action <SessionResult> callback = null) { SessionResult sr = new SessionResult(); sr.session = session; Action <ResultModel> resultHandler = (ResultModel r) => { sr = (SessionResult)r; if (!r.success) { if (sr.error == null) { sr.error = new error { message = "Could not connect to Newgrounds.io server" } } ; if (sr.session == null) { sr.session = new session(); } } session = sr.session; if (callback != null) { callback(sr); } }; bool cooled = false; /* this makes sure we aren't spamming the newgrounds.io server (wich would get us blocked) */ if (first_check || stopwatch.ElapsedMilliseconds > 3000) { stopwatch.Reset(); stopwatch.Start(); cooled = true; first_check = false; } /* if we have an active session and our stopwatch has cooled down, reload the session from the server */ if (cooled && sr.getStatus() != SessionResult.SESSION_EXPIRED) { if (ngioPluginLoaded() && newgroundsioUserCancelledPrompt()) { SessionResult csr = new SessionResult(); csr.setIsLocal(true); session ns = new session(); ns.expired = true; ns.id = session.id; csr.session = ns; csr.success = false; csr.error.message = "User cancelled login"; if (callback != null) { callback(csr); } session = new session(); } else { _core.callComponent( "App.checkSession", null, resultHandler ); } } /* otherwise, just use the currently loaded session */ else { if (callback != null) { callback(sr); } } }