aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com')
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/FinishedActivity.java41
-rwxr-xr-xapp/src/main/java/com/camilstaps/rushhour/GamePlayActivity.java10
-rw-r--r--app/src/main/java/com/camilstaps/rushhour/MainActivity.java7
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;
}