FileDocCategorySizeDatePackage
WordComposer.javaAPI DocAndroid 1.5 API4078Wed May 06 22:42:48 BST 2009com.android.inputmethod.latin

WordComposer

public class WordComposer extends Object
A place to store the currently composing word with information such as adjacent key codes as well

Fields Summary
private List
mCodes
The list of unicode values for each keystroke (including surrounding keys)
private String
mPreferredWord
The word chosen from the candidate list, until it is committed.
private StringBuilder
mTypedWord
private boolean
mIsCapitalized
Whether the user chose to capitalize the word.
Constructors Summary
WordComposer()

        mCodes = new ArrayList<int[]>(12);
        mTypedWord = new StringBuilder(20);
    
Methods Summary
public voidadd(int primaryCode, int[] codes)
Add a new keystroke, with codes[0] containing the pressed key's unicode and the rest of the array containing unicode for adjacent keys, sorted by reducing probability/proximity.

param
codes the array of unicode values

        mTypedWord.append((char) primaryCode);
        mCodes.add(codes);
    
public voiddeleteLast()
Delete the last keystroke as a result of hitting backspace.

        mCodes.remove(mCodes.size() - 1);
        mTypedWord.deleteCharAt(mTypedWord.length() - 1);
    
public int[]getCodesAt(int index)
Returns the codes at a particular position in the word.

param
index the position in the word
return
the unicode for the pressed and surrounding keys

        return mCodes.get(index);
    
public java.lang.CharSequencegetPreferredWord()
Return the word chosen by the user, or the typed word if no other word was chosen.

return
the preferred word

        return mPreferredWord != null ? mPreferredWord : getTypedWord();
    
public java.lang.CharSequencegetTypedWord()
Returns the word as it was typed, without any correction applied.

return
the word that was typed so far

        int wordSize = mCodes.size();
        if (wordSize == 0) {
            return null;
        }
//        StringBuffer sb = new StringBuffer(wordSize);
//        for (int i = 0; i < wordSize; i++) {
//            char c = (char) mCodes.get(i)[0];
//            if (i == 0 && mIsCapitalized) {
//                c = Character.toUpperCase(c);
//            }
//            sb.append(c);
//        }
//        return sb;
        return mTypedWord;
    
public booleanisCapitalized()
Whether or not the user typed a capital letter as the first letter in the word

return
capitalization preference

        return mIsCapitalized;
    
public voidreset()
Clear out the keys registered so far.

        mCodes.clear();
        mIsCapitalized = false;
        mPreferredWord = null;
        mTypedWord.setLength(0);
    
public voidsetCapitalized(boolean capitalized)

        mIsCapitalized = capitalized;
    
public voidsetPreferredWord(java.lang.String preferred)
Stores the user's selected word, before it is actually committed to the text field.

param
preferred

        mPreferredWord = preferred;
    
public intsize()
Number of keystrokes in the composing word.

return
the number of keystrokes

        return mCodes.size();