diff --git a/Assignments/MP1_CalebFontenot/app/src/main/AndroidManifest.xml b/Assignments/MP1_CalebFontenot/app/src/main/AndroidManifest.xml index c239a24..b3bfe13 100644 --- a/Assignments/MP1_CalebFontenot/app/src/main/AndroidManifest.xml +++ b/Assignments/MP1_CalebFontenot/app/src/main/AndroidManifest.xml @@ -21,6 +21,7 @@ + \ No newline at end of file diff --git a/Assignments/MP1_CalebFontenot/app/src/main/java/com/calebfontenot/quizchapter2/MainActivity.java b/Assignments/MP1_CalebFontenot/app/src/main/java/com/calebfontenot/quizchapter2/MainActivity.java index d530c3a..fde33c7 100644 --- a/Assignments/MP1_CalebFontenot/app/src/main/java/com/calebfontenot/quizchapter2/MainActivity.java +++ b/Assignments/MP1_CalebFontenot/app/src/main/java/com/calebfontenot/quizchapter2/MainActivity.java @@ -21,7 +21,10 @@ public class MainActivity extends AppCompatActivity { private TextView mScoreTextView; private final String TAG = "QuizController"; private long answersCorrect = 0, answersIncorrect = 0; - private Question[] mQuestionBank = new Question[] + private static final String STATE_COUNTER = "counter"; + private static final String INCORRECT_ANSWER_STORAGE = "incorrect answer storage"; + private static final String CORRECT_ANSWER_STORAGE = "correct answer storage"; + private Question[] mQuestionBank = new Question[] { new Question(R.string.question_australia, true), new Question(R.string.question_oceans, true), @@ -29,31 +32,23 @@ public class MainActivity extends AppCompatActivity { new Question(R.string.question_africa, false), new Question(R.string.question_asia, true), }; - private int mCurrentIndex = 0; + private int mCurrentIndex = 0; @Override - public void onConfigurationChanged(Configuration newConfig) { - Log.d(TAG, "onConfigurationChanged() called"); - super.onConfigurationChanged(newConfig); - - if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) { - setContentView(R.layout.activity_main); - } - if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { - setContentView(R.layout.activity_main_landscape); - } + protected void onSaveInstanceState(@NonNull Bundle outState) { + // Make sure to call the super method so that the states of our views are saved + super.onSaveInstanceState(outState); + Log.d(TAG, "onSaveInstanceState() called!"); + // Save our own state now + outState.putInt(STATE_COUNTER, mCurrentIndex); + outState.putLong(INCORRECT_ANSWER_STORAGE, answersIncorrect); + outState.putLong(CORRECT_ANSWER_STORAGE, answersCorrect); } @Override protected void onStart() { super.onStart(); Log.d(TAG,"onStart() called"); - if (this.getRequestedOrientation() == ActivityInfo.CORIENTATION_PORTRAIT) { - setContentView(R.layout.activity_main); - } - if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { - setContentView(R.layout.activity_main_landscape); - } } @Override @@ -83,13 +78,25 @@ public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { Log.d(TAG,"onCreate(Bundle) called"); + super.onCreate(savedInstanceState); + /* + if (getResources().getConfiguration().orientation == 1) { + Log.d(TAG, "setting orientation to portrait"); + setContentView(R.layout.activity_main); + } else { + Log.d(TAG, "setting orientation to landscape"); + setContentView(R.layout.activity_main_landscape); + } + */ + + mQuestionTextView = (TextView) findViewById(R.id.question_text_view); int question = mQuestionBank[mCurrentIndex].getmTextResId(); //mQuestionTextView.setText(question); - super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); mQuestionTextView = findViewById(R.id.question_text_view); trueButton = findViewById(R.id.true_button); @@ -98,8 +105,20 @@ public class MainActivity extends AppCompatActivity { previousButton = findViewById(R.id.previous_button); mScoreTextView = findViewById(R.id.score_counter); resetButton = findViewById(R.id.reset_score_button); - updateScores(); + + // If we have a saved state, restore it + if (savedInstanceState != null) { + mCurrentIndex = savedInstanceState.getInt(STATE_COUNTER, 0); + answersIncorrect = savedInstanceState.getLong(INCORRECT_ANSWER_STORAGE); + answersCorrect = savedInstanceState.getLong(CORRECT_ANSWER_STORAGE); + + // Update the question panel so it doesn't display the default text + Question q = mQuestionBank[MainActivity.this.mCurrentIndex]; + int idOfQuestion = q.getmTextResId(); + MainActivity.this.mQuestionTextView.setText(idOfQuestion); + } + updateScores(); trueButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -138,16 +157,18 @@ public class MainActivity extends AppCompatActivity { @Override public void onClick(View v) { Log.i(TAG,"Calling nextButton event listener"); - updateScores(); - Question q = mQuestionBank[MainActivity.this.mCurrentIndex]; - int idOfQuestion = q.getmTextResId(); + + if(MainActivity.this.mCurrentIndex == mQuestionBank.length - 1) { MainActivity.this.mCurrentIndex = 0; } else { MainActivity.this.mCurrentIndex++; } Log.i(TAG, "mCurrentIndex is: " + mCurrentIndex); + Question q = mQuestionBank[MainActivity.this.mCurrentIndex]; + int idOfQuestion = q.getmTextResId(); MainActivity.this.mQuestionTextView.setText(idOfQuestion); + updateScores(); } }; @@ -159,16 +180,16 @@ public class MainActivity extends AppCompatActivity { @Override public void onClick(View view) { Log.i(TAG, "Calling previousButton event listener"); - updateScores(); - Question q = mQuestionBank[MainActivity.this.mCurrentIndex]; - int idOfQuestion = q.getmTextResId(); if (MainActivity.this.mCurrentIndex <= 0) { MainActivity.this.mCurrentIndex = mQuestionBank.length - 1; } else { MainActivity.this.mCurrentIndex--; } Log.i(TAG, "mCurrentIndex is: " + mCurrentIndex); + Question q = mQuestionBank[MainActivity.this.mCurrentIndex]; + int idOfQuestion = q.getmTextResId(); MainActivity.this.mQuestionTextView.setText(idOfQuestion); + updateScores(); } }); @@ -177,6 +198,13 @@ public class MainActivity extends AppCompatActivity { public void onClick(View view) { Log.i(TAG, "Resetting scores!"); answersCorrect = answersIncorrect = 0; + + // Reset the question position as well + MainActivity.this.mCurrentIndex = 0; + Question q = mQuestionBank[MainActivity.this.mCurrentIndex]; + int idOfQuestion = q.getmTextResId(); + MainActivity.this.mQuestionTextView.setText(idOfQuestion); + updateScores(); } }); diff --git a/Assignments/MP1_CalebFontenot/app/src/main/res/layout-land/activity_main_landscape.xml b/Assignments/MP1_CalebFontenot/app/src/main/res/layout-land/activity_main.xml similarity index 92% rename from Assignments/MP1_CalebFontenot/app/src/main/res/layout-land/activity_main_landscape.xml rename to Assignments/MP1_CalebFontenot/app/src/main/res/layout-land/activity_main.xml index ed8b44c..3abb805 100644 --- a/Assignments/MP1_CalebFontenot/app/src/main/res/layout-land/activity_main_landscape.xml +++ b/Assignments/MP1_CalebFontenot/app/src/main/res/layout-land/activity_main.xml @@ -1,9 +1,10 @@ - + +