mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-05 01:03:57 +01:00
Convert upload dagger module to kotlin
This commit is contained in:
parent
f51b607312
commit
c3b4297cff
6 changed files with 50 additions and 66 deletions
|
|
@ -29,6 +29,7 @@ import fr.free.nrw.commons.settings.Prefs
|
|||
import fr.free.nrw.commons.upload.UploadController
|
||||
import fr.free.nrw.commons.upload.depicts.DepictsDao
|
||||
import fr.free.nrw.commons.utils.ConfigUtils.isBetaFlavour
|
||||
import fr.free.nrw.commons.utils.TimeProvider
|
||||
import fr.free.nrw.commons.wikidata.WikidataEditListener
|
||||
import fr.free.nrw.commons.wikidata.WikidataEditListenerImpl
|
||||
import io.reactivex.Scheduler
|
||||
|
|
@ -224,6 +225,11 @@ open class CommonsApplicationModule(private val applicationContext: Context) {
|
|||
fun providesContentResolver(context: Context): ContentResolver =
|
||||
context.contentResolver
|
||||
|
||||
@Provides
|
||||
fun provideTimeProvider(): TimeProvider {
|
||||
return TimeProvider(System::currentTimeMillis)
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val IO_THREAD: String = "io_thread"
|
||||
const val MAIN_THREAD: String = "main_thread"
|
||||
|
|
|
|||
|
|
@ -7,7 +7,9 @@ import fr.free.nrw.commons.auth.csrf.CsrfTokenClient
|
|||
import fr.free.nrw.commons.contributions.ChunkInfo
|
||||
import fr.free.nrw.commons.contributions.Contribution
|
||||
import fr.free.nrw.commons.contributions.ContributionDao
|
||||
import fr.free.nrw.commons.di.NetworkingModule
|
||||
import fr.free.nrw.commons.upload.worker.UploadWorker.NotificationUpdateProgressListener
|
||||
import fr.free.nrw.commons.utils.TimeProvider
|
||||
import fr.free.nrw.commons.wikidata.mwapi.MwException
|
||||
import io.reactivex.Observable
|
||||
import io.reactivex.disposables.CompositeDisposable
|
||||
|
|
@ -26,6 +28,7 @@ import java.util.concurrent.atomic.AtomicBoolean
|
|||
import java.util.concurrent.atomic.AtomicInteger
|
||||
import java.util.concurrent.atomic.AtomicReference
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Named
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
|
|
@ -33,7 +36,7 @@ class UploadClient
|
|||
@Inject
|
||||
constructor(
|
||||
private val uploadInterface: UploadInterface,
|
||||
private val csrfTokenClient: CsrfTokenClient,
|
||||
@Named(NetworkingModule.NAMED_COMMONS_CSRF) private val csrfTokenClient: CsrfTokenClient,
|
||||
private val pageContentsCreator: PageContentsCreator,
|
||||
private val fileUtilsWrapper: FileUtilsWrapper,
|
||||
private val gson: Gson,
|
||||
|
|
@ -278,11 +281,7 @@ class UploadClient
|
|||
Timber.e(throwable, "Exception occurred in uploading file from stash")
|
||||
Observable.error(throwable)
|
||||
}
|
||||
|
||||
fun interface TimeProvider {
|
||||
fun currentTimeMillis(): Long
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun canProcess(
|
||||
contributionDao: ContributionDao,
|
||||
|
|
|
|||
|
|
@ -1,58 +0,0 @@
|
|||
package fr.free.nrw.commons.upload;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import dagger.Binds;
|
||||
import dagger.Module;
|
||||
import dagger.Provides;
|
||||
import fr.free.nrw.commons.auth.csrf.CsrfTokenClient;
|
||||
import fr.free.nrw.commons.contributions.ContributionDao;
|
||||
import fr.free.nrw.commons.di.NetworkingModule;
|
||||
import fr.free.nrw.commons.upload.categories.CategoriesContract;
|
||||
import fr.free.nrw.commons.upload.categories.CategoriesPresenter;
|
||||
import fr.free.nrw.commons.upload.depicts.DepictsContract;
|
||||
import fr.free.nrw.commons.upload.depicts.DepictsPresenter;
|
||||
import fr.free.nrw.commons.upload.license.MediaLicenseContract;
|
||||
import fr.free.nrw.commons.upload.license.MediaLicensePresenter;
|
||||
import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailsContract;
|
||||
import fr.free.nrw.commons.upload.mediaDetails.UploadMediaPresenter;
|
||||
import javax.inject.Named;
|
||||
|
||||
/**
|
||||
* The Dagger Module for upload related presenters and (some other objects maybe in future)
|
||||
*/
|
||||
@Module
|
||||
public abstract class UploadModule {
|
||||
|
||||
@Binds
|
||||
public abstract UploadContract.UserActionListener bindHomePresenter(UploadPresenter
|
||||
presenter);
|
||||
|
||||
@Binds
|
||||
public abstract CategoriesContract.UserActionListener bindsCategoriesPresenter(
|
||||
CategoriesPresenter presenter);
|
||||
|
||||
@Binds
|
||||
public abstract MediaLicenseContract.UserActionListener bindsMediaLicensePresenter(
|
||||
MediaLicensePresenter
|
||||
presenter);
|
||||
|
||||
@Binds
|
||||
public abstract UploadMediaDetailsContract.UserActionListener bindsUploadMediaPresenter(
|
||||
UploadMediaPresenter
|
||||
presenter);
|
||||
|
||||
@Binds
|
||||
public abstract DepictsContract.UserActionListener bindsDepictsPresenter(
|
||||
DepictsPresenter
|
||||
presenter
|
||||
);
|
||||
|
||||
@Provides
|
||||
public static UploadClient provideUploadClient(final UploadInterface uploadInterface,
|
||||
@Named(NetworkingModule.NAMED_COMMONS_CSRF) final CsrfTokenClient csrfTokenClient,
|
||||
final PageContentsCreator pageContentsCreator, final FileUtilsWrapper fileUtilsWrapper,
|
||||
final Gson gson, final ContributionDao contributionDao) {
|
||||
return new UploadClient(uploadInterface, csrfTokenClient, pageContentsCreator,
|
||||
fileUtilsWrapper, gson, System::currentTimeMillis, contributionDao);
|
||||
}
|
||||
}
|
||||
33
app/src/main/java/fr/free/nrw/commons/upload/UploadModule.kt
Normal file
33
app/src/main/java/fr/free/nrw/commons/upload/UploadModule.kt
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
package fr.free.nrw.commons.upload
|
||||
|
||||
import dagger.Binds
|
||||
import dagger.Module
|
||||
import fr.free.nrw.commons.upload.categories.CategoriesContract
|
||||
import fr.free.nrw.commons.upload.categories.CategoriesPresenter
|
||||
import fr.free.nrw.commons.upload.depicts.DepictsContract
|
||||
import fr.free.nrw.commons.upload.depicts.DepictsPresenter
|
||||
import fr.free.nrw.commons.upload.license.MediaLicenseContract
|
||||
import fr.free.nrw.commons.upload.license.MediaLicensePresenter
|
||||
import fr.free.nrw.commons.upload.mediaDetails.UploadMediaDetailsContract
|
||||
import fr.free.nrw.commons.upload.mediaDetails.UploadMediaPresenter
|
||||
|
||||
/**
|
||||
* The Dagger Module for upload related presenters and (some other objects maybe in future)
|
||||
*/
|
||||
@Module
|
||||
abstract class UploadModule {
|
||||
@Binds
|
||||
abstract fun bindHomePresenter(presenter: UploadPresenter): UploadContract.UserActionListener
|
||||
|
||||
@Binds
|
||||
abstract fun bindsCategoriesPresenter(presenter: CategoriesPresenter): CategoriesContract.UserActionListener
|
||||
|
||||
@Binds
|
||||
abstract fun bindsMediaLicensePresenter(presenter: MediaLicensePresenter): MediaLicenseContract.UserActionListener
|
||||
|
||||
@Binds
|
||||
abstract fun bindsUploadMediaPresenter(presenter: UploadMediaPresenter): UploadMediaDetailsContract.UserActionListener
|
||||
|
||||
@Binds
|
||||
abstract fun bindsDepictsPresenter(presenter: DepictsPresenter): DepictsContract.UserActionListener
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
package fr.free.nrw.commons.utils
|
||||
|
||||
fun interface TimeProvider {
|
||||
fun currentTimeMillis(): Long
|
||||
}
|
||||
|
|
@ -8,14 +8,13 @@ import com.nhaarman.mockitokotlin2.anyOrNull
|
|||
import com.nhaarman.mockitokotlin2.argumentCaptor
|
||||
import com.nhaarman.mockitokotlin2.eq
|
||||
import com.nhaarman.mockitokotlin2.mock
|
||||
import com.nhaarman.mockitokotlin2.times
|
||||
import com.nhaarman.mockitokotlin2.whenever
|
||||
import fr.free.nrw.commons.CommonsApplication.Companion.DEFAULT_EDIT_SUMMARY
|
||||
import fr.free.nrw.commons.auth.csrf.CsrfTokenClient
|
||||
import fr.free.nrw.commons.contributions.ChunkInfo
|
||||
import fr.free.nrw.commons.contributions.Contribution
|
||||
import fr.free.nrw.commons.contributions.ContributionDao
|
||||
import fr.free.nrw.commons.upload.UploadClient.TimeProvider
|
||||
import fr.free.nrw.commons.utils.TimeProvider
|
||||
import fr.free.nrw.commons.wikidata.mwapi.MwException
|
||||
import fr.free.nrw.commons.wikidata.mwapi.MwServiceError
|
||||
import io.reactivex.Observable
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue