From 189c6d35fea4196e8b837e709b676f385be3c235 Mon Sep 17 00:00:00 2001
From: fpeterfalvi <fpeterfalvi@gmail.com>
Date: Thu, 12 Apr 2018 09:29:44 +0200
Subject: [PATCH] QuizUpActivity bug fixes

---
 KvizClient/app/src/main/AndroidManifest.xml   |  3 ++-
 KvizServer/app/src/main/AndroidManifest.xml   |  3 ++-
 .../java/onlab/kvizserver/GameActivity.java   |  4 +++
 .../java/onlab/kvizserver/LobbyActivity.java  | 25 +++++++++++--------
 .../java/onlab/kvizserver/QuizUpActivity.java | 22 ++++++++++------
 .../app/src/main/res/layout/activity_game.xml | 11 ++++----
 .../src/main/res/layout/activity_quiz_up.xml  |  6 +++++
 7 files changed, 49 insertions(+), 25 deletions(-)

diff --git a/KvizClient/app/src/main/AndroidManifest.xml b/KvizClient/app/src/main/AndroidManifest.xml
index 08f470d..44626d6 100644
--- a/KvizClient/app/src/main/AndroidManifest.xml
+++ b/KvizClient/app/src/main/AndroidManifest.xml
@@ -36,7 +36,8 @@
         <activity
             android:name=".GameActivity"
             android:screenOrientation="portrait"></activity>
-        <activity android:name=".QuizUpActivity"></activity>
+        <activity android:name=".QuizUpActivity"
+            android:screenOrientation="portrait"></activity>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/KvizServer/app/src/main/AndroidManifest.xml b/KvizServer/app/src/main/AndroidManifest.xml
index 6976907..e94cc85 100644
--- a/KvizServer/app/src/main/AndroidManifest.xml
+++ b/KvizServer/app/src/main/AndroidManifest.xml
@@ -35,7 +35,8 @@
             android:screenOrientation="landscape"
             android:theme="@style/AppTheme.NoActionBar" />
         <activity android:name=".GameActivity" />
-        <activity android:name=".QuizUpActivity"></activity>
+        <activity android:name=".QuizUpActivity">
+        </activity>
     </application>
 
 </manifest>
