aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorCamil Staps2015-04-29 12:01:02 +0200
committerCamil Staps2015-04-29 12:01:02 +0200
commit0db3c33807a66e84aa2febfc1fc28c2203626ef3 (patch)
treeced7f71f8d5b27bbade6ef4d0e835d6a079be542 /app
parentHighscores (diff)
Highscores activity
Diffstat (limited to 'app')
-rw-r--r--app/src/main/AndroidManifest.xml5
-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
-rw-r--r--app/src/main/res/layout/activity_main.xml20
-rw-r--r--app/src/main/res/values/strings.xml6
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">
</activity>
<activity
android:name=".MainActivity"
@@ -21,12 +20,12 @@
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
-
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".FinishedActivity"
+ android:screenOrientation="portrait"
android:label="@string/title_activity_finished" >
</activity>
</application>
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;
}
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 @@
-<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
- android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:tools="http://schemas.android.com/tools"
+ tools:context="com.camilstaps.rushhour.MainActivity"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
- tools:context="com.camilstaps.rushhour.MainActivity">
+ android:orientation="horizontal">
<Button
android:layout_width="wrap_content"
@@ -13,4 +16,11 @@
android:text="@string/action_start"
android:onClick="onClickHandler"/>
-</RelativeLayout>
+ <Button
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:id="@+id/action_highscores"
+ android:text="@string/action_highscores"
+ android:onClick="onClickHandler"/>
+
+</LinearLayout>
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 @@
<string name="app_name">Rush Hour</string>
<string name="title_activity_main">@string/app_name</string>
<string name="action_start">Start</string>
- <string name="title_activity_finished">FinishedActivity</string>
-
- <string name="hello_world">Hello world!</string>
- <string name="action_settings">Settings</string>
+ <string name="action_highscores">Highscores</string>
+ <string name="title_activity_finished">Finished!</string>
</resources>