diff --git a/app/src/main/java/dev/carlos/acronyms/MainApplication.kt b/app/src/main/java/dev/carlos/acronyms/MainApplication.kt index 7f3734d..8c7e978 100644 --- a/app/src/main/java/dev/carlos/acronyms/MainApplication.kt +++ b/app/src/main/java/dev/carlos/acronyms/MainApplication.kt @@ -1,7 +1,7 @@ package dev.carlos.acronyms import android.app.Application -import dev.carlos.shortform.di.acronymsModule +import dev.carlos.shortform.di.shortformModule import dev.carlos.acronyms.di.appModules import org.koin.android.ext.koin.androidContext import org.koin.core.context.startKoin @@ -26,7 +26,7 @@ class MainApplication : Application() { modules( listOf( appModules, - acronymsModule + shortformModule ) ) } diff --git a/shortform/src/main/java/dev/carlos/shortform/data/AcronymsDataRepository.kt b/shortform/src/main/java/dev/carlos/shortform/data/AcronymsDataRepository.kt deleted file mode 100644 index 4cf7604..0000000 --- a/shortform/src/main/java/dev/carlos/shortform/data/AcronymsDataRepository.kt +++ /dev/null @@ -1,16 +0,0 @@ -package dev.carlos.shortform.data - -import dev.carlos.shortform.data.cloud.AcronymsRemoteSource -import dev.carlos.shortform.data.models.ShortformModel -import dev.carlos.shortform.data.models.toShortformModel -import dev.carlos.shortform.domain.AcronymsRepository -import io.reactivex.Single - -class AcronymsDataRepository( - private val remoteDatasource: AcronymsRemoteSource -) : AcronymsRepository { - - override fun getAcronymDefinition(acronym: String): Single { - return remoteDatasource.getAcronymDefinition(acronym).map { it.single().toShortformModel() } - } -} diff --git a/shortform/src/main/java/dev/carlos/shortform/data/ShortformDataRepository.kt b/shortform/src/main/java/dev/carlos/shortform/data/ShortformDataRepository.kt new file mode 100644 index 0000000..d4ca8ef --- /dev/null +++ b/shortform/src/main/java/dev/carlos/shortform/data/ShortformDataRepository.kt @@ -0,0 +1,16 @@ +package dev.carlos.shortform.data + +import dev.carlos.shortform.data.cloud.ShortformRemoteSource +import dev.carlos.shortform.data.models.ShortformModel +import dev.carlos.shortform.data.models.toShortformModel +import dev.carlos.shortform.domain.ShortformRepository +import io.reactivex.Single + +class ShortformDataRepository( + private val remoteDatasource: ShortformRemoteSource +) : ShortformRepository { + + override fun getShortformDefinition(acronym: String): Single { + return remoteDatasource.getShortformDefinition(acronym).map { it.single().toShortformModel() } + } +} diff --git a/shortform/src/main/java/dev/carlos/shortform/data/cloud/AcronymsRemoteSource.kt b/shortform/src/main/java/dev/carlos/shortform/data/cloud/ShortformRemoteSource.kt similarity index 53% rename from shortform/src/main/java/dev/carlos/shortform/data/cloud/AcronymsRemoteSource.kt rename to shortform/src/main/java/dev/carlos/shortform/data/cloud/ShortformRemoteSource.kt index 315eb7c..8c073d2 100644 --- a/shortform/src/main/java/dev/carlos/shortform/data/cloud/AcronymsRemoteSource.kt +++ b/shortform/src/main/java/dev/carlos/shortform/data/cloud/ShortformRemoteSource.kt @@ -3,6 +3,6 @@ package dev.carlos.shortform.data.cloud import dev.carlos.shortform.data.cloud.model.ShortformRemote import io.reactivex.Single -interface AcronymsRemoteSource { - fun getAcronymDefinition(acronym: String): Single> +interface ShortformRemoteSource { + fun getShortformDefinition(acronym: String): Single> } diff --git a/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/AcronymsRemoteDatasource.kt b/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/AcronymsRemoteDatasource.kt deleted file mode 100644 index c02c65d..0000000 --- a/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/AcronymsRemoteDatasource.kt +++ /dev/null @@ -1,11 +0,0 @@ -package dev.carlos.shortform.data.cloud.retrofit - -import dev.carlos.shortform.data.cloud.AcronymsRemoteSource -import dev.carlos.shortform.data.cloud.model.ShortformRemote -import io.reactivex.Single - -class AcronymsRemoteDatasource(private val acronymsService: AcronymsService) : AcronymsRemoteSource { - override fun getAcronymDefinition(acronym: String): Single> { - return acronymsService.getAcronymDefinition(acronym) - } -} diff --git a/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/ShortformRemoteDatasource.kt b/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/ShortformRemoteDatasource.kt new file mode 100644 index 0000000..b72e388 --- /dev/null +++ b/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/ShortformRemoteDatasource.kt @@ -0,0 +1,11 @@ +package dev.carlos.shortform.data.cloud.retrofit + +import dev.carlos.shortform.data.cloud.ShortformRemoteSource +import dev.carlos.shortform.data.cloud.model.ShortformRemote +import io.reactivex.Single + +class ShortformRemoteDatasource(private val shortformService: ShortformService) : ShortformRemoteSource { + override fun getShortformDefinition(acronym: String): Single> { + return shortformService.getShortformDefinition(acronym) + } +} diff --git a/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/AcronymsService.kt b/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/ShortformService.kt similarity index 66% rename from shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/AcronymsService.kt rename to shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/ShortformService.kt index d44843c..f5dd805 100644 --- a/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/AcronymsService.kt +++ b/shortform/src/main/java/dev/carlos/shortform/data/cloud/retrofit/ShortformService.kt @@ -5,7 +5,7 @@ import io.reactivex.Single import retrofit2.http.GET import retrofit2.http.Query -interface AcronymsService { +interface ShortformService { @GET("/software/acromine/dictionary.py") - fun getAcronymDefinition(@Query("sf") acronym: String): Single> + fun getShortformDefinition(@Query("sf") acronym: String): Single> } diff --git a/shortform/src/main/java/dev/carlos/shortform/di/AcronymsModule.kt b/shortform/src/main/java/dev/carlos/shortform/di/AcronymsModule.kt deleted file mode 100644 index 8e6ad5b..0000000 --- a/shortform/src/main/java/dev/carlos/shortform/di/AcronymsModule.kt +++ /dev/null @@ -1,29 +0,0 @@ -package dev.carlos.shortform.di - -import dev.carlos.core.domain.network.RemoteClient -import dev.carlos.core.scheduler.Scheduler -import dev.carlos.core.scheduler.SchedulerProvider -import dev.carlos.shortform.data.AcronymsDataRepository -import dev.carlos.shortform.data.cloud.AcronymsRemoteSource -import dev.carlos.shortform.data.cloud.retrofit.AcronymsRemoteDatasource -import dev.carlos.shortform.data.cloud.retrofit.AcronymsService -import dev.carlos.shortform.domain.AcronymsRepository -import dev.carlos.shortform.domain.GetAcronymDefinition -import dev.carlos.shortform.viewmodels.AcronymsViewmodel -import org.koin.androidx.viewmodel.dsl.viewModel -import org.koin.dsl.module - -val acronymsModule = module { - single { SchedulerProvider() } - - single { - get().getClient(AcronymsService::class.java) - } - - factory { AcronymsRemoteDatasource(get()) } - factory { AcronymsDataRepository(get()) } - - factory { GetAcronymDefinition(get(), get()) } - - viewModel { AcronymsViewmodel(get()) } -} diff --git a/shortform/src/main/java/dev/carlos/shortform/di/ShortformModule.kt b/shortform/src/main/java/dev/carlos/shortform/di/ShortformModule.kt new file mode 100644 index 0000000..d5e8295 --- /dev/null +++ b/shortform/src/main/java/dev/carlos/shortform/di/ShortformModule.kt @@ -0,0 +1,29 @@ +package dev.carlos.shortform.di + +import dev.carlos.core.domain.network.RemoteClient +import dev.carlos.core.scheduler.Scheduler +import dev.carlos.core.scheduler.SchedulerProvider +import dev.carlos.shortform.data.ShortformDataRepository +import dev.carlos.shortform.data.cloud.ShortformRemoteSource +import dev.carlos.shortform.data.cloud.retrofit.ShortformRemoteDatasource +import dev.carlos.shortform.data.cloud.retrofit.ShortformService +import dev.carlos.shortform.domain.ShortformRepository +import dev.carlos.shortform.domain.GetShortformDefinition +import dev.carlos.shortform.viewmodels.ShortformViewmodel +import org.koin.androidx.viewmodel.dsl.viewModel +import org.koin.dsl.module + +val shortformModule = module { + single { SchedulerProvider() } + + single { + get().getClient(ShortformService::class.java) + } + + factory { ShortformRemoteDatasource(get()) } + factory { ShortformDataRepository(get()) } + + factory { GetShortformDefinition(get(), get()) } + + viewModel { ShortformViewmodel(get()) } +} diff --git a/shortform/src/main/java/dev/carlos/shortform/domain/GetAcronymDefinition.kt b/shortform/src/main/java/dev/carlos/shortform/domain/GetShortformDefinition.kt similarity index 50% rename from shortform/src/main/java/dev/carlos/shortform/domain/GetAcronymDefinition.kt rename to shortform/src/main/java/dev/carlos/shortform/domain/GetShortformDefinition.kt index 2eaf816..fee307e 100644 --- a/shortform/src/main/java/dev/carlos/shortform/domain/GetAcronymDefinition.kt +++ b/shortform/src/main/java/dev/carlos/shortform/domain/GetShortformDefinition.kt @@ -5,11 +5,11 @@ import dev.carlos.core.extensions.runOnIo import dev.carlos.core.scheduler.Scheduler import io.reactivex.Single -class GetAcronymDefinition( - private val acronymsRepository: AcronymsRepository, +class GetShortformDefinition( + private val shortformRepository: ShortformRepository, private val scheduler: Scheduler ) { - fun getAcronymDefinition(acronym: String): Single { - return acronymsRepository.getAcronymDefinition(acronym).runOnIo(scheduler) + fun getShortformDefinition(shortform: String): Single { + return shortformRepository.getShortformDefinition(shortform).runOnIo(scheduler) } } diff --git a/shortform/src/main/java/dev/carlos/shortform/domain/AcronymsRepository.kt b/shortform/src/main/java/dev/carlos/shortform/domain/ShortformRepository.kt similarity index 59% rename from shortform/src/main/java/dev/carlos/shortform/domain/AcronymsRepository.kt rename to shortform/src/main/java/dev/carlos/shortform/domain/ShortformRepository.kt index 64ce4e5..76e6b0a 100644 --- a/shortform/src/main/java/dev/carlos/shortform/domain/AcronymsRepository.kt +++ b/shortform/src/main/java/dev/carlos/shortform/domain/ShortformRepository.kt @@ -4,6 +4,6 @@ import dev.carlos.shortform.data.models.ShortformModel import io.reactivex.Flowable import io.reactivex.Single -interface AcronymsRepository { - fun getAcronymDefinition(acronym: String): Single +interface ShortformRepository { + fun getShortformDefinition(acronym: String): Single } diff --git a/shortform/src/main/java/dev/carlos/shortform/feature/ShortformFragment.kt b/shortform/src/main/java/dev/carlos/shortform/feature/ShortformFragment.kt new file mode 100644 index 0000000..b787a69 --- /dev/null +++ b/shortform/src/main/java/dev/carlos/shortform/feature/ShortformFragment.kt @@ -0,0 +1,4 @@ +package dev.carlos.shortform.feature + +class ShortformFragment { +} \ No newline at end of file diff --git a/shortform/src/main/java/dev/carlos/shortform/viewmodels/AcronymsViewmodel.kt b/shortform/src/main/java/dev/carlos/shortform/viewmodels/ShortformViewmodel.kt similarity index 85% rename from shortform/src/main/java/dev/carlos/shortform/viewmodels/AcronymsViewmodel.kt rename to shortform/src/main/java/dev/carlos/shortform/viewmodels/ShortformViewmodel.kt index 276418b..35e36d7 100644 --- a/shortform/src/main/java/dev/carlos/shortform/viewmodels/AcronymsViewmodel.kt +++ b/shortform/src/main/java/dev/carlos/shortform/viewmodels/ShortformViewmodel.kt @@ -5,18 +5,18 @@ import dev.carlos.core.domain.network.RequestError import dev.carlos.core.domain.network.RequestState import dev.carlos.core.viewmodel.RxViewModel import dev.carlos.shortform.data.models.ShortformModel -import dev.carlos.shortform.domain.GetAcronymDefinition +import dev.carlos.shortform.domain.GetShortformDefinition import retrofit2.HttpException import java.net.UnknownHostException -class AcronymsViewmodel( - private val GetAcronymsDefinition: GetAcronymDefinition +class ShortformViewmodel( + private val getAcronymsDefinition: GetShortformDefinition ) : RxViewModel() { val acronymDefinition = MutableLiveData() fun fetchAcronymDefinition(acronym: String) { - val disposable = GetAcronymsDefinition.getAcronymDefinition(acronym) + val disposable = getAcronymsDefinition.getShortformDefinition(acronym) .doOnSubscribe { acronymDefinition.postValue(RequestState.Loading) } .subscribe(::handleSuccess, ::handleError) compositeDisposable.add(disposable)