Skip to content

Commit 96b7795

Browse files
refactor: Move CourseContainerTab
1 parent e62b712 commit 96b7795

File tree

14 files changed

+29
-40
lines changed

14 files changed

+29
-40
lines changed

app/src/main/java/org/openedx/app/AppRouter.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import org.openedx.auth.presentation.restore.RestorePasswordFragment
99
import org.openedx.auth.presentation.signin.SignInFragment
1010
import org.openedx.auth.presentation.signup.SignUpFragment
1111
import org.openedx.core.FragmentViewType
12-
import org.openedx.core.presentation.course.CourseContainerTab
1312
import org.openedx.core.presentation.course.CourseViewMode
1413
import org.openedx.core.presentation.global.app_upgrade.AppUpgradeRouter
1514
import org.openedx.core.presentation.global.app_upgrade.UpgradeRequiredFragment
@@ -160,12 +159,12 @@ class AppRouter : AuthRouter, DiscoveryRouter, DashboardRouter, CourseRouter, Di
160159
courseId: String,
161160
courseTitle: String,
162161
enrollmentMode: String,
163-
requiredTab: CourseContainerTab,
162+
openDates: Boolean,
164163
openBlock: String
165164
) {
166165
replaceFragmentWithBackStack(
167166
fm,
168-
CourseContainerFragment.newInstance(courseId, courseTitle, enrollmentMode, requiredTab, openBlock)
167+
CourseContainerFragment.newInstance(courseId, courseTitle, enrollmentMode, openDates, openBlock)
169168
)
170169
}
171170

core/src/main/java/org/openedx/core/system/notifier/CourseNotifier.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ class CourseNotifier {
1818
suspend fun send(event: CalendarSyncEvent) = channel.emit(event)
1919
suspend fun send(event: CourseDatesShifted) = channel.emit(event)
2020
suspend fun send(event: CourseLoading) = channel.emit(event)
21-
suspend fun send(event: CourseRefresh) = channel.emit(event)
2221
suspend fun send(event: CourseOpenBlock) = channel.emit(event)
22+
suspend fun send(event: RefreshDates) = channel.emit(event)
23+
suspend fun send(event: RefreshDiscussions) = channel.emit(event)
2324
}

core/src/main/java/org/openedx/core/system/notifier/CourseRefresh.kt

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package org.openedx.core.system.notifier
2+
3+
object RefreshDates : CourseEvent
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
package org.openedx.core.system.notifier
2+
3+
object RefreshDiscussions : CourseEvent

course/src/main/java/org/openedx/course/presentation/container/CollapsingLayout.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ import androidx.compose.ui.unit.dp
6464
import kotlinx.coroutines.coroutineScope
6565
import kotlinx.coroutines.delay
6666
import kotlinx.coroutines.launch
67-
import org.openedx.core.presentation.course.CourseContainerTab
6867
import org.openedx.core.ui.RoundTabsBar
6968
import org.openedx.core.ui.displayCutoutForLandscape
7069
import org.openedx.core.ui.rememberWindowSize

