19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2007-2008 The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); you may not 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * use this file except in compliance with the License. You may obtain a copy of 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * License for the specific language governing permissions and limitations under 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage com.android.internal.view; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable; 21c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brownimport android.view.InputChannel; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Bundle of information returned by input method manager about a successful 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * binding to an input method. 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic final class InputBindResult implements Parcelable { 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project static final String TAG = "InputBindResult"; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The input method service. 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final IInputMethodSession method; 34c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown 35c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown /** 36c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown * The input channel used to send input events to this IME. 37c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown */ 38c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown public final InputChannel channel; 39c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The ID for this input method, as found in InputMethodInfo; null if 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * no input method will be bound. 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final String id; 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Sequence number of this binding. 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public final int sequence; 503d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa 513d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa /** 523d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa * Sequence number of user action notification. 533d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa */ 543d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa public final int userActionNotificationSequenceNumber; 553d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa 56c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown public InputBindResult(IInputMethodSession _method, InputChannel _channel, 573d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa String _id, int _sequence, int _userActionNotificationSequenceNumber) { 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project method = _method; 59c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown channel = _channel; 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project id = _id; 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sequence = _sequence; 623d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa userActionNotificationSequenceNumber = _userActionNotificationSequenceNumber; 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project InputBindResult(Parcel source) { 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project method = IInputMethodSession.Stub.asInterface(source.readStrongBinder()); 67c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown if (source.readInt() != 0) { 68c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown channel = InputChannel.CREATOR.createFromParcel(source); 69c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown } else { 70c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown channel = null; 71c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown } 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project id = source.readString(); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project sequence = source.readInt(); 743d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa userActionNotificationSequenceNumber = source.readInt(); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 76c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public String toString() { 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return "InputBindResult{" + method + " " + id 803d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa + " sequence:" + sequence 813d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa + " userActionNotificationSequenceNumber:" + userActionNotificationSequenceNumber 823d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa + "}"; 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Used to package this object into a {@link Parcel}. 87c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown * 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param dest The {@link Parcel} to be written. 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param flags The flags used for parceling. 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 91c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown @Override 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void writeToParcel(Parcel dest, int flags) { 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeStrongInterface(method); 94c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown if (channel != null) { 95c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown dest.writeInt(1); 961951ce86c21445ac191e4d2d95233f4f5c096b56Jeff Brown channel.writeToParcel(dest, flags); 97c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown } else { 98c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown dest.writeInt(0); 99c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown } 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeString(id); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project dest.writeInt(sequence); 1023d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa dest.writeInt(userActionNotificationSequenceNumber); 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Used to make this class parcelable. 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 108c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown public static final Parcelable.Creator<InputBindResult> CREATOR = 109c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown new Parcelable.Creator<InputBindResult>() { 110c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown @Override 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public InputBindResult createFromParcel(Parcel source) { 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new InputBindResult(source); 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 115c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown @Override 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public InputBindResult[] newArray(int size) { 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return new InputBindResult[size]; 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project }; 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 121c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown @Override 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int describeContents() { 123c28867a1d67121ce5963de135e3ae2b1dbd9a33dJeff Brown return channel != null ? channel.describeContents() : 0; 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 126