package com.cs169.android.assassins; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import org.json.JSONObject; public class LoginActivity extends AuthenticationActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.login); } @Override public void onBackPressed() { } @Override protected void onAuthorized() { new InitializeAppTask().execute(); } private class InitializeAppTask extends AsyncTask<Void, Void, Boolean> { @Override protected Boolean doInBackground(Void... voids) { String facebookId = Utility.getFacebookId(facebook); app.getUser().setUserID(facebookId); app.setAccessToken(facebook.getAccessToken()); //int y=0; JSONObject player = Utility.getPlayerInfo(facebook.getAccessToken(), facebookId); if (player == null) { return false; } else { User user = app.getUser(); user.parseJSONObject(player); if (user.getGameID() != "null") { JSONObject game = Utility.getGameInfo(facebook.getAccessToken(), user.getGameID()); app.getNewGameAdded().parseJSONObject(game); } return true; } } @Override protected void onPreExecute() { this.dialog = ProgressDialog.show(LoginActivity.this, "", "Loading. Please wait...", true); } @Override protected void onPostExecute(Boolean playerExists) { this.dialog.dismiss(); startActivity(chooseNextActivity(playerExists)); finish(); } private ProgressDialog dialog; } private Intent chooseNextActivity(Boolean playerExists) { String status = app.getUser().getStatus(); if (!playerExists) { AlertDialog.Builder builder = new AlertDialog.Builder(LoginActivity.this); builder.setMessage("To start playing, you must take a picture.") .setCancelable(false) .setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.dismiss(); } }); AlertDialog alert = builder.create(); alert.show(); // Player does not exist, take a picture return new Intent(LoginActivity.this, TakeProfilePictureActivity.class); } else if (status.equalsIgnoreCase("n")) { // Player is not in a game, take him to the list of games return new Intent(LoginActivity.this, ListOfGamesActivity.class); } else if (status.equalsIgnoreCase("w") && (app.getUser().getGameID() != null)) { // Player is waiting in a game room, take him to the waiting room Intent intent = new Intent(LoginActivity.this, WaitingRoom.class); intent.putExtra("Game Name", app.getNewGameAdded().getGameName()); return intent; } else { // Player is in a game, take him to the game activity assert (status.equalsIgnoreCase("a") || status.equalsIgnoreCase("d") || status.equalsIgnoreCase("v")); return new Intent(LoginActivity.this, GameActivity.class); } } private static final String TAG = "LogIn"; }