mirror of
https://github.com/imcarlost/Acronyms.git
synced 2026-04-10 02:46:53 -04:00
Change: rename acronyms classes to shortform
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
package dev.carlos.acronyms
|
package dev.carlos.acronyms
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
import dev.carlos.shortform.di.acronymsModule
|
import dev.carlos.shortform.di.shortformModule
|
||||||
import dev.carlos.acronyms.di.appModules
|
import dev.carlos.acronyms.di.appModules
|
||||||
import org.koin.android.ext.koin.androidContext
|
import org.koin.android.ext.koin.androidContext
|
||||||
import org.koin.core.context.startKoin
|
import org.koin.core.context.startKoin
|
||||||
@@ -26,7 +26,7 @@ class MainApplication : Application() {
|
|||||||
modules(
|
modules(
|
||||||
listOf(
|
listOf(
|
||||||
appModules,
|
appModules,
|
||||||
acronymsModule
|
shortformModule
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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<ShortformModel> {
|
|
||||||
return remoteDatasource.getAcronymDefinition(acronym).map { it.single().toShortformModel() }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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<ShortformModel> {
|
||||||
|
return remoteDatasource.getShortformDefinition(acronym).map { it.single().toShortformModel() }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -3,6 +3,6 @@ package dev.carlos.shortform.data.cloud
|
|||||||
import dev.carlos.shortform.data.cloud.model.ShortformRemote
|
import dev.carlos.shortform.data.cloud.model.ShortformRemote
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
|
|
||||||
interface AcronymsRemoteSource {
|
interface ShortformRemoteSource {
|
||||||
fun getAcronymDefinition(acronym: String): Single<List<ShortformRemote>>
|
fun getShortformDefinition(acronym: String): Single<List<ShortformRemote>>
|
||||||
}
|
}
|
||||||
@@ -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<List<ShortformRemote>> {
|
|
||||||
return acronymsService.getAcronymDefinition(acronym)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -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<List<ShortformRemote>> {
|
||||||
|
return shortformService.getShortformDefinition(acronym)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@ import io.reactivex.Single
|
|||||||
import retrofit2.http.GET
|
import retrofit2.http.GET
|
||||||
import retrofit2.http.Query
|
import retrofit2.http.Query
|
||||||
|
|
||||||
interface AcronymsService {
|
interface ShortformService {
|
||||||
@GET("/software/acromine/dictionary.py")
|
@GET("/software/acromine/dictionary.py")
|
||||||
fun getAcronymDefinition(@Query("sf") acronym: String): Single<List<ShortformRemote>>
|
fun getShortformDefinition(@Query("sf") acronym: String): Single<List<ShortformRemote>>
|
||||||
}
|
}
|
||||||
@@ -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<Scheduler> { SchedulerProvider() }
|
|
||||||
|
|
||||||
single {
|
|
||||||
get<RemoteClient>().getClient(AcronymsService::class.java)
|
|
||||||
}
|
|
||||||
|
|
||||||
factory<AcronymsRemoteSource> { AcronymsRemoteDatasource(get()) }
|
|
||||||
factory<AcronymsRepository> { AcronymsDataRepository(get()) }
|
|
||||||
|
|
||||||
factory { GetAcronymDefinition(get(), get()) }
|
|
||||||
|
|
||||||
viewModel { AcronymsViewmodel(get()) }
|
|
||||||
}
|
|
||||||
@@ -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<Scheduler> { SchedulerProvider() }
|
||||||
|
|
||||||
|
single {
|
||||||
|
get<RemoteClient>().getClient(ShortformService::class.java)
|
||||||
|
}
|
||||||
|
|
||||||
|
factory<ShortformRemoteSource> { ShortformRemoteDatasource(get()) }
|
||||||
|
factory<ShortformRepository> { ShortformDataRepository(get()) }
|
||||||
|
|
||||||
|
factory { GetShortformDefinition(get(), get()) }
|
||||||
|
|
||||||
|
viewModel { ShortformViewmodel(get()) }
|
||||||
|
}
|
||||||
@@ -5,11 +5,11 @@ import dev.carlos.core.extensions.runOnIo
|
|||||||
import dev.carlos.core.scheduler.Scheduler
|
import dev.carlos.core.scheduler.Scheduler
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
|
|
||||||
class GetAcronymDefinition(
|
class GetShortformDefinition(
|
||||||
private val acronymsRepository: AcronymsRepository,
|
private val shortformRepository: ShortformRepository,
|
||||||
private val scheduler: Scheduler
|
private val scheduler: Scheduler
|
||||||
) {
|
) {
|
||||||
fun getAcronymDefinition(acronym: String): Single<ShortformModel> {
|
fun getShortformDefinition(shortform: String): Single<ShortformModel> {
|
||||||
return acronymsRepository.getAcronymDefinition(acronym).runOnIo(scheduler)
|
return shortformRepository.getShortformDefinition(shortform).runOnIo(scheduler)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4,6 +4,6 @@ import dev.carlos.shortform.data.models.ShortformModel
|
|||||||
import io.reactivex.Flowable
|
import io.reactivex.Flowable
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
|
|
||||||
interface AcronymsRepository {
|
interface ShortformRepository {
|
||||||
fun getAcronymDefinition(acronym: String): Single<ShortformModel>
|
fun getShortformDefinition(acronym: String): Single<ShortformModel>
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
package dev.carlos.shortform.feature
|
||||||
|
|
||||||
|
class ShortformFragment {
|
||||||
|
}
|
||||||
@@ -5,18 +5,18 @@ import dev.carlos.core.domain.network.RequestError
|
|||||||
import dev.carlos.core.domain.network.RequestState
|
import dev.carlos.core.domain.network.RequestState
|
||||||
import dev.carlos.core.viewmodel.RxViewModel
|
import dev.carlos.core.viewmodel.RxViewModel
|
||||||
import dev.carlos.shortform.data.models.ShortformModel
|
import dev.carlos.shortform.data.models.ShortformModel
|
||||||
import dev.carlos.shortform.domain.GetAcronymDefinition
|
import dev.carlos.shortform.domain.GetShortformDefinition
|
||||||
import retrofit2.HttpException
|
import retrofit2.HttpException
|
||||||
import java.net.UnknownHostException
|
import java.net.UnknownHostException
|
||||||
|
|
||||||
class AcronymsViewmodel(
|
class ShortformViewmodel(
|
||||||
private val GetAcronymsDefinition: GetAcronymDefinition
|
private val getAcronymsDefinition: GetShortformDefinition
|
||||||
) : RxViewModel() {
|
) : RxViewModel() {
|
||||||
|
|
||||||
val acronymDefinition = MutableLiveData<RequestState>()
|
val acronymDefinition = MutableLiveData<RequestState>()
|
||||||
|
|
||||||
fun fetchAcronymDefinition(acronym: String) {
|
fun fetchAcronymDefinition(acronym: String) {
|
||||||
val disposable = GetAcronymsDefinition.getAcronymDefinition(acronym)
|
val disposable = getAcronymsDefinition.getShortformDefinition(acronym)
|
||||||
.doOnSubscribe { acronymDefinition.postValue(RequestState.Loading) }
|
.doOnSubscribe { acronymDefinition.postValue(RequestState.Loading) }
|
||||||
.subscribe(::handleSuccess, ::handleError)
|
.subscribe(::handleSuccess, ::handleError)
|
||||||
compositeDisposable.add(disposable)
|
compositeDisposable.add(disposable)
|
||||||
Reference in New Issue
Block a user