Skip to content

Commit 15110a3

Browse files
Okuro3499dogi
andauthored
courses: smoother step progress caching (fixes #13068) (#13079)
Co-authored-by: dogi <dogi@users.noreply.github.com>
1 parent 1b7fb04 commit 15110a3

4 files changed

Lines changed: 23 additions & 9 deletions

File tree

app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ android {
1212
applicationId "org.ole.planet.myplanet"
1313
minSdk = 26
1414
targetSdk = 36
15-
versionCode = 5356
16-
versionName = "0.53.56"
15+
versionCode = 5357
16+
versionName = "0.53.57"
1717
ndkVersion = '26.3.11579264'
1818
vectorDrawables.useSupportLibrary = true
1919
}

app/src/main/java/org/ole/planet/myplanet/ui/courses/CourseStepFragment.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

app/src/main/java/org/ole/planet/myplanet/ui/courses/TakeCourseFragment.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl
3838
lateinit var userSessionManager: UserSessionManager
3939
@Inject
4040
lateinit var coursesRepository: CoursesRepository
41+
private var courseId: String? = null
42+
private var userModel: RealmUser? = null
4143
private var currentCourse: RealmMyCourse? = null
4244
lateinit var steps: List<RealmCourseStep?>
4345
var position = 0
@@ -401,9 +403,6 @@ class TakeCourseFragment : Fragment(), ViewPager.OnPageChangeListener, View.OnCl
401403
private val isValidClickLeft: Boolean get() = binding.viewPager2.adapter != null && binding.viewPager2.currentItem > 0
402404

403405
companion object {
404-
var courseId: String? = null
405-
var userModel: RealmUser? = null
406-
407406
@JvmStatic
408407
fun newInstance(b: Bundle?): TakeCourseFragment {
409408
val takeCourseFragment = TakeCourseFragment()

app/src/main/java/org/ole/planet/myplanet/ui/dashboard/DashboardActivity.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -897,8 +897,9 @@ class DashboardActivity : DashboardElementActivity(), OnHomeItemClickListener, N
897897
}
898898

899899
override fun openCallFragment(f: Fragment) {
900-
val tag = f::class.java.simpleName
901-
openCallFragment(f,tag)
900+
val id = f.arguments?.getString("id")
901+
val tag = if (id != null) "${f::class.java.simpleName}_$id" else f::class.java.simpleName
902+
openCallFragment(f, tag)
902903
}
903904

904905
override fun openLibraryDetailFragment(library: RealmMyLibrary?) {

0 commit comments

Comments
 (0)