SuggestionsInfo.java revision 3de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09
1988323c57bd25a58f05dfa492d9b9c8ab62c5153satok/* 2988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Copyright (C) 2011 The Android Open Source Project 3988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 4988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Licensed under the Apache License, Version 2.0 (the "License"); you may not 5988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * use this file except in compliance with the License. You may obtain a copy of 6988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * the License at 7988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 8988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * http://www.apache.org/licenses/LICENSE-2.0 9988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 10988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Unless required by applicable law or agreed to in writing, software 11988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 12988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 13988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * License for the specific language governing permissions and limitations under 14988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * the License. 15988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 16988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 17988323c57bd25a58f05dfa492d9b9c8ab62c5153satokpackage android.view.textservice; 18988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 19988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.os.Parcel; 20988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.os.Parcelable; 21988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 22988323c57bd25a58f05dfa492d9b9c8ab62c5153satok/** 23988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * This class contains a metadata of suggestions from the text service 24988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 25988323c57bd25a58f05dfa492d9b9c8ab62c5153satokpublic final class SuggestionsInfo implements Parcelable { 26988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 27988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Flag of the attributes of the suggestions that can be obtained by 283de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * {@link #getSuggestionsAttributes}: this tells that the requested word was found 29988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * in the dictionary in the text service. 30988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 31988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final int RESULT_ATTR_IN_THE_DICTIONARY = 0x0001; 32988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** Flag of the attributes of the suggestions that can be obtained by 333de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * {@link #getSuggestionsAttributes}: this tells that there are one or more suggestions 343de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * available for the requested word. This doesn't necessarily mean that the suggestions 353de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * are actually in this SuggestionsInfo. For instance, the caller could have been asked to 363de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * limit the maximum number of suggestions returned. 37988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 38988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final int RESULT_ATTR_SUGGESTIONS_AVAILABLE = 0x0002; 39988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 40988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Flag of the attributes of the suggestions that can be obtained by 413de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * {@link #getSuggestionsAttributes}: this tells that the text service thinks the requested 423de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * word looks a typo. 43988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 44988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final int RESULT_ATTR_LOOKS_TYPO = 0x0004; 45988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final int mSuggestionsAttributes; 46988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final String[] mSuggestions; 47988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private int mCookie; 48988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private int mSequence; 49988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 50988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 51988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 52988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestionsAttributes from the text service 53988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestions from the text service 54988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 55988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo(int suggestionsAttributes, String[] suggestions) { 56988323c57bd25a58f05dfa492d9b9c8ab62c5153satok if (suggestions == null) { 57988323c57bd25a58f05dfa492d9b9c8ab62c5153satok throw new NullPointerException(); 58988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 59988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestionsAttributes = suggestionsAttributes; 60988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestions = suggestions; 61988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = 0; 62988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = 0; 63988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 64988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 65988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 66988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 67988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestionsAttributes from the text service 68988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestions from the text service 69988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param cookie the cookie of the input TextInfo 70988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param sequence the cookie of the input TextInfo 71988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 72988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo( 73988323c57bd25a58f05dfa492d9b9c8ab62c5153satok int suggestionsAttributes, String[] suggestions, int cookie, int sequence) { 74988323c57bd25a58f05dfa492d9b9c8ab62c5153satok if (suggestions == null) { 75988323c57bd25a58f05dfa492d9b9c8ab62c5153satok throw new NullPointerException(); 76988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 77988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestionsAttributes = suggestionsAttributes; 78988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestions = suggestions; 79988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = cookie; 80988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = sequence; 81988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 82988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 83988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo(Parcel source) { 84988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestionsAttributes = source.readInt(); 85988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestions = source.readStringArray(); 86988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = source.readInt(); 87988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = source.readInt(); 88988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 89988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 90988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 91988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to package this object into a {@link Parcel}. 92988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 93988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param dest The {@link Parcel} to be written. 94988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param flags The flags used for parceling. 95988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 96988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 97988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public void writeToParcel(Parcel dest, int flags) { 98988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mSuggestionsAttributes); 99988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeStringArray(mSuggestions); 100988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mCookie); 101988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mSequence); 102988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 103988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 104988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 105988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Set the cookie and the sequence of SuggestionsInfo which are set to TextInfo from a client 106988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * application 107988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param cookie the cookie of an input TextInfo 108988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param sequence the cookie of an input TextInfo 109988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 110988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public void setCookieAndSequence(int cookie, int sequence) { 111988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = cookie; 112988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = sequence; 113988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 114988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 115988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 116988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the cookie which may be set by a client application 117988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 118988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getCookie() { 119988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mCookie; 120988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 121988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 122988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 123988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the sequence which may be set by a client application 124988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 125988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getSequence() { 126988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSequence; 127988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 128988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 129988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 130988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the attributes of suggestions. This includes whether the spell checker has the word 131988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * in its dictionary or not and whether the spell checker has confident suggestions for the 132988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * word or not. 133988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 134988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getSuggestionsAttributes() { 135988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSuggestionsAttributes; 136988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 137988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 138988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 139988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the count of suggestions 140988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 141988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getSuggestionsCount() { 142988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSuggestions.length; 143988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 144988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 145988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 146988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param i the id of suggestions 147988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the suggestion at the specified id 148988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 149988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public String getSuggestionAt(int i) { 150988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSuggestions[i]; 151988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 152988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 153988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 154988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 155988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 156988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final Parcelable.Creator<SuggestionsInfo> CREATOR 157988323c57bd25a58f05dfa492d9b9c8ab62c5153satok = new Parcelable.Creator<SuggestionsInfo>() { 158988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 159988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo createFromParcel(Parcel source) { 160988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new SuggestionsInfo(source); 161988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 162988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 163988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 164988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo[] newArray(int size) { 165988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new SuggestionsInfo[size]; 166988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 167988323c57bd25a58f05dfa492d9b9c8ab62c5153satok }; 168988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 169988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 170988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 171988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 172988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 173988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int describeContents() { 174988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return 0; 175988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 176988323c57bd25a58f05dfa492d9b9c8ab62c5153satok} 177