Search in sources :

Example 26 with TextWatcher

use of android.text.TextWatcher in project Genius-Android by qiujuer.

the class EditText method initHintTitleText.

private void initHintTitleText() {
    if (isShowTitle()) {
        // Set up a default TextPaint object
        if (mTitlePaint == null) {
            mTitlePaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
            mTitlePaint.density = getResources().getDisplayMetrics().density;
            mTitlePaint.setTextAlign(Paint.Align.LEFT);
            mTitlePaint.setTypeface(getTypeface());
        }
        // Add Watcher
        if (mTextWatcher == null) {
            mTextWatcher = new TextWatcher() {

                @Override
                public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                }

                @Override
                public void onTextChanged(CharSequence s, int start, int before, int count) {
                }

                @Override
                public void afterTextChanged(Editable s) {
                    checkShowTitle(s, false);
                }
            };
            addTextChangedListener(mTextWatcher);
        }
        // try show
        Editable editable = getEditableText();
        checkShowTitle(editable, false);
    } else {
        if (mTextWatcher != null) {
            removeTextChangedListener(mTextWatcher);
            mTextWatcher = null;
        }
        mTitlePaint = null;
        mCurTitleProperty = null;
        mAnimator = null;
    }
}
Also used : TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) SuppressLint(android.annotation.SuppressLint) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint) TextPaint(android.text.TextPaint)

Example 27 with TextWatcher

use of android.text.TextWatcher in project MaterialEditText by rengwuxian.

the class MaterialMultiAutoCompleteTextView method initFloatingLabel.

private void initFloatingLabel() {
    // observe the text changing
    addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            if (floatingLabelEnabled) {
                if (s.length() == 0) {
                    if (floatingLabelShown) {
                        floatingLabelShown = false;
                        getLabelAnimator().reverse();
                    }
                } else if (!floatingLabelShown) {
                    floatingLabelShown = true;
                    getLabelAnimator().start();
                }
            }
        }
    });
    // observe the focus state to animate the floating label's text color appropriately
    innerFocusChangeListener = new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (floatingLabelEnabled && highlightFloatingLabel) {
                if (hasFocus) {
                    getLabelFocusAnimator().start();
                } else {
                    getLabelFocusAnimator().reverse();
                }
            }
            if (validateOnFocusLost && !hasFocus) {
                validate();
            }
            if (outerFocusChangeListener != null) {
                outerFocusChangeListener.onFocusChange(v, hasFocus);
            }
        }
    };
    super.setOnFocusChangeListener(innerFocusChangeListener);
}
Also used : TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) View(android.view.View) AppCompatMultiAutoCompleteTextView(android.support.v7.widget.AppCompatMultiAutoCompleteTextView) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint)

Example 28 with TextWatcher

use of android.text.TextWatcher in project FloatingSearchView by renaudcerrato.

the class MainActivity method onCreate.

@Override
protected void onCreate(Bundle savedInstanceState) {
    DaggerAppComponent.builder().build().inject(this);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mSearch.setListener(this);
    mSearchView = (FloatingSearchView) findViewById(R.id.search);
    mSearchView.setAdapter(mAdapter = new SearchAdapter());
    mSearchView.showLogo(true);
    mSearchView.setItemAnimator(new CustomSuggestionItemAnimator(mSearchView));
    updateNavigationIcon(R.id.menu_icon_search);
    mSearchView.showIcon(shouldShowNavigationIcon());
    mSearchView.setOnIconClickListener(new FloatingSearchView.OnIconClickListener() {

        @Override
        public void onNavigationClick() {
            // toggle
            mSearchView.setActivated(!mSearchView.isActivated());
        }
    });
    mSearchView.setOnSearchListener(new FloatingSearchView.OnSearchListener() {

        @Override
        public void onSearchAction(CharSequence text) {
            mSearchView.setActivated(false);
        }
    });
    mSearchView.setOnMenuItemClickListener(this);
    mSearchView.addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence query, int start, int before, int count) {
            showClearButton(query.length() > 0 && mSearchView.isActivated());
            search(query.toString().trim());
        }

        @Override
        public void afterTextChanged(Editable s) {
        }
    });
    mSearchView.setOnSearchFocusChangedListener(new FloatingSearchView.OnSearchFocusChangedListener() {

        @Override
        public void onFocusChanged(final boolean focused) {
            boolean textEmpty = mSearchView.getText().length() == 0;
            showClearButton(focused && !textEmpty);
            if (!focused)
                showProgressBar(false);
            mSearchView.showLogo(!focused && textEmpty);
            if (focused)
                mSearchView.showIcon(true);
            else
                mSearchView.showIcon(shouldShowNavigationIcon());
        }
    });
    mSearchView.setText(null);
}
Also used : TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) FloatingSearchView(com.mypopsy.widget.FloatingSearchView)

Example 29 with TextWatcher

use of android.text.TextWatcher in project MaterialEditText by rengwuxian.

the class MaterialAutoCompleteTextView method initFloatingLabel.

