diff --git a/.idea/AndroidProjectSystem.xml b/.idea/AndroidProjectSystem.xml new file mode 100644 index 0000000..4a53bee --- /dev/null +++ b/.idea/AndroidProjectSystem.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/deviceManager.xml b/.idea/deviceManager.xml new file mode 100644 index 0000000..91f9558 --- /dev/null +++ b/.idea/deviceManager.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file 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/src/main/java/edu/temple/dicethrow/BaseBundle.java b/app/src/main/java/edu/temple/dicethrow/BaseBundle.java new file mode 100644 index 0000000..15c310f --- /dev/null +++ b/app/src/main/java/edu/temple/dicethrow/BaseBundle.java @@ -0,0 +1,4 @@ +package edu.temple.dicethrow; + +public class BaseBundle { +} diff --git a/app/src/main/java/edu/temple/dicethrow/DieFragment.kt b/app/src/main/java/edu/temple/dicethrow/DieFragment.kt index 90530d7..22fed5d 100644 --- a/app/src/main/java/edu/temple/dicethrow/DieFragment.kt +++ b/app/src/main/java/edu/temple/dicethrow/DieFragment.kt @@ -10,18 +10,19 @@ import kotlin.random.Random class DieFragment : Fragment() { - val DIESIDE = "sidenumber" - lateinit var dieTextView: TextView + var currentRoll = 1 var dieSides: Int = 6 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) arguments?.let { - it.getInt(DIESIDE).run { - dieSides = this - } + dieSides = it.getInt(DIESIDE, 6) + } + + savedInstanceState?.getInt(ROLL_KEY)?.run { + currentRoll = this } } @@ -37,13 +38,27 @@ 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(dieSides) + 1 + dieTextView.text = currentRoll.toString() + } + + companion object { + private const val DIESIDE = "sidenumber" + private const val ROLL_KEY = "current_role" + + fun newInstance(sides: Int) = DieFragment().apply { + arguments = Bundle().apply { + putInt(DIESIDE, sides) + } + } } } \ 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..64079ee 100644 --- a/app/src/main/java/edu/temple/dicethrow/MainActivity.kt +++ b/app/src/main/java/edu/temple/dicethrow/MainActivity.kt @@ -1,14 +1,28 @@ package edu.temple.dicethrow import android.os.Bundle -import androidx.activity.enableEdgeToEdge +import android.widget.Button import androidx.appcompat.app.AppCompatActivity -import androidx.core.view.ViewCompat -import androidx.core.view.WindowInsetsCompat class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) + + // Add fragments only the first time the activity is created + if (savedInstanceState == null) { + supportFragmentManager + .beginTransaction() + .replace(R.id.fragmentContainerView, DieFragment.newInstance(6)) + .replace(R.id.fragmentContainerView2, DieFragment.newInstance(10)) + .commit() + } + + val rollButton = findViewById