mirror of
https://github.com/FunkinCrew/Funkin.git
synced 2024-11-30 03:25:47 -05:00
105 lines
2.2 KiB
Haxe
105 lines
2.2 KiB
Haxe
|
package funkin.api.newgrounds;
|
||
|
|
||
|
#if newgrounds
|
||
|
import funkin.NGio;
|
||
|
import funkin.ui.Prompt;
|
||
|
|
||
|
class NgPrompt extends Prompt
|
||
|
{
|
||
|
public function new(text:String, style:ButtonStyle = Yes_No)
|
||
|
{
|
||
|
super(text, style);
|
||
|
}
|
||
|
|
||
|
static public function showLogin()
|
||
|
{
|
||
|
return showLoginPrompt(true);
|
||
|
}
|
||
|
|
||
|
static public function showSavedSessionFailed()
|
||
|
{
|
||
|
return showLoginPrompt(false);
|
||
|
}
|
||
|
|
||
|
static function showLoginPrompt(fromUi:Bool)
|
||
|
{
|
||
|
var prompt = new NgPrompt("Talking to server...", None);
|
||
|
prompt.openCallback = NGUtil.login.bind(function popupLauncher(openPassportUrl)
|
||
|
{
|
||
|
var choiceMsg = fromUi ? #if web "Log in to Newgrounds?" #else null #end // User-input needed to allow popups
|
||
|
: "Your session has expired.\n Please login again.";
|
||
|
|
||
|
if (choiceMsg != null)
|
||
|
{
|
||
|
prompt.setText(choiceMsg);
|
||
|
prompt.setButtons(Yes_No);
|
||
|
#if web
|
||
|
prompt.buttons.getItem("yes").fireInstantly = true;
|
||
|
#end
|
||
|
prompt.onYes = function()
|
||
|
{
|
||
|
prompt.setText("Connecting..." #if web + "\n(check your popup blocker)" #end);
|
||
|
prompt.setButtons(None);
|
||
|
openPassportUrl();
|
||
|
};
|
||
|
prompt.onNo = function()
|
||
|
{
|
||
|
prompt.close();
|
||
|
prompt = null;
|
||
|
NGio.cancelLogin();
|
||
|
};
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
prompt.setText("Connecting...");
|
||
|
openPassportUrl();
|
||
|
}
|
||
|
}, function onLoginComplete(result:ConnectionResult)
|
||
|
{
|
||
|
switch (result)
|
||
|
{
|
||
|
case Success:
|
||
|
{
|
||
|
prompt.setText("Login Successful");
|
||
|
prompt.setButtons(Ok);
|
||
|
prompt.onYes = prompt.close;
|
||
|
}
|
||
|
case Fail(msg):
|
||
|
{
|
||
|
trace("Login Error:" + msg);
|
||
|
prompt.setText("Login failed");
|
||
|
prompt.setButtons(Ok);
|
||
|
prompt.onYes = prompt.close;
|
||
|
}
|
||
|
case Cancelled:
|
||
|
{
|
||
|
if (prompt != null)
|
||
|
{
|
||
|
prompt.setText("Login cancelled by user");
|
||
|
prompt.setButtons(Ok);
|
||
|
prompt.onYes = prompt.close;
|
||
|
}
|
||
|
else
|
||
|
trace("Login cancelled via prompt");
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
return prompt;
|
||
|
}
|
||
|
|
||
|
static public function showLogout()
|
||
|
{
|
||
|
var user = io.newgrounds.NG.core.user.name;
|
||
|
var prompt = new NgPrompt('Log out of $user?', Yes_No);
|
||
|
prompt.onYes = function()
|
||
|
{
|
||
|
NGio.logout();
|
||
|
prompt.close();
|
||
|
};
|
||
|
prompt.onNo = prompt.close;
|
||
|
return prompt;
|
||
|
}
|
||
|
}
|
||
|
#end
|