course/src/main/java/org/openedx/course/presentation/container/CourseContainerFragment.kt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -53,9 +53,7 @@ import kotlinx.coroutines.launch
5353
import org.koin.androidx.compose.koinViewModel
5454
import org.koin.androidx.viewmodel.ext.android.viewModel
5555
import org.koin.core.parameter.parametersOf
56-
import org.openedx.core.extension.serializable
5756
import org.openedx.core.extension.takeIfNotEmpty
58-
import org.openedx.core.presentation.course.CourseContainerTab
5957
import org.openedx.core.presentation.global.viewBinding
6058
import org.openedx.core.ui.HandleUIMessage
6159
import org.openedx.core.ui.OfflineModeDialog
@@ -258,21 +256,21 @@ class CourseContainerFragment : Fragment(R.layout.fragment_course_container) {
258256
const val ARG_COURSE_ID = "courseId"
259257
const val ARG_TITLE = "title"
260258
const val ARG_ENROLLMENT_MODE = "enrollmentMode"
261-
const val ARG_REQUIRED_TAB = "requiredTab"
259+
const val ARG_OPEN_DATES = "open_dates"
262260
const val ARG_OPEN_BLOCK = "resume_block"
263261
fun newInstance(
264262
courseId: String,
265263
courseTitle: String,
266264
enrollmentMode: String,
267-
requiredTab: CourseContainerTab = CourseContainerTab.HOME,
265+
openDates: Boolean = false,
268266
openBlock: String = ""
269267
): CourseContainerFragment {
270268
val fragment = CourseContainerFragment()
271269
fragment.arguments = bundleOf(
272270
ARG_COURSE_ID to courseId,
273271
ARG_TITLE to courseTitle,
274272
ARG_ENROLLMENT_MODE to enrollmentMode,
275-
ARG_REQUIRED_TAB to requiredTab,
273+
ARG_OPEN_DATES to openDates,
276274
ARG_OPEN_BLOCK to openBlock
277275
)
278276
return fragment
@@ -304,7 +302,11 @@ fun CourseDashboard(
304302
val refreshing by viewModel.refreshing.collectAsState(true)
305303
val courseImage by viewModel.courseImage.collectAsState()
306304
val uiMessage by viewModel.uiMessage.collectAsState(null)
307-
val requiredTab = bundle.serializable<CourseContainerTab>(CourseContainerFragment.ARG_REQUIRED_TAB)
305+
val requiredTab = if (bundle.getBoolean(CourseContainerFragment.ARG_OPEN_DATES)) {
306+
CourseContainerTab.DATES
307+
} else {
308+
CourseContainerTab.HOME
309+
}
308310
val pagerState = rememberPagerState(
309311
initialPage = CourseContainerTab.entries.indexOf(requiredTab),
310312
pageCount = { CourseContainerTab.entries.size }

core/src/main/java/org/openedx/core/presentation/course/CourseContainerTab.kt renamed to course/src/main/java/org/openedx/course/presentation/container/CourseContainerTab.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.openedx.core.presentation.course
1+
package org.openedx.course.presentation.container
22

33
import androidx.annotation.StringRes
44
import androidx.compose.material.icons.Icons

course/src/main/java/org/openedx/course/presentation/container/CourseContainerViewModel.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import org.openedx.core.config.Config
2525
import org.openedx.core.data.storage.CorePreferences
2626
import org.openedx.core.exception.NoCachedDataException
2727
import org.openedx.core.extension.isInternetError
28-
import org.openedx.core.presentation.course.CourseContainerTab
2928
import org.openedx.core.system.ResourceManager
3029
import org.openedx.core.system.connection.NetworkConnection
3130
import org.openedx.core.system.notifier.CalendarSyncEvent.CheckCalendarSyncEvent
@@ -35,8 +34,9 @@ import org.openedx.core.system.notifier.CourseDatesShifted
3534
import org.openedx.core.system.notifier.CourseLoading
3635
import org.openedx.core.system.notifier.CourseNotifier
3736
import org.openedx.core.system.notifier.CourseOpenBlock
38-
import org.openedx.core.system.notifier.CourseRefresh
3937
import org.openedx.core.system.notifier.CourseStructureUpdated
38+
import org.openedx.core.system.notifier.RefreshDates
39+
import org.openedx.core.system.notifier.RefreshDiscussions
4040
import org.openedx.core.utils.TimeUtils
4141
import org.openedx.course.DatesShiftedSnackBar
4242
import org.openedx.course.R
@@ -228,13 +228,13 @@ class CourseContainerViewModel(
228228

229229
CourseContainerTab.DATES -> {
230230
viewModelScope.launch {
231-
courseNotifier.send(CourseRefresh(courseContainerTab))
231+
courseNotifier.send(RefreshDates)
232232
}
233233
}
234234

235235
CourseContainerTab.DISCUSSIONS -> {
236236
viewModelScope.launch {
237-
courseNotifier.send(CourseRefresh(courseContainerTab))
237+
courseNotifier.send(RefreshDiscussions)
238238
}
239239
}
240240

course/src/main/java/org/openedx/course/presentation/dates/CourseDatesViewModel.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ import org.openedx.core.domain.model.CourseStructure
2323
import org.openedx.core.extension.getSequentialBlocks
2424
import org.openedx.core.extension.getVerticalBlocks
2525
import org.openedx.core.extension.isInternetError
26-
import org.openedx.core.presentation.course.CourseContainerTab
2726
import org.openedx.core.system.ResourceManager
2827
import org.openedx.core.system.notifier.CalendarSyncEvent.CheckCalendarSyncEvent
2928
import org.openedx.core.system.notifier.CalendarSyncEvent.CreateCalendarSyncEvent
3029
import org.openedx.core.system.notifier.CourseDatesShifted
3130
import org.openedx.core.system.notifier.CourseLoading
3231
import org.openedx.core.system.notifier.CourseNotifier
33-
import org.openedx.core.system.notifier.CourseRefresh
32+
import org.openedx.core.system.notifier.RefreshDates
3433
import org.openedx.course.domain.interactor.CourseInteractor
3534
import org.openedx.course.presentation.CourseAnalytics
3635
import org.openedx.course.presentation.CourseAnalyticsEvent
@@ -88,11 +87,7 @@ class CourseDatesViewModel(
8887
_calendarSyncUIState.update { it.copy(isSynced = event.isSynced) }
8988
}
9089

91-
is CourseRefresh -> {
92-
if (event.courseContainerTab == CourseContainerTab.DATES) {
93-
loadingCourseDatesInternal()
94-
}
95-
}
90+
is RefreshDates -> loadingCourseDatesInternal()
9691
}
9792
}
9893
}

0 commit comments

Comments
 (0)