package com.tacoid.pweek;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import com.google.android.gms.games.multiplayer.realtime.Room;
import com.tacoid.pweek.ScoreManager.GameType;
public class GameServiceManager implements IGameService {
private GameHelper aHelper;
private Context context;
private Activity activity;
public GameServiceManager(GameHelper aHelper, Context context, Activity activity) {
this.aHelper = aHelper;
this.context = context;
this.activity = activity;
}
@Override
public void unlockAchievement(Achievement a) {
if (!Pweek.getInstance().getGameService().getSignedIn()) {
return;
}
if (a.incremental) {
switch (a) {
case FANBOY:
aHelper.getGamesClient().incrementAchievement(context.getString(R.string.ach_FANBOY), 1);
break;
default:
System.out.println("Achievement non implémenté.");
break;
}
} else {
switch (a) {
case AFK:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_AFK));
break;
case CHAIN:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_CHAIN));
break;
case DEAF:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_DEAF));
break;
case FIRST_COMBO:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_FIRST_COMBO));
break;
case FOREVER_ALONE:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_FOREVER_ALONE));
break;
case MASTERSTROKE:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_MASTERSTROKE));
break;
case MEGA_EXPLODE:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_MEGA_EXPLODE));
break;
case NINJA:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_NINJA));
break;
case OCD:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_OCD));
break;
case P10K:
aHelper.getGamesClient().unlockAchievement(context.getString(R.string.ach_P10K));
break;
default:
System.out.println("Achievement non implémenté.");
break;
}
}
}
@Override
public void login() {
aHelper.debugLog("=>LOGIN");
try {
activity.runOnUiThread(new Runnable(){
//@Override
public void run(){
aHelper.beginUserInitiatedSignIn();
}
});
}catch (final Exception ex){
}
}
@Override
public void logout() {
aHelper.debugLog("=>LOGOUT");
try {
activity.runOnUiThread(new Runnable(){
//@Override
public void run(){
aHelper.signOut();
}
});
}catch (final Exception ex){
}
}
@Override
public boolean getSignedIn() {
return aHelper.isSignedIn();
}
@Override
public void submitScore(GameType type, int score) {
if (!Pweek.getInstance().getGameService().getSignedIn()) {
return;
}
aHelper.debugLog("=>SUBMITSCORE");
switch(type) {
case SOLO:
aHelper.getGamesClient().submitScore(context.getString(R.string.solo_leaderboard), score);
break;
case CHRONO:
aHelper.getGamesClient().submitScore(context.getString(R.string.chrono_leaderboard), score);
break;
default:
aHelper.debugLog("Invalid game type leaderboard");
}
}
@Override
public void showLeaderboard(LeaderboardType type) {
if (!Pweek.getInstance().getGameService().getSignedIn()) {
return;
}
aHelper.debugLog("=>GETSCORES");
switch (type) {
case SOLO:
activity.startActivityForResult(aHelper.getGamesClient().getLeaderboardIntent(context.getString(R.string.solo_leaderboard)), 105);
break;
case CHRONO:
activity.startActivityForResult(aHelper.getGamesClient().getLeaderboardIntent(context.getString(R.string.chrono_leaderboard)), 105);
break;
default:
activity.startActivityForResult(aHelper.getGamesClient().getAllLeaderboardsIntent(), 105);
}
}
@Override
public void showAchievements() {
if (!Pweek.getInstance().getGameService().getSignedIn()) {
return;
}
aHelper.debugLog("=>GETACHIEVEMENTS");
activity.startActivityForResult(aHelper.getGamesClient().getAchievementsIntent(), 106);
}
@Override
public void getScoresData() {
// TODO Auto-generated method stub
}
@Override
public void showFriendSelector() {
// launch the player selection screen
// minimum: 1 other player; maximum: 3 other players
Intent intent = aHelper.getGamesClient().getSelectPlayersIntent(1, 1);
activity.startActivityForResult(intent, GameHelper.RC_SELECT_PLAYERS);
}
@Override
public void startQuickGame() {
aHelper.createMatchMakingRoom();
// go to game screen
}
@Override
public void showWaitingRoom(Room r) {
// TODO Auto-generated method stub
}
}