diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/signin/CodeInputFragment.java b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/signin/CodeInputFragment.java index 642e6d752cc783a139f975a570d609a41d5eef8a..168092720b2a27a97f8dd0a6e2e9d1b5ed6eb074 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/signin/CodeInputFragment.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/fragments/signin/CodeInputFragment.java @@ -10,17 +10,24 @@ import android.widget.TextView; import android.widget.Toast; import com.arellomobile.mvp.presenter.InjectPresenter; +import com.jakewharton.rxbinding2.widget.RxTextView; import com.ninja.mobile.communicator.R; import com.ninja.mobile.communicator.mvp.presenters.CodeInputPresenter; import com.ninja.mobile.communicator.mvp.view.CodeInputView; import com.ninja.mobile.communicator.ui.base.BaseFragment; import com.ninja.mobile.communicator.ui.views.HintEditText; +import com.ninja.mobile.communicator.utils.KeyBoardUtils; import com.ninja.mobile.communicator.utils.PhoneWatcher; import com.ninja.mobile.communicator.utils.SpannableUtils; import com.ninja.mobile.communicator.utils.StringUtils; +import com.ninja.mobile.communicator.utils.ValidationUtils; import butterknife.BindView; import butterknife.OnClick; +import io.reactivex.annotations.NonNull; +import io.reactivex.functions.Consumer; +import io.reactivex.functions.Function; +import io.reactivex.functions.Predicate; /** * Created by Max Chervatiuk on 23.06.17. @@ -56,7 +63,8 @@ public class CodeInputFragment extends BaseFragment implements CodeInputView { super.onViewCreated(view, savedInstanceState); setupUI(); initSpannableResend(); -// startTimer(); + mCodeText.requestFocus(); + KeyBoardUtils.show(getActivity()); } private void setupUI() { @@ -66,6 +74,11 @@ public class CodeInputFragment extends BaseFragment implements CodeInputView { } mCodeText.addTextChangedListener(new PhoneWatcher(mCodeText)); mCodeText.setHintText(HINT_TEXT); + + RxTextView.textChanges(mCodeText) + .map(CharSequence::toString) + .filter(ValidationUtils::isCodeValid) + .subscribe(s -> mPresenter.onConfirmClick(StringUtils.getText(mPhoneNumber), StringUtils.getText(mCodeText))); } private void initSpannableResend() { diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/views/EdittextAlwaysKeyboard.java b/app/src/main/java/com/ninja/mobile/communicator/ui/views/EdittextAlwaysKeyboard.java new file mode 100644 index 0000000000000000000000000000000000000000..f514e1be9164dad8d50c46d392a398c67e352d0a --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/views/EdittextAlwaysKeyboard.java @@ -0,0 +1,25 @@ +package com.ninja.mobile.communicator.ui.views; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.KeyEvent; +import android.widget.EditText; + +public class EdittextAlwaysKeyboard extends EditText { + + public EdittextAlwaysKeyboard(Context context) { + super(context); + } + + public EdittextAlwaysKeyboard(Context context, AttributeSet attrs) { + super(context, attrs); + } + + public EdittextAlwaysKeyboard(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); + } + + @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { + return true; + } +} \ No newline at end of file diff --git a/app/src/main/java/com/ninja/mobile/communicator/ui/views/HintEditTextAlwaysKeyboard.java b/app/src/main/java/com/ninja/mobile/communicator/ui/views/HintEditTextAlwaysKeyboard.java index 50db6e3738193539d83da3cf2e1f5a16277b2c89..7ca4cd9ac0b550b124e58994a19bba87e28d89bb 100644 --- a/app/src/main/java/com/ninja/mobile/communicator/ui/views/HintEditTextAlwaysKeyboard.java +++ b/app/src/main/java/com/ninja/mobile/communicator/ui/views/HintEditTextAlwaysKeyboard.java @@ -3,6 +3,7 @@ package com.ninja.mobile.communicator.ui.views; import android.content.Context; import android.util.AttributeSet; import android.view.KeyEvent; +import android.widget.EditText; public class HintEditTextAlwaysKeyboard extends HintEditText { public HintEditTextAlwaysKeyboard(Context context) { @@ -19,7 +20,6 @@ public class HintEditTextAlwaysKeyboard extends HintEditText { @Override public boolean onKeyPreIme(int keyCode, KeyEvent event) { -// if (keyCode == KeyEvent.KEYCODE_BACK) return true; } } diff --git a/app/src/main/java/com/ninja/mobile/communicator/utils/KeyBoardUtils.java b/app/src/main/java/com/ninja/mobile/communicator/utils/KeyBoardUtils.java new file mode 100644 index 0000000000000000000000000000000000000000..d7b612ce80e34b943a54723539e21b47dd225915 --- /dev/null +++ b/app/src/main/java/com/ninja/mobile/communicator/utils/KeyBoardUtils.java @@ -0,0 +1,12 @@ +package com.ninja.mobile.communicator.utils; + +import android.content.Context; +import android.view.inputmethod.InputMethodManager; + +public class KeyBoardUtils { + + public static void show(Context context){ + InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,0); + } +} diff --git a/app/src/main/res/layout/fragment_input_phone.xml b/app/src/main/res/layout/fragment_input_phone.xml index 6cc052d542b85d3ebdbf257277009df1f4ce2e5a..f40670ee69207a3bc6f85f054b3775b6bfcf804f 100644 --- a/app/src/main/res/layout/fragment_input_phone.xml +++ b/app/src/main/res/layout/fragment_input_phone.xml @@ -101,7 +101,7 @@ app:layout_constraintVertical_bias="0.51" tools:ignore="HardcodedText"/> -