// no super to call through to
        private void release(android.text.Editable content, object what, android.view.KeyEvent
                             @event)
        {
            int current = content.getSpanFlags(what);

            switch (@event.getKeyCharacterMap().getModifierBehavior())
            {
            case android.view.KeyCharacterMap.MODIFIER_BEHAVIOR_CHORDED_OR_TOGGLED:
            {
                if (current == USED)
                {
                    content.removeSpan(what);
                }
                else
                {
                    if (current == PRESSED)
                    {
                        content.setSpan(what, 0, 0, RELEASED);
                    }
                }
                break;
            }

            default:
            {
                content.removeSpan(what);
                break;
            }
            }
        }
        // no super to call through to
        private void press(android.text.Editable content, object what)
        {
            int state = content.getSpanFlags(what);

            if (state == PRESSED)
            {
            }
            else
            {
                // repeat before use
                if (state == RELEASED)
                {
                    content.setSpan(what, 0, 0, LOCKED);
                }
                else
                {
                    if (state == USED)
                    {
                    }
                    else
                    {
                        // repeat after use
                        if (state == LOCKED)
                        {
                            content.removeSpan(what);
                        }
                        else
                        {
                            content.setSpan(what, 0, 0, PRESSED);
                        }
                    }
                }
            }
        }
        public override bool onKeyDown(android.view.View view, android.text.Editable content
                                       , int keyCode, android.view.KeyEvent @event)
        {
            bool handled;

            switch (keyCode)
            {
            case android.view.KeyEvent.KEYCODE_DEL:
            {
                handled = backspace(view, content, keyCode, @event);
                break;
            }

            case android.view.KeyEvent.KEYCODE_FORWARD_DEL:
            {
                handled = forwardDelete(view, content, keyCode, @event);
                break;
            }

            default:
            {
                handled = false;
                break;
            }
            }
            if (handled)
            {
                adjustMetaAfterKeypress(content);
            }
            return(base.onKeyDown(view, content, keyCode, @event));
        }
        public virtual bool onKeyOther(android.view.View view, android.text.Editable content
                                       , android.view.KeyEvent @event)
        {
            if (@event.getAction() != android.view.KeyEvent.ACTION_MULTIPLE || @event.getKeyCode
                    () != android.view.KeyEvent.KEYCODE_UNKNOWN)
            {
                // Not something we are interested in.
                return(false);
            }
            int selectionStart = android.text.Selection.getSelectionStart(content);
            int selectionEnd   = android.text.Selection.getSelectionEnd(content);

            if (selectionEnd < selectionStart)
            {
                int temp = selectionEnd;
                selectionEnd   = selectionStart;
                selectionStart = temp;
            }
            java.lang.CharSequence text = java.lang.CharSequenceProxy.Wrap(@event.getCharacters
                                                                               ());
            if (text == null)
            {
                return(false);
            }
            content.replace(selectionStart, selectionEnd, text);
            return(true);
        }
        public override void performValidation()
        {
            android.widget.AutoCompleteTextView.Validator v = getValidator();
            if (v == null || mTokenizer == null)
            {
                return;
            }
            android.text.Editable e = ((android.text.Editable)getText());
            int i = ((android.text.Editable)getText()).Length;

            while (i > 0)
            {
                int start = mTokenizer.findTokenStart(e, i);
                int end   = mTokenizer.findTokenEnd(e, start);
                java.lang.CharSequence sub = e.SubSequence(start, end);
                if (android.text.TextUtils.isEmpty(sub))
                {
                    e.replace(start, i, java.lang.CharSequenceProxy.Wrap(string.Empty));
                }
                else
                {
                    if (!v.isValid(sub))
                    {
                        e.replace(start, i, mTokenizer.terminateToken(v.fixText(sub)));
                    }
                }
                i = start;
            }
        }
