mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-05 09:13:55 +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.UploadController
|
||||||
import fr.free.nrw.commons.upload.depicts.DepictsDao
|
import fr.free.nrw.commons.upload.depicts.DepictsDao
|
||||||
import fr.free.nrw.commons.utils.ConfigUtils.isBetaFlavour
|
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.WikidataEditListener
|
||||||
import fr.free.nrw.commons.wikidata.WikidataEditListenerImpl
|
import fr.free.nrw.commons.wikidata.WikidataEditListenerImpl
|
||||||
import io.reactivex.Scheduler
|
import io.reactivex.Scheduler
|
||||||
|
|
@ -224,6 +225,11 @@ open class CommonsApplicationModule(private val applicationContext: Context) {
|
||||||
fun providesContentResolver(context: Context): ContentResolver =
|
fun providesContentResolver(context: Context): ContentResolver =
|
||||||
context.contentResolver
|
context.contentResolver
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
fun provideTimeProvider(): TimeProvider {
|
||||||
|
return TimeProvider(System::currentTimeMillis)
|
||||||
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
const val IO_THREAD: String = "io_thread"
|
const val IO_THREAD: String = "io_thread"
|
||||||
const val MAIN_THREAD: String = "main_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.ChunkInfo
|
||||||
import fr.free.nrw.commons.contributions.Contribution
|
import fr.free.nrw.commons.contributions.Contribution
|
||||||
import fr.free.nrw.commons.contributions.ContributionDao
|
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.upload.worker.UploadWorker.NotificationUpdateProgressListener
|
||||||
|
import fr.free.nrw.commons.utils.TimeProvider
|
||||||
import fr.free.nrw.commons.wikidata.mwapi.MwException
|
import fr.free.nrw.commons.wikidata.mwapi.MwException
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
import io.reactivex.disposables.CompositeDisposable
|
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.AtomicInteger
|
||||||
import java.util.concurrent.atomic.AtomicReference
|
import java.util.concurrent.atomic.AtomicReference
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import javax.inject.Named
|
||||||
import javax.inject.Singleton
|
import javax.inject.Singleton
|
||||||
|
|
||||||
@Singleton
|
@Singleton
|
||||||
|
|
@ -33,7 +36,7 @@ class UploadClient
|
||||||
@Inject
|
@Inject
|
||||||
constructor(
|
constructor(
|
||||||
private val uploadInterface: UploadInterface,
|
private val uploadInterface: UploadInterface,
|
||||||
private val csrfTokenClient: CsrfTokenClient,
|
@Named(NetworkingModule.NAMED_COMMONS_CSRF) private val csrfTokenClient: CsrfTokenClient,
|
||||||
private val pageContentsCreator: PageContentsCreator,
|
private val pageContentsCreator: PageContentsCreator,
|
||||||
private val fileUtilsWrapper: FileUtilsWrapper,
|
private val fileUtilsWrapper: FileUtilsWrapper,
|
||||||
private val gson: Gson,
|
private val gson: Gson,
|
||||||
|
|
@ -278,10 +281,6 @@ class UploadClient
|
||||||
Timber.e(throwable, "Exception occurred in uploading file from stash")
|
Timber.e(throwable, "Exception occurred in uploading file from stash")
|
||||||
Observable.error(throwable)
|
Observable.error(throwable)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun interface TimeProvider {
|
|
||||||
fun currentTimeMillis(): Long
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun canProcess(
|
private fun canProcess(
|
||||||
|
|
|
||||||
|
|
@ -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.argumentCaptor
|
||||||
import com.nhaarman.mockitokotlin2.eq
|
import com.nhaarman.mockitokotlin2.eq
|
||||||
import com.nhaarman.mockitokotlin2.mock
|
import com.nhaarman.mockitokotlin2.mock
|
||||||
import com.nhaarman.mockitokotlin2.times
|
|
||||||
import com.nhaarman.mockitokotlin2.whenever
|
import com.nhaarman.mockitokotlin2.whenever
|
||||||
import fr.free.nrw.commons.CommonsApplication.Companion.DEFAULT_EDIT_SUMMARY
|
import fr.free.nrw.commons.CommonsApplication.Companion.DEFAULT_EDIT_SUMMARY
|
||||||
import fr.free.nrw.commons.auth.csrf.CsrfTokenClient
|
import fr.free.nrw.commons.auth.csrf.CsrfTokenClient
|
||||||
import fr.free.nrw.commons.contributions.ChunkInfo
|
import fr.free.nrw.commons.contributions.ChunkInfo
|
||||||
import fr.free.nrw.commons.contributions.Contribution
|
import fr.free.nrw.commons.contributions.Contribution
|
||||||
import fr.free.nrw.commons.contributions.ContributionDao
|
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.MwException
|
||||||
import fr.free.nrw.commons.wikidata.mwapi.MwServiceError
|
import fr.free.nrw.commons.wikidata.mwapi.MwServiceError
|
||||||
import io.reactivex.Observable
|
import io.reactivex.Observable
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue