SuggestionsInfo.java revision 0dc1f648a09b46c45190ba1ce7daecf7fada4347
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 196435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunneimport com.android.internal.util.ArrayUtils; 206435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne 21988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.os.Parcel; 22988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.os.Parcelable; 23988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 240dc1f648a09b46c45190ba1ce7daecf7fada4347satokimport java.util.Arrays; 250dc1f648a09b46c45190ba1ce7daecf7fada4347satok 26988323c57bd25a58f05dfa492d9b9c8ab62c5153satok/** 27988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * This class contains a metadata of suggestions from the text service 28988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 29988323c57bd25a58f05dfa492d9b9c8ab62c5153satokpublic final class SuggestionsInfo implements Parcelable { 306435a56a8c02de98befcc8cd743b2b638cffb327Gilles Debunne private static final String[] EMPTY = ArrayUtils.emptyArray(String.class); 310dc1f648a09b46c45190ba1ce7daecf7fada4347satok private static final int NOT_A_LENGTH = -1; 321bedd99761e3d2acdac947d641e7fee5db556141satok 33988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 34988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Flag of the attributes of the suggestions that can be obtained by 353de3d6ad584d6f08f50aac1b04bc0fe6cb02fb09satok * {@link #getSuggestionsAttributes}: this tells that the requested word was found 36988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * in the dictionary in the text service. 37988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 38988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final int RESULT_ATTR_IN_THE_DICTIONARY = 0x0001; 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 42c66009169622ecdb65d887987feaf91fff091af8satok * word looks like a typo. 43988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 44c66009169622ecdb65d887987feaf91fff091af8satok public static final int RESULT_ATTR_LOOKS_LIKE_TYPO = 0x0002; 45a17b3506234638ef257a6b751a97931dc347a21bsatok /** 46a17b3506234638ef257a6b751a97931dc347a21bsatok * Flag of the attributes of the suggestions that can be obtained by 47a17b3506234638ef257a6b751a97931dc347a21bsatok * {@link #getSuggestionsAttributes}: this tells that the text service thinks 48a17b3506234638ef257a6b751a97931dc347a21bsatok * the result suggestions include highly recommended ones. 49a17b3506234638ef257a6b751a97931dc347a21bsatok */ 50a17b3506234638ef257a6b751a97931dc347a21bsatok public static final int RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS = 0x0004; 51988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final int mSuggestionsAttributes; 52988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final String[] mSuggestions; 530dc1f648a09b46c45190ba1ce7daecf7fada4347satok private final int[] mStartPosArray; 540dc1f648a09b46c45190ba1ce7daecf7fada4347satok private final int[] mLengthArray; 551bedd99761e3d2acdac947d641e7fee5db556141satok private final boolean mSuggestionsAvailable; 56988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private int mCookie; 57988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private int mSequence; 58988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 59988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 60988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 61988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestionsAttributes from the text service 62988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestions from the text service 63988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 64988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo(int suggestionsAttributes, String[] suggestions) { 650dc1f648a09b46c45190ba1ce7daecf7fada4347satok this(suggestionsAttributes, suggestions, 0, 0); 66988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 67988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 68988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 69988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 70988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestionsAttributes from the text service 71988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param suggestions from the text service 72988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param cookie the cookie of the input TextInfo 73988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param sequence the cookie of the input TextInfo 74988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 75988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo( 76988323c57bd25a58f05dfa492d9b9c8ab62c5153satok int suggestionsAttributes, String[] suggestions, int cookie, int sequence) { 770dc1f648a09b46c45190ba1ce7daecf7fada4347satok this(suggestionsAttributes, suggestions, cookie, sequence, null, null); 780dc1f648a09b46c45190ba1ce7daecf7fada4347satok } 790dc1f648a09b46c45190ba1ce7daecf7fada4347satok 800dc1f648a09b46c45190ba1ce7daecf7fada4347satok /** 810dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @hide 820dc1f648a09b46c45190ba1ce7daecf7fada4347satok * Constructor. 830dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @param suggestionsAttributes from the text service 840dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @param suggestions from the text service 850dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @param cookie the cookie of the input TextInfo 860dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @param sequence the cookie of the input TextInfo 870dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @param startPosArray the array of start positions of suggestions 880dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @param lengthArray the array of length of suggestions 890dc1f648a09b46c45190ba1ce7daecf7fada4347satok */ 900dc1f648a09b46c45190ba1ce7daecf7fada4347satok public SuggestionsInfo( 910dc1f648a09b46c45190ba1ce7daecf7fada4347satok int suggestionsAttributes, String[] suggestions, int cookie, int sequence, 920dc1f648a09b46c45190ba1ce7daecf7fada4347satok int[] startPosArray, int[] lengthArray) { 930dc1f648a09b46c45190ba1ce7daecf7fada4347satok final int suggestsLen; 94988323c57bd25a58f05dfa492d9b9c8ab62c5153satok if (suggestions == null) { 951bedd99761e3d2acdac947d641e7fee5db556141satok mSuggestions = EMPTY; 961bedd99761e3d2acdac947d641e7fee5db556141satok mSuggestionsAvailable = false; 970dc1f648a09b46c45190ba1ce7daecf7fada4347satok suggestsLen = 0; 980dc1f648a09b46c45190ba1ce7daecf7fada4347satok mStartPosArray = new int[0]; 990dc1f648a09b46c45190ba1ce7daecf7fada4347satok mLengthArray = new int[0]; 1001bedd99761e3d2acdac947d641e7fee5db556141satok } else { 1011bedd99761e3d2acdac947d641e7fee5db556141satok mSuggestions = suggestions; 1021bedd99761e3d2acdac947d641e7fee5db556141satok mSuggestionsAvailable = true; 1030dc1f648a09b46c45190ba1ce7daecf7fada4347satok suggestsLen = suggestions.length; 1040dc1f648a09b46c45190ba1ce7daecf7fada4347satok if (startPosArray == null || lengthArray == null) { 1050dc1f648a09b46c45190ba1ce7daecf7fada4347satok mStartPosArray = new int[suggestsLen]; 1060dc1f648a09b46c45190ba1ce7daecf7fada4347satok mLengthArray = new int[suggestsLen]; 1070dc1f648a09b46c45190ba1ce7daecf7fada4347satok for (int i = 0; i < suggestsLen; ++i) { 1080dc1f648a09b46c45190ba1ce7daecf7fada4347satok mStartPosArray[i] = 0; 1090dc1f648a09b46c45190ba1ce7daecf7fada4347satok mLengthArray[i] = NOT_A_LENGTH; 1100dc1f648a09b46c45190ba1ce7daecf7fada4347satok } 1110dc1f648a09b46c45190ba1ce7daecf7fada4347satok } else if (suggestsLen != startPosArray.length || suggestsLen != lengthArray.length) { 1120dc1f648a09b46c45190ba1ce7daecf7fada4347satok throw new IllegalArgumentException(); 1130dc1f648a09b46c45190ba1ce7daecf7fada4347satok } else { 1140dc1f648a09b46c45190ba1ce7daecf7fada4347satok mStartPosArray = Arrays.copyOf(startPosArray, suggestsLen); 1150dc1f648a09b46c45190ba1ce7daecf7fada4347satok mLengthArray = Arrays.copyOf(lengthArray, suggestsLen); 1160dc1f648a09b46c45190ba1ce7daecf7fada4347satok } 117988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 118988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestionsAttributes = suggestionsAttributes; 119988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = cookie; 120988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = sequence; 121988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 122988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 123988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo(Parcel source) { 124988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestionsAttributes = source.readInt(); 125988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSuggestions = source.readStringArray(); 126988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = source.readInt(); 127988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = source.readInt(); 1281bedd99761e3d2acdac947d641e7fee5db556141satok mSuggestionsAvailable = source.readInt() == 1; 1290dc1f648a09b46c45190ba1ce7daecf7fada4347satok mStartPosArray = new int[mSuggestions.length]; 1300dc1f648a09b46c45190ba1ce7daecf7fada4347satok mLengthArray = new int[mSuggestions.length]; 1310dc1f648a09b46c45190ba1ce7daecf7fada4347satok source.readIntArray(mStartPosArray); 1320dc1f648a09b46c45190ba1ce7daecf7fada4347satok source.readIntArray(mLengthArray); 133988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 134988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 135988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 136988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to package this object into a {@link Parcel}. 137988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 138988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param dest The {@link Parcel} to be written. 139988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param flags The flags used for parceling. 140988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 141988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 142988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public void writeToParcel(Parcel dest, int flags) { 143988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mSuggestionsAttributes); 144988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeStringArray(mSuggestions); 145988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mCookie); 146988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mSequence); 1471bedd99761e3d2acdac947d641e7fee5db556141satok dest.writeInt(mSuggestionsAvailable ? 1 : 0); 1480dc1f648a09b46c45190ba1ce7daecf7fada4347satok dest.writeIntArray(mStartPosArray); 1490dc1f648a09b46c45190ba1ce7daecf7fada4347satok dest.writeIntArray(mLengthArray); 150988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 151988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 152988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 153988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Set the cookie and the sequence of SuggestionsInfo which are set to TextInfo from a client 154988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * application 155988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param cookie the cookie of an input TextInfo 156988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param sequence the cookie of an input TextInfo 157988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 158988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public void setCookieAndSequence(int cookie, int sequence) { 159988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = cookie; 160988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = sequence; 161988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 162988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 163988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 164988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the cookie which may be set by a client application 165988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 166988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getCookie() { 167988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mCookie; 168988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 169988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 170988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 171988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the sequence which may be set by a client application 172988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 173988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getSequence() { 174988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSequence; 175988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 176988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 177988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 178988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the attributes of suggestions. This includes whether the spell checker has the word 179988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * in its dictionary or not and whether the spell checker has confident suggestions for the 180988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * word or not. 181988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 182988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getSuggestionsAttributes() { 183988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSuggestionsAttributes; 184988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 185988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 186988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 1871bedd99761e3d2acdac947d641e7fee5db556141satok * @return the count of the suggestions. If there's no suggestions at all, this method returns 1881bedd99761e3d2acdac947d641e7fee5db556141satok * -1. Even if this method returns 0, it doesn't necessarily mean that there are no suggestions 1891bedd99761e3d2acdac947d641e7fee5db556141satok * for the requested word. For instance, the caller could have been asked to limit the maximum 1901bedd99761e3d2acdac947d641e7fee5db556141satok * number of suggestions returned. 191988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 192988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getSuggestionsCount() { 1931bedd99761e3d2acdac947d641e7fee5db556141satok if (!mSuggestionsAvailable) { 1941bedd99761e3d2acdac947d641e7fee5db556141satok return -1; 1951bedd99761e3d2acdac947d641e7fee5db556141satok } 196988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSuggestions.length; 197988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 198988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 199988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 200988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param i the id of suggestions 201988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the suggestion at the specified id 202988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 203988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public String getSuggestionAt(int i) { 204988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSuggestions[i]; 205988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 206988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 207988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 208988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 209988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 210988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final Parcelable.Creator<SuggestionsInfo> CREATOR 211988323c57bd25a58f05dfa492d9b9c8ab62c5153satok = new Parcelable.Creator<SuggestionsInfo>() { 212988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 213988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo createFromParcel(Parcel source) { 214988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new SuggestionsInfo(source); 215988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 216988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 217988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 218988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public SuggestionsInfo[] newArray(int size) { 219988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new SuggestionsInfo[size]; 220988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 221988323c57bd25a58f05dfa492d9b9c8ab62c5153satok }; 222988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 223988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 224988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 225988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 226988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 227988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int describeContents() { 228988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return 0; 229988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 2300dc1f648a09b46c45190ba1ce7daecf7fada4347satok 2310dc1f648a09b46c45190ba1ce7daecf7fada4347satok /** 2320dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @hide 2330dc1f648a09b46c45190ba1ce7daecf7fada4347satok */ 2340dc1f648a09b46c45190ba1ce7daecf7fada4347satok public int getSuggestionStartPosAt(int i) { 2350dc1f648a09b46c45190ba1ce7daecf7fada4347satok if (i >= 0 && i < mStartPosArray.length) { 2360dc1f648a09b46c45190ba1ce7daecf7fada4347satok return mStartPosArray[i]; 2370dc1f648a09b46c45190ba1ce7daecf7fada4347satok } 2380dc1f648a09b46c45190ba1ce7daecf7fada4347satok return -1; 2390dc1f648a09b46c45190ba1ce7daecf7fada4347satok } 2400dc1f648a09b46c45190ba1ce7daecf7fada4347satok 2410dc1f648a09b46c45190ba1ce7daecf7fada4347satok /** 2420dc1f648a09b46c45190ba1ce7daecf7fada4347satok * @hide 2430dc1f648a09b46c45190ba1ce7daecf7fada4347satok */ 2440dc1f648a09b46c45190ba1ce7daecf7fada4347satok public int getSuggestionLengthAt(int i) { 2450dc1f648a09b46c45190ba1ce7daecf7fada4347satok if (i >= 0 && i < mLengthArray.length) { 2460dc1f648a09b46c45190ba1ce7daecf7fada4347satok return mLengthArray[i]; 2470dc1f648a09b46c45190ba1ce7daecf7fada4347satok } 2480dc1f648a09b46c45190ba1ce7daecf7fada4347satok return -1; 2490dc1f648a09b46c45190ba1ce7daecf7fada4347satok } 250988323c57bd25a58f05dfa492d9b9c8ab62c5153satok} 251