Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.zprokhorenko.donationsapplication;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.support.v4.app.Fragment;
- import android.telephony.PhoneNumberUtils;
- import android.text.Editable;
- import android.text.TextUtils;
- import android.text.TextWatcher;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import java.util.ArrayList;
- import java.util.logging.Logger;
- import butterknife.Bind;
- import butterknife.ButterKnife;
- import butterknife.OnClick;
- /**
- * A simple {@link Fragment} subclass.
- * Use the {@link DAInputFragment#newInstance} factory method to
- * create an instance of this fragment.
- */
- public class DAInputFragment extends Fragment {
- @Bind(R.id.etName)
- EditText etName;
- @Bind(R.id.etSum)
- EditText etSum;
- @Bind(R.id.etPhone)
- EditText etPhone;
- @Bind(R.id.etMail)
- EditText etMail;
- @Bind(R.id.etMessage)
- EditText etMessage;
- @Bind(R.id.btnSendDonation)
- Button btnSendDonation;
- @Bind(R.id.ivClose)
- ImageView ivClose;
- public static final int CORRECT_DATA = 2;
- public static final int EMPTY_DATA = 0;
- public static final int INCORRECT_DATA = 1;
- int minimSum = 10;
- int minSumFromDa = 15;
- String[] mailError = {"Введите e-mail", "Некорректный e-mail"};
- String[] phoneError = {"Введите номер", "Неправильный номер"};
- String[] sumError = {"Введите сумму", "Сумма должна быть больше " + minSumFromDa + " р"};
- ValidationResult mailValidationResult;
- ValidationResult phoneValidationResult;
- ValidationResult sumValidationResult;
- public DAInputFragment() {
- // Required empty public constructor
- }
- public static DAInputFragment newInstance() {
- return new DAInputFragment();
- }
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- }
- @Override
- public View onCreateView(LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View v = inflater.inflate(R.layout.fragment_dainput, container, false);
- ButterKnife.bind( this, v);
- setOnFocusChangedListener();
- return v;
- }
- @OnClick (R.id.ivClose)
- public void closeDonations(){
- getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
- }
- private void setOnFocusChangedListener(){
- etSum.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View view, boolean isFocused) {
- if(!isFocused){
- validateData();
- setSumValidationResult();
- }
- }
- });
- etPhone.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View view, boolean isFocused) {
- if(!isFocused) {
- validateData();
- setPhoneValidationResult();
- }
- }
- });
- etMail.setOnFocusChangeListener(new View.OnFocusChangeListener() {
- @Override
- public void onFocusChange(View view, boolean isFocused) {
- if(!isFocused) {
- validateData();
- setMailValidationResult();
- }
- }
- });
- }
- private ValidationResult validateSum(int minSum){
- ValidationResult dataValidator;
- if (minSum < minimSum){
- minSum = minimSum;
- }
- if (etSum.getText().toString().equalsIgnoreCase("")){
- dataValidator = new ValidationResult(EMPTY_DATA, false);
- }else if(Integer.parseInt(etSum.getText().toString()) >= minSum){
- dataValidator = new ValidationResult(CORRECT_DATA, true);
- }else {
- dataValidator = new ValidationResult(INCORRECT_DATA, false);
- }
- return dataValidator;
- }
- @OnClick(R.id.btnSendDonation)
- public void onBtnClick(){
- validateData();
- setValidationResultsOnViews();
- }
- private void setErrorMessage(ValidationResult dataValidator, EditText editText, String [] errorMessages){
- if(!dataValidator.isValid){
- editText.setError(errorMessages[dataValidator.getErrorCode()]);
- }
- }
- private void clearErrorMessage(ValidationResult dataValidator, EditText editText){
- if(dataValidator.isValid){
- editText.setError(null);
- }
- }
- private void setValidationResults (){
- mailValidationResult = validateMail();
- phoneValidationResult = validatePhone();
- sumValidationResult = validateSum(minSumFromDa);
- }
- private boolean isDataValid(){
- setValidationResults();
- return (mailValidationResult.getIsValid() && phoneValidationResult.getIsValid() && sumValidationResult.getIsValid());
- }
- private void validateData(){
- if(isDataValid()){
- btnSendDonation.setBackgroundColor(Color.parseColor("#ff3b80"));
- btnSendDonation.setTextColor(Color.parseColor("#ffffff"));
- }else {
- btnSendDonation.setBackgroundColor(Color.parseColor("#f5f5f5"));
- btnSendDonation.setTextColor(Color.parseColor("#838383"));
- }
- }
- private void setValidationResultsOnViews(){
- setMailValidationResult();
- setPhoneValidationResult();
- setSumValidationResult();
- }
- private void setMailValidationResult(){
- setValidationResults();
- if(!mailValidationResult.getIsValid()){
- setErrorMessage(mailValidationResult, etMail, mailError);
- } else {
- clearErrorMessage(mailValidationResult, etMail);
- }
- }
- private void setPhoneValidationResult(){
- setValidationResults();
- if(!phoneValidationResult.getIsValid()){
- setErrorMessage(phoneValidationResult, etPhone, phoneError);
- }else {
- clearErrorMessage(phoneValidationResult, etPhone);
- }
- }
- private void setSumValidationResult(){
- setValidationResults();
- if(!sumValidationResult.getIsValid()){
- setErrorMessage(sumValidationResult, etSum, sumError);
- }else {
- clearErrorMessage(sumValidationResult, etSum);
- }
- }
- private ValidationResult validateMail(){
- ValidationResult dataValidator;
- if (etMail.getText().toString().equalsIgnoreCase("")){
- dataValidator = new ValidationResult(EMPTY_DATA, false);
- }else if(isValidEmail(etMail.getText().toString())){
- dataValidator = new ValidationResult(CORRECT_DATA, true);
- }else {
- dataValidator =new ValidationResult(INCORRECT_DATA, false);
- }
- return dataValidator;
- }
- private ValidationResult validatePhone(){
- ValidationResult dataValidator;
- if (etPhone.getText().toString().equalsIgnoreCase("")){
- dataValidator = new ValidationResult(EMPTY_DATA, false);
- }else if(isValidCellPhone(etPhone.getText().toString())){
- dataValidator = new ValidationResult(CORRECT_DATA, true);
- }else {
- dataValidator =new ValidationResult(INCORRECT_DATA, false);
- }
- return dataValidator;
- }
- public final static boolean isValidEmail(CharSequence target) {
- if (TextUtils.isEmpty(target)) {
- return false;
- } else {
- return android.util.Patterns.EMAIL_ADDRESS.matcher(target).matches();
- }
- }
- public boolean isValidCellPhone(String number)
- {
- return (number.length() == 10 );
- }
- public class ValidationResult{
- private int errorCode;
- private boolean isValid;
- public ValidationResult( int errorCode, boolean isValid){
- this.errorCode = errorCode;
- this.isValid =isValid;
- }
- public int getErrorCode(){
- return errorCode;
- }
- public boolean getIsValid(){
- return isValid;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement