From 1bec2397f47ed1191817548ead406a0e815d35b7 Mon Sep 17 00:00:00 2001
From: 62160052 <62160052@go.buu.ac.th>
Date: Sat, 10 Sep 2022 15:26:13 +0700
Subject: [PATCH] Add LiveData to the current scrambled word

---
 .../example/android/unscramble/ui/game/GameFragment.kt |  1 -
 .../android/unscramble/ui/game/GameViewModel.kt        | 10 ++++++----
 2 files changed, 6 insertions(+), 5 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 f11d419..e2f7662 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
@@ -22,7 +22,6 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.fragment.app.Fragment
-import androidx.fragment.app.viewModels
 import com.example.android.unscramble.R
 import com.example.android.unscramble.databinding.GameFragmentBinding
 import com.google.android.material.dialog.MaterialAlertDialogBuilder
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 96b8b8c..fa70095 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,6 +1,8 @@
 package com.example.android.unscramble.ui.game
 
 import android.util.Log
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 
 class GameViewModel: ViewModel() {
@@ -11,8 +13,8 @@ class GameViewModel: ViewModel() {
     val currentWordCount: Int
         get() = _currentWordCount
 
-    private lateinit var _currentScrambledWord: String
-    val currentScrambledWord: String
+    private val _currentScrambledWord = MutableLiveData<String>()
+    val currentScrambledWord: LiveData<String>
         get() = _currentScrambledWord
     private var wordsList: MutableList<String> = mutableListOf()
     private lateinit var currentWord: String
@@ -27,7 +29,7 @@ class GameViewModel: ViewModel() {
         Log.d("GameFragment", "GameViewModel destroyed!")
     }
 
-    fun getNextWord() {
+    private fun getNextWord() {
         currentWord = allWordsList.random()
         val tempWord = currentWord.toCharArray()
         tempWord.shuffle()
@@ -37,7 +39,7 @@ class GameViewModel: ViewModel() {
         if (wordsList.contains(currentWord)) {
             getNextWord()
         } else {
-            _currentScrambledWord = String(tempWord)
+            _currentScrambledWord.value = String(tempWord)
             ++_currentWordCount
             wordsList.add(currentWord)
         }
-- 
GitLab