Exemple #6
0
 private void swapPrimaryAndHint(bool makeLettersPrimary_1)
 {
     android.text.Editable           lettersText  = ((android.text.Editable)mLetters.getText());
     android.text.Editable           digitsText   = ((android.text.Editable)mDigits.getText());
     android.text.method.KeyListener lettersInput = mLetters.getKeyListener();
     android.text.method.KeyListener digitsInput  = mDigits.getKeyListener();
     if (makeLettersPrimary_1)
     {
         mLetters = mPrimary;
         mDigits  = mHint;
     }
     else
     {
         mLetters = mHint;
         mDigits  = mPrimary;
     }
     mLetters.setKeyListener(lettersInput);
     mLetters.setText(lettersText);
     lettersText = ((android.text.Editable)mLetters.getText());
     android.text.Selection.setSelection(lettersText, lettersText.Length);
     mDigits.setKeyListener(digitsInput);
     mDigits.setText(digitsText);
     digitsText = ((android.text.Editable)mDigits.getText());
     android.text.Selection.setSelection(digitsText, digitsText.Length);
     // Reset the filters
     mPrimary.setFilters(mInputFilters);
     mHint.setFilters(mInputFilters);
 }
Exemple #7
0
        private void addSpellCheckSpan(android.text.Editable editable, int start, int end
                                       )
        {
            int index = nextSpellCheckSpanIndex();

            editable.setSpan(mSpellCheckSpans[index], start, end, android.text.SpannedClass.SPAN_EXCLUSIVE_EXCLUSIVE
                             );
            mIds[index] = mSpanSequenceCounter++;
        }
		/// <summary>
		/// Creates a new CharacterPickerDialog that presents the specified
		/// <code>options</code> for insertion or replacement (depending on
		/// the sense of <code>insert</code>) into <code>text</code>.
		/// </summary>
		/// <remarks>
		/// Creates a new CharacterPickerDialog that presents the specified
		/// <code>options</code> for insertion or replacement (depending on
		/// the sense of <code>insert</code>) into <code>text</code>.
		/// </remarks>
		public CharacterPickerDialog(android.content.Context context, android.view.View view
			, android.text.Editable text, string options, bool insert) : base(context, [email protected]
			.style.Theme_Panel)
		{
			mView = view;
			mText = text;
			mOptions = options;
			mInsert = insert;
			mInflater = android.view.LayoutInflater.from(context);
		}
 /// <summary>
 /// Creates a new CharacterPickerDialog that presents the specified
 /// <code>options</code> for insertion or replacement (depending on
 /// the sense of <code>insert</code>) into <code>text</code>.
 /// </summary>
 /// <remarks>
 /// Creates a new CharacterPickerDialog that presents the specified
 /// <code>options</code> for insertion or replacement (depending on
 /// the sense of <code>insert</code>) into <code>text</code>.
 /// </remarks>
 public CharacterPickerDialog(android.content.Context context, android.view.View view
                              , android.text.Editable text, string options, bool insert) : base(context, [email protected]
                                                                                                .style.Theme_Panel)
 {
     mView     = view;
     mText     = text;
     mOptions  = options;
     mInsert   = insert;
     mInflater = android.view.LayoutInflater.from(context);
 }
 public virtual void afterTextChanged(android.text.Editable arg0)
 {
     global::MonoJavaBridge.JNIEnv @__env = global::MonoJavaBridge.JNIEnv.ThreadEnv;
     if (!IsClrObject)
     {
         @__env.CallVoidMethod(this.JvmHandle, global::android.text.method.PasswordTransformationMethod._afterTextChanged8137, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0));
     }
     else
     {
         @__env.CallNonVirtualVoidMethod(this.JvmHandle, global::android.text.method.PasswordTransformationMethod.staticClass, global::android.text.method.PasswordTransformationMethod._afterTextChanged8137, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0));
     }
 }
