Skip to content

Commit

Permalink
Added funcionality to pause and restart textwatchers
Browse files Browse the repository at this point in the history
  • Loading branch information
admin.ilegra authored and admin.ilegra committed Jun 21, 2017
1 parent f6e9fa4 commit 815dd29
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
package com.rengwuxian.materialedittext;

import android.content.Context;
import android.support.v7.widget.AppCompatEditText;
import android.text.TextWatcher;
import android.util.AttributeSet;

import java.util.ArrayList;

/**
* Created by admin.ilegra on 21/06/17.
*/

public class MaterialBaseEditText extends AppCompatEditText {

ArrayList<TextWatcher> activeListeners = null;
ArrayList<TextWatcher> pausedListeners = null;

public MaterialBaseEditText(Context context) {
super(context);
}

public MaterialBaseEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}

public MaterialBaseEditText(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}

@Override
public void addTextChangedListener(TextWatcher watcher) {
if (activeListeners == null)
activeListeners = new ArrayList<>();

activeListeners.add(watcher);

super.addTextChangedListener(watcher);

}

@Override
public void removeTextChangedListener(TextWatcher watcher) {
if (activeListeners != null)
activeListeners.remove(watcher);

super.removeTextChangedListener(watcher);
}

public void pauseTextChangedListeners() {
pausedListeners = activeListeners;

for (TextWatcher listener: activeListeners) {
super.removeTextChangedListener(listener);
}

activeListeners = null;
}

public void restartPausedTextChangedListeners() {
if (pausedListeners == null)
return;
for (TextWatcher watcher: pausedListeners) {
super.addTextChangedListener(watcher);
}
pausedListeners = null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
* author:rengwuxian
* <p/>
*/
public class MaterialEditText extends AppCompatEditText {
public class MaterialEditText extends MaterialBaseEditText {

@IntDef({FLOATING_LABEL_NONE, FLOATING_LABEL_NORMAL, FLOATING_LABEL_HIGHLIGHT})
public @interface FloatingLabelType {
Expand Down

0 comments on commit 815dd29

Please sign in to comment.