Skip to content

Commit

Permalink
Inject SwissTransferInjection's managers directly
Browse files Browse the repository at this point in the history
  • Loading branch information
LunarX committed Nov 4, 2024
1 parent 1e72ae8 commit 87caeb6
Show file tree
Hide file tree
Showing 5 changed files with 58 additions and 15 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
/*
* Infomaniak SwissTransfer - Android
* Copyright (C) 2024 Infomaniak Network SA
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.infomaniak.swisstransfer.di

import com.infomaniak.multiplatform_swisstransfer.SwissTransferInjection
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
import dagger.hilt.components.SingletonComponent
import javax.inject.Singleton

@Module
@InstallIn(SingletonComponent::class)
object SwissTransferInjectionModule {

@Provides
@Singleton
fun providesTransferManager(swissTransferInjection: SwissTransferInjection) = swissTransferInjection.transferManager

@Provides
@Singleton
fun providesAppSettingsManager(swissTransferInjection: SwissTransferInjection) = swissTransferInjection.appSettingsManager

@Provides
@Singleton
fun providesAccountManager(swissTransferInjection: SwissTransferInjection) = swissTransferInjection.accountManager

@Provides
@Singleton
fun providesUploadManager(swissTransferInjection: SwissTransferInjection) = swissTransferInjection.uploadManager

@Provides
@Singleton
fun providesSharedApiUrlCreator(swissTransferInjection: SwissTransferInjection) = swissTransferInjection.sharedApiUrlCreator
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ package com.infomaniak.swisstransfer.ui.screen.main.settings

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.infomaniak.multiplatform_swisstransfer.SwissTransferInjection
import com.infomaniak.multiplatform_swisstransfer.common.models.DownloadLimit
import com.infomaniak.multiplatform_swisstransfer.common.models.EmailLanguage
import com.infomaniak.multiplatform_swisstransfer.common.models.Theme
import com.infomaniak.multiplatform_swisstransfer.common.models.ValidityPeriod
import com.infomaniak.multiplatform_swisstransfer.managers.AppSettingsManager
import com.infomaniak.swisstransfer.di.IoDispatcher
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.CoroutineDispatcher
Expand All @@ -32,10 +32,9 @@ import javax.inject.Inject

@HiltViewModel
class SettingsViewModel @Inject constructor(
private val swissTransferInjection: SwissTransferInjection,
private val appSettingsManager: AppSettingsManager,
@IoDispatcher private val ioDispatcher: CoroutineDispatcher,
) : ViewModel() {
private val appSettingsManager inline get() = swissTransferInjection.appSettingsManager

val appSettingsFlow = appSettingsManager.appSettings

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,12 @@ import android.net.Uri
import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.infomaniak.multiplatform_swisstransfer.SwissTransferInjection
import com.infomaniak.multiplatform_swisstransfer.common.interfaces.upload.RemoteUploadFile
import com.infomaniak.multiplatform_swisstransfer.common.interfaces.upload.UploadFileSession
import com.infomaniak.multiplatform_swisstransfer.common.models.EmailLanguage
import com.infomaniak.multiplatform_swisstransfer.common.utils.mapToList
import com.infomaniak.multiplatform_swisstransfer.data.NewUploadSession
import com.infomaniak.multiplatform_swisstransfer.managers.UploadManager
import com.infomaniak.sentry.SentryLog
import com.infomaniak.swisstransfer.di.IoDispatcher
import com.infomaniak.swisstransfer.ui.screen.newtransfer.importfiles.components.TransferType
Expand All @@ -42,13 +42,11 @@ import javax.inject.Inject
class NewTransferViewModel @Inject constructor(
private val savedStateHandle: SavedStateHandle,
private val importationFilesManager: ImportationFilesManager,
private val swissTransferInjection: SwissTransferInjection,
private val uploadManager: UploadManager,
private val uploadWorkerScheduler: UploadWorker.Scheduler,
@IoDispatcher private val ioDispatcher: CoroutineDispatcher,
) : ViewModel() {

private val uploadManager inline get() = swissTransferInjection.uploadManager

@OptIn(FlowPreview::class)
val importedFilesDebounced = importationFilesManager.importedFiles
.debounce(50)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package com.infomaniak.swisstransfer.ui.screen.newtransfer.upload

import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.infomaniak.multiplatform_swisstransfer.SwissTransferInjection
import com.infomaniak.multiplatform_swisstransfer.managers.UploadManager
import com.infomaniak.swisstransfer.di.IoDispatcher
import com.infomaniak.swisstransfer.workers.UploadWorker
import dagger.hilt.android.lifecycle.HiltViewModel
Expand All @@ -33,11 +33,9 @@ import javax.inject.Inject
@HiltViewModel
class UploadProgressViewModel @Inject constructor(
private val uploadWorkerScheduler: UploadWorker.Scheduler,
private val swissTransferInjection: SwissTransferInjection,
private val uploadManager: UploadManager,
@IoDispatcher private val ioDispatcher: CoroutineDispatcher,
) : ViewModel() {
private val uploadManager inline get() = swissTransferInjection.uploadManager

val progress = uploadWorkerScheduler.trackUploadProgressFlow()
.flowOn(ioDispatcher)
.stateIn(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import android.content.Context
import androidx.compose.runtime.Immutable
import androidx.hilt.work.HiltWorker
import androidx.work.*
import com.infomaniak.multiplatform_swisstransfer.SwissTransferInjection
import com.infomaniak.multiplatform_swisstransfer.managers.UploadManager
import com.infomaniak.sentry.SentryLog
import com.infomaniak.swisstransfer.ui.screen.newtransfer.ImportLocalStorage
import dagger.assisted.Assisted
Expand All @@ -38,11 +38,9 @@ class UploadWorker @AssistedInject constructor(
@Assisted appContext: Context,
@Assisted params: WorkerParameters,
private val importLocalStorage: ImportLocalStorage,
private val swissTransferInjection: SwissTransferInjection,
private val uploadManager: UploadManager,
) : BaseCoroutineWorker(appContext, params) {

private val uploadManager inline get() = swissTransferInjection.uploadManager

private val fileChunkSizeManager by lazy {
FileChunkSizeManager(
chunkMinSize = EXPECTED_CHUNK_SIZE,
Expand Down

0 comments on commit 87caeb6

Please sign in to comment.