diff --git a/app/src/main/java/com/example/jnicpp/bowling/BowlingCameraActivity.kt b/app/src/main/java/com/example/jnicpp/bowling/BowlingCameraActivity.kt index 5580c61..b1b24b3 100644 --- a/app/src/main/java/com/example/jnicpp/bowling/BowlingCameraActivity.kt +++ b/app/src/main/java/com/example/jnicpp/bowling/BowlingCameraActivity.kt @@ -79,6 +79,16 @@ class BowlingCameraActivity : AppCompatActivity(), CameraXController.Callback { // class for FeedbackUI private lateinit var feedbackUI: FeedbackUI + private val stepLabels = listOf( + R.string.pose_phase_starting_stance, + R.string.pose_phase_approach, + R.string.pose_phase_pushaway, + R.string.pose_phase_back_swing, + R.string.pose_phase_power_step, + R.string.pose_phase_slide_and_release, + ) + private var currentPhaseToggleIndex = 0 + private val permissionLauncher = registerForActivityResult(ActivityResultContracts.RequestMultiplePermissions()) { _: Map -> val granted = CameraPermissions.allGranted(this) @@ -134,6 +144,7 @@ class BowlingCameraActivity : AppCompatActivity(), CameraXController.Callback { } } binding.btnResetCounter.setOnClickListener { viewModel.resetStepCounter() } + binding.btnShowStep.setOnClickListener { onPhaseToggleClicked() } observeViewModel() @@ -550,4 +561,12 @@ class BowlingCameraActivity : AppCompatActivity(), CameraXController.Callback { cameraExecutor.shutdown() debugSessionLogger.stop() } + + /** + * @brief Cycles through the delivery phase labels on the manual toggle button. + */ + private fun onPhaseToggleClicked() { + currentPhaseToggleIndex = (currentPhaseToggleIndex + 1) % stepLabels.size + binding.btnShowStep.setText(stepLabels[currentPhaseToggleIndex]) + } } diff --git a/app/src/main/res/layout-land/activity_bowling_camera.xml b/app/src/main/res/layout-land/activity_bowling_camera.xml index 4da2b23..5c6a6bb 100644 --- a/app/src/main/res/layout-land/activity_bowling_camera.xml +++ b/app/src/main/res/layout-land/activity_bowling_camera.xml @@ -229,6 +229,17 @@ app:layout_constraintBottom_toTopOf="@id/btn_switch_camera" app:layout_constraintEnd_toEndOf="@id/btn_record" /> + +