author | Margaret Leibovic <margaret.leibovic@gmail.com> |
Tue, 19 Aug 2014 12:25:38 -0700 | |
changeset 200551 | 89304862b06ee5f862e3a81d03b1f139f923c102 |
parent 200550 | c0b30ee8dca44b23f2f28ccb7a0d92214c1a08cf |
child 200552 | f24fea3d1ab1dc05ae56047b0c2316e370f4c861 |
push id | 27347 |
push user | emorley@mozilla.com |
push date | Wed, 20 Aug 2014 14:14:47 +0000 |
treeherder | mozilla-central@cbbc380f1e1c [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | eedens |
bugs | 1043027 |
milestone | 34.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
mobile/android/search/java/org/mozilla/search/autocomplete/ClearableEditText.java | file | annotate | diff | comparison | revisions |
--- a/mobile/android/search/java/org/mozilla/search/autocomplete/ClearableEditText.java +++ b/mobile/android/search/java/org/mozilla/search/autocomplete/ClearableEditText.java @@ -54,16 +54,18 @@ public class ClearableEditText extends F public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (listener != null) { listener.onChange(s.toString()); } + + updateClearButtonVisibility(); } }); // Attach a listener for the "search" key on the keyboard. editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (listener != null && actionId == EditorInfo.IME_ACTION_SEARCH) { @@ -81,17 +83,17 @@ public class ClearableEditText extends F public void onFocusChange(View v, boolean hasFocus) { if (listener != null) { listener.onFocusChange(hasFocus); } } }); clearButton = (ImageButton) findViewById(R.id.clear_button); - clearButton.setOnClickListener(new View.OnClickListener(){ + clearButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { editText.setText(""); } }); inputMethodManager = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); } @@ -108,33 +110,39 @@ public class ClearableEditText extends F } public void setActive(boolean active) { if (this.active == active) { return; } this.active = active; - clearButton.setVisibility(active ? View.VISIBLE : View.GONE); + updateClearButtonVisibility(); editText.setFocusable(active); editText.setFocusableInTouchMode(active); final int leftDrawable = active ? R.drawable.search_icon_active : R.drawable.search_icon_inactive; editText.setCompoundDrawablesWithIntrinsicBounds(leftDrawable, 0, 0, 0); if (active) { editText.requestFocus(); inputMethodManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT); } else { editText.clearFocus(); inputMethodManager.hideSoftInputFromWindow(editText.getWindowToken(), 0); } } + private void updateClearButtonVisibility() { + // Only show the clear button when there is text in the input. + final boolean visible = active && (editText.getText().length() > 0); + clearButton.setVisibility(visible ? View.VISIBLE : View.GONE); + } + public void setTextListener(TextListener listener) { this.listener = listener; } @Override public boolean onInterceptTouchEvent(MotionEvent e) { // When the view is active, pass touch events to child views. // Otherwise, intercept touch events to allow click listeners on the view to