Skip to content
Snippets Groups Projects
Commit 7c2d1a77 authored by Jawnnypoo's avatar Jawnnypoo
Browse files

Check valid as TextInputLayout extension

parent 5b7a55af
No related branches found
No related tags found
No related merge requests found
Pipeline #
Loading
Loading
@@ -20,10 +20,10 @@ import butterknife.OnClick
import com.afollestad.materialdialogs.color.ColorChooserDialog
import com.commit451.gitlab.App
import com.commit451.gitlab.R
import com.commit451.gitlab.extension.checkValid
import com.commit451.gitlab.model.api.Label
import com.commit451.gitlab.rx.CustomResponseSingleObserver
import com.commit451.gitlab.util.ColorUtil
import com.commit451.gitlab.util.Validator
import com.jakewharton.retrofit2.adapter.rxjava2.HttpException
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.schedulers.Schedulers
Loading
Loading
@@ -101,7 +101,8 @@ class AddNewLabelActivity : BaseActivity(), ColorChooserDialog.ColorCallback {
get() = intent.getLongExtra(KEY_PROJECT_ID, -1)
 
private fun createLabel() {
if (Validator.validateFieldsNotEmpty(getString(R.string.required_field), textInputLayoutTitle)) {
val valid = textInputLayoutTitle.checkValid()
if (valid) {
if (chosenColor == -1) {
Snackbar.make(root, R.string.add_new_label_color_is_required, Snackbar.LENGTH_SHORT)
.show()
Loading
Loading
package com.commit451.gitlab.activity
 
import android.support.design.widget.TextInputLayout
import android.text.TextUtils
import com.commit451.gitlab.R
import com.novoda.simplechromecustomtabs.SimpleChromeCustomTabs
import com.trello.rxlifecycle2.components.support.RxAppCompatActivity
 
Loading
Loading
@@ -29,17 +25,4 @@ open class BaseActivity : RxAppCompatActivity() {
}
super.onPause()
}
fun hasEmptyFields(vararg textInputLayouts: TextInputLayout): Boolean {
var hasEmptyField = false
for (textInputLayout in textInputLayouts) {
if (TextUtils.isEmpty(textInputLayout.editText!!.text)) {
textInputLayout.error = getString(R.string.required_field)
hasEmptyField = true
} else {
textInputLayout.error = null
}
}
return hasEmptyField
}
}
Loading
Loading
@@ -28,6 +28,7 @@ import com.commit451.gitlab.data.Prefs
import com.commit451.gitlab.dialog.HttpLoginDialog
import com.commit451.gitlab.event.LoginEvent
import com.commit451.gitlab.event.ReloadDataEvent
import com.commit451.gitlab.extension.checkValid
import com.commit451.gitlab.model.Account
import com.commit451.gitlab.model.api.Message
import com.commit451.gitlab.model.api.UserFull
Loading
Loading
@@ -115,7 +116,7 @@ class LoginActivity : BaseActivity() {
fun onLoginClick() {
teleprinter.hideKeyboard()
 
if (hasEmptyFields(textInputLayoutUrl)) {
if (!textInputLayoutUrl.checkValid()) {
return
}
 
Loading
Loading
@@ -125,11 +126,12 @@ class LoginActivity : BaseActivity() {
val uri = Uri.parse(textInputLayoutUrl.editText!!.text.toString())
 
if (isNormalLogin) {
if (hasEmptyFields(textInputLayoutUser, textInputLayoutPassword)) {
val valid = textInputLayoutUser.checkValid() and textInputLayoutPassword.checkValid()
if (!valid) {
return
}
} else {
if (hasEmptyFields(textInputLayoutToken)) {
if (!textInputLayoutToken.checkValid()) {
return
}
if (!sTokenPattern.matcher(textToken.text).matches()) {
Loading
Loading
package com.commit451.gitlab.extension
import android.support.design.widget.TextInputLayout
import com.commit451.gitlab.R
fun TextInputLayout.checkValid(): Boolean {
if (editText!!.text.isNullOrEmpty()) {
error = resources.getString(R.string.required_field)
return false
} else {
error = null
return true
}
}
fun TextInputLayout.text(): String {
return editText!!.text.toString()
}
package com.commit451.gitlab.util
import android.support.design.widget.TextInputLayout
import android.text.TextUtils
/**
* Validates input
*/
object Validator {
/**
* Make sure all the edittexts are not empty and fill in an error message if they are
* @param textInputLayouts all the input layouts you wish to validate
* *
* @return true if all the fields were valid.
*/
fun validateFieldsNotEmpty(errorText: String, vararg textInputLayouts: TextInputLayout): Boolean {
var valid = true
for (textInputLayout in textInputLayouts) {
if (textInputLayout.editText != null && TextUtils.isEmpty(textInputLayout.editText!!.text.toString().trim { it <= ' ' })) {
textInputLayout.error = errorText
valid = false
} else {
//clear out a possible previous error
textInputLayout.error = null
}
}
return valid
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment