Detecting successful Google Play login on Libgdx screen
LibGdx Android Application
I am trying to login to Google Play from libgdx screen using actionResolver.loginGPGS () which is in Activity AndroidLauncher. The actual login process happens in Activity-AndroidLauncher and onSignInSucceeded () is called after successful login.
Question: I need to have some setup so that the new method on the Libgdx - StartScreen will be activated upon successful login to Google Play. I ask for advice.
StartScreen
public class StartScreen extends Screen implements InputProcessor,OnCompletionListener {
public StartScreen(ActionResolver actionResolver, String KEYSTATE) {
}
@Override
public void create() {
}
@Override
public void update() {
}
@Override
public void render(SpriteBatch sb) {
batch=sb;
sb.setProjectionMatrix(camera.combined);
sb.begin();
sb.draw(BACKGROUND,0,0,MainGame.SCREEN_WIDTH,MainGame.SCREEN_HEIGHT);
showButtons();
sb.end();
handleInput();
}
@Override
public void resize(int width, int height) {
camera.resize();
}
@Override
public void dispose() {
}
@Override
public void pause() {
gameMusic.pause();
System.out.println("StartScreen - pause");
}
@Override
public void resume() {
}
private void showButtons() {
}
private void handleInput() {
if(Gdx.input.isTouched()) {
Vector3 touchPosition = new Vector3(Gdx.input.getX(), Gdx.input.getY(), 0);
camera.unproject(touchPosition);
if(!exitButtonTouched){
// Exit Button
if(touchPosition.x >= xMargin && touchPosition.x <= xMargin + EXIT.getWidth() &&
touchPosition.y >= yMargin && touchPosition.y <= yMargin + EXIT.getHeight() ) {
actionResolver.loginGPGS();
}
}
}
}
AndroidLauncher
public class AndroidLauncher extends AndroidApplication implements GameHelperListener,ActionResolver {
@Override
public void loginGPGS() {
try {
runOnUiThread(new Runnable(){
public void run() {
gameHelper.beginUserInitiatedSignIn();
}
});
} catch (final Exception ex) {
}
}
@Override
public void onSignInFailed() {
System.out.println("- - - AndroidLauncher - - - onSignInFailed");
}
@Override
public void onSignInSucceeded() {
System.out.println("- - - AndroidLauncher - - - onSignInSucceeded");
}
}
ActionResolver
public interface ActionResolver {
public void showOrLoadInterstital();
public boolean getSignedInGPGS();
public void loginGPGS();
public void submitScoreGPGS(int score);
public void unlockAchievementGPGS(String achievementId);
public void getLeaderboardGPGS();
public void getAchievementsGPGS();
public void setFinish();
}
+3
source to share
1 answer
Save a pointer to your Libgdx game when you create it:
game = new Game(this);
initialize(game, config);
Then just call any of the game methods from onSignInSucceeded
@Override
public void onSignInSucceeded() {
System.out.println("- - - AndroidLauncher - - - onSignInSucceeded");
game.switchScreensOrWhatever();
}
}
Ask this method to activate everything you need to do in LibGdx
0
source to share