mirror of
https://github.com/wulkanowy/wulkanowy.git
synced 2025-02-21 19:34:44 +01:00
Add dynamic nick/email in login (#676)
This commit is contained in:
parent
720a530a6c
commit
bdbf1fe304
@ -35,8 +35,8 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
else -> "HYBRID"
|
else -> "HYBRID"
|
||||||
}
|
}
|
||||||
|
|
||||||
override val formNameValue: String
|
override val formUsernameValue: String
|
||||||
get() = loginFormName.text.toString().trim()
|
get() = loginFormUsername.text.toString().trim()
|
||||||
|
|
||||||
override val formPassValue: String
|
override val formPassValue: String
|
||||||
get() = loginFormPass.text.toString().trim()
|
get() = loginFormPass.text.toString().trim()
|
||||||
@ -45,8 +45,8 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
|
|
||||||
private lateinit var hostValues: Array<String>
|
private lateinit var hostValues: Array<String>
|
||||||
|
|
||||||
override val formHostValue: String?
|
override val formHostValue: String
|
||||||
get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString()))
|
get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString())).orEmpty()
|
||||||
|
|
||||||
override val formPinValue: String
|
override val formPinValue: String
|
||||||
get() = loginFormPin.text.toString().trim()
|
get() = loginFormPin.text.toString().trim()
|
||||||
@ -57,6 +57,12 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
override val formTokenValue: String
|
override val formTokenValue: String
|
||||||
get() = loginFormToken.text.toString().trim()
|
get() = loginFormToken.text.toString().trim()
|
||||||
|
|
||||||
|
override val nicknameLabel: String
|
||||||
|
get() = getString(R.string.login_nickname_hint)
|
||||||
|
|
||||||
|
override val emailLabel: String
|
||||||
|
get() = getString(R.string.login_email_hint)
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
return inflater.inflate(R.layout.fragment_login_advanced, container, false)
|
return inflater.inflate(R.layout.fragment_login_advanced, container, false)
|
||||||
}
|
}
|
||||||
@ -70,7 +76,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
hostKeys = resources.getStringArray(R.array.hosts_keys)
|
hostKeys = resources.getStringArray(R.array.hosts_keys)
|
||||||
hostValues = resources.getStringArray(R.array.hosts_values)
|
hostValues = resources.getStringArray(R.array.hosts_values)
|
||||||
|
|
||||||
loginFormName.doOnTextChanged { _, _, _, _ -> presenter.onNameTextChanged() }
|
loginFormUsername.doOnTextChanged { _, _, _, _ -> presenter.onUsernameTextChanged() }
|
||||||
loginFormPass.doOnTextChanged { _, _, _, _ -> presenter.onPassTextChanged() }
|
loginFormPass.doOnTextChanged { _, _, _, _ -> presenter.onPassTextChanged() }
|
||||||
loginFormPin.doOnTextChanged { _, _, _, _ -> presenter.onPinTextChanged() }
|
loginFormPin.doOnTextChanged { _, _, _, _ -> presenter.onPinTextChanged() }
|
||||||
loginFormSymbol.doOnTextChanged { _, _, _, _ -> presenter.onSymbolTextChanged() }
|
loginFormSymbol.doOnTextChanged { _, _, _, _ -> presenter.onSymbolTextChanged() }
|
||||||
@ -103,16 +109,20 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setDefaultCredentials(name: String, pass: String, symbol: String, token: String, pin: String) {
|
override fun setDefaultCredentials(username: String, pass: String, symbol: String, token: String, pin: String) {
|
||||||
loginFormName.setText(name)
|
loginFormUsername.setText(username)
|
||||||
loginFormPass.setText(pass)
|
loginFormPass.setText(pass)
|
||||||
loginFormToken.setText(token)
|
loginFormToken.setText(token)
|
||||||
loginFormSymbol.setText(symbol)
|
loginFormSymbol.setText(symbol)
|
||||||
loginFormPin.setText(pin)
|
loginFormPin.setText(pin)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setErrorNameRequired() {
|
override fun setUsernameLabel(label: String) {
|
||||||
with(loginFormNameLayout) {
|
loginFormUsernameLayout.hint = label
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun setErrorUsernameRequired() {
|
||||||
|
with(loginFormUsernameLayout) {
|
||||||
requestFocus()
|
requestFocus()
|
||||||
error = getString(R.string.login_field_required)
|
error = getString(R.string.login_field_required)
|
||||||
}
|
}
|
||||||
@ -181,8 +191,8 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun clearNameError() {
|
override fun clearUsernameError() {
|
||||||
loginFormNameLayout.error = null
|
loginFormUsernameLayout.error = null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun clearPassError() {
|
override fun clearPassError() {
|
||||||
@ -202,7 +212,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun showOnlyHybridModeInputs() {
|
override fun showOnlyHybridModeInputs() {
|
||||||
loginFormNameLayout.visibility = View.VISIBLE
|
loginFormUsernameLayout.visibility = View.VISIBLE
|
||||||
loginFormPassLayout.visibility = View.VISIBLE
|
loginFormPassLayout.visibility = View.VISIBLE
|
||||||
loginFormHostLayout.visibility = View.VISIBLE
|
loginFormHostLayout.visibility = View.VISIBLE
|
||||||
loginFormPinLayout.visibility = View.GONE
|
loginFormPinLayout.visibility = View.GONE
|
||||||
@ -211,7 +221,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun showOnlyScrapperModeInputs() {
|
override fun showOnlyScrapperModeInputs() {
|
||||||
loginFormNameLayout.visibility = View.VISIBLE
|
loginFormUsernameLayout.visibility = View.VISIBLE
|
||||||
loginFormPassLayout.visibility = View.VISIBLE
|
loginFormPassLayout.visibility = View.VISIBLE
|
||||||
loginFormHostLayout.visibility = View.VISIBLE
|
loginFormHostLayout.visibility = View.VISIBLE
|
||||||
loginFormPinLayout.visibility = View.GONE
|
loginFormPinLayout.visibility = View.GONE
|
||||||
@ -220,7 +230,7 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun showOnlyMobileApiModeInputs() {
|
override fun showOnlyMobileApiModeInputs() {
|
||||||
loginFormNameLayout.visibility = View.GONE
|
loginFormUsernameLayout.visibility = View.GONE
|
||||||
loginFormPassLayout.visibility = View.GONE
|
loginFormPassLayout.visibility = View.GONE
|
||||||
loginFormHostLayout.visibility = View.GONE
|
loginFormHostLayout.visibility = View.GONE
|
||||||
loginFormPinLayout.visibility = View.VISIBLE
|
loginFormPinLayout.visibility = View.VISIBLE
|
||||||
@ -246,12 +256,17 @@ class LoginAdvancedFragment : BaseFragment(), LoginAdvancedView {
|
|||||||
|
|
||||||
override fun notifyParentAccountLogged(students: List<Student>) {
|
override fun notifyParentAccountLogged(students: List<Student>) {
|
||||||
(activity as? LoginActivity)?.onFormFragmentAccountLogged(students, Triple(
|
(activity as? LoginActivity)?.onFormFragmentAccountLogged(students, Triple(
|
||||||
loginFormName.text.toString(),
|
loginFormUsername.text.toString(),
|
||||||
loginFormPass.text.toString(),
|
loginFormPass.text.toString(),
|
||||||
resources.getStringArray(R.array.hosts_values)[1]
|
resources.getStringArray(R.array.hosts_values)[1]
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
presenter.updateUsernameLabel()
|
||||||
|
}
|
||||||
|
|
||||||
override fun onDestroyView() {
|
override fun onDestroyView() {
|
||||||
super.onDestroyView()
|
super.onDestroyView()
|
||||||
presenter.onDetachView()
|
presenter.onDetachView()
|
||||||
|
@ -65,13 +65,20 @@ class LoginAdvancedPresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun updateUsernameLabel() {
|
||||||
|
view?.apply {
|
||||||
|
setUsernameLabel(if ("vulcan" in formHostValue || "fakelog" in formHostValue) emailLabel else nicknameLabel)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun onHostSelected() {
|
fun onHostSelected() {
|
||||||
view?.apply {
|
view?.apply {
|
||||||
clearPassError()
|
clearPassError()
|
||||||
clearNameError()
|
clearUsernameError()
|
||||||
if (formHostValue?.contains("fakelog") == true) {
|
if (formHostValue.contains("fakelog")) {
|
||||||
setDefaultCredentials("jan@fakelog.cf", "jan123", "powiatwulkanowy", "FK100000", "999999")
|
setDefaultCredentials("jan@fakelog.cf", "jan123", "powiatwulkanowy", "FK100000", "999999")
|
||||||
}
|
}
|
||||||
|
updateUsernameLabel()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -89,8 +96,8 @@ class LoginAdvancedPresenter @Inject constructor(
|
|||||||
view?.clearPassError()
|
view?.clearPassError()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onNameTextChanged() {
|
fun onUsernameTextChanged() {
|
||||||
view?.clearNameError()
|
view?.clearUsernameError()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onPinTextChanged() {
|
fun onPinTextChanged() {
|
||||||
@ -137,7 +144,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun getStudentsAppropriatesToLoginType(): Single<List<Student>> {
|
private fun getStudentsAppropriatesToLoginType(): Single<List<Student>> {
|
||||||
val email = view?.formNameValue.orEmpty()
|
val email = view?.formUsernameValue.orEmpty()
|
||||||
val password = view?.formPassValue.orEmpty()
|
val password = view?.formPassValue.orEmpty()
|
||||||
val endpoint = view?.formHostValue.orEmpty()
|
val endpoint = view?.formHostValue.orEmpty()
|
||||||
|
|
||||||
@ -153,7 +160,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun validateCredentials(): Boolean {
|
private fun validateCredentials(): Boolean {
|
||||||
val login = view?.formNameValue.orEmpty()
|
val login = view?.formUsernameValue.orEmpty()
|
||||||
val password = view?.formPassValue.orEmpty()
|
val password = view?.formPassValue.orEmpty()
|
||||||
|
|
||||||
val pin = view?.formPinValue.orEmpty()
|
val pin = view?.formPinValue.orEmpty()
|
||||||
@ -181,7 +188,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
Sdk.Mode.SCRAPPER -> {
|
Sdk.Mode.SCRAPPER -> {
|
||||||
if (login.isEmpty()) {
|
if (login.isEmpty()) {
|
||||||
view?.setErrorNameRequired()
|
view?.setErrorUsernameRequired()
|
||||||
isCorrect = false
|
isCorrect = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,7 +204,7 @@ class LoginAdvancedPresenter @Inject constructor(
|
|||||||
}
|
}
|
||||||
Sdk.Mode.HYBRID -> {
|
Sdk.Mode.HYBRID -> {
|
||||||
if (login.isEmpty()) {
|
if (login.isEmpty()) {
|
||||||
view?.setErrorNameRequired()
|
view?.setErrorUsernameRequired()
|
||||||
isCorrect = false
|
isCorrect = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,11 +5,11 @@ import io.github.wulkanowy.ui.base.BaseView
|
|||||||
|
|
||||||
interface LoginAdvancedView : BaseView {
|
interface LoginAdvancedView : BaseView {
|
||||||
|
|
||||||
val formNameValue: String
|
val formUsernameValue: String
|
||||||
|
|
||||||
val formPassValue: String
|
val formPassValue: String
|
||||||
|
|
||||||
val formHostValue: String?
|
val formHostValue: String
|
||||||
|
|
||||||
val formLoginType: String
|
val formLoginType: String
|
||||||
|
|
||||||
@ -19,11 +19,17 @@ interface LoginAdvancedView : BaseView {
|
|||||||
|
|
||||||
val formTokenValue: String
|
val formTokenValue: String
|
||||||
|
|
||||||
|
val nicknameLabel: String
|
||||||
|
|
||||||
|
val emailLabel: String
|
||||||
|
|
||||||
fun initView()
|
fun initView()
|
||||||
|
|
||||||
fun setDefaultCredentials(name: String, pass: String, symbol: String, token: String, pin: String)
|
fun setDefaultCredentials(username: String, pass: String, symbol: String, token: String, pin: String)
|
||||||
|
|
||||||
fun setErrorNameRequired()
|
fun setUsernameLabel(label: String)
|
||||||
|
|
||||||
|
fun setErrorUsernameRequired()
|
||||||
|
|
||||||
fun setErrorPassRequired(focus: Boolean)
|
fun setErrorPassRequired(focus: Boolean)
|
||||||
|
|
||||||
@ -31,7 +37,7 @@ interface LoginAdvancedView : BaseView {
|
|||||||
|
|
||||||
fun setErrorPassIncorrect()
|
fun setErrorPassIncorrect()
|
||||||
|
|
||||||
fun clearNameError()
|
fun clearUsernameError()
|
||||||
|
|
||||||
fun clearPassError()
|
fun clearPassError()
|
||||||
|
|
||||||
|
@ -34,11 +34,20 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
|||||||
fun newInstance() = LoginFormFragment()
|
fun newInstance() = LoginFormFragment()
|
||||||
}
|
}
|
||||||
|
|
||||||
override val formNameValue get() = loginFormName.text.toString()
|
override val formUsernameValue: String
|
||||||
|
get() = loginFormUsername.text.toString()
|
||||||
|
|
||||||
override val formPassValue get() = loginFormPass.text.toString()
|
override val formPassValue: String
|
||||||
|
get() = loginFormPass.text.toString()
|
||||||
|
|
||||||
override val formHostValue get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString()))
|
override val formHostValue: String
|
||||||
|
get() = hostValues.getOrNull(hostKeys.indexOf(loginFormHost.text.toString())).orEmpty()
|
||||||
|
|
||||||
|
override val nicknameLabel: String
|
||||||
|
get() = getString(R.string.login_nickname_hint)
|
||||||
|
|
||||||
|
override val emailLabel: String
|
||||||
|
get() = getString(R.string.login_email_hint)
|
||||||
|
|
||||||
private lateinit var hostKeys: Array<String>
|
private lateinit var hostKeys: Array<String>
|
||||||
|
|
||||||
@ -57,7 +66,7 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
|||||||
hostKeys = resources.getStringArray(R.array.hosts_keys)
|
hostKeys = resources.getStringArray(R.array.hosts_keys)
|
||||||
hostValues = resources.getStringArray(R.array.hosts_values)
|
hostValues = resources.getStringArray(R.array.hosts_values)
|
||||||
|
|
||||||
loginFormName.doOnTextChanged { _, _, _, _ -> presenter.onNameTextChanged() }
|
loginFormUsername.doOnTextChanged { _, _, _, _ -> presenter.onUsernameTextChanged() }
|
||||||
loginFormPass.doOnTextChanged { _, _, _, _ -> presenter.onPassTextChanged() }
|
loginFormPass.doOnTextChanged { _, _, _, _ -> presenter.onPassTextChanged() }
|
||||||
loginFormHost.setOnItemClickListener { _, _, _, _ -> presenter.onHostSelected() }
|
loginFormHost.setOnItemClickListener { _, _, _, _ -> presenter.onHostSelected() }
|
||||||
loginFormSignIn.setOnClickListener { presenter.onSignInClick() }
|
loginFormSignIn.setOnClickListener { presenter.onSignInClick() }
|
||||||
@ -76,13 +85,17 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setCredentials(name: String, pass: String) {
|
override fun setCredentials(username: String, pass: String) {
|
||||||
loginFormName.setText(name)
|
loginFormUsername.setText(username)
|
||||||
loginFormPass.setText(pass)
|
loginFormPass.setText(pass)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun setErrorNameRequired() {
|
override fun setUsernameLabel(label: String) {
|
||||||
with(loginFormNameLayout) {
|
loginFormUsernameLayout.hint = label
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun setErrorUsernameRequired() {
|
||||||
|
with(loginFormUsernameLayout) {
|
||||||
requestFocus()
|
requestFocus()
|
||||||
error = getString(R.string.login_field_required)
|
error = getString(R.string.login_field_required)
|
||||||
}
|
}
|
||||||
@ -109,8 +122,8 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun clearNameError() {
|
override fun clearUsernameError() {
|
||||||
loginFormNameLayout.error = null
|
loginFormUsernameLayout.error = null
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun clearPassError() {
|
override fun clearPassError() {
|
||||||
@ -163,6 +176,11 @@ class LoginFormFragment : BaseFragment(), LoginFormView {
|
|||||||
context?.openInternetBrowser("https://wulkanowy.github.io/czesto-zadawane-pytania/dlaczego-nie-moge-sie-zalogowac", ::showMessage)
|
context?.openInternetBrowser("https://wulkanowy.github.io/czesto-zadawane-pytania/dlaczego-nie-moge-sie-zalogowac", ::showMessage)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onResume() {
|
||||||
|
super.onResume()
|
||||||
|
presenter.updateUsernameLabel()
|
||||||
|
}
|
||||||
|
|
||||||
override fun openEmail() {
|
override fun openEmail() {
|
||||||
context?.openEmailClient(
|
context?.openEmailClient(
|
||||||
requireContext().getString(R.string.login_email_intent_title),
|
requireContext().getString(R.string.login_email_intent_title),
|
||||||
|
@ -42,10 +42,17 @@ class LoginFormPresenter @Inject constructor(
|
|||||||
fun onHostSelected() {
|
fun onHostSelected() {
|
||||||
view?.apply {
|
view?.apply {
|
||||||
clearPassError()
|
clearPassError()
|
||||||
clearNameError()
|
clearUsernameError()
|
||||||
if (formHostValue?.contains("fakelog") == true) {
|
if (formHostValue.contains("fakelog")) {
|
||||||
setCredentials("jan@fakelog.cf", "jan123")
|
setCredentials("jan@fakelog.cf", "jan123")
|
||||||
}
|
}
|
||||||
|
updateUsernameLabel()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun updateUsernameLabel() {
|
||||||
|
view?.apply {
|
||||||
|
setUsernameLabel(if ("vulcan" in formHostValue || "fakelog" in formHostValue) emailLabel else nicknameLabel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,12 +60,12 @@ class LoginFormPresenter @Inject constructor(
|
|||||||
view?.clearPassError()
|
view?.clearPassError()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onNameTextChanged() {
|
fun onUsernameTextChanged() {
|
||||||
view?.clearNameError()
|
view?.clearUsernameError()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun onSignInClick() {
|
fun onSignInClick() {
|
||||||
val email = view?.formNameValue.orEmpty().trim()
|
val email = view?.formUsernameValue.orEmpty().trim()
|
||||||
val password = view?.formPassValue.orEmpty().trim()
|
val password = view?.formPassValue.orEmpty().trim()
|
||||||
val endpoint = view?.formHostValue.orEmpty().trim()
|
val endpoint = view?.formHostValue.orEmpty().trim()
|
||||||
|
|
||||||
@ -105,7 +112,7 @@ class LoginFormPresenter @Inject constructor(
|
|||||||
var isCorrect = true
|
var isCorrect = true
|
||||||
|
|
||||||
if (login.isEmpty()) {
|
if (login.isEmpty()) {
|
||||||
view?.setErrorNameRequired()
|
view?.setErrorUsernameRequired()
|
||||||
isCorrect = false
|
isCorrect = false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,15 +7,21 @@ interface LoginFormView : BaseView {
|
|||||||
|
|
||||||
fun initView()
|
fun initView()
|
||||||
|
|
||||||
val formNameValue: String
|
val formUsernameValue: String
|
||||||
|
|
||||||
val formPassValue: String
|
val formPassValue: String
|
||||||
|
|
||||||
val formHostValue: String?
|
val formHostValue: String
|
||||||
|
|
||||||
fun setCredentials(name: String, pass: String)
|
val nicknameLabel: String
|
||||||
|
|
||||||
fun setErrorNameRequired()
|
val emailLabel: String
|
||||||
|
|
||||||
|
fun setCredentials(username: String, pass: String)
|
||||||
|
|
||||||
|
fun setUsernameLabel(label: String)
|
||||||
|
|
||||||
|
fun setErrorUsernameRequired()
|
||||||
|
|
||||||
fun setErrorPassRequired(focus: Boolean)
|
fun setErrorPassRequired(focus: Boolean)
|
||||||
|
|
||||||
@ -23,7 +29,7 @@ interface LoginFormView : BaseView {
|
|||||||
|
|
||||||
fun setErrorPassIncorrect()
|
fun setErrorPassIncorrect()
|
||||||
|
|
||||||
fun clearNameError()
|
fun clearUsernameError()
|
||||||
|
|
||||||
fun clearPassError()
|
fun clearPassError()
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
android:gravity="center"
|
android:gravity="center"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingTop="24dp"
|
android:paddingTop="24dp"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/loginFormNameLayout"
|
app:layout_constraintBottom_toTopOf="@+id/loginFormUsernameLayout"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginFormHeader">
|
app:layout_constraintTop_toBottomOf="@+id/loginFormHeader">
|
||||||
@ -81,7 +81,7 @@
|
|||||||
</RadioGroup>
|
</RadioGroup>
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/loginFormNameLayout"
|
android:id="@+id/loginFormUsernameLayout"
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -98,7 +98,7 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@+id/loginTypeSwitch">
|
app:layout_constraintTop_toBottomOf="@+id/loginTypeSwitch">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:id="@+id/loginFormName"
|
android:id="@+id/loginFormUsername"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:autofillHints="username|emailAddress"
|
android:autofillHints="username|emailAddress"
|
||||||
@ -125,7 +125,7 @@
|
|||||||
app:layout_constraintBottom_toTopOf="@+id/loginFormHostLayout"
|
app:layout_constraintBottom_toTopOf="@+id/loginFormHostLayout"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginFormNameLayout"
|
app:layout_constraintTop_toBottomOf="@+id/loginFormUsernameLayout"
|
||||||
app:passwordToggleEnabled="true">
|
app:passwordToggleEnabled="true">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
@ -105,7 +105,7 @@
|
|||||||
android:text="@string/login_header_default"
|
android:text="@string/login_header_default"
|
||||||
android:textSize="16sp"
|
android:textSize="16sp"
|
||||||
app:fontFamily="sans-serif-light"
|
app:fontFamily="sans-serif-light"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/loginFormNameLayout"
|
app:layout_constraintBottom_toTopOf="@+id/loginFormUsernameLayout"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginFormContact"
|
app:layout_constraintTop_toBottomOf="@+id/loginFormContact"
|
||||||
@ -113,7 +113,7 @@
|
|||||||
|
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputLayout
|
<com.google.android.material.textfield.TextInputLayout
|
||||||
android:id="@+id/loginFormNameLayout"
|
android:id="@+id/loginFormUsernameLayout"
|
||||||
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
@ -130,7 +130,7 @@
|
|||||||
app:layout_constraintTop_toBottomOf="@+id/loginFormHeader">
|
app:layout_constraintTop_toBottomOf="@+id/loginFormHeader">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
android:id="@+id/loginFormName"
|
android:id="@+id/loginFormUsername"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:autofillHints="username|emailAddress"
|
android:autofillHints="username|emailAddress"
|
||||||
@ -157,7 +157,7 @@
|
|||||||
app:layout_constraintBottom_toTopOf="@+id/loginFormHostLayout"
|
app:layout_constraintBottom_toTopOf="@+id/loginFormHostLayout"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent"
|
app:layout_constraintStart_toStartOf="parent"
|
||||||
app:layout_constraintTop_toBottomOf="@+id/loginFormNameLayout"
|
app:layout_constraintTop_toBottomOf="@+id/loginFormUsernameLayout"
|
||||||
app:passwordToggleEnabled="true">
|
app:passwordToggleEnabled="true">
|
||||||
|
|
||||||
<com.google.android.material.textfield.TextInputEditText
|
<com.google.android.material.textfield.TextInputEditText
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
<!--Login-->
|
<!--Login-->
|
||||||
<string name="login_header_default">Zaloguj się za pomocą konta ucznia lub rodzica</string>
|
<string name="login_header_default">Zaloguj się za pomocą konta ucznia lub rodzica</string>
|
||||||
<string name="login_header_symbol">Podaj symbol</string>
|
<string name="login_header_symbol">Podaj symbol</string>
|
||||||
<string name="login_nickname_hint">Email lub nick</string>
|
<string name="login_nickname_hint">Nazwa użytkownika</string>
|
||||||
|
<string name="login_email_hint">Email</string>
|
||||||
<string name="login_password_hint">Hasło</string>
|
<string name="login_password_hint">Hasło</string>
|
||||||
<string name="login_host_hint">Dziennik</string>
|
<string name="login_host_hint">Dziennik</string>
|
||||||
<string name="login_symbol_hint">Symbol</string>
|
<string name="login_symbol_hint">Symbol</string>
|
||||||
|
@ -25,7 +25,8 @@
|
|||||||
<!--Login-->
|
<!--Login-->
|
||||||
<string name="login_header_default">Авторизируйтесь при помощи аккаунта ученика или родителя</string>
|
<string name="login_header_default">Авторизируйтесь при помощи аккаунта ученика или родителя</string>
|
||||||
<string name="login_header_symbol">Впишите \"symbol\"</string>
|
<string name="login_header_symbol">Впишите \"symbol\"</string>
|
||||||
<string name="login_nickname_hint">Электронная почта или имя пользователя</string>
|
<string name="login_nickname_hint">Имя пользователя</string>
|
||||||
|
<string name="login_email_hint">Электронная почта</string>
|
||||||
<string name="login_password_hint">Пароль</string>
|
<string name="login_password_hint">Пароль</string>
|
||||||
<string name="login_host_hint">Дневник</string>
|
<string name="login_host_hint">Дневник</string>
|
||||||
<string name="login_type_api">Мобильный API</string>
|
<string name="login_type_api">Мобильный API</string>
|
||||||
|
@ -24,7 +24,8 @@
|
|||||||
<!--Login-->
|
<!--Login-->
|
||||||
<string name="login_header_default">Sign in with the student or parent account</string>
|
<string name="login_header_default">Sign in with the student or parent account</string>
|
||||||
<string name="login_header_symbol">Enter the symbol</string>
|
<string name="login_header_symbol">Enter the symbol</string>
|
||||||
<string name="login_nickname_hint">Email or nick</string>
|
<string name="login_nickname_hint">Username</string>
|
||||||
|
<string name="login_email_hint">Email</string>
|
||||||
<string name="login_password_hint">Password</string>
|
<string name="login_password_hint">Password</string>
|
||||||
<string name="login_host_hint">Register</string>
|
<string name="login_host_hint">Register</string>
|
||||||
<string name="login_type_api">Mobile API</string>
|
<string name="login_type_api">Mobile API</string>
|
||||||
|
@ -4,7 +4,6 @@ import io.github.wulkanowy.TestSchedulersProvider
|
|||||||
import io.github.wulkanowy.data.db.entities.Student
|
import io.github.wulkanowy.data.db.entities.Student
|
||||||
import io.github.wulkanowy.data.repositories.student.StudentRepository
|
import io.github.wulkanowy.data.repositories.student.StudentRepository
|
||||||
import io.github.wulkanowy.ui.modules.login.LoginErrorHandler
|
import io.github.wulkanowy.ui.modules.login.LoginErrorHandler
|
||||||
import io.github.wulkanowy.utils.AppInfo
|
|
||||||
import io.github.wulkanowy.utils.FirebaseAnalyticsHelper
|
import io.github.wulkanowy.utils.FirebaseAnalyticsHelper
|
||||||
import io.reactivex.Single
|
import io.reactivex.Single
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
@ -34,9 +33,6 @@ class LoginFormPresenterTest {
|
|||||||
@Mock
|
@Mock
|
||||||
lateinit var analytics: FirebaseAnalyticsHelper
|
lateinit var analytics: FirebaseAnalyticsHelper
|
||||||
|
|
||||||
@Mock
|
|
||||||
lateinit var appInfo: AppInfo
|
|
||||||
|
|
||||||
private lateinit var presenter: LoginFormPresenter
|
private lateinit var presenter: LoginFormPresenter
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@ -54,36 +50,36 @@ class LoginFormPresenterTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun emptyNicknameLoginTest() {
|
fun emptyNicknameLoginTest() {
|
||||||
`when`(loginFormView.formNameValue).thenReturn("")
|
`when`(loginFormView.formUsernameValue).thenReturn("")
|
||||||
`when`(loginFormView.formPassValue).thenReturn("test123")
|
`when`(loginFormView.formPassValue).thenReturn("test123")
|
||||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||||
presenter.onSignInClick()
|
presenter.onSignInClick()
|
||||||
|
|
||||||
verify(loginFormView).setErrorNameRequired()
|
verify(loginFormView).setErrorUsernameRequired()
|
||||||
verify(loginFormView, never()).setErrorPassRequired(false)
|
verify(loginFormView, never()).setErrorPassRequired(false)
|
||||||
verify(loginFormView, never()).setErrorPassInvalid(false)
|
verify(loginFormView, never()).setErrorPassInvalid(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun emptyPassLoginTest() {
|
fun emptyPassLoginTest() {
|
||||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||||
`when`(loginFormView.formPassValue).thenReturn("")
|
`when`(loginFormView.formPassValue).thenReturn("")
|
||||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||||
presenter.onSignInClick()
|
presenter.onSignInClick()
|
||||||
|
|
||||||
verify(loginFormView, never()).setErrorNameRequired()
|
verify(loginFormView, never()).setErrorUsernameRequired()
|
||||||
verify(loginFormView).setErrorPassRequired(true)
|
verify(loginFormView).setErrorPassRequired(true)
|
||||||
verify(loginFormView, never()).setErrorPassInvalid(false)
|
verify(loginFormView, never()).setErrorPassInvalid(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun invalidPassLoginTest() {
|
fun invalidPassLoginTest() {
|
||||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||||
`when`(loginFormView.formPassValue).thenReturn("123")
|
`when`(loginFormView.formPassValue).thenReturn("123")
|
||||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||||
presenter.onSignInClick()
|
presenter.onSignInClick()
|
||||||
|
|
||||||
verify(loginFormView, never()).setErrorNameRequired()
|
verify(loginFormView, never()).setErrorUsernameRequired()
|
||||||
verify(loginFormView, never()).setErrorPassRequired(true)
|
verify(loginFormView, never()).setErrorPassRequired(true)
|
||||||
verify(loginFormView).setErrorPassInvalid(true)
|
verify(loginFormView).setErrorPassInvalid(true)
|
||||||
}
|
}
|
||||||
@ -93,7 +89,7 @@ class LoginFormPresenterTest {
|
|||||||
val studentTest = Student(email = "test@", password = "123", scrapperBaseUrl = "https://fakelog.cf", loginType = "AUTO", studentName = "", schoolSymbol = "", schoolName = "", studentId = 0, classId = 1, isCurrent = false, symbol = "", registrationDate = now(), className = "", mobileBaseUrl = "", privateKey = "", certificateKey = "", loginMode = "", userLoginId = 0, isParent = false)
|
val studentTest = Student(email = "test@", password = "123", scrapperBaseUrl = "https://fakelog.cf", loginType = "AUTO", studentName = "", schoolSymbol = "", schoolName = "", studentId = 0, classId = 1, isCurrent = false, symbol = "", registrationDate = now(), className = "", mobileBaseUrl = "", privateKey = "", certificateKey = "", loginMode = "", userLoginId = 0, isParent = false)
|
||||||
doReturn(Single.just(listOf(studentTest))).`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
doReturn(Single.just(listOf(studentTest))).`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||||
|
|
||||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||||
presenter.onSignInClick()
|
presenter.onSignInClick()
|
||||||
@ -109,7 +105,7 @@ class LoginFormPresenterTest {
|
|||||||
fun loginEmptyTest() {
|
fun loginEmptyTest() {
|
||||||
doReturn(Single.just(emptyList<Student>()))
|
doReturn(Single.just(emptyList<Student>()))
|
||||||
.`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
.`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||||
presenter.onSignInClick()
|
presenter.onSignInClick()
|
||||||
@ -125,7 +121,7 @@ class LoginFormPresenterTest {
|
|||||||
fun loginEmptyTwiceTest() {
|
fun loginEmptyTwiceTest() {
|
||||||
doReturn(Single.just(emptyList<Student>()))
|
doReturn(Single.just(emptyList<Student>()))
|
||||||
.`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
.`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||||
presenter.onSignInClick()
|
presenter.onSignInClick()
|
||||||
@ -142,7 +138,7 @@ class LoginFormPresenterTest {
|
|||||||
fun loginErrorTest() {
|
fun loginErrorTest() {
|
||||||
val testException = RuntimeException("test")
|
val testException = RuntimeException("test")
|
||||||
doReturn(Single.error<List<Student>>(testException)).`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
doReturn(Single.error<List<Student>>(testException)).`when`(repository).getStudentsScrapper(anyString(), anyString(), anyString(), anyString())
|
||||||
`when`(loginFormView.formNameValue).thenReturn("@")
|
`when`(loginFormView.formUsernameValue).thenReturn("@")
|
||||||
`when`(loginFormView.formPassValue).thenReturn("123456")
|
`when`(loginFormView.formPassValue).thenReturn("123456")
|
||||||
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
`when`(loginFormView.formHostValue).thenReturn("https://fakelog.cf")
|
||||||
presenter.onSignInClick()
|
presenter.onSignInClick()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user