From 01a6e625a030d9ebc883d8ed1d1fef95fe0e584e Mon Sep 17 00:00:00 2001 From: v228a Date: Wed, 19 Feb 2025 15:49:14 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D1=84=D0=B8=D0=BA=D1=81=20=D0=BF=D0=B0?= =?UTF-8?q?=D1=80=D0=BE=D0=BB=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/ru/myitschool/work/ui/login/LoginFragment.kt | 6 +----- app/src/main/res/layout/fragment_login.xml | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.kt b/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.kt index d9e937b..17d2623 100644 --- a/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.kt +++ b/app/src/main/java/ru/myitschool/work/ui/login/LoginFragment.kt @@ -64,11 +64,7 @@ class LoginFragment : Fragment(R.layout.fragment_login) { viewModel.inputLogin(s.toString()) } }) - binding.password.addTextChangedListener(object : TextChangedListener() { - override fun afterTextChanged(s: Editable?) { - viewModel.inputLogin(s.toString()) - } - }) + } override fun onDestroyView() { diff --git a/app/src/main/res/layout/fragment_login.xml b/app/src/main/res/layout/fragment_login.xml index ab71a9b..ca01d2c 100644 --- a/app/src/main/res/layout/fragment_login.xml +++ b/app/src/main/res/layout/fragment_login.xml @@ -79,10 +79,10 @@ style="@style/Theme.UiTemplate.Input.Text" android:layout_width="match_parent" android:layout_height="wrap_content" + android:hint="@string/login_password_hint" android:inputType="textPassword" android:maxLines="1" - android:hint="@string/login_password_hint"> - + android:password="true"> From 361295918867ecb14987b459327e9917b6027225 Mon Sep 17 00:00:00 2001 From: v228a Date: Wed, 19 Feb 2025 15:50:51 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=9F=D0=9E=D0=A1=D0=9B=D0=95=D0=94=D0=9D?= =?UTF-8?q?=D0=98=D0=99=20=D0=9A=D0=9E=D0=9C=D0=9C=D0=98=D0=A2=20=D0=9B?= =?UTF-8?q?=D0=95=D0=93=D0=90=D0=A1=D0=98=20=D0=A1=D0=95=D0=A0=D0=92=D0=95?= =?UTF-8?q?=D0=A0=D0=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../myitschool/work/domain/auth/repo/AuthorizationRepository.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt b/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt index 7b4bab8..5324b58 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt +++ b/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt @@ -1,6 +1,7 @@ package ru.myitschool.work.domain.auth.repo interface AuthorizationRepository { + //br suspend fun login(username: String): Result suspend fun logout() From c5147cb10548270f7589aac41f5ca3978e8d5044 Mon Sep 17 00:00:00 2001 From: v228a Date: Wed, 19 Feb 2025 16:13:34 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9F=D1=83=D1=82=D1=8C=20=D0=BA=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B2=D0=B5=D1=80=D1=88=D0=B5=D0=BD=D1=81=D1=82=D0=B2?= =?UTF-8?q?=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../work/data/repo/AuthorizationRepositoryImpl.kt | 7 ++++--- .../ru/myitschool/work/domain/auth/LoginUseCase.kt | 9 +++++++-- .../work/domain/auth/repo/AuthorizationRepository.kt | 5 ++++- .../ru/myitschool/work/ui/login/LoginViewModel.kt | 11 ++++++++++- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt b/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt index 2229564..b874e98 100644 --- a/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt +++ b/app/src/main/java/ru/myitschool/work/data/repo/AuthorizationRepositoryImpl.kt @@ -9,6 +9,7 @@ import dagger.Lazy import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.firstOrNull import kotlinx.coroutines.withContext +import ru.myitschool.work.data.dto.LoginDto @Reusable class AuthorizationRepositoryImpl @Inject constructor( @@ -16,11 +17,11 @@ class AuthorizationRepositoryImpl @Inject constructor( private val authorizationNetworkDataSource: Lazy, ): AuthorizationRepository { - override suspend fun login(username: String): Result { + override suspend fun login(data: LoginDto): Result { return withContext(Dispatchers.IO) { - authorizationNetworkDataSource.get().checkLogin(username) + authorizationNetworkDataSource.get().checkLogin(data.username!!) .onSuccess { - authorizationStorageDataSource.get().updateLogin(username) + authorizationStorageDataSource.get().updateLogin(data.username) } } } diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt b/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt index 62b593d..8a03459 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt +++ b/app/src/main/java/ru/myitschool/work/domain/auth/LoginUseCase.kt @@ -1,12 +1,17 @@ package ru.myitschool.work.domain.auth +import ru.myitschool.work.data.dto.LoginDto import ru.myitschool.work.domain.auth.repo.AuthorizationRepository import javax.inject.Inject class LoginUseCase @Inject constructor( private val repo: AuthorizationRepository, ) { - suspend operator fun invoke(login: String): Result { - return repo.login(username = login) +// suspend operator fun invoke(login: String): Result { +// return repo.login(username = login) +// } + suspend operator fun invoke(data: LoginDto): Result{ + return repo.login(data=data) } + } \ No newline at end of file diff --git a/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt b/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt index 5324b58..2d7bab5 100644 --- a/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt +++ b/app/src/main/java/ru/myitschool/work/domain/auth/repo/AuthorizationRepository.kt @@ -1,8 +1,11 @@ package ru.myitschool.work.domain.auth.repo +import ru.myitschool.work.data.dto.LoginDto + interface AuthorizationRepository { //br - suspend fun login(username: String): Result + //suspend fun login(username: String): Result + suspend fun login(data: LoginDto): Result suspend fun logout() suspend fun getLogin(): Result diff --git a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt b/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt index 1f62bc0..3e8811c 100644 --- a/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt +++ b/app/src/main/java/ru/myitschool/work/ui/login/LoginViewModel.kt @@ -12,6 +12,7 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import ru.myitschool.work.R +import ru.myitschool.work.data.dto.LoginDto import ru.myitschool.work.domain.auth.CheckValidLoginUseCase import ru.myitschool.work.domain.auth.LoginUseCase import ru.myitschool.work.utils.MutablePublishFlow @@ -31,11 +32,13 @@ class LoginViewModel @Inject constructor( val state = _state.asStateFlow() private var login: String = "" + private var password: String = "123"//пока пароль по дефалту fun clickLogin() { viewModelScope.launch { _state.update { State.Loading } - loginUseCase.get().invoke(login = login).fold( + val data = LoginDto(login,password) + loginUseCase.get().invoke(data).fold( onSuccess = { _action.emit(Action.OpenProfile) }, @@ -51,6 +54,9 @@ class LoginViewModel @Inject constructor( } } + + + //Чек пароля на правильность fun inputLogin(login: String) { this.login = login viewModelScope.launch { @@ -61,6 +67,9 @@ class LoginViewModel @Inject constructor( } } } + fun passwordCheck(password: String){ + this.password = password + } sealed interface Action { data object OpenProfile : Action