Skip to content

Commit 986a1a4

Browse files
authored
Motd implementation (#37)
1 parent f4a320c commit 986a1a4

File tree

33 files changed

+376
-44
lines changed

33 files changed

+376
-44
lines changed

app/src/main/java/com/shifthackz/aisdv1/app/di/ProvidersModule.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ val providersModule = module {
2626
single<ApiUrlProvider> {
2727
object : ApiUrlProvider {
2828
override val stableDiffusionAutomaticApiUrl: String = DEFAULT_SERVER_URL
29-
override val stableDiffusionAppUpdateApiUrl: String = BuildConfig.UPDATE_API_URL
29+
override val stableDiffusionAppApiUrl: String = BuildConfig.UPDATE_API_URL
3030
override val stableDiffusionCloudAiApiUrl: String = BuildConfig.CLOUD_AI_URL
3131
}
3232
}

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
buildscript {
22
ext {
3-
appVersion = "0.3.1"
3+
appVersion = "0.3.2"
44
minSdk = 26
55
targetSdk = 33
66
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.shifthackz.aisdv1.core.common.extensions
2+
3+
private const val PROTOCOL_DELIMITER = "://"
4+
5+
fun String.withoutUrlProtocol(): String {
6+
if (!this.contains(PROTOCOL_DELIMITER)) return this
7+
val decomposed = this.split(PROTOCOL_DELIMITER)
8+
if (decomposed.size < 2) return this
9+
return decomposed.last()
10+
}

data/src/main/java/com/shifthackz/aisdv1/data/di/RemoteDataSourceModule.kt

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,20 @@ package com.shifthackz.aisdv1.data.di
33
import com.shifthackz.aisdv1.core.common.links.LinksProvider
44
import com.shifthackz.aisdv1.data.gateway.ServerConnectivityGatewayImpl
55
import com.shifthackz.aisdv1.data.provider.ServerUrlProvider
6-
import com.shifthackz.aisdv1.data.remote.*
7-
import com.shifthackz.aisdv1.domain.datasource.*
6+
import com.shifthackz.aisdv1.data.remote.AppVersionRemoteDataSource
7+
import com.shifthackz.aisdv1.data.remote.CoinRemoteDateSource
8+
import com.shifthackz.aisdv1.data.remote.MotdRemoteDataSource
9+
import com.shifthackz.aisdv1.data.remote.ServerConfigurationRemoteDataSource
10+
import com.shifthackz.aisdv1.data.remote.StableDiffusionGenerationRemoteDataSource
11+
import com.shifthackz.aisdv1.data.remote.StableDiffusionModelsRemoteDataSource
12+
import com.shifthackz.aisdv1.data.remote.StableDiffusionSamplersRemoteDataSource
13+
import com.shifthackz.aisdv1.domain.datasource.AppVersionDataSource
14+
import com.shifthackz.aisdv1.domain.datasource.CoinDataSource
15+
import com.shifthackz.aisdv1.domain.datasource.MotdDataSource
16+
import com.shifthackz.aisdv1.domain.datasource.ServerConfigurationDataSource
17+
import com.shifthackz.aisdv1.domain.datasource.StableDiffusionGenerationDataSource
18+
import com.shifthackz.aisdv1.domain.datasource.StableDiffusionModelsDataSource
19+
import com.shifthackz.aisdv1.domain.datasource.StableDiffusionSamplersDataSource
820
import com.shifthackz.aisdv1.domain.gateway.ServerConnectivityGateway
921
import com.shifthackz.aisdv1.domain.preference.PreferenceManager
1022
import com.shifthackz.aisdv1.network.connectivity.ConnectivityMonitor
@@ -31,6 +43,7 @@ val remoteDataSourceModule = module {
3143
factoryOf(::ServerConfigurationRemoteDataSource) bind ServerConfigurationDataSource.Remote::class
3244
factoryOf(::AppVersionRemoteDataSource) bind AppVersionDataSource.Remote::class
3345
factoryOf(::CoinRemoteDateSource) bind CoinDataSource.Remote::class
46+
factoryOf(::MotdRemoteDataSource) bind MotdDataSource.Remote::class
3447

3548
factory<ServerConnectivityGateway> {
3649
val lambda: () -> Boolean = { get<PreferenceManager>().useSdAiCloud }

data/src/main/java/com/shifthackz/aisdv1/data/di/RepositoryModule.kt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
11
package com.shifthackz.aisdv1.data.di
22

3-
import com.shifthackz.aisdv1.data.repository.*
4-
import com.shifthackz.aisdv1.domain.repository.*
3+
import com.shifthackz.aisdv1.data.repository.AppVersionRepositoryImpl
4+
import com.shifthackz.aisdv1.data.repository.CoinRepositoryImpl
5+
import com.shifthackz.aisdv1.data.repository.GenerationResultRepositoryImpl
6+
import com.shifthackz.aisdv1.data.repository.MotdRepositoryImpl
7+
import com.shifthackz.aisdv1.data.repository.ServerConfigurationRepositoryImpl
8+
import com.shifthackz.aisdv1.data.repository.StableDiffusionGenerationRepositoryImpl
9+
import com.shifthackz.aisdv1.data.repository.StableDiffusionModelsRepositoryImpl
10+
import com.shifthackz.aisdv1.data.repository.StableDiffusionSamplersRepositoryImpl
11+
import com.shifthackz.aisdv1.domain.repository.AppVersionRepository
12+
import com.shifthackz.aisdv1.domain.repository.CoinRepository
13+
import com.shifthackz.aisdv1.domain.repository.GenerationResultRepository
14+
import com.shifthackz.aisdv1.domain.repository.MotdRepository
15+
import com.shifthackz.aisdv1.domain.repository.ServerConfigurationRepository
16+
import com.shifthackz.aisdv1.domain.repository.StableDiffusionGenerationRepository
17+
import com.shifthackz.aisdv1.domain.repository.StableDiffusionModelsRepository
18+
import com.shifthackz.aisdv1.domain.repository.StableDiffusionSamplersRepository
519
import org.koin.core.module.dsl.factoryOf
620
import org.koin.dsl.bind
721
import org.koin.dsl.module
@@ -14,4 +28,5 @@ val repositoryModule = module {
1428
factoryOf(::GenerationResultRepositoryImpl) bind GenerationResultRepository::class
1529
factoryOf(::AppVersionRepositoryImpl) bind AppVersionRepository::class
1630
factoryOf(::CoinRepositoryImpl) bind CoinRepository::class
31+
factoryOf(::MotdRepositoryImpl) bind MotdRepository::class
1732
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.shifthackz.aisdv1.data.mappers
2+
3+
import com.shifthackz.aisdv1.domain.entity.Motd
4+
import com.shifthackz.aisdv1.network.response.MotdResponse
5+
6+
fun MotdResponse.toDomain(): Motd = with(this) {
7+
Motd(
8+
display = display ?: false,
9+
title = title ?: "",
10+
subTitle = subTitle ?: "",
11+
)
12+
}

data/src/main/java/com/shifthackz/aisdv1/data/remote/AppVersionRemoteDataSource.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package com.shifthackz.aisdv1.data.remote
33
import com.shifthackz.aisdv1.core.common.appbuild.BuildInfoProvider
44
import com.shifthackz.aisdv1.core.common.appbuild.BuildVersion
55
import com.shifthackz.aisdv1.domain.datasource.AppVersionDataSource
6-
import com.shifthackz.aisdv1.network.api.StableDiffusionAppUpdateRestApi
6+
import com.shifthackz.aisdv1.network.api.sdai.AppUpdateRestApi
77
import io.reactivex.rxjava3.core.Single
88

99
internal class AppVersionRemoteDataSource(
1010
private val buildInfoProvider: BuildInfoProvider,
11-
private val api: StableDiffusionAppUpdateRestApi,
11+
private val api: AppUpdateRestApi,
1212
) : AppVersionDataSource.Remote {
1313

1414
override fun get(): Single<BuildVersion> = api

data/src/main/java/com/shifthackz/aisdv1/data/remote/CoinRemoteDateSource.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package com.shifthackz.aisdv1.data.remote
22

33
import com.shifthackz.aisdv1.domain.datasource.CoinDataSource
4-
import com.shifthackz.aisdv1.network.api.StableDiffusionCoinsRestApi
4+
import com.shifthackz.aisdv1.network.api.sdai.CoinsRestApi
55
import io.reactivex.rxjava3.core.Single
66

77
internal class CoinRemoteDateSource(
8-
private val api: StableDiffusionCoinsRestApi,
8+
private val api: CoinsRestApi,
99
) : CoinDataSource.Remote {
1010

1111
override fun fetchCoinsConfig(): Single<Int> = api
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.shifthackz.aisdv1.data.remote
2+
3+
import com.shifthackz.aisdv1.data.mappers.toDomain
4+
import com.shifthackz.aisdv1.domain.datasource.MotdDataSource
5+
import com.shifthackz.aisdv1.network.api.sdai.MotdRestApi
6+
import com.shifthackz.aisdv1.network.response.MotdResponse
7+
8+
class MotdRemoteDataSource(
9+
private val api: MotdRestApi,
10+
) : MotdDataSource.Remote {
11+
12+
override fun fetch() = api
13+
.fetchMotd()
14+
.map(MotdResponse::toDomain)
15+
}

data/src/main/java/com/shifthackz/aisdv1/data/remote/ServerConfigurationRemoteDataSource.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@ import com.shifthackz.aisdv1.data.mappers.mapToRequest
55
import com.shifthackz.aisdv1.data.provider.ServerUrlProvider
66
import com.shifthackz.aisdv1.domain.datasource.ServerConfigurationDataSource
77
import com.shifthackz.aisdv1.domain.entity.ServerConfiguration
8-
import com.shifthackz.aisdv1.network.api.StableDiffusionWebUiAutomaticRestApi
9-
import com.shifthackz.aisdv1.network.api.StableDiffusionWebUiAutomaticRestApi.Companion.PATH_SD_OPTIONS
8+
import com.shifthackz.aisdv1.network.api.automatic1111.Automatic1111RestApi
9+
import com.shifthackz.aisdv1.network.api.automatic1111.Automatic1111RestApi.Companion.PATH_SD_OPTIONS
1010
import com.shifthackz.aisdv1.network.model.ServerConfigurationRaw
1111

1212
internal class ServerConfigurationRemoteDataSource(
1313
private val serverUrlProvider: ServerUrlProvider,
14-
private val api: StableDiffusionWebUiAutomaticRestApi,
14+
private val api: Automatic1111RestApi,
1515
) : ServerConfigurationDataSource.Remote {
1616

1717
override fun fetchConfiguration() = serverUrlProvider(PATH_SD_OPTIONS)

0 commit comments

Comments
 (0)