Skip to content

Commit 73dd564

Browse files
committed
Adding TextWatcher implementation for OnCompleteListener
1 parent 7147bff commit 73dd564

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

otpedittext2/src/main/java/com/broooapps/otpedittext2/OtpEditText.java

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
/**
44
* Created by Swapnil Tiwari on 2019-05-07.
5-
* swapnil.tiwari@box8.in
5+
* swapniltiwari775@gmail.com
66
*/
77

88
import android.content.Context;
@@ -12,15 +12,15 @@
1212
import android.support.v4.content.ContextCompat;
1313
import android.support.v7.widget.AppCompatEditText;
1414
import android.text.Editable;
15-
import android.text.method.PasswordTransformationMethod;
15+
import android.text.TextWatcher;
1616
import android.util.AttributeSet;
1717
import android.view.ActionMode;
1818
import android.view.Menu;
1919
import android.view.MenuItem;
2020
import android.view.View;
2121

2222

23-
public class OtpEditText extends AppCompatEditText {
23+
public class OtpEditText extends AppCompatEditText implements TextWatcher {
2424
public static final String XML_NAMESPACE_ANDROID = "http://schemas.android.com/apk/res/android";
2525

2626
private OnClickListener mClickListener;
@@ -72,6 +72,9 @@ private void init(Context context, AttributeSet attrs) {
7272

7373
getAttrsFromTypedArray(attrs);
7474

75+
// Set the TextWatcher
76+
this.addTextChangedListener(this);
77+
7578
float multi = context.getResources().getDisplayMetrics().density;
7679
mLineStroke = multi * mLineStroke;
7780
mLineStrokeSelected = multi * mLineStrokeSelected;
@@ -230,11 +233,6 @@ protected void onDraw(Canvas canvas) {
230233
} else {
231234
canvas.drawText(text, i, i + 1, middle - textWidths[0] / 2, mLineSpacing, getPaint());
232235
}
233-
if (i + 1 == mNumChars) {
234-
if (completeListener != null) {
235-
completeListener.onComplete(String.valueOf(getText()));
236-
}
237-
}
238236
}
239237

240238
if (mSpace < 0) {
@@ -274,4 +272,19 @@ private void updateColorForLines(boolean next, boolean current) {
274272
public void setOnCompleteListener(OnCompleteListener listener) {
275273
completeListener = listener;
276274
}
275+
276+
@Override
277+
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
278+
}
279+
280+
@Override
281+
public void onTextChanged(CharSequence s, int start, int before, int count) {
282+
}
283+
284+
@Override
285+
public void afterTextChanged(Editable s) {
286+
if (s.length() == mNumChars) {
287+
completeListener.onComplete(String.valueOf(s));
288+
}
289+
}
277290
}

0 commit comments

Comments
 (0)