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">