package projects.nerdybuzz.catchdrop.droidapp; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; import projects.nerdybuzz.catchdrop.CDGame; import projects.nerdybuzz.catchdrop.droidapp.R; import projects.nerdybuzz.catchdrop.googleservices.IGoogleServices; import com.google.android.gms.games.Games; import com.google.example.games.basegameutils.*; import com.google.example.games.basegameutils.GameHelper.GameHelperListener; public class AndroidLauncher extends AndroidApplication implements IGoogleServices { private GameHelper _gameHelper; private final static int REQUEST_CODE_UNUSED = 9002; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); _gameHelper = new GameHelper(this, GameHelper.CLIENT_GAMES); _gameHelper.enableDebugLog(false); GameHelperListener gameHelperListener = new GameHelper.GameHelperListener() { @Override public void onSignInSucceeded() { } @Override public void onSignInFailed() { } }; _gameHelper.setup(gameHelperListener); AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); config.useAccelerometer = false; config.useCompass = false; initialize(new CDGame(this, "Touch", false), config); } @Override public void signIn() { try { runOnUiThread(new Runnable() { //@Override public void run() { _gameHelper.beginUserInitiatedSignIn(); } }); } catch (Exception e) { Gdx.app.log("AndroidLauncher", "Log in failed: " + e.getMessage() + "."); } } @Override public void signOut() { try { runOnUiThread(new Runnable() { //@Override public void run() { _gameHelper.signOut(); } }); } catch (Exception e) { Gdx.app.log("AndroidLauncher", "Log out failed: " + e.getMessage() + "."); } } @Override public void rateGame() { String str ="https://play.google.com/store/apps/details?id=projects.nerdybuzz.catchdrop.droidapp"; startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(str))); } @Override public void submitClassicScore(long score) { if (isSignedIn() == true) { Games.Leaderboards.submitScore(_gameHelper.getApiClient(), getString(R.string.chs_leaderboard_id), score); //startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.chs_leaderboard_id)), REQUEST_CODE_UNUSED); } else { // Maybe sign in here then redirect to submitting score? } } @Override public void submitZenScore(long score) { if (isSignedIn() == true) { Games.Leaderboards.submitScore(_gameHelper.getApiClient(), getString(R.string.zhs_leaderboard_id), score); //startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.zhs_leaderboard_id)), REQUEST_CODE_UNUSED); } else { // Maybe sign in here then redirect to submitting score? } } @Override public void unlockAchievement(String achievement_id) { Games.Achievements.unlock(_gameHelper.getApiClient(), achievement_id); } @Override public void showClassicScores() { if (isSignedIn() == true) startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.chs_leaderboard_id)), REQUEST_CODE_UNUSED); else { signIn(); if (isSignedIn() == true) startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.chs_leaderboard_id)), REQUEST_CODE_UNUSED); } } @Override public void showZenScores() { if (isSignedIn() == true) startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.zhs_leaderboard_id)), REQUEST_CODE_UNUSED); else { signIn(); if (isSignedIn() == true) startActivityForResult(Games.Leaderboards.getLeaderboardIntent(_gameHelper.getApiClient(), getString(R.string.zhs_leaderboard_id)), REQUEST_CODE_UNUSED); } } @Override public void showAchievements() { if (isSignedIn() == true) startActivityForResult(Games.Achievements.getAchievementsIntent(_gameHelper.getApiClient()), REQUEST_CODE_UNUSED); else { signIn(); } } @Override public boolean isSignedIn() { return _gameHelper.isSignedIn(); } @Override protected void onStart() { super.onStart(); _gameHelper.onStart(this); } @Override protected void onStop() { super.onStop(); _gameHelper.onStop(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); _gameHelper.onActivityResult(requestCode, resultCode, data); } }