diff --git a/app/src/main/java/edu/temple/dicethrow/DieFragment.kt b/app/src/main/java/edu/temple/dicethrow/DieFragment.kt index 90530d7..380b0e5 100644 --- a/app/src/main/java/edu/temple/dicethrow/DieFragment.kt +++ b/app/src/main/java/edu/temple/dicethrow/DieFragment.kt @@ -6,16 +6,23 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView +import androidx.lifecycle.ViewModelProvider import kotlin.random.Random class DieFragment : Fragment() { val DIESIDE = "sidenumber" + val PREVOUS_ROLL = "previousroll" + + var currentRoll = 0 + lateinit var dieTextView: TextView var dieSides: Int = 6 + lateinit var dieViewModel: DieViewModel + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) arguments?.let { @@ -23,6 +30,8 @@ class DieFragment : Fragment() { dieSides = this } } + + dieViewModel = ViewModelProvider(this).get(DieViewModel::class.java) } override fun onCreateView( @@ -37,13 +46,18 @@ class DieFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - throwDie() - view.setOnClickListener{ - throwDie() + + dieViewModel.getCurrentRoll().observe(viewLifecycleOwner){ + dieTextView.text = it.toString() } + + if (dieViewModel.getCurrentRoll().value) + throwDie() } + fun throwDie() { - dieTextView.text = Random.nextInt(dieSides).toString() + dieViewModel.setCurrentRoll(Random.nextInt(dieSides) + 1) + } } \ No newline at end of file diff --git a/app/src/main/java/edu/temple/dicethrow/DieViewModel.kt b/app/src/main/java/edu/temple/dicethrow/DieViewModel.kt new file mode 100644 index 0000000..fda40d8 --- /dev/null +++ b/app/src/main/java/edu/temple/dicethrow/DieViewModel.kt @@ -0,0 +1,27 @@ +package edu.temple.dicethrow + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import androidx.lifecycle.LiveData +import kotlin.random.Random + +class DieViewModel : ViewModel() { + + private var dieSides: Int = 6 + + private val currentRoll : MutableLiveData by lazy { + MutableLiveData() + } + + fun getCurrentRoll() : LiveData { + return currentRoll + } + + fun setCurrentRoll(roll : Int) { + currentRoll.value = roll + } + + fun rollDie() { + setCurrentRoll(Random.nextInt(dieSides) + 1) + } +} \ No newline at end of file diff --git a/app/src/main/java/edu/temple/dicethrow/MainActivity.kt b/app/src/main/java/edu/temple/dicethrow/MainActivity.kt index aa91cf6..f4341d8 100644 --- a/app/src/main/java/edu/temple/dicethrow/MainActivity.kt +++ b/app/src/main/java/edu/temple/dicethrow/MainActivity.kt @@ -1,6 +1,7 @@ package edu.temple.dicethrow import android.os.Bundle +import android.widget.Button import androidx.activity.enableEdgeToEdge import androidx.appcompat.app.AppCompatActivity import androidx.core.view.ViewCompat @@ -10,5 +11,11 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + + + findViewById