From fac5a5525171f4740739753af53f708095498ae4 Mon Sep 17 00:00:00 2001 From: "Z. Charles Dziura" Date: Thu, 31 Oct 2024 09:12:44 -0400 Subject: [PATCH] Extract login and credentials verification logic into usecases --- .../debtpirate/app/host/MainActivity.kt | 8 ++- .../data/remote/endpoint/AuthEndpoint.kt | 8 +-- .../data/remote/model}/AuthLoginRequest.kt | 2 +- .../data/remote/model}/AuthLoginResponse.kt | 2 +- .../data/remote/repository/AuthRepository.kt | 8 +++ .../debtpirate/auth/di/AuthDiModule.kt | 33 ++++++++++++ .../domain/repository/AuthRepositoryImpl.kt | 12 ++--- .../usecase/SubmitLoginCredentialsUseCase.kt | 24 +++++++++ .../ValidateLoginCredentialsUseCase.kt | 24 +++++++++ .../auth => auth/presentation}/AuthScreen.kt | 2 +- .../presentation}/AuthScreenViewModel.kt | 54 +++++++++++++------ .../data/remote/{model => }/ApiResponse.kt | 2 +- .../data/remote/client/AuthEndpointClient.kt | 4 -- .../data/remote/repository/AuthRepository.kt | 8 --- .../di/{modules => }/HttpClientModule.kt | 2 +- .../{modules => }/PrefsDataStoreProvider.kt | 2 +- .../di/modules/AuthRepositoryModule.kt | 21 -------- .../{presentation => }/theme/Color.kt | 2 +- .../{presentation => }/theme/Theme.kt | 2 +- .../{presentation => }/theme/Type.kt | 2 +- 20 files changed, 149 insertions(+), 73 deletions(-) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{ => auth}/data/remote/endpoint/AuthEndpoint.kt (51%) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{data/remote/model/auth => auth/data/remote/model}/AuthLoginRequest.kt (53%) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{data/remote/model/auth => auth/data/remote/model}/AuthLoginResponse.kt (75%) create mode 100644 app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/repository/AuthRepository.kt create mode 100644 app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/di/AuthDiModule.kt rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{ => auth}/domain/repository/AuthRepositoryImpl.kt (71%) create mode 100644 app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/SubmitLoginCredentialsUseCase.kt create mode 100644 app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/ValidateLoginCredentialsUseCase.kt rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{presentation/ui/auth => auth/presentation}/AuthScreen.kt (99%) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{presentation/ui/auth => auth/presentation}/AuthScreenViewModel.kt (57%) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/{model => }/ApiResponse.kt (51%) delete mode 100644 app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/client/AuthEndpointClient.kt delete mode 100644 app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/repository/AuthRepository.kt rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/{modules => }/HttpClientModule.kt (94%) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/{modules => }/PrefsDataStoreProvider.kt (91%) delete mode 100644 app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/AuthRepositoryModule.kt rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{presentation => }/theme/Color.kt (70%) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{presentation => }/theme/Theme.kt (96%) rename app/app/src/main/java/ing/bikeshedengineer/debtpirate/{presentation => }/theme/Type.kt (94%) diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt index 1174b2e..a3e1fda 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/app/host/MainActivity.kt @@ -8,8 +8,8 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.composable import androidx.navigation.compose.rememberNavController import dagger.hilt.android.AndroidEntryPoint -import ing.bikeshedengineer.debtpirate.presentation.theme.DebtPirateTheme -import ing.bikeshedengineer.debtpirate.presentation.ui.auth.AuthScreen +import ing.bikeshedengineer.debtpirate.theme.DebtPirateTheme +import ing.bikeshedengineer.debtpirate.auth.presentation.AuthScreen import kotlinx.serialization.Serializable @Serializable @@ -26,9 +26,7 @@ class MainActivity : ComponentActivity() { DebtPirateTheme { NavHost(navController = navController, startDestination = AuthRoute) { - composable { - AuthScreen() - } + composable() { AuthScreen() } } } } diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/endpoint/AuthEndpoint.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/endpoint/AuthEndpoint.kt similarity index 51% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/endpoint/AuthEndpoint.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/endpoint/AuthEndpoint.kt index 0d8aa12..4fc11ec 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/endpoint/AuthEndpoint.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/endpoint/AuthEndpoint.kt @@ -1,8 +1,8 @@ -package ing.bikeshedengineer.debtpirate.data.remote.endpoint +package ing.bikeshedengineer.debtpirate.auth.data.remote.endpoint -import ing.bikeshedengineer.debtpirate.data.remote.model.ApiResponse -import ing.bikeshedengineer.debtpirate.data.remote.model.auth.AuthLoginRequest -import ing.bikeshedengineer.debtpirate.data.remote.model.auth.AuthLoginResponse +import ing.bikeshedengineer.debtpirate.data.remote.ApiResponse +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginRequest +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginResponse import retrofit2.Response import retrofit2.http.Body import retrofit2.http.POST diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/auth/AuthLoginRequest.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/model/AuthLoginRequest.kt similarity index 53% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/auth/AuthLoginRequest.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/model/AuthLoginRequest.kt index d5819c8..f4e5463 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/auth/AuthLoginRequest.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/model/AuthLoginRequest.kt @@ -1,3 +1,3 @@ -package ing.bikeshedengineer.debtpirate.data.remote.model.auth +package ing.bikeshedengineer.debtpirate.auth.data.remote.model data class AuthLoginRequest(val username: String, val password: String) diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/auth/AuthLoginResponse.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/model/AuthLoginResponse.kt similarity index 75% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/auth/AuthLoginResponse.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/model/AuthLoginResponse.kt index e46d2fc..90a8755 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/auth/AuthLoginResponse.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/model/AuthLoginResponse.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.data.remote.model.auth +package ing.bikeshedengineer.debtpirate.auth.data.remote.model data class AuthLoginResponse( val userId: Int, diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/repository/AuthRepository.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/repository/AuthRepository.kt new file mode 100644 index 0000000..47b9ae4 --- /dev/null +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/data/remote/repository/AuthRepository.kt @@ -0,0 +1,8 @@ +package ing.bikeshedengineer.debtpirate.auth.data.remote.repository + +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginRequest +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginResponse + +interface AuthRepository { + suspend fun submitLoginRequest(credentials: AuthLoginRequest): AuthLoginResponse +} \ No newline at end of file diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/di/AuthDiModule.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/di/AuthDiModule.kt new file mode 100644 index 0000000..7788614 --- /dev/null +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/di/AuthDiModule.kt @@ -0,0 +1,33 @@ +package ing.bikeshedengineer.debtpirate.auth.di + +import dagger.Module +import dagger.Provides +import dagger.hilt.InstallIn +import dagger.hilt.components.SingletonComponent +import ing.bikeshedengineer.debtpirate.auth.data.remote.repository.AuthRepository +import ing.bikeshedengineer.debtpirate.auth.domain.repository.AuthRepositoryImpl +import ing.bikeshedengineer.debtpirate.auth.domain.usecase.SubmitLoginCredentialsUseCase +import ing.bikeshedengineer.debtpirate.auth.domain.usecase.ValidateLoginCredentialsUseCase +import retrofit2.Retrofit +import javax.inject.Singleton + +@Module +@InstallIn(SingletonComponent::class) +object AuthDiModule { + + @Provides + @Singleton + fun provideAuthRepository(httpClient: Retrofit): AuthRepository { + return AuthRepositoryImpl(httpClient) + } + + @Provides + @Singleton + fun provideSubmitLoginCredentialsUseCase(authRepository: AuthRepository): SubmitLoginCredentialsUseCase { + return SubmitLoginCredentialsUseCase(authRepository) + } + + @Provides + @Singleton + fun provideValidateLoginCredentialsUseCase() = ValidateLoginCredentialsUseCase() +} \ No newline at end of file diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/domain/repository/AuthRepositoryImpl.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/repository/AuthRepositoryImpl.kt similarity index 71% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/domain/repository/AuthRepositoryImpl.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/repository/AuthRepositoryImpl.kt index 6e491aa..8c0fc4f 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/domain/repository/AuthRepositoryImpl.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/repository/AuthRepositoryImpl.kt @@ -1,12 +1,12 @@ -package ing.bikeshedengineer.debtpirate.domain.repository +package ing.bikeshedengineer.debtpirate.auth.domain.repository import com.google.gson.Gson import com.google.gson.reflect.TypeToken -import ing.bikeshedengineer.debtpirate.data.remote.endpoint.AuthEndpoint -import ing.bikeshedengineer.debtpirate.data.remote.model.ApiResponse -import ing.bikeshedengineer.debtpirate.data.remote.model.auth.AuthLoginRequest -import ing.bikeshedengineer.debtpirate.data.remote.model.auth.AuthLoginResponse -import ing.bikeshedengineer.debtpirate.data.remote.repository.AuthRepository +import ing.bikeshedengineer.debtpirate.auth.data.remote.endpoint.AuthEndpoint +import ing.bikeshedengineer.debtpirate.data.remote.ApiResponse +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginRequest +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginResponse +import ing.bikeshedengineer.debtpirate.auth.data.remote.repository.AuthRepository import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import retrofit2.Retrofit diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/SubmitLoginCredentialsUseCase.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/SubmitLoginCredentialsUseCase.kt new file mode 100644 index 0000000..b8f380e --- /dev/null +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/SubmitLoginCredentialsUseCase.kt @@ -0,0 +1,24 @@ +package ing.bikeshedengineer.debtpirate.auth.domain.usecase + +import android.util.Log +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginRequest +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginResponse +import ing.bikeshedengineer.debtpirate.auth.data.remote.repository.AuthRepository + +class SubmitLoginCredentialsUseCase( + private val authRepository: AuthRepository +) { + suspend operator fun invoke(username: String, password: String): AuthLoginResponse { + val credentials = AuthLoginRequest(username, password) + + try { + val response = authRepository.submitLoginRequest(credentials) + Log.d("AuthScreen", "Login successful! $response") + return response + } catch (err: Throwable) { + // TODO... + Log.e("AuthScreen", err.message!!) + throw err + } + } +} \ No newline at end of file diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/ValidateLoginCredentialsUseCase.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/ValidateLoginCredentialsUseCase.kt new file mode 100644 index 0000000..fad3ab4 --- /dev/null +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/domain/usecase/ValidateLoginCredentialsUseCase.kt @@ -0,0 +1,24 @@ +package ing.bikeshedengineer.debtpirate.auth.domain.usecase + +import android.util.Log + +sealed class LoginCredentialsValidationResult { + object EmptyCredentials : LoginCredentialsValidationResult() + object EmptyUsernameField : LoginCredentialsValidationResult() + object EmptyPasswordField : LoginCredentialsValidationResult() + object ValidCredentials : LoginCredentialsValidationResult() +} + +class ValidateLoginCredentialsUseCase { + operator fun invoke(username: String, password: String): LoginCredentialsValidationResult { + return if (username.isEmpty() && password.isEmpty()) { + LoginCredentialsValidationResult.EmptyCredentials; + } else if (username.isEmpty() && password.isNotEmpty()) { + LoginCredentialsValidationResult.EmptyUsernameField; + } else if (username.isNotEmpty() && password.isEmpty()) { + LoginCredentialsValidationResult.EmptyPasswordField + } else { + LoginCredentialsValidationResult.ValidCredentials + } + } +} \ No newline at end of file diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/ui/auth/AuthScreen.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/AuthScreen.kt similarity index 99% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/ui/auth/AuthScreen.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/AuthScreen.kt index 2a267e3..77d7429 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/ui/auth/AuthScreen.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/AuthScreen.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.presentation.ui.auth +package ing.bikeshedengineer.debtpirate.auth.presentation import android.annotation.SuppressLint import androidx.compose.foundation.background diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/ui/auth/AuthScreenViewModel.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/AuthScreenViewModel.kt similarity index 57% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/ui/auth/AuthScreenViewModel.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/AuthScreenViewModel.kt index cd7c64f..993357a 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/ui/auth/AuthScreenViewModel.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/auth/presentation/AuthScreenViewModel.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.presentation.ui.auth +package ing.bikeshedengineer.debtpirate.auth.presentation import android.util.Log import androidx.datastore.core.DataStore @@ -6,24 +6,41 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import dagger.hilt.android.lifecycle.HiltViewModel import ing.bikeshedengineer.debtpirate.PrefsDataStore -import ing.bikeshedengineer.debtpirate.data.remote.model.auth.AuthLoginRequest -import ing.bikeshedengineer.debtpirate.data.remote.repository.AuthRepository +import ing.bikeshedengineer.debtpirate.auth.data.remote.model.AuthLoginRequest +import ing.bikeshedengineer.debtpirate.auth.data.remote.repository.AuthRepository +import ing.bikeshedengineer.debtpirate.auth.domain.usecase.LoginCredentialsValidationResult +import ing.bikeshedengineer.debtpirate.auth.domain.usecase.SubmitLoginCredentialsUseCase +import ing.bikeshedengineer.debtpirate.auth.domain.usecase.ValidateLoginCredentialsUseCase import ing.bikeshedengineer.debtpirate.domain.model.Token import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.launch import javax.inject.Inject +enum class InvalidField { + Username, + Password +} + +sealed class FormState { + class Pristine : FormState() + class Valid : FormState() + class Invalid(reason: InvalidReason) : FormState() +} + +enum class InvalidReason { + MissingUsernameValue, + MissingPasswordValue, + PasswordTooShort +} + @HiltViewModel class AuthScreenViewModel @Inject constructor( private val authRepository: AuthRepository, - private val prefsStore: DataStore + private val prefsStore: DataStore, + private val submitLoginCredentials: SubmitLoginCredentialsUseCase, + private val validateLoginCredentials: ValidateLoginCredentialsUseCase, ) : ViewModel() { - private val tag: String - get() { - return javaClass.simpleName - } - // private val storeLoginData = StoreLoginDataUseCase(dataStore) private val _username = MutableStateFlow("") @@ -41,16 +58,21 @@ class AuthScreenViewModel @Inject constructor( } fun submitLoginRequest() { - val credentials = AuthLoginRequest(this._username.value, this._password.value) - viewModelScope.launch { - try { - val response = authRepository.submitLoginRequest(credentials) - Log.i(tag, "Login successful! $response") - } catch (err: Throwable) { + when (validateLoginCredentials(username.value, password.value)) { + is LoginCredentialsValidationResult.ValidCredentials -> { + viewModelScope.launch { + try { + val result = submitLoginCredentials(username.value, password.value) + } catch (err: Throwable) { + // TODO... + } + } + } + else -> { // TODO... - Log.e(tag, err.message!!) } } + } fun storeAuthData(userId: Int, sessionToken: Token, authToken: Token) { diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/ApiResponse.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/ApiResponse.kt similarity index 51% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/ApiResponse.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/ApiResponse.kt index 1d9ece9..529fcdc 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/model/ApiResponse.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/ApiResponse.kt @@ -1,3 +1,3 @@ -package ing.bikeshedengineer.debtpirate.data.remote.model +package ing.bikeshedengineer.debtpirate.data.remote data class ApiResponse(val data: T?, val error: String?) diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/client/AuthEndpointClient.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/client/AuthEndpointClient.kt deleted file mode 100644 index dd34572..0000000 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/client/AuthEndpointClient.kt +++ /dev/null @@ -1,4 +0,0 @@ -package ing.bikeshedengineer.debtpirate.data.remote.client - -class AuthEndpointClient { -} \ No newline at end of file diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/repository/AuthRepository.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/repository/AuthRepository.kt deleted file mode 100644 index cb935e2..0000000 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/data/remote/repository/AuthRepository.kt +++ /dev/null @@ -1,8 +0,0 @@ -package ing.bikeshedengineer.debtpirate.data.remote.repository - -import ing.bikeshedengineer.debtpirate.data.remote.model.auth.AuthLoginRequest -import ing.bikeshedengineer.debtpirate.data.remote.model.auth.AuthLoginResponse - -interface AuthRepository { - suspend fun submitLoginRequest(credentials: AuthLoginRequest): AuthLoginResponse -} \ No newline at end of file diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/HttpClientModule.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/HttpClientModule.kt similarity index 94% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/HttpClientModule.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/HttpClientModule.kt index eca8a2f..5dfc5d2 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/HttpClientModule.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/HttpClientModule.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.di.modules +package ing.bikeshedengineer.debtpirate.di import dagger.Module import dagger.Provides diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/PrefsDataStoreProvider.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/PrefsDataStoreProvider.kt similarity index 91% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/PrefsDataStoreProvider.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/PrefsDataStoreProvider.kt index 756005d..900d34a 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/PrefsDataStoreProvider.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/PrefsDataStoreProvider.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.di.modules +package ing.bikeshedengineer.debtpirate.di import android.app.Application import androidx.datastore.core.DataStore diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/AuthRepositoryModule.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/AuthRepositoryModule.kt deleted file mode 100644 index d0fc816..0000000 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/di/modules/AuthRepositoryModule.kt +++ /dev/null @@ -1,21 +0,0 @@ -package ing.bikeshedengineer.debtpirate.di.modules - -import dagger.Module -import dagger.Provides -import dagger.hilt.InstallIn -import dagger.hilt.components.SingletonComponent -import ing.bikeshedengineer.debtpirate.data.remote.repository.AuthRepository -import ing.bikeshedengineer.debtpirate.domain.repository.AuthRepositoryImpl -import retrofit2.Retrofit -import javax.inject.Singleton - -@Module -@InstallIn(SingletonComponent::class) -object AuthRepositoryModule { - - @Provides - @Singleton - fun provideAuthRepository(httpClient: Retrofit): AuthRepository { - return AuthRepositoryImpl(httpClient) - } -} \ No newline at end of file diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Color.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Color.kt similarity index 70% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Color.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Color.kt index cf357a0..c0ad71f 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Color.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Color.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.presentation.theme +package ing.bikeshedengineer.debtpirate.theme import androidx.compose.ui.graphics.Color diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Theme.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Theme.kt similarity index 96% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Theme.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Theme.kt index 773a663..fe97f76 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Theme.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Theme.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.presentation.theme +package ing.bikeshedengineer.debtpirate.theme import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme diff --git a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Type.kt b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Type.kt similarity index 94% rename from app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Type.kt rename to app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Type.kt index 230a080..854987c 100644 --- a/app/app/src/main/java/ing/bikeshedengineer/debtpirate/presentation/theme/Type.kt +++ b/app/app/src/main/java/ing/bikeshedengineer/debtpirate/theme/Type.kt @@ -1,4 +1,4 @@ -package ing.bikeshedengineer.debtpirate.presentation.theme +package ing.bikeshedengineer.debtpirate.theme import androidx.compose.material3.Typography import androidx.compose.ui.text.TextStyle