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; 21988323c57bd25a58f05dfa492d9b9c8ab62c5153satokimport android.text.TextUtils; 22988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 23988323c57bd25a58f05dfa492d9b9c8ab62c5153satok/** 24988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * This class contains a metadata of the input of TextService 25988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 26988323c57bd25a58f05dfa492d9b9c8ab62c5153satokpublic final class TextInfo implements Parcelable { 27988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final String mText; 28988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final int mCookie; 29988323c57bd25a58f05dfa492d9b9c8ab62c5153satok private final int mSequence; 30988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 31988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 32988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 33988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param text the text which will be input to TextService 34988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 35988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public TextInfo(String text) { 36988323c57bd25a58f05dfa492d9b9c8ab62c5153satok this(text, 0, 0); 37988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 38988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 39988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 40988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Constructor. 41988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param text the text which will be input to TextService 42988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param cookie the cookie for this TextInfo 43988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param sequence the sequence number for this TextInfo 44988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 45988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public TextInfo(String text, int cookie, int sequence) { 46988323c57bd25a58f05dfa492d9b9c8ab62c5153satok if (TextUtils.isEmpty(text)) { 47988323c57bd25a58f05dfa492d9b9c8ab62c5153satok throw new IllegalArgumentException(text); 48988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 49988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mText = text; 50988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = cookie; 51988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = sequence; 52988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 53988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 54988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public TextInfo(Parcel source) { 55988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mText = source.readString(); 56988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mCookie = source.readInt(); 57988323c57bd25a58f05dfa492d9b9c8ab62c5153satok mSequence = source.readInt(); 58988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 59988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 60988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 61988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to package this object into a {@link Parcel}. 62988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * 63988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param dest The {@link Parcel} to be written. 64988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @param flags The flags used for parceling. 65988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 66988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 67988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public void writeToParcel(Parcel dest, int flags) { 68988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeString(mText); 69988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mCookie); 70988323c57bd25a58f05dfa492d9b9c8ab62c5153satok dest.writeInt(mSequence); 71988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 72988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 73988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 74988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the text which is an input of a text service 75988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 76988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public String getText() { 77988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mText; 78988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 79988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 80988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 81988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the cookie of TextInfo 82988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 83988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getCookie() { 84988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mCookie; 85988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 86988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 87988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 88988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * @return the sequence of TextInfo 89988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 90988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int getSequence() { 91988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return mSequence; 92988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 93988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 94988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 95988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 96988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 97988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public static final Parcelable.Creator<TextInfo> CREATOR 98988323c57bd25a58f05dfa492d9b9c8ab62c5153satok = new Parcelable.Creator<TextInfo>() { 99988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 100988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public TextInfo createFromParcel(Parcel source) { 101988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new TextInfo(source); 102988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 103988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 104988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 105988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public TextInfo[] newArray(int size) { 106988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return new TextInfo[size]; 107988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 108988323c57bd25a58f05dfa492d9b9c8ab62c5153satok }; 109988323c57bd25a58f05dfa492d9b9c8ab62c5153satok 110988323c57bd25a58f05dfa492d9b9c8ab62c5153satok /** 111988323c57bd25a58f05dfa492d9b9c8ab62c5153satok * Used to make this class parcelable. 112988323c57bd25a58f05dfa492d9b9c8ab62c5153satok */ 113988323c57bd25a58f05dfa492d9b9c8ab62c5153satok @Override 114988323c57bd25a58f05dfa492d9b9c8ab62c5153satok public int describeContents() { 115988323c57bd25a58f05dfa492d9b9c8ab62c5153satok return 0; 116988323c57bd25a58f05dfa492d9b9c8ab62c5153satok } 117988323c57bd25a58f05dfa492d9b9c8ab62c5153satok} 118