From 0db3c33807a66e84aa2febfc1fc28c2203626ef3 Mon Sep 17 00:00:00 2001
From: Camil Staps
Date: Wed, 29 Apr 2015 12:01:02 +0200
Subject: Highscores activity
---
app/src/main/AndroidManifest.xml | 5 ++-
.../com/camilstaps/rushhour/FinishedActivity.java | 41 +++++++++++++++-------
.../com/camilstaps/rushhour/GamePlayActivity.java | 10 +++++-
.../java/com/camilstaps/rushhour/MainActivity.java | 7 +++-
app/src/main/res/layout/activity_main.xml | 20 ++++++++---
app/src/main/res/values/strings.xml | 6 ++--
6 files changed, 62 insertions(+), 27 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3ff025c..d33a9f7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -11,8 +11,7 @@
android:name=".GamePlayActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name"
- android:screenOrientation="portrait"
- android:theme="@style/FullscreenTheme" >
+ android:screenOrientation="portrait">
-
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 {
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;
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 8dcf3c0..c85e517 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -1,10 +1,13 @@
-
+ android:orientation="horizontal">
-
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index c46740f..14b245c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -2,8 +2,6 @@
Rush Hour
@string/app_name
Start
- FinishedActivity
-
- Hello world!
- Settings
+ Highscores
+ Finished!
--
cgit v1.2.3