diff --git a/app/build.gradle b/app/build.gradle index 4283c7cd9c4..a4663df3479 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "org.ole.planet.myplanet" minSdk = 26 targetSdk = 36 - versionCode = 4772 - versionName = "0.47.72" + versionCode = 4773 + versionName = "0.47.73" ndkVersion = '26.3.11579264' vectorDrawables.useSupportLibrary = true } diff --git a/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepository.kt b/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepository.kt index 90b48d1d0d0..5577dac018d 100644 --- a/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepository.kt +++ b/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepository.kt @@ -47,4 +47,9 @@ interface CoursesRepository { suspend fun getCourseStepData(stepId: String, userId: String?): CourseStepData suspend fun getMyCourseIds(userId: String): JsonArray suspend fun removeCourseFromShelf(courseId: String, userId: String) + suspend fun logCourseVisit(courseId: String, title: String, userId: String) + suspend fun getCurrentProgress(steps: List?, userId: String?, courseId: String?): Int + suspend fun getCourseProgress(userId: String?): java.util.HashMap + suspend fun isStepCompleted(stepId: String?, userId: String?): Boolean + suspend fun hasUnfinishedSurveys(courseId: String, userId: String?): Boolean } diff --git a/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepositoryImpl.kt b/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepositoryImpl.kt index 724635b647f..a3d67e3d31b 100644 --- a/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepositoryImpl.kt +++ b/app/src/main/java/org/ole/planet/myplanet/repository/CoursesRepositoryImpl.kt @@ -29,7 +29,9 @@ import org.ole.planet.myplanet.utils.JsonUtils class CoursesRepositoryImpl @Inject constructor( databaseService: DatabaseService, - private val progressRepository: ProgressRepository + private val progressRepository: ProgressRepository, + private val activitiesRepository: ActivitiesRepository, + private val submissionsRepository: SubmissionsRepository ) : RealmRepository(databaseService), CoursesRepository { override suspend fun getAllCourses(): List { @@ -404,4 +406,24 @@ class CoursesRepositoryImpl @Inject constructor( override suspend fun removeCourseFromShelf(courseId: String, userId: String) { leaveCourse(courseId, userId) } + + override suspend fun logCourseVisit(courseId: String, title: String, userId: String) { + activitiesRepository.logCourseVisit(courseId, title, userId) + } + + override suspend fun getCurrentProgress(steps: List?, userId: String?, courseId: String?): Int { + return progressRepository.getCurrentProgress(steps, userId, courseId) + } + + override suspend fun getCourseProgress(userId: String?): java.util.HashMap { + return progressRepository.getCourseProgress(userId) + } + + override suspend fun isStepCompleted(stepId: String?, userId: String?): Boolean { + return submissionsRepository.isStepCompleted(stepId, userId) + } + + override suspend fun hasUnfinishedSurveys(courseId: String, userId: String?): Boolean { + return submissionsRepository.hasUnfinishedSurveys(courseId, userId) + } } diff --git a/app/src/main/java/org/ole/planet/myplanet/ui/courses/TakeCourseFragment.kt b/app/src/main/java/org/ole/planet/myplanet/ui/courses/TakeCourseFragment.kt index a9a8fd6fcfb..ae9e3585096 100644 --- a/app/src/main/java/org/ole/planet/myplanet/ui/courses/TakeCourseFragment.kt +++ b/app/src/main/java/org/ole/planet/myplanet/ui/courses/TakeCourseFragment.kt @@ -43,12 +43,6 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl lateinit var userSessionManager: UserSessionManager @Inject lateinit var coursesRepository: CoursesRepository - @Inject - lateinit var submissionsRepository: SubmissionsRepository - @Inject - lateinit var progressRepository: ProgressRepository - @Inject - lateinit var activitiesRepository: ActivitiesRepository private var currentCourse: RealmMyCourse? = null lateinit var steps: List var position = 0 @@ -182,7 +176,7 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl } lifecycleScope.launch { - val currentProgress = progressRepository.getCurrentProgress(steps, userModel?.id, courseId) + val currentProgress = coursesRepository.getCurrentProgress(steps, userModel?.id, courseId) currentCourseProgress = currentProgress if (currentProgress < steps.size) { binding.courseProgress.secondaryProgress = currentProgress + 1 @@ -221,7 +215,7 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl detachedCurrentCourse?.courseId?.let { courseId -> detachedCurrentCourse.courseTitle?.let { courseTitle -> detachedUserModel?.name?.let { userName -> - activitiesRepository.logCourseVisit( + coursesRepository.logCourseVisit( courseId, courseTitle, userName @@ -265,7 +259,7 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl private fun changeNextButtonState(position: Int) { if (courseId == "4e6b78800b6ad18b4e8b0e1e38a98cac") { lifecycleScope.launch { - if (submissionsRepository.isStepCompleted(steps[position - 1]?.id, userModel?.id)) { + if (coursesRepository.isStepCompleted(steps[position - 1]?.id, userModel?.id)) { binding.nextStep.isClickable = true binding.nextStep.setTextColor(ContextCompat.getColor(requireContext(), R.color.md_white_1000)) } else { @@ -369,13 +363,13 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl private suspend fun getCourseProgress(): Int { val user = userSessionManager.getUserModel() - val courseProgressMap = progressRepository.getCourseProgress(user?.id) + val courseProgressMap = coursesRepository.getCourseProgress(user?.id) return courseProgressMap[courseId]?.asJsonObject?.get("current")?.asInt ?: 0 } private fun checkSurveyCompletion() = viewLifecycleOwner.lifecycleScope.launch { val hasUnfinishedSurvey = courseId?.let { - submissionsRepository.hasUnfinishedSurveys(it, userModel?.id) + coursesRepository.hasUnfinishedSurveys(it, userModel?.id) } ?: false if (hasUnfinishedSurvey && courseId == "4e6b78800b6ad18b4e8b0e1e38a98cac") {