Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
4 changes: 2 additions & 2 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ android {
applicationId = "org.ole.planet.myplanet.lite"
minSdk = 28
targetSdk = 36
versionCode = 117
versionName = "0.1.17"
versionCode = 118
versionName = "0.1.18"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
buildConfigField("String", "PLANET_BASE_URL", "\"http://10.82.1.30/\"")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,13 +79,29 @@ class DashboardCoursePageFragment : Fragment(R.layout.fragment_dashboard_courses
baseUrl = DashboardServerPreferences.getServerBaseUrl(requireContext())
credentials = ProfileCredentialsStore.getStoredCredentials(requireContext())

setupViews(view)
setupAdapter()
setupRecyclerView()
setupRefreshLayout()

registerJoinListener()
maybeHandlePendingJoinRefresh()

performInitialLoad()
setupPagination()
}

private fun setupViews(view: View) {
recyclerView = view.findViewById(R.id.dashboardCoursesRecycler)
emptyView = view.findViewById(R.id.dashboardCoursesEmptyView)
refreshLayout = view.findViewById(R.id.dashboardCoursesRefresh)
loadingOverlay = view.findViewById(R.id.dashboardCoursesLoadingOverlay)
courseCategories = listOf(
CourseCategory(id = null, name = getString(R.string.dashboard_courses_category_all))
)
}

private fun setupAdapter() {
adapter = CourseAdapter(
showProgress = tabPosition == 0,
showDownloadButton = tabPosition == 0,
Expand All @@ -111,18 +127,6 @@ class DashboardCoursePageFragment : Fragment(R.layout.fragment_dashboard_courses
confirmDeleteDownloadedCourse(course)
}
}
val spanCount = 2
val layoutManager = GridLayoutManager(requireContext(), spanCount)
layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
return if (adapter.isHeader(position)) spanCount else 1
}
}

recyclerView.layoutManager = layoutManager
recyclerView.adapter = adapter
recyclerView.addItemDecoration(SpacingDecoration(spanCount))

adapter.onCourseClick = { course ->
val isEnrolledCourse = tabPosition == 0 || myCourseIds.contains(course.id)
DashboardCourseDetailsBottomSheet.show(
Expand All @@ -144,7 +148,23 @@ class DashboardCoursePageFragment : Fragment(R.layout.fragment_dashboard_courses
}
)
}
}

private fun setupRecyclerView() {
val spanCount = 2
val layoutManager = GridLayoutManager(requireContext(), spanCount)
layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() {
override fun getSpanSize(position: Int): Int {
return if (adapter.isHeader(position)) spanCount else 1
}
}

recyclerView.layoutManager = layoutManager
recyclerView.adapter = adapter
recyclerView.addItemDecoration(SpacingDecoration(spanCount))
}

private fun setupRefreshLayout() {
refreshLayout.setOnRefreshListener {
refreshLayout.isRefreshing = false
showLoadingOverlay(true)
Expand All @@ -156,11 +176,9 @@ class DashboardCoursePageFragment : Fragment(R.layout.fragment_dashboard_courses
refreshTeamCourses(adapter, refreshLayout, forceReload = true)
}
}
}

registerJoinListener()

maybeHandlePendingJoinRefresh()

private fun performInitialLoad() {
showLoadingOverlay(true)
if (tabPosition == 0) {
refreshUserCourses(adapter, refreshLayout)
Expand All @@ -171,7 +189,9 @@ class DashboardCoursePageFragment : Fragment(R.layout.fragment_dashboard_courses
}

loadCourseCategories()
}

private fun setupPagination() {
if (tabPosition == 1) {
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
Expand Down
Loading