@@ -56,6 +56,7 @@ class CourseStepFragment : BaseContainerFragment(), ImageCaptureCallback {
5656 private var saveInProgress: Job ? = null
5757 private var loadDataJob: Job ? = null
5858 private var inlineResourceAdapter: InlineResourceAdapter ? = null
59+ private var pendingProgressSave = false
5960
6061 override fun onCreate (savedInstanceState : Bundle ? ) {
6162 super .onCreate(savedInstanceState)
@@ -151,8 +152,12 @@ class CourseStepFragment : BaseContainerFragment(), ImageCaptureCallback {
151152 textWithSpans.removeSpan(urlSpan)
152153 }
153154 }
154- if (isVisible && data.userHasCourse) {
155- launchSaveCourseProgress()
155+ if (data.userHasCourse) {
156+ if (isResumed) {
157+ launchSaveCourseProgress()
158+ } else {
159+ pendingProgressSave = true
160+ }
156161 }
157162 }
158163 }
@@ -250,6 +255,14 @@ class CourseStepFragment : BaseContainerFragment(), ImageCaptureCallback {
250255 }
251256 }
252257
258+ override fun onResume () {
259+ super .onResume()
260+ if (pendingProgressSave) {
261+ pendingProgressSave = false
262+ launchSaveCourseProgress()
263+ }
264+ }
265+
253266 override fun setMenuVisibility (visible : Boolean ) {
254267 super .setMenuVisibility(visible)
255268 if (! isAdded || ! ::step.isInitialized) return
@@ -298,6 +311,7 @@ class CourseStepFragment : BaseContainerFragment(), ImageCaptureCallback {
298311 override fun onDestroyView () {
299312 super .onDestroyView()
300313 loadDataJob?.cancel()
314+ pendingProgressSave = false
301315 CameraUtils .release()
302316 }
303317}
0 commit comments