// 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; } }
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); }
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); }
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)); } }
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))); } }
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)); } }
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)); } }
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)); }
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); }
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); } }
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); }
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); } } }
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) { }