Home | History | Annotate | Download | only in textservice
      1 /*
      2  * Copyright (C) 2011 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
      5  * use this file except in compliance with the License. You may obtain a copy of
      6  * the License at
      7  *
      8  * http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
     12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
     13  * License for the specific language governing permissions and limitations under
     14  * the License.
     15  */
     16 
     17 package android.view.textservice;
     18 
     19 import android.os.Parcel;
     20 import android.os.Parcelable;
     21 import android.text.TextUtils;
     22 
     23 /**
     24  * This class contains a metadata of the input of TextService
     25  */
     26 public final class TextInfo implements Parcelable {
     27     private final String mText;
     28     private final int mCookie;
     29     private final int mSequence;
     30 
     31     /**
     32      * Constructor.
     33      * @param text the text which will be input to TextService
     34      */
     35     public TextInfo(String text) {
     36         this(text, 0, 0);
     37     }
     38 
     39     /**
     40      * Constructor.
     41      * @param text the text which will be input to TextService
     42      * @param cookie the cookie for this TextInfo
     43      * @param sequence the sequence number for this TextInfo
     44      */
     45     public TextInfo(String text, int cookie, int sequence) {
     46         if (TextUtils.isEmpty(text)) {
     47             throw new IllegalArgumentException(text);
     48         }
     49         mText = text;
     50         mCookie = cookie;
     51         mSequence = sequence;
     52     }
     53 
     54     public TextInfo(Parcel source) {
     55         mText = source.readString();
     56         mCookie = source.readInt();
     57         mSequence = source.readInt();
     58     }
     59 
     60     /**
     61      * Used to package this object into a {@link Parcel}.
     62      *
     63      * @param dest The {@link Parcel} to be written.
     64      * @param flags The flags used for parceling.
     65      */
     66     @Override
     67     public void writeToParcel(Parcel dest, int flags) {
     68         dest.writeString(mText);
     69         dest.writeInt(mCookie);
     70         dest.writeInt(mSequence);
     71     }
     72 
     73     /**
     74      * @return the text which is an input of a text service
     75      */
     76     public String getText() {
     77         return mText;
     78     }
     79 
     80     /**
     81      * @return the cookie of TextInfo
     82      */
     83     public int getCookie() {
     84         return mCookie;
     85     }
     86 
     87     /**
     88      * @return the sequence of TextInfo
     89      */
     90     public int getSequence() {
     91         return mSequence;
     92     }
     93 
     94     /**
     95      * Used to make this class parcelable.
     96      */
     97     public static final Parcelable.Creator<TextInfo> CREATOR
     98             = new Parcelable.Creator<TextInfo>() {
     99         @Override
    100         public TextInfo createFromParcel(Parcel source) {
    101             return new TextInfo(source);
    102         }
    103 
    104         @Override
    105         public TextInfo[] newArray(int size) {
    106             return new TextInfo[size];
    107         }
    108     };
    109 
    110     /**
    111      * Used to make this class parcelable.
    112      */
    113     @Override
    114     public int describeContents() {
    115         return 0;
    116     }
    117 }
    118