From 3be6e6720b94c1e52633ee3ba8f69bee8e826362 Mon Sep 17 00:00:00 2001 From: 62160052 <62160052@go.buu.ac.th> Date: Tue, 6 Sep 2022 15:37:34 +0700 Subject: [PATCH] Update game restart logic --- .../android/unscramble/ui/game/GameFragment.kt | 12 ++++++++++-- .../android/unscramble/ui/game/GameViewModel.kt | 7 +++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt b/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt index cb29d0d..f11d419 100644 --- a/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt +++ b/app/src/main/java/com/example/android/unscramble/ui/game/GameFragment.kt @@ -44,12 +44,14 @@ class GameFragment : Fragment() { // If the fragment is re-created, it receives the same GameViewModel instance created by the // first fragment + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View { binding = GameFragmentBinding.inflate(inflater, container, false) - Log.d("GameFragment", "GameFragment created/re-created!") + Log.d("GameFragment", "Word: ${viewModel.currentScrambledWord} " + + "Score: ${viewModel.score} WordCount: ${viewModel.currentWordCount}") return binding.root } @@ -95,7 +97,12 @@ class GameFragment : Fragment() { * Increases the word count. */ private fun onSkipWord() { - + if (viewModel.nextWord()) { + setErrorTextField(false) + updateNextWordOnScreen() + } else { + showFinalScoreDialog() + } } /* @@ -112,6 +119,7 @@ class GameFragment : Fragment() { * restart the game. */ private fun restartGame() { + viewModel.reinitializeData() setErrorTextField(false) updateNextWordOnScreen() } diff --git a/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt b/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt index 69cdfd0..96b8b8c 100644 --- a/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt +++ b/app/src/main/java/com/example/android/unscramble/ui/game/GameViewModel.kt @@ -62,5 +62,12 @@ class GameViewModel: ViewModel() { return false } + fun reinitializeData() { + _score = 0 + _currentWordCount = 0 + wordsList.clear() + getNextWord() + } + } \ No newline at end of file -- GitLab