\ No newline at end of file
diff --git a/KvizServer/app/src/main/java/onlab/kvizserver/GameActivity.java b/KvizServer/app/src/main/java/onlab/kvizserver/GameActivity.java
index 648735b..21fe1da 100644
--- a/KvizServer/app/src/main/java/onlab/kvizserver/GameActivity.java
+++ b/KvizServer/app/src/main/java/onlab/kvizserver/GameActivity.java
@@ -53,6 +53,8 @@ public class GameActivity extends AppCompatActivity {
 
     String questionString;
 
+    TextView correctAnswerTextView;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -88,6 +90,7 @@ public class GameActivity extends AppCompatActivity {
         answerTextViews.add((TextView) findViewById(R.id.Answer2TextView));
         answerTextViews.add((TextView) findViewById(R.id.Answer3TextView));
         answerTextViews.add((TextView) findViewById(R.id.Answer4TextView));
+        correctAnswerTextView = (TextView) findViewById(R.id.CorrectAnswerTextView);
         final LinearLayout playerAnswersLinearLayout = (LinearLayout) findViewById(R.id.PlayerAnswers);
 
         numberOfPlayers = ClientHolder.size();
@@ -122,6 +125,7 @@ public class GameActivity extends AppCompatActivity {
                     MultipleChoiceQuestion question = questions.get(questionIndex);
                     questionString = question.getQuestionText();
                     questionText.setText(questionString);
+                    correctAnswerTextView.setText("Correct answer: " + question.getCorrectAnswer());
 
                     for (int i=0;i<numberOfPlayers;i++) {
                         playerAnswers[i] = -1;
diff --git a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java
index 2444a11..ee55f49 100644
--- a/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java
+++ b/KvizServer/app/src/main/java/onlab/kvizserver/LobbyActivity.java
@@ -18,6 +18,7 @@ import android.util.Log;
 import android.view.View;
 import android.widget.Button;
 import android.widget.TextView;
+import android.widget.Toast;
 
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
@@ -105,18 +106,22 @@ public class LobbyActivity extends AppCompatActivity {
         startGameBtn.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                exit = false;
-                serverThread.interrupt();
-                commThread.interrupt();
-                ClientHolder.addAll(clients);
-                Intent intent;
-                if (gameMode.equals("normal")) {
-                    intent = new Intent(getApplicationContext(), GameActivity.class);
+                if (gameMode.equals("quizup") && (clients.size() != 2)) {
+                    Toast.makeText(getApplicationContext(), "QuizUp mode requires exactly 2 players!", Toast.LENGTH_LONG).show();
                 } else {
-                    intent = new Intent(getApplicationContext(), QuizUpActivity.class);
+                    exit = false;
+                    serverThread.interrupt();
+                    commThread.interrupt();
+                    ClientHolder.addAll(clients);
+                    Intent intent;
+                    if (gameMode.equals("normal")) {
+                        intent = new Intent(getApplicationContext(), GameActivity.class);
+                    } else {
+                        intent = new Intent(getApplicationContext(), QuizUpActivity.class);
+                    }
+                    intent.putExtra("QUESTION_FILE_NAME", questionFileName);
+                    startActivity(intent);
                 }
-                intent.putExtra("QUESTION_FILE_NAME", questionFileName);
-                startActivity(intent);
             }
         });
     }
diff --git a/KvizServer/app/src/main/java/onlab/kvizserver/QuizUpActivity.java b/KvizServer/app/src/main/java/onlab/kvizserver/QuizUpActivity.java
index 45ae04a..d40ab16 100644
--- a/KvizServer/app/src/main/java/onlab/kvizserver/QuizUpActivity.java
+++ b/KvizServer/app/src/main/java/onlab/kvizserver/QuizUpActivity.java
@@ -5,9 +5,7 @@ import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
 import android.util.Log;
 import android.util.TypedValue;
-import android.view.View;
 import android.view.WindowManager;
-import android.widget.Button;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
@@ -44,13 +42,14 @@ public class QuizUpActivity extends AppCompatActivity {
     private final List<TextView> playerScoreTextViews = new ArrayList<>();
     private TextView questionText;
     private List<TextView> answerTextViews;
+    private TextView correctAnswerTextView;
 
     private Handler updateConversationHandler;
 
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_game);
+        setContentView(R.layout.activity_quiz_up);
         getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
 
         Bundle extras = getIntent().getExtras();
@@ -82,6 +81,7 @@ public class QuizUpActivity extends AppCompatActivity {
         answerTextViews.add((TextView) findViewById(R.id.Answer2TextView));
         answerTextViews.add((TextView) findViewById(R.id.Answer3TextView));
         answerTextViews.add((TextView) findViewById(R.id.Answer4TextView));
+        correctAnswerTextView = (TextView) findViewById(R.id.CorrectAnswerTextView);
         final LinearLayout playerAnswersLinearLayout = (LinearLayout) findViewById(R.id.PlayerAnswers);
 
         numberOfPlayers = ClientHolder.size();
@@ -126,7 +126,6 @@ public class QuizUpActivity extends AppCompatActivity {
             newthread.start();
         }
 
-        sendNextQuestionDelayed(5000);
         sendTextMessageDelayed("Round 1", 3500);
         sendNextQuestionDelayed(5000);
     }
@@ -154,6 +153,8 @@ public class QuizUpActivity extends AppCompatActivity {
                 }
             }
 
+            correctAnswerTextView.setText("The correct answer: ");
+
             for (int i=0;i<outputs.size();i++) {
                 playerAnswerTextViews.get(i).setText("The answer of the " + Integer.toString(i + 1) + ". player: ");
                 String message = "question##" + Integer.toString(playerScores[i]) + "##"
@@ -206,6 +207,7 @@ public class QuizUpActivity extends AppCompatActivity {
     }
 
     private void sendResults() {
+        updateConversationHandler.post(new QuizUpActivity.updateUIThread(-1, "")); //show correct answer
         for (int i=0;i<outputs.size();i++) {
             String message = "answer##" + Integer.toString(playerScores[i]) + "##"
                     + Integer.toString(playerScores[1-i]) + "##" + questionString
@@ -261,7 +263,7 @@ public class QuizUpActivity extends AppCompatActivity {
                         playerAnswers[index] = answerInt;
                         if (playerAnswers[index] == correctAnswer) {
                             int gainedScore = (int) (21 - Double.parseDouble(strings[1]));
-                            if (round < 6 ) {
+                            if (round < 7 ) {
                                 playerScores[index] += gainedScore;
                             } else {
                                 playerScores[index] += 2 * gainedScore;
@@ -298,9 +300,13 @@ public class QuizUpActivity extends AppCompatActivity {
 
         @Override
         public void run() {
-            playerAnswerTextViews.get(index).setText("The answer of the " + Integer.toString(index + 1) + ". player: " + msg);
-            playerScoreTextViews.get(index).setText(
-                    "The score of the " + Integer.toString(index + 1) + ". player: " + Integer.toString(playerScores[index]));
+            if (index == -1) {
+                correctAnswerTextView.setText("The correct answer: " + answers.get(correctAnswer));
+            } else {
+                playerAnswerTextViews.get(index).setText("The answer of the " + Integer.toString(index + 1) + ". player: " + msg);
+                playerScoreTextViews.get(index).setText(
+                        "The score of the " + Integer.toString(index + 1) + ". player: " + Integer.toString(playerScores[index]));
+            }
         }
     }
 
diff --git a/KvizServer/app/src/main/res/layout/activity_game.xml b/KvizServer/app/src/main/res/layout/activity_game.xml
index 745c47d..3be7266 100644
--- a/KvizServer/app/src/main/res/layout/activity_game.xml
+++ b/KvizServer/app/src/main/res/layout/activity_game.xml
@@ -14,38 +14,39 @@
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="The place of the question."
             android:id="@+id/QuestionText"
             android:textSize="30sp"/>
 
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="Answer1"
             android:id="@+id/Answer1TextView"
             android:textSize="30sp"/>
 
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="Answer2"
             android:id="@+id/Answer2TextView"
             android:textSize="30sp"/>
 
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="Answer3"
             android:id="@+id/Answer3TextView"
             android:textSize="30sp"/>
 
         <TextView
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:text="Answer4"
             android:id="@+id/Answer4TextView"
             android:textSize="30sp"/>
 
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/CorrectAnswerTextView"
+            android:textSize="30sp"/>
+
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
diff --git a/KvizServer/app/src/main/res/layout/activity_quiz_up.xml b/KvizServer/app/src/main/res/layout/activity_quiz_up.xml
index e89c93c..313ce6c 100644
--- a/KvizServer/app/src/main/res/layout/activity_quiz_up.xml
+++ b/KvizServer/app/src/main/res/layout/activity_quiz_up.xml
@@ -41,6 +41,12 @@
             android:id="@+id/Answer4TextView"
             android:textSize="30sp"/>
 
+        <TextView
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:id="@+id/CorrectAnswerTextView"
+            android:textSize="30sp"/>
+
         <LinearLayout
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-- 
GitLab