diff --git a/.idea/gradle.xml b/.idea/gradle.xml index ae733f1..639c779 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -1,5 +1,6 @@ + diff --git a/.idea/misc.xml b/.idea/misc.xml index 74dd639..b2c751a 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,3 @@ - diff --git a/.idea/vcs.xml b/.idea/vcs.xml index d843f34..35eb1dd 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -1,4 +1,6 @@ - + + + \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 41d6979..ca5d9a8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -42,6 +42,7 @@ dependencies { implementation(libs.material) implementation(libs.androidx.activity) implementation(libs.androidx.constraintlayout) + implementation(libs.androidx.fragment) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) diff --git a/app/src/main/java/edu/temple/dicethrow/DieFragment.kt b/app/src/main/java/edu/temple/dicethrow/DieFragment.kt index 90530d7..ce1d6b2 100644 --- a/app/src/main/java/edu/temple/dicethrow/DieFragment.kt +++ b/app/src/main/java/edu/temple/dicethrow/DieFragment.kt @@ -10,18 +10,33 @@ import kotlin.random.Random class DieFragment : Fragment() { - val DIESIDE = "sidenumber" + private val ROLL_KEY = "current_roll" + private lateinit var dieTextView: TextView - lateinit var dieTextView: TextView + private var currentRoll = 1 + private var dieSides: Int = 6 - var dieSides: Int = 6 + companion object { + const val DIESIDE = "sidenumber" + + fun newInstance(sides: Int = 6): DieFragment { + return DieFragment().apply { + arguments = Bundle().apply { + putInt(DIESIDE, sides) + } + } + } + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + arguments?.let { - it.getInt(DIESIDE).run { - dieSides = this - } + dieSides = it.getInt(DIESIDE) + } + + savedInstanceState?.let { + currentRoll = it.getInt(ROLL_KEY, 1) } } @@ -29,7 +44,6 @@ class DieFragment : Fragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_die, container, false).apply { dieTextView = findViewById(R.id.dieTextView) } @@ -37,13 +51,16 @@ class DieFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - throwDie() - view.setOnClickListener{ - throwDie() - } + dieTextView.text = currentRoll.toString() + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + outState.putInt(ROLL_KEY, currentRoll) } fun throwDie() { - dieTextView.text = Random.nextInt(dieSides).toString() + currentRoll = Random.nextInt(1, dieSides + 1) + dieTextView.text = currentRoll.toString() } } \ 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..5464aef 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,25 @@ class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + + if (savedInstanceState == null){ + supportFragmentManager.beginTransaction() + .replace(R.id.fragmentContainerView, DieFragment.newInstance(6)) + .replace(R.id.fragmentContainerView2, DieFragment.newInstance(10)) + .commit() + + + } + + val rollbutton = findViewById