Exemple #11
0
 public override bool onKeyDown(android.view.View arg0, android.text.Editable arg1, int arg2, android.view.KeyEvent arg3)
 {
     global::MonoJavaBridge.JNIEnv @__env = global::MonoJavaBridge.JNIEnv.ThreadEnv;
     if (!IsClrObject)
     {
         return(@__env.CallBooleanMethod(this.JvmHandle, global::android.text.method.MultiTapKeyListener._onKeyDown8119, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg3)));
     }
     else
     {
         return(@__env.CallNonVirtualBooleanMethod(this.JvmHandle, global::android.text.method.MultiTapKeyListener.staticClass, global::android.text.method.MultiTapKeyListener._onKeyDown8119, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg3)));
     }
 }
Exemple #12
0
 void android.text.TextWatcher.afterTextChanged(android.text.Editable arg0)
 {
     global::MonoJavaBridge.JNIEnv @__env = global::MonoJavaBridge.JNIEnv.ThreadEnv;
     if (!IsClrObject)
     {
         @__env.CallVoidMethod(this.JvmHandle, global::android.text.TextWatcher_._afterTextChanged7954, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0));
     }
     else
     {
         @__env.CallNonVirtualVoidMethod(this.JvmHandle, global::android.text.TextWatcher_.staticClass, global::android.text.TextWatcher_._afterTextChanged7954, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0));
     }
 }
Exemple #13
0
 public virtual bool backspace(android.view.View arg0, android.text.Editable arg1, int arg2, android.view.KeyEvent arg3)
 {
     global::MonoJavaBridge.JNIEnv @__env = global::MonoJavaBridge.JNIEnv.ThreadEnv;
     if (!IsClrObject)
     {
         return(@__env.CallBooleanMethod(this.JvmHandle, global::android.text.method.BaseKeyListener._backspace8040, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg3)));
     }
     else
     {
         return(@__env.CallNonVirtualBooleanMethod(this.JvmHandle, global::android.text.method.BaseKeyListener.staticClass, global::android.text.method.BaseKeyListener._backspace8040, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg3)));
     }
 }
 public virtual void clearMetaKeyState(android.view.View arg0, android.text.Editable arg1, int arg2)
 {
     global::MonoJavaBridge.JNIEnv @__env = global::MonoJavaBridge.JNIEnv.ThreadEnv;
     if (!IsClrObject)
     {
         @__env.CallVoidMethod(this.JvmHandle, global::android.text.method.MetaKeyKeyListener._clearMetaKeyState8098, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2));
     }
     else
     {
         @__env.CallNonVirtualVoidMethod(this.JvmHandle, global::android.text.method.MetaKeyKeyListener.staticClass, global::android.text.method.MetaKeyKeyListener._clearMetaKeyState8098, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2));
     }
 }
 public virtual void afterTextChanged(android.text.Editable arg0)
 {
     global::MonoJavaBridge.JNIEnv @__env = global::MonoJavaBridge.JNIEnv.ThreadEnv;
     if (!IsClrObject)
     {
         @__env.CallVoidMethod(this.JvmHandle, global::android.telephony.PhoneNumberFormattingTextWatcher._afterTextChanged7361, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0));
     }
     else
     {
         @__env.CallNonVirtualVoidMethod(this.JvmHandle, global::android.telephony.PhoneNumberFormattingTextWatcher.staticClass, global::android.telephony.PhoneNumberFormattingTextWatcher._afterTextChanged7361, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0));
     }
 }
Exemple #16
0
 bool android.text.method.KeyListener.onKeyOther(android.view.View arg0, android.text.Editable arg1, android.view.KeyEvent arg2)
 {
     global::MonoJavaBridge.JNIEnv @__env = global::MonoJavaBridge.JNIEnv.ThreadEnv;
     if (!IsClrObject)
     {
         return(@__env.CallBooleanMethod(this.JvmHandle, global::android.text.method.KeyListener_._onKeyOther8078, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2)));
     }
     else
     {
         return(@__env.CallNonVirtualBooleanMethod(this.JvmHandle, global::android.text.method.KeyListener_.staticClass, global::android.text.method.KeyListener_._onKeyOther8078, global::MonoJavaBridge.JavaBridge.ConvertToValue(arg0), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg1), global::MonoJavaBridge.JavaBridge.ConvertToValue(arg2)));
     }
 }
        protected internal override void replaceText(java.lang.CharSequence text)
        {
            clearComposingText();
            int end   = getSelectionEnd();
            int start = mTokenizer.findTokenStart(((android.text.Editable)getText()), end);

            android.text.Editable editable = ((android.text.Editable)getText());
            string original = android.text.TextUtils.substring(editable, start, end);

            android.text.method.QwertyKeyListener.markAsReplaced(editable, start, end, original
                                                                 );
            editable.replace(start, end, mTokenizer.terminateToken(text));
        }
Exemple #18
0
        private bool showCharacterPicker(android.view.View view, android.text.Editable content
                                         , char c, bool insert, int count)
        {
            string set = PICKER_SETS.get(c);

            if (set == null)
            {
                return(false);
            }
            if (count == 1)
            {
                new android.text.method.CharacterPickerDialog(view.getContext(), view, content, set
                                                              , insert).show();
            }
            return(true);
        }
Exemple #19
0
        private void spellCheck()
        {
            if (mSpellCheckerSession == null)
            {
                return;
            }
            android.text.Editable editable = (android.text.Editable)mTextView.getText();
            int selectionStart             = android.text.Selection.getSelectionStart(editable);
            int selectionEnd = android.text.Selection.getSelectionEnd(editable);

            android.view.textservice.TextInfo[] textInfos = new android.view.textservice.TextInfo
                                                            [mLength];
            int textInfosCount = 0;

            {
                for (int i = 0; i < mLength; i++)
                {
                    android.text.style.SpellCheckSpan spellCheckSpan = mSpellCheckSpans[i];
                    if (spellCheckSpan.isSpellCheckInProgress())
                    {
                        continue;
                    }
                    int start = editable.getSpanStart(spellCheckSpan);
                    int end   = editable.getSpanEnd(spellCheckSpan);
                    // Do not check this word if the user is currently editing it
                    if (start >= 0 && end > start && (selectionEnd < start || selectionStart > end))
                    {
                        string word = editable.SubSequence(start, end).ToString();
                        spellCheckSpan.setSpellCheckInProgress(true);
                        textInfos[textInfosCount++] = new android.view.textservice.TextInfo(word, mCookie
                                                                                            , mIds[i]);
                    }
                }
            }
            if (textInfosCount > 0)
            {
                if (textInfosCount < textInfos.Length)
                {
                    android.view.textservice.TextInfo[] textInfosCopy = new android.view.textservice.TextInfo
                                                                        [textInfosCount];
                    System.Array.Copy(textInfos, 0, textInfosCopy, 0, textInfosCount);
                    textInfos = textInfosCopy;
                }
                mSpellCheckerSession.getSuggestions(textInfos, android.text.style.SuggestionSpan.
                                                    SUGGESTIONS_MAX_SIZE, false);
            }
        }
Exemple #20
0
 public virtual void onGetSuggestions(android.view.textservice.SuggestionsInfo[] results
                                      )
 {
     android.text.Editable editable = (android.text.Editable)mTextView.getText();
     {
         for (int i = 0; i < results.Length; i++)
         {
             android.view.textservice.SuggestionsInfo suggestionsInfo = results[i];
             if (suggestionsInfo.getCookie() != mCookie)
             {
                 continue;
             }
             int sequenceNumber = suggestionsInfo.getSequence();
             {
                 for (int j = 0; j < mLength; j++)
                 {
                     if (sequenceNumber == mIds[j])
                     {
                         int  attributes     = suggestionsInfo.getSuggestionsAttributes();
                         bool isInDictionary = ((attributes & android.view.textservice.SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY
                                                 ) > 0);
                         bool looksLikeTypo = ((attributes & android.view.textservice.SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO
                                                ) > 0);
                         android.text.style.SpellCheckSpan spellCheckSpan = mSpellCheckSpans[j];
                         if (!isInDictionary && looksLikeTypo)
                         {
                             createMisspelledSuggestionSpan(editable, suggestionsInfo, spellCheckSpan);
                         }
                         editable.removeSpan(spellCheckSpan);
                         break;
                     }
                 }
             }
         }
     }
     int length = mSpellParsers.Length;
     {
         for (int i_1 = 0; i_1 < length; i_1++)
         {
             android.widget.SpellChecker.SpellParser spellParser = mSpellParsers[i_1];
             if (!spellParser.isDone())
             {
                 spellParser.parse();
             }
         }
     }
 }
 /// <summary>
 /// Clear all the input state (autotext, autocap, multitap, undo)
 /// from the specified Editable, going beyond Editable.clear(), which
 /// just clears the text but not the input state.
 /// </summary>
 /// <remarks>
 /// Clear all the input state (autotext, autocap, multitap, undo)
 /// from the specified Editable, going beyond Editable.clear(), which
 /// just clears the text but not the input state.
 /// </remarks>
 /// <param name="e">the buffer whose text and state are to be cleared.</param>
 public static void clear(android.text.Editable e)
 {
     e.clear();
     e.removeSpan(ACTIVE);
     e.removeSpan(CAPPED);
     e.removeSpan(INHIBIT_REPLACEMENT);
     e.removeSpan(LAST_TYPED);
     android.text.method.QwertyKeyListener.Replaced[] repl = e.getSpans <android.text.method.QwertyKeyListener
                                                                         .Replaced>(0, e.Length);
     int count = repl.Length;
     {
         for (int i = 0; i < count; i++)
         {
             e.removeSpan(repl[i]);
         }
     }
 }
 public override void afterTextChanged(Editable s)
 {
     lock (this)
     {
         base.afterTextChanged(s);
         if (outerInstance.PossiblePhoneNumber)
         {
             outerInstance.ButtonsEnabled         = true;
             outerInstance.mPhoneNumber.TextColor = Color.BLACK;
         }
         else
         {
             outerInstance.ButtonsEnabled         = false;
             outerInstance.mPhoneNumber.TextColor = Color.RED;
         }
     }
 }
 public static void clearMetaKeyState(android.text.Editable content, int states)
 {
     if ((states & META_SHIFT_ON) != 0)
     {
         content.removeSpan(CAP);
     }
     if ((states & META_ALT_ON) != 0)
     {
         content.removeSpan(ALT);
     }
     if ((states & META_SYM_ON) != 0)
     {
         content.removeSpan(SYM);
     }
     if ((states & META_SELECTING) != 0)
     {
         content.removeSpan(SELECTING);
     }
 }
        private bool deleteSelection(android.view.View view, android.text.Editable content
                                     )
        {
            int selectionStart = android.text.Selection.getSelectionStart(content);
            int selectionEnd   = android.text.Selection.getSelectionEnd(content);

            if (selectionEnd < selectionStart)
            {
                int temp = selectionEnd;
                selectionEnd   = selectionStart;
                selectionStart = temp;
            }
            if (selectionStart != selectionEnd)
            {
                content.delete(selectionStart, selectionEnd);
                return(true);
            }
            return(false);
        }
        private bool backspaceOrForwardDelete(android.view.View view, android.text.Editable
                                              content, int keyCode, android.view.KeyEvent @event, bool isForwardDelete)
        {
            // Ensure the key event does not have modifiers except ALT or SHIFT.
            if (!android.view.KeyEvent.metaStateHasNoModifiers(@event.getMetaState() & ~(android.view.KeyEvent
                                                                                         .META_SHIFT_MASK | android.view.KeyEvent.META_ALT_MASK)))
            {
                return(false);
            }
            // If there is a current selection, delete it.
            if (deleteSelection(view, content))
            {
                return(true);
            }
            // Alt+Backspace or Alt+ForwardDelete deletes the current line, if possible.
            if (@event.isAltPressed() || getMetaState(content, META_ALT_ON) == 1)
            {
                if (deleteLine(view, content))
                {
                    return(true);
                }
            }
            // Delete a character.
            int start = android.text.Selection.getSelectionEnd(content);
            int end;

            if (isForwardDelete || @event.isShiftPressed() || getMetaState(content, META_SHIFT_ON
                                                                           ) == 1)
            {
                end = android.text.TextUtils.getOffsetAfter(content, start);
            }
            else
            {
                end = android.text.TextUtils.getOffsetBefore(content, start);
            }
            if (start != end)
            {
                content.delete(System.Math.Min(start, end), System.Math.Max(start, end));
                return(true);
            }
            return(false);
        }
        public override bool enoughToFilter()
        {
            android.text.Editable text = ((android.text.Editable)getText());
            int end = getSelectionEnd();

            if (end < 0 || mTokenizer == null)
            {
                return(false);
            }
            int start = mTokenizer.findTokenStart(text, end);

            if (end - start >= getThreshold())
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
 private bool deleteLine(android.view.View view, android.text.Editable content)
 {
     if (view is android.widget.TextView)
     {
         android.text.Layout layout = ((android.widget.TextView)view).getLayout();
         if (layout != null)
         {
             int line = layout.getLineForOffset(android.text.Selection.getSelectionStart(content
                                                                                         ));
             int start = layout.getLineStart(line);
             int end   = layout.getLineEnd(line);
             if (end != start)
             {
                 content.delete(start, end);
                 return(true);
             }
         }
     }
     return(false);
 }
Exemple #28
0
 internal void removeSpansAt <T>(android.text.Editable editable, int offset, T[] spans
                                 )
 {
     int length = spans.Length;
     {
         for (int i = 0; i < length; i++)
         {
             T   span  = spans[i];
             int start = editable.getSpanStart(span);
             if (start > offset)
             {
                 continue;
             }
             int end = editable.getSpanEnd(span);
             if (end < offset)
             {
                 continue;
             }
             editable.removeSpan(span);
         }
     }
 }
Exemple #29
0
 public override bool clearMetaKeyStates(int states)
 {
     android.text.Editable content = getEditable();
     if (content == null)
     {
         return(false);
     }
     android.text.method.KeyListener kl = mTextView.getKeyListener();
     if (kl != null)
     {
         try
         {
             kl.clearMetaKeyState(mTextView, content, states);
         }
         catch (java.lang.AbstractMethodError)
         {
         }
     }
     // This is an old listener that doesn't implement the
     // new method.
     return(true);
 }
 /// <summary>Handles release of the meta keys.</summary>
 /// <remarks>Handles release of the meta keys.</remarks>
 public virtual bool onKeyUp(android.view.View view, android.text.Editable content
                             , int keyCode, android.view.KeyEvent @event)
 {
     if (keyCode == android.view.KeyEvent.KEYCODE_SHIFT_LEFT || keyCode == android.view.KeyEvent
         .KEYCODE_SHIFT_RIGHT)
     {
         release(content, CAP, @event);
         return(true);
     }
     if (keyCode == android.view.KeyEvent.KEYCODE_ALT_LEFT || keyCode == android.view.KeyEvent
         .KEYCODE_ALT_RIGHT || keyCode == android.view.KeyEvent.KEYCODE_NUM)
     {
         release(content, ALT, @event);
         return(true);
     }
     if (keyCode == android.view.KeyEvent.KEYCODE_SYM)
     {
         release(content, SYM, @event);
         return(true);
     }
     return(false);
 }
 public virtual void clearMetaKeyState(android.view.View view, android.text.Editable
                                       content, int states)
 {
 }
			public override void afterTextChanged(Editable s)
			{
				lock (this)
				{
					base.afterTextChanged(s);
					if (outerInstance.PossiblePhoneNumber)
					{
						outerInstance.ButtonsEnabled = true;
						outerInstance.mPhoneNumber.TextColor = Color.BLACK;
					}
					else
					{
						outerInstance.ButtonsEnabled = false;
						outerInstance.mPhoneNumber.TextColor = Color.RED;
					}
				}
			}