private void initFloatingLabel() {
    // observe the text changing
    addTextChangedListener(new TextWatcher() {

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            if (floatingLabelEnabled) {
                if (s.length() == 0) {
                    if (floatingLabelShown) {
                        floatingLabelShown = false;
                        getLabelAnimator().reverse();
                    }
                } else if (!floatingLabelShown) {
                    floatingLabelShown = true;
                    getLabelAnimator().start();
                }
            }
        }
    });
    // observe the focus state to animate the floating label's text color appropriately
    innerFocusChangeListener = new OnFocusChangeListener() {

        @Override
        public void onFocusChange(View v, boolean hasFocus) {
            if (floatingLabelEnabled && highlightFloatingLabel) {
                if (hasFocus) {
                    getLabelFocusAnimator().start();
                } else {
                    getLabelFocusAnimator().reverse();
                }
            }
            if (validateOnFocusLost && !hasFocus) {
                validate();
            }
            if (outerFocusChangeListener != null) {
                outerFocusChangeListener.onFocusChange(v, hasFocus);
            }
        }
    };
    super.setOnFocusChangeListener(innerFocusChangeListener);
}
Also used : TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) AppCompatAutoCompleteTextView(android.support.v7.widget.AppCompatAutoCompleteTextView) View(android.view.View) TextPaint(android.text.TextPaint) Paint(android.graphics.Paint)

Example 30 with TextWatcher

use of android.text.TextWatcher in project xabber-android by redsolution.

the class ChatViewerFragment method onCreateView.

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreateView(inflater, container, savedInstanceState);
    View view = inflater.inflate(R.layout.chat_viewer_fragment, container, false);
    contactTitleView = view.findViewById(R.id.contact_title);
    abstractContact = RosterManager.getInstance().getBestContact(account, user);
    contactTitleView.findViewById(R.id.avatar).setOnClickListener(this);
    toolbar = (Toolbar) view.findViewById(R.id.toolbar_default);
    toolbar.inflateMenu(R.menu.chat);
    toolbar.setOnMenuItemClickListener(this);
    toolbar.setNavigationIcon(R.drawable.ic_arrow_left_white_24dp);
    toolbar.setNavigationOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            NavUtils.navigateUpFromSameTask(getActivity());
        }
    });
    setHasOptionsMenu(true);
    sendButton = (ImageButton) view.findViewById(R.id.button_send_message);
    sendButton.setColorFilter(ColorManager.getInstance().getAccountPainter().getGreyMain());
    AbstractChat abstractChat = MessageManager.getInstance().getChat(account, user);
    securityButton = (ImageButton) view.findViewById(R.id.button_security);
    if (abstractChat instanceof RegularChat) {
        securityButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                showSecurityMenu();
            }
        });
    } else {
        securityButton.setVisibility(View.GONE);
    }
    chatMessageAdapter = new ChatMessageAdapter(getActivity(), account, user, this, this);
    recyclerView = (RecyclerView) view.findViewById(R.id.chat_messages_recycler_view);
    recyclerView.setAdapter(chatMessageAdapter);
    layoutManager = new LinearLayoutManager(getActivity());
    layoutManager.setStackFromEnd(true);
    recyclerView.setLayoutManager(layoutManager);
    // to avoid strange bug on some 4.x androids
    view.findViewById(R.id.input_layout).setBackgroundColor(ColorManager.getInstance().getChatInputBackgroundColor());
    inputView = (EditText) view.findViewById(R.id.chat_input);
    view.findViewById(R.id.button_send_message).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            sendMessage();
        }
    });
    inputView.setOnKeyListener(new View.OnKeyListener() {

        @Override
        public boolean onKey(View view, int keyCode, KeyEvent event) {
            if (SettingsManager.chatsSendByEnter() && event.getAction() == KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) {
                sendMessage();
                return true;
            }
            return false;
        }
    });
    inputView.addTextChangedListener(new TextWatcher() {

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
            if (!skipOnTextChanges && stopTypingTimer != null) {
                stopTypingTimer.cancel();
            }
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void afterTextChanged(Editable text) {
            setUpInputViewButtons();
            if (skipOnTextChanges) {
                return;
            }
            ChatStateManager.getInstance().onComposing(account, user, text);
            stopTypingTimer = new Timer();
            stopTypingTimer.schedule(new TimerTask() {

                @Override
                public void run() {
                    Application.getInstance().runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            ChatStateManager.getInstance().onPaused(account, user);
                        }
                    });
                }
            }, STOP_TYPING_DELAY);
        }
    });
    final ImageButton emojiButton = (ImageButton) view.findViewById(R.id.button_emoticon);
    final View rootView = view.findViewById(R.id.root_view);
    // Give the topmost view of your activity layout hierarchy. This will be used to measure soft keyboard height
    final EmojiconsPopup popup = new EmojiconsPopup(rootView, getActivity());
    //Will automatically set size according to the soft keyboard size
    popup.setSizeForSoftKeyboard();
    //If the emoji popup is dismissed, change emojiButton to smiley icon
    popup.setOnDismissListener(new PopupWindow.OnDismissListener() {

        @Override
        public void onDismiss() {
            changeEmojiKeyboardIcon(emojiButton, R.drawable.ic_mood_black_24dp);
        }
    });
    //If the text keyboard closes, also dismiss the emoji popup
    popup.setOnSoftKeyboardOpenCloseListener(new EmojiconsPopup.OnSoftKeyboardOpenCloseListener() {

        @Override
        public void onKeyboardOpen(int keyBoardHeight) {
        }

        @Override
        public void onKeyboardClose() {
            if (popup.isShowing())
                popup.dismiss();
        }
    });
    //On emoji clicked, add it to edittext
    popup.setOnEmojiconClickedListener(new EmojiconGridView.OnEmojiconClickedListener() {

        @Override
        public void onEmojiconClicked(Emojicon emojicon) {
            if (inputView == null || emojicon == null) {
                return;
            }
            int start = inputView.getSelectionStart();
            int end = inputView.getSelectionEnd();
            if (start < 0) {
                inputView.append(emojicon.getEmoji());
            } else {
                inputView.getText().replace(Math.min(start, end), Math.max(start, end), emojicon.getEmoji(), 0, emojicon.getEmoji().length());
            }
        }
    });
    //On backspace clicked, emulate the KEYCODE_DEL key event
    popup.setOnEmojiconBackspaceClickedListener(new EmojiconsPopup.OnEmojiconBackspaceClickedListener() {

        @Override
        public void onEmojiconBackspaceClicked(View v) {
            KeyEvent event = new KeyEvent(0, 0, 0, KeyEvent.KEYCODE_DEL, 0, 0, 0, 0, KeyEvent.KEYCODE_ENDCALL);
            inputView.dispatchKeyEvent(event);
        }
    });
    // To toggle between text keyboard and emoji keyboard keyboard(Popup)
    emojiButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //If popup is not showing => emoji keyboard is not visible, we need to show it
            if (!popup.isShowing()) {
                //If keyboard is visible, simply show the emoji popup
                if (popup.isKeyBoardOpen()) {
                    popup.showAtBottom();
                    changeEmojiKeyboardIcon(emojiButton, R.drawable.ic_keyboard_black_24dp);
                } else //else, open the text keyboard first and immediately after that show the emoji popup
                {
                    inputView.setFocusableInTouchMode(true);
                    inputView.requestFocus();
                    popup.showAtBottomPending();
                    final InputMethodManager inputMethodManager = (InputMethodManager) getActivity().getSystemService(Context.INPUT_METHOD_SERVICE);
                    inputMethodManager.showSoftInput(inputView, InputMethodManager.SHOW_IMPLICIT);
                    changeEmojiKeyboardIcon(emojiButton, R.drawable.ic_keyboard_black_24dp);
                }
            } else //If popup is showing, simply dismiss it to show the undelying text keyboard
            {
                popup.dismiss();
            }
        }
    });
    attachButton = (ImageButton) view.findViewById(R.id.button_attach);
    attachButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            onAttachButtonPressed();
        }
    });
    return view;
}
Also used : EmojiconGridView(github.ankushsachdeva.emojicon.EmojiconGridView) PopupWindow(android.widget.PopupWindow) ChatMessageAdapter(com.xabber.android.ui.adapter.ChatMessageAdapter) InputMethodManager(android.view.inputmethod.InputMethodManager) LinearLayoutManager(android.support.v7.widget.LinearLayoutManager) RegularChat(com.xabber.android.data.message.RegularChat) KeyEvent(android.view.KeyEvent) ImageButton(android.widget.ImageButton) TimerTask(java.util.TimerTask) TextWatcher(android.text.TextWatcher) Editable(android.text.Editable) EmojiconsPopup(github.ankushsachdeva.emojicon.EmojiconsPopup) AbstractChat(com.xabber.android.data.message.AbstractChat) ImageView(android.widget.ImageView) View(android.view.View) EmojiconGridView(github.ankushsachdeva.emojicon.EmojiconGridView) RecyclerView(android.support.v7.widget.RecyclerView) Timer(java.util.Timer) Emojicon(github.ankushsachdeva.emojicon.emoji.Emojicon)

Aggregations

TextWatcher (android.text.TextWatcher)177 Editable (android.text.Editable)143 View (android.view.View)86 TextView (android.widget.TextView)67 Paint (android.graphics.Paint)37 TextPaint (android.text.TextPaint)28 ImageView (android.widget.ImageView)27 EditText (android.widget.EditText)26 Intent (android.content.Intent)24 KeyEvent (android.view.KeyEvent)21 AdapterView (android.widget.AdapterView)18 ListView (android.widget.ListView)15 DialogInterface (android.content.DialogInterface)12 Button (android.widget.Button)12 RecyclerView (android.support.v7.widget.RecyclerView)11 AlertDialog (android.app.AlertDialog)10 OnClickListener (android.view.View.OnClickListener)10 InputMethodManager (android.view.inputmethod.InputMethodManager)10 LinearLayoutManager (android.support.v7.widget.LinearLayoutManager)9 SuppressLint (android.annotation.SuppressLint)8