diff options
Diffstat (limited to 'app/src/main/java/com/camilstaps/rushhour')
3 files changed, 43 insertions, 15 deletions
diff --git a/app/src/main/java/com/camilstaps/rushhour/FinishedActivity.java b/app/src/main/java/com/camilstaps/rushhour/FinishedActivity.java index 9c092a3..3e441b1 100644 --- a/app/src/main/java/com/camilstaps/rushhour/FinishedActivity.java +++ b/app/src/main/java/com/camilstaps/rushhour/FinishedActivity.java @@ -4,6 +4,7 @@ import android.app.Activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; +import android.content.Intent; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.text.Editable; @@ -35,19 +36,21 @@ public class FinishedActivity extends ActionBarActivity { final HighScoreList list = new HighScoreList(this); - final int score = getIntent().getIntExtra("score", Integer.MAX_VALUE); - final EditText input = new EditText(this); - new AlertDialog.Builder(this) - .setTitle("Enter name") - .setView(input) - .setPositiveButton("Ok", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int whichButton) { - Editable value = input.getText(); - list.addToList(new HighScore(score, value.toString())); - list.save(context); - } - }) - .show(); + final int score = getIntent().getIntExtra("score", -1); + if (score != -1) { + final EditText input = new EditText(this); + new AlertDialog.Builder(this) + .setTitle("Enter name") + .setView(input) + .setPositiveButton("Ok", new DialogInterface.OnClickListener() { + public void onClick(DialogInterface dialog, int whichButton) { + Editable value = input.getText(); + list.addToList(new HighScore(score, value.toString())); + list.save(context); + } + }) + .show(); + } ListView highscoresListView = (ListView) findViewById(R.id.highscoresListView); @@ -56,6 +59,18 @@ public class FinishedActivity extends ActionBarActivity { highscoresListView.setAdapter(arrayAdapter); } + @Override + public void onBackPressed() { + // See http://stackoverflow.com/a/13483049/1544337 + Intent intent = new Intent(); + if (getParent() == null) { + setResult(Activity.RESULT_OK, intent); + } else { + getParent().setResult(Activity.RESULT_OK, intent); + } + finish(); + } + private class HighScoreAdapter extends ArrayAdapter<HighScore> { Context context; int layoutResourceId; diff --git a/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java b/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java index dd3bafe..0b77edd 100755 --- a/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java +++ b/app/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java @@ -56,6 +56,14 @@ public class GamePlayActivity extends Activity implements Board.SolveListener { board.setSolveListener(this); } + @Override + protected void onActivityResult(int requestCode, int resultCode, Intent data) { + // See http://stackoverflow.com/a/13483049/1544337 + if (resultCode == Activity.RESULT_OK) { + finish(); + } + } + /** * Load sounds; start background music */ @@ -78,6 +86,6 @@ public class GamePlayActivity extends Activity implements Board.SolveListener { public void onSolve(int score) { Intent intent = new Intent(this, FinishedActivity.class); intent.putExtra("score", score); - startActivity(intent); + startActivityForResult(intent, 0); } } diff --git a/app/src/main/java/com/camilstaps/rushhour/MainActivity.java b/app/src/main/java/com/camilstaps/rushhour/MainActivity.java index d0cf5c2..1659498 100644 --- a/app/src/main/java/com/camilstaps/rushhour/MainActivity.java +++ b/app/src/main/java/com/camilstaps/rushhour/MainActivity.java @@ -15,9 +15,14 @@ public class MainActivity extends ActionBarActivity { } public void onClickHandler(View v) { + Intent intent; switch (v.getId()) { case R.id.action_start: - Intent intent = new Intent(this, GamePlayActivity.class); + intent = new Intent(this, GamePlayActivity.class); + startActivity(intent); + break; + case R.id.action_highscores: + intent = new Intent(this, FinishedActivity.class); startActivity(intent); break; } |