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 24c2a9433c483ffd1f1467596181d870aa25bb4a..72d2a88c71a97c8813b2c4174ee610944fec8b50 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
@@ -1,9 +1,8 @@
package com.ninja.mobile.communicator.ui.fragments.signin;
-import android.content.DialogInterface;
import android.os.Bundle;
+import android.os.CountDownTimer;
import android.support.annotation.Nullable;
-import android.support.v7.app.AlertDialog;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -14,7 +13,6 @@ import com.arellomobile.mvp.presenter.InjectPresenter;
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.activities.ProfileActivity;
import com.ninja.mobile.communicator.ui.base.BaseFragment;
import com.ninja.mobile.communicator.ui.views.HintEditText;
import com.ninja.mobile.communicator.utils.PhoneWatcher;
@@ -30,6 +28,9 @@ import butterknife.OnClick;
*/
public class CodeInputFragment extends BaseFragment implements CodeInputView {
+ private static final int SECOND = 1000;
+ private static final int TIME = 60 * SECOND;
+ private int timer;
public static final String PHONE_TAG = "phone";
private final static String HINT_TEXT = "--- ---";
@@ -37,6 +38,7 @@ public class CodeInputFragment extends BaseFragment implements CodeInputView {
@BindView(R.id.f_code_tv_repeat) TextView mNotReceivedText;
@BindView(R.id.f_code_tv_phone) TextView mPhoneNumber;
@BindView(R.id.f_code_edt_code) HintEditText mCodeText;
+ @BindView(R.id.f_code_tv_should_receive) TextView shouldReceive;
@InjectPresenter CodeInputPresenter mCodeInputPresenter;
@@ -55,7 +57,8 @@ public class CodeInputFragment extends BaseFragment implements CodeInputView {
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
setupUI();
- initSpannableTerms();
+ initSpannableResend();
+ initTimer();
}
private void setupUI() {
@@ -67,11 +70,34 @@ public class CodeInputFragment extends BaseFragment implements CodeInputView {
mCodeText.setHintText(HINT_TEXT);
}
- private void initSpannableTerms() {
- View.OnClickListener onClickListener = v -> mCodeInputPresenter.onResendClick();
+ private void initSpannableResend() {
+ View.OnClickListener onClickListener = v -> {
+ mCodeInputPresenter.onResendClick();
+ initTimer();
+ };
SpannableUtils.setSpannable(getActivity(), mNotReceivedText, R.string.signin_text_have_not_received, R.string.signin_text_have_not_received, onClickListener);
}
+ private void initTimer(){
+ mNotReceivedText.setEnabled(false);
+ mNotReceivedText.setText(R.string.signin_text_have_not_received);
+ shouldReceive.setVisibility(View.VISIBLE);
+ timer = TIME;
+ new CountDownTimer(TIME, 1000) {
+
+ public void onTick(long millisUntilFinished) {
+ timer = timer - SECOND;
+ shouldReceive.setText(getString(R.string.signin_text_should_receive, timer/SECOND));
+ }
+
+ public void onFinish() {
+ shouldReceive.setVisibility(View.GONE);
+ mNotReceivedText.setEnabled(true);
+ initSpannableResend();
+ }
+ }.start();
+ }
+
@OnClick(R.id.f_code_btn_next)
public void onNextClick() {
mCodeInputPresenter.onConfirmClick(StringUtils.getText(mPhoneNumber), StringUtils.getText(mCodeText));
diff --git a/app/src/main/res/layout/fragment_input_code.xml b/app/src/main/res/layout/fragment_input_code.xml
index 31f23e7807c7758a618c1b7b3dd9c0aae55586b5..a0ac0566c04aa6db5bec7acf2390e668ae439188 100644
--- a/app/src/main/res/layout/fragment_input_code.xml
+++ b/app/src/main/res/layout/fragment_input_code.xml
@@ -115,6 +115,20 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/f_code_view_2" />
+
+
+ app:layout_constraintTop_toBottomOf="@+id/f_code_tv_should_receive" />
terms of service
Haven`t received the code?
We`ve sent a code to your phone.
+ You should receive it within %d seconds
How would you like to be called?
First Name\u002A
Last Name