diff --git a/app/build.gradle b/app/build.gradle
index 18f94621..7308002d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -5,7 +5,7 @@ buildscript {
mavenCentral()
}
dependencies {
- classpath 'com.android.tools.build:gradle:8.5.1'
+ classpath 'com.android.tools.build:gradle:8.11.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.20"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:1.9.20"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 837d337b..b9159a40 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -149,6 +149,9 @@
+
diff --git a/app/src/main/java/deakin/gopher/guardian/PatientExercisePortalFragment.kt b/app/src/main/java/deakin/gopher/guardian/PatientExercisePortalFragment.kt
index f2baefe2..63157263 100644
--- a/app/src/main/java/deakin/gopher/guardian/PatientExercisePortalFragment.kt
+++ b/app/src/main/java/deakin/gopher/guardian/PatientExercisePortalFragment.kt
@@ -7,8 +7,11 @@ import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
-import androidx.cardview.widget.CardView
import androidx.fragment.app.Fragment
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import deakin.gopher.guardian.adapter.ExerciseAdapter
+import deakin.gopher.guardian.model.ExerciseItem
/**
* Fragment that handles both the exercise portal and detail views
@@ -16,6 +19,8 @@ import androidx.fragment.app.Fragment
class PatientExercisePortalFragment : Fragment() {
private var currentExerciseType: String? = null
private var currentTabState: TabState = TabState.TO_DO
+ private lateinit var adapter: ExerciseAdapter
+ private lateinit var recyclerView: RecyclerView
enum class TabState {
TO_DO,
@@ -23,12 +28,18 @@ class PatientExercisePortalFragment : Fragment() {
COMPLETED,
}
+ private val allExercises =
+ listOf(
+ ExerciseItem("flexibility", "Flexibility", R.drawable.stretching),
+ ExerciseItem("strength", "Strength", R.drawable.walking2),
+ ExerciseItem("breathing", "Breathing", R.drawable.breathing),
+ ExerciseItem("balance", "Balance", R.drawable.balance),
+ ExerciseItem("cardio", "Cardio", R.drawable.walking2),
+ )
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
-
- arguments?.let {
- currentExerciseType = it.getString("exercise_type")
- }
+ currentExerciseType = arguments?.getString("exercise_type")
}
override fun onCreateView(
@@ -45,9 +56,9 @@ class PatientExercisePortalFragment : Fragment() {
when (currentExerciseType) {
"flexibility" -> R.layout.activity_exercise_flexibility_module
"strength" -> R.layout.activity_exercise_strength_module
- // "breathing" -> R.layout.activity_exercise_breathing_module //PR not yet approved
- // "balance" -> R.layout.activity_exercise_balance_module //PR not yet approved
"cardio" -> R.layout.activity_exercise_cardio_module
+// "breathing" -> R.layout.activity_exercise_breathing //PR not yet approved
+// "balance" -> R.layout.activity_exercise_balance //PR not yet approved
else -> R.layout.activity_exercise_flexibility_module
}
val view = inflater.inflate(layoutResId, container, false)
@@ -56,142 +67,80 @@ class PatientExercisePortalFragment : Fragment() {
}
}
- override fun onResume() {
- super.onResume()
-
- if (currentExerciseType == null) {
- view?.let { updateExerciseVisibility(it, currentTabState) }
- }
- }
-
private fun setupPortalView(view: View) {
- try {
- currentTabState = TabState.TO_DO
-
- view.findViewById(R.id.flexibilityCard)?.setOnClickListener {
- navigateToExercise("flexibility")
- }
-
- view.findViewById(R.id.strengthCard)?.setOnClickListener {
- navigateToExercise("strength")
- }
-
- view.findViewById(R.id.breathingCard)?.setOnClickListener {
- navigateToExercise("breathing")
- }
-
- view.findViewById(R.id.balanceCard)?.setOnClickListener {
- navigateToExercise("balance")
- }
-
- view.findViewById(R.id.cardioCard)?.setOnClickListener {
- navigateToExercise("cardio")
- }
+ recyclerView = view.findViewById(R.id.exerciseRecyclerView)
+ recyclerView.layoutManager = GridLayoutManager(context, 2)
- view.findViewById(R.id.tabToDo)?.setOnClickListener {
- setActiveTab(view, it as TextView)
- currentTabState = TabState.TO_DO
- updateExerciseVisibility(view, TabState.TO_DO)
+ adapter =
+ ExerciseAdapter(emptyList()) { item ->
+ navigateToExercise(item.type)
}
+ recyclerView.adapter = adapter
- view.findViewById(R.id.tabInProgress)?.setOnClickListener {
- setActiveTab(view, it as TextView)
- currentTabState = TabState.IN_PROGRESS
- updateExerciseVisibility(view, TabState.IN_PROGRESS)
- }
-
- view.findViewById(R.id.tabCompleted)?.setOnClickListener {
- setActiveTab(view, it as TextView)
- currentTabState = TabState.COMPLETED
- updateExerciseVisibility(view, TabState.COMPLETED)
- }
+ view.findViewById(R.id.tabToDo)?.setOnClickListener {
+ setActiveTab(view, it as TextView)
+ currentTabState = TabState.TO_DO
+ updateRecyclerView()
+ }
- view.findViewById