From 652f79b47e63759f73f12e476c28002fb5fc3a2e Mon Sep 17 00:00:00 2001 From: 62160052 <62160052@go.buu.ac.th> Date: Tue, 6 Sep 2022 14:28:33 +0700 Subject: [PATCH] The lifecycle of a ViewModel --- .../unscramble/ui/game/GameFragment.kt | 26 ++++++++----------- .../unscramble/ui/game/GameViewModel.kt | 11 ++++++++ 2 files changed, 22 insertions(+), 15 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 788f9d6..15b71d5 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 @@ -17,6 +17,7 @@ package com.example.android.unscramble.ui.game import android.os.Bundle +import android.util.Log import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -43,14 +44,19 @@ class GameFragment : Fragment() { // first fragment override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? ): View { - // Inflate the layout XML file and return a binding object instance binding = GameFragmentBinding.inflate(inflater, container, false) + Log.d("GameFragment", "GameFragment created/re-created!") return binding.root } + override fun onDetach() { + super.onDetach() + Log.d("GameFragment", "GameFragment destroyed!") + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) @@ -69,13 +75,7 @@ class GameFragment : Fragment() { * Displays the next scrambled word. */ private fun onSubmitWord() { - currentScrambledWord = getNextScrambledWord() - currentWordCount++ - score += SCORE_INCREASE - binding.wordCount.text = getString(R.string.word_count, currentWordCount, MAX_NO_OF_WORDS) - binding.score.text = getString(R.string.score, score) - setErrorTextField(false) - updateNextWordOnScreen() + } /* @@ -83,11 +83,7 @@ class GameFragment : Fragment() { * Increases the word count. */ private fun onSkipWord() { - currentScrambledWord = getNextScrambledWord() - currentWordCount++ - binding.wordCount.text = getString(R.string.word_count, currentWordCount, MAX_NO_OF_WORDS) - 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 037324d..1fc176c 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 @@ -1,5 +1,6 @@ package com.example.android.unscramble.ui.game +import android.util.Log import androidx.lifecycle.ViewModel class GameViewModel: ViewModel() { @@ -12,4 +13,14 @@ class GameViewModel: ViewModel() { private var _currentScrambledWord = "test" val currentScrambledWord: String get() = _currentScrambledWord + + init { + Log.d("GameFragment", "GameViewModel created!") + } + + override fun onCleared() { + super.onCleared() + Log.d("GameFragment", "GameViewModel destroyed!") + } + } \ No newline at end of file -- GitLab