Skip to content

Commit 2e4ce9d

Browse files
feat: downloading logic
1 parent e087aba commit 2e4ce9d

File tree

46 files changed

+988
-561
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+988
-561
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,11 @@ import org.openedx.auth.presentation.logistration.LogistrationFragment
2727
import org.openedx.auth.presentation.signin.SignInFragment
2828
import org.openedx.core.ApiConstants
2929
import org.openedx.core.data.storage.CorePreferences
30+
import org.openedx.core.presentation.dialog.downloaddialog.DownloadDialogManager
3031
import org.openedx.core.presentation.global.InsetHolder
3132
import org.openedx.core.presentation.global.WindowSizeHolder
3233
import org.openedx.core.utils.Logger
3334
import org.openedx.core.worker.CalendarSyncScheduler
34-
import org.openedx.course.presentation.download.DownloadDialogManager
3535
import org.openedx.foundation.extension.requestApplyInsetsWhenAttached
3636
import org.openedx.foundation.presentation.WindowSize
3737
import org.openedx.foundation.presentation.WindowType

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import org.openedx.core.adapter.NavigationFragmentAdapter
1717
import org.openedx.core.presentation.global.appupgrade.UpgradeRequiredFragment
1818
import org.openedx.core.presentation.global.viewBinding
1919
import org.openedx.discovery.presentation.DiscoveryRouter
20-
import org.openedx.downloads.presentation.dates.DownloadsFragment
20+
import org.openedx.downloads.presentation.download.DownloadsFragment
2121
import org.openedx.learn.presentation.LearnFragment
2222
import org.openedx.learn.presentation.LearnTab
2323
import org.openedx.profile.presentation.profile.ProfileFragment

app/src/main/java/org/openedx/app/di/AppModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import org.openedx.core.module.download.FileDownloader
4242
import org.openedx.core.presentation.CoreAnalytics
4343
import org.openedx.core.presentation.dialog.appreview.AppReviewAnalytics
4444
import org.openedx.core.presentation.dialog.appreview.AppReviewManager
45+
import org.openedx.core.presentation.dialog.downloaddialog.DownloadDialogManager
4546
import org.openedx.core.presentation.global.AppData
4647
import org.openedx.core.presentation.global.WhatsNewGlobalManager
4748
import org.openedx.core.presentation.global.appupgrade.AppUpgradeRouter
@@ -58,7 +59,6 @@ import org.openedx.core.worker.CalendarSyncScheduler
5859
import org.openedx.course.data.storage.CoursePreferences
5960
import org.openedx.course.presentation.CourseAnalytics
6061
import org.openedx.course.presentation.CourseRouter
61-
import org.openedx.course.presentation.download.DownloadDialogManager
6262
import org.openedx.course.utils.ImageProcessor
6363
import org.openedx.course.worker.OfflineProgressSyncScheduler
6464
import org.openedx.dashboard.presentation.DashboardAnalytics

app/src/main/java/org/openedx/app/di/ScreenModule.kt

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import org.openedx.auth.presentation.signin.SignInViewModel
1313
import org.openedx.auth.presentation.signup.SignUpViewModel
1414
import org.openedx.core.Validator
1515
import org.openedx.core.domain.interactor.CalendarInteractor
16+
import org.openedx.core.domain.interactor.ICourseInteractor
1617
import org.openedx.core.presentation.dialog.selectorbottomsheet.SelectDialogViewModel
1718
import org.openedx.core.presentation.settings.video.VideoQualityViewModel
1819
import org.openedx.core.repository.CalendarRepository
@@ -56,7 +57,7 @@ import org.openedx.discussion.presentation.threads.DiscussionThreadsViewModel
5657
import org.openedx.discussion.presentation.topics.DiscussionTopicsViewModel
5758
import org.openedx.downloads.data.repository.DownloadRepository
5859
import org.openedx.downloads.domain.interactor.DownloadInteractor
59-
import org.openedx.downloads.presentation.dates.DownloadsViewModel
60+
import org.openedx.downloads.presentation.download.DownloadsViewModel
6061
import org.openedx.foundation.presentation.WindowSize
6162
import org.openedx.learn.presentation.LearnViewModel
6263
import org.openedx.profile.data.repository.ProfileRepository
@@ -232,6 +233,7 @@ val screenModule = module {
232233

233234
single { CourseRepository(get(), get(), get(), get(), get()) }
234235
factory { CourseInteractor(get()) }
236+
single<ICourseInteractor> { get<CourseInteractor>() }
235237

236238
viewModel { (pathId: String, infoType: String) ->
237239
CourseInfoViewModel(
@@ -504,7 +506,8 @@ val screenModule = module {
504506
DownloadRepository(
505507
api = get(),
506508
corePreferences = get(),
507-
dao = get()
509+
dao = get(),
510+
courseDao = get()
508511
)
509512
}
510513
viewModel {
@@ -513,7 +516,14 @@ val screenModule = module {
513516
networkConnection = get(),
514517
interactor = get(),
515518
resourceManager = get(),
516-
config = get()
519+
config = get(),
520+
preferencesManager = get(),
521+
coreAnalytics = get(),
522+
downloadDao = get(),
523+
workerController = get(),
524+
downloadHelper = get(),
525+
downloadDialogManager = get(),
526+
fileUtil = get()
517527
)
518528
}
519529
}

app/src/main/java/org/openedx/app/room/AppDatabase.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import org.openedx.core.data.model.room.CourseStructureEntity
99
import org.openedx.core.data.model.room.DownloadCoursePreview
1010
import org.openedx.core.data.model.room.OfflineXBlockProgress
1111
import org.openedx.core.data.model.room.discovery.EnrolledCourseEntity
12+
import org.openedx.core.data.storage.CourseDao
1213
import org.openedx.core.module.db.CalendarDao
1314
import org.openedx.core.module.db.DownloadDao
1415
import org.openedx.core.module.db.DownloadModelEntity
1516
import org.openedx.course.data.storage.CourseConverter
16-
import org.openedx.course.data.storage.CourseDao
1717
import org.openedx.dashboard.data.DashboardDao
1818
import org.openedx.discovery.data.converter.DiscoveryConverter
1919
import org.openedx.discovery.data.model.room.CourseEntity

app/src/main/java/org/openedx/app/room/DatabaseManager.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import kotlinx.coroutines.CoroutineScope
44
import kotlinx.coroutines.Dispatchers
55
import kotlinx.coroutines.launch
66
import org.openedx.core.DatabaseManager
7+
import org.openedx.core.data.storage.CourseDao
78
import org.openedx.core.module.db.DownloadDao
8-
import org.openedx.course.data.storage.CourseDao
99
import org.openedx.dashboard.data.DashboardDao
1010
import org.openedx.discovery.data.storage.DiscoveryDao
1111

course/src/main/java/org/openedx/course/data/storage/CourseDao.kt renamed to core/src/main/java/org/openedx/core/data/storage/CourseDao.kt

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

33
import androidx.room.Dao
44
import androidx.room.Insert
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.openedx.core.domain.interactor
2+
3+
import org.openedx.core.domain.model.CourseStructure
4+
import org.openedx.core.module.db.DownloadModel
5+
6+
interface ICourseInteractor {
7+
suspend fun getCourseStructure(
8+
courseId: String,
9+
isNeedRefresh: Boolean = false
10+
): CourseStructure
11+
12+
suspend fun getCourseStructureFromCache(courseId: String): CourseStructure
13+
14+
suspend fun getAllDownloadModels(): List<DownloadModel>
15+
}

core/src/main/java/org/openedx/core/domain/model/Block.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ data class Block(
8181
return count
8282
}
8383

84+
fun getFileSize(): Long {
85+
return when {
86+
type == BlockType.VIDEO -> downloadModel?.size ?: 0L
87+
isxBlock -> offlineDownload?.fileSize ?: 0L
88+
else -> 0L
89+
}
90+
}
91+
8492
val isVideoBlock get() = type == BlockType.VIDEO
8593
val isDiscussionBlock get() = type == BlockType.DISCUSSION
8694
val isHTMLBlock get() = type == BlockType.HTML

course/src/main/java/org/openedx/course/domain/model/DownloadDialogResource.kt renamed to core/src/main/java/org/openedx/core/domain/model/DownloadDialogResource.kt

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

33
import androidx.compose.ui.graphics.painter.Painter
44

0 commit comments

Comments
 (0)