From 06e8b0f62837354ef4624badcf9694310e0d2e4c Mon Sep 17 00:00:00 2001 From: PruthiviRaj27 Date: Fri, 8 Sep 2023 20:05:10 +0530 Subject: [PATCH] temp --- .../testpress/course/network/CourseService.kt | 4 ++-- .../course/network/NetworkContentAttempt.kt | 2 ++ .../course/repository/QuizExamRepository.kt | 23 +++++++++++-------- .../in/testpress/course/ui/QuizActivity.kt | 2 +- .../course/viewmodels/QuizExamViewModel.kt | 3 ++- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/course/src/main/java/in/testpress/course/network/CourseService.kt b/course/src/main/java/in/testpress/course/network/CourseService.kt index 6f9d73cea..9bea2686f 100644 --- a/course/src/main/java/in/testpress/course/network/CourseService.kt +++ b/course/src/main/java/in/testpress/course/network/CourseService.kt @@ -34,7 +34,7 @@ interface CourseService { @PUT("{end_exam_url}") fun endContentAttempt( @Path(value = "end_exam_url", encoded = true) endExamUrlFrag: String? - ): RetrofitCall + ): RetrofitCall @GET("{contents_url}") fun getContents( @@ -87,7 +87,7 @@ class CourseNetwork(context: Context) : TestpressApiClient(context, TestpressSdk return getCourseService().getContentAttempts(url) } - fun endContentAttempt(url: String): RetrofitCall { + fun endContentAttempt(url: String): RetrofitCall { return getCourseService().endContentAttempt(url) } diff --git a/course/src/main/java/in/testpress/course/network/NetworkContentAttempt.kt b/course/src/main/java/in/testpress/course/network/NetworkContentAttempt.kt index e1e306dcf..e3e9bcaad 100644 --- a/course/src/main/java/in/testpress/course/network/NetworkContentAttempt.kt +++ b/course/src/main/java/in/testpress/course/network/NetworkContentAttempt.kt @@ -2,6 +2,7 @@ package `in`.testpress.course.network import `in`.testpress.course.domain.DomainContentAttempt import `in`.testpress.exam.network.NetworkAttempt +import `in`.testpress.exam.network.asGreenDaoModel import `in`.testpress.models.greendao.CourseAttempt data class NetworkContentAttempt( @@ -30,6 +31,7 @@ fun createContentAttempt(contentAttempt: NetworkContentAttempt): CourseAttempt { contentAttempt.userVideoId ) courseAttempt.chapterContent = contentAttempt.chapterContent?.asGreenDaoModel() + courseAttempt.assessment = contentAttempt.assessment?.asGreenDaoModel() return courseAttempt } diff --git a/course/src/main/java/in/testpress/course/repository/QuizExamRepository.kt b/course/src/main/java/in/testpress/course/repository/QuizExamRepository.kt index 4759d078e..83406e03d 100644 --- a/course/src/main/java/in/testpress/course/repository/QuizExamRepository.kt +++ b/course/src/main/java/in/testpress/course/repository/QuizExamRepository.kt @@ -28,9 +28,9 @@ open class QuizExamRepository(val context: Context) { val resourceContentAttempt: LiveData> get() = _resourceContentAttempt - var _resourceAttempt: MutableLiveData> = MutableLiveData() - val resourceAttempt: LiveData> - get() = _resourceAttempt + private var _endContentAttemptState: MutableLiveData> = MutableLiveData() + val endContentAttemptState: LiveData> + get() = _endContentAttemptState fun createContentAttempt(contentId: Long): LiveData> { courseNetwork.createContentAttempt(contentId) @@ -101,12 +101,13 @@ open class QuizExamRepository(val context: Context) { fun endExam(url: String, attemptId: Long) { courseNetwork.endContentAttempt(url) - .enqueue(object : TestpressCallback() { - override fun onSuccess(result: NetworkAttempt?) { - attemptDao.insertOrReplaceInTx(result?.asGreenDaoModel()) - val attempts = attemptDao.queryBuilder() - .where(AttemptDao.Properties.Id.eq(result!!.id)).list() - _resourceAttempt.postValue(Resource.success(attempts[0].asDomainModel())) + .enqueue(object : TestpressCallback() { + override fun onSuccess(result: NetworkContentAttempt?) { + courseAttemptDao.insertOrReplaceInTx(result?.asGreenDaoModel()) + attemptDao.insertOrReplaceInTx(result?.assessment?.asGreenDaoModel()) + val contentAttempts = courseAttemptDao.queryBuilder() + .where(CourseAttemptDao.Properties.Id.eq(result?.id)).list() + _endContentAttemptState.postValue(Resource.success(contentAttempts[0].asDomainContentAttempt())) } override fun onException(exception: TestpressException?) { @@ -114,7 +115,9 @@ open class QuizExamRepository(val context: Context) { .where(AttemptDao.Properties.Id.eq(attemptId)).list()[0] attempt.state = "COMPLETED" attemptDao.insertOrReplaceInTx(attempt) - _resourceAttempt.postValue(Resource.success(attempt.asDomainModel())) + val contentAttempts = courseAttemptDao.queryBuilder() + .where(CourseAttemptDao.Properties.AssessmentId.eq(attempt.id)).list() + _endContentAttemptState.postValue(Resource.success(contentAttempts[0].asDomainContentAttempt())) } }) } diff --git a/course/src/main/java/in/testpress/course/ui/QuizActivity.kt b/course/src/main/java/in/testpress/course/ui/QuizActivity.kt index a299d986a..6d1b9a64b 100644 --- a/course/src/main/java/in/testpress/course/ui/QuizActivity.kt +++ b/course/src/main/java/in/testpress/course/ui/QuizActivity.kt @@ -70,7 +70,7 @@ class QuizActivity : BaseToolBarActivity(), ShowQuizHandler, ExamEndHanlder, Que showEndExamAlert() } - viewModel.endExamState.observe(this, Observer { + viewModel.endContentAttemptState.observe(this, Observer { dialog.hide() when(it.status) { Status.SUCCESS -> { diff --git a/course/src/main/java/in/testpress/course/viewmodels/QuizExamViewModel.kt b/course/src/main/java/in/testpress/course/viewmodels/QuizExamViewModel.kt index 35aebdc3f..f55045fd9 100644 --- a/course/src/main/java/in/testpress/course/viewmodels/QuizExamViewModel.kt +++ b/course/src/main/java/in/testpress/course/viewmodels/QuizExamViewModel.kt @@ -7,7 +7,8 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.ViewModel class QuizExamViewModel(val repository: QuizExamRepository): ViewModel() { - val endExamState = repository.resourceAttempt + + val endContentAttemptState = repository.endContentAttemptState fun loadContentAttempt(id: Long): LiveData> { return repository.loadContentAttempt(id)