Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,7 @@ interface CoursesRepository {
suspend fun getCourseStepData(stepId: String, userId: String?): CourseStepData
suspend fun getMyCourseIds(userId: String): JsonArray
suspend fun removeCourseFromShelf(courseId: String, userId: String)
fun getCourseActivities(): ActivitiesRepository
fun getCourseProgress(): ProgressRepository
fun getCourseSubmissions(): SubmissionsRepository
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<RealmMyCourse> {
Expand Down Expand Up @@ -404,4 +406,16 @@ class CoursesRepositoryImpl @Inject constructor(
override suspend fun removeCourseFromShelf(courseId: String, userId: String) {
leaveCourse(courseId, userId)
}

override fun getCourseActivities(): ActivitiesRepository {
return activitiesRepository
}

override fun getCourseProgress(): ProgressRepository {
return progressRepository
}

override fun getCourseSubmissions(): SubmissionsRepository {
return submissionsRepository
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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<RealmCourseStep?>
var position = 0
Expand Down Expand Up @@ -182,7 +176,7 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl
}

lifecycleScope.launch {
val currentProgress = progressRepository.getCurrentProgress(steps, userModel?.id, courseId)
val currentProgress = coursesRepository.getCourseProgress().getCurrentProgress(steps, userModel?.id, courseId)
currentCourseProgress = currentProgress
if (currentProgress < steps.size) {
binding.courseProgress.secondaryProgress = currentProgress + 1
Expand Down Expand Up @@ -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.getCourseActivities().logCourseVisit(
courseId,
courseTitle,
userName
Expand Down Expand Up @@ -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.getCourseSubmissions().isStepCompleted(steps[position - 1]?.id, userModel?.id)) {
binding.nextStep.isClickable = true
binding.nextStep.setTextColor(ContextCompat.getColor(requireContext(), R.color.md_white_1000))
} else {
Expand Down Expand Up @@ -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().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.getCourseSubmissions().hasUnfinishedSurveys(it, userModel?.id)
} ?: false

if (hasUnfinishedSurvey && courseId == "4e6b78800b6ad18b4e8b0e1e38a98cac") {
Expand Down