19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 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"); 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License. 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of 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, 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under 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 194df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Projectimport android.os.ResultReceiver; 20f9f01008624e2d28c15a90d942fa36f98c8c967dsatokimport android.text.style.SuggestionSpan; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.inputmethod.InputMethodInfo; 2204d50204705c9da52b218f11972da4e7d7a9cb84satokimport android.view.inputmethod.InputMethodSubtype; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.inputmethod.EditorInfo; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.view.InputBindResult; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.view.IInputContext; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.view.IInputMethodClient; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Public interface to the global input method manager, used by all client 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * applications. 31b3c21ac7c661022534135bf688a75ec35fe3a8f2Satoshi Kataoka * You need to update BridgeIInputMethodManager.java as well when changing 32b3c21ac7c661022534135bf688a75ec35fe3a8f2Satoshi Kataoka * this file. 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IInputMethodManager { 35f06569561fe1c6e898debf8bb9f37331a9f87323Yohei Yukawa // TODO: Use ParceledListSlice instead 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List<InputMethodInfo> getInputMethodList(); 37f06569561fe1c6e898debf8bb9f37331a9f87323Yohei Yukawa // TODO: Use ParceledListSlice instead 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List<InputMethodInfo> getEnabledInputMethodList(); 39b3c21ac7c661022534135bf688a75ec35fe3a8f2Satoshi Kataoka List<InputMethodSubtype> getEnabledInputMethodSubtypeList(in String imiId, 4016331c8a1d33defccc5cbb18694def79196c921bsatok boolean allowsImplicitlySelectedSubtypes); 4168f1b78b7b9139a0e34285ff641a664e664a14b8satok InputMethodSubtype getLastInputMethodSubtype(); 424e4569dab5c75804b01a19b2d6e6101b445c1c68satok // TODO: We should change the return type from List to List<Parcelable> 434e4569dab5c75804b01a19b2d6e6101b445c1c68satok // Currently there is a bug that aidl doesn't accept List<Parcelable> 444e4569dab5c75804b01a19b2d6e6101b445c1c68satok List getShortcutInputMethodsAndSubtypes(); 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addClient(in IInputMethodClient client, 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in IInputContext inputContext, int uid, int pid); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void removeClient(in IInputMethodClient client); 4835d3f37bd51268cc99d81a3f537ac364d178e851Yohei Yukawa 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void finishInput(in IInputMethodClient client); 504df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project boolean showSoftInput(in IInputMethodClient client, int flags, 514df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project in ResultReceiver resultReceiver); 524df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project boolean hideSoftInput(in IInputMethodClient client, int flags, 534df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project in ResultReceiver resultReceiver); 5405c25f8a3a033816ac25aa5cd7db5b1ab495bc3fYohei Yukawa // If windowToken is null, this just does startInput(). Otherwise this reports that a window 5505c25f8a3a033816ac25aa5cd7db5b1ab495bc3fYohei Yukawa // has gained focus, and if 'attribute' is non-null then also does startInput. 5605c25f8a3a033816ac25aa5cd7db5b1ab495bc3fYohei Yukawa InputBindResult startInputOrWindowGainedFocus( 5735d3f37bd51268cc99d81a3f537ac364d178e851Yohei Yukawa /* @InputMethodClient.StartInputReason */ int startInputReason, 5835d3f37bd51268cc99d81a3f537ac364d178e851Yohei Yukawa in IInputMethodClient client, in IBinder windowToken, int controlFlags, 5935d3f37bd51268cc99d81a3f537ac364d178e851Yohei Yukawa int softInputMode, int windowFlags, in EditorInfo attribute, 6019a80a1e807acd00bec999eaac7812da6ffce954Yohei Yukawa IInputContext inputContext, 6119a80a1e807acd00bec999eaac7812da6ffce954Yohei Yukawa /* @InputConnectionInspector.MissingMethodFlags */ int missingMethodFlags); 622b10b52f6c08eb79f48f7388e2f1c69f58a9c96dSatoshi Kataoka 6314e139179be7daab6ed452105387a3922752c219Seigo Nonaka void showInputMethodPickerFromClient(in IInputMethodClient client, 6414e139179be7daab6ed452105387a3922752c219Seigo Nonaka int auxiliarySubtypeMode); 6547a44916e2fb33cf4751906386d5f5c903b28d8bsatok void showInputMethodAndSubtypeEnablerFromClient(in IInputMethodClient client, String topId); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setInputMethod(in IBinder token, String id); 672820351489537698ad153c6397edf3270455edc5satok void setInputMethodAndSubtype(in IBinder token, String id, in InputMethodSubtype subtype); 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void hideMySoftInput(in IBinder token, int flags); 694df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project void showMySoftInput(in IBinder token, int flags); 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void updateStatusIcon(in IBinder token, String packageName, int iconId); 71857fd9b8562c29913e03ed29288bd1802d37dc60Joe Onorato void setImeWindowStatus(in IBinder token, int vis, int backDisposition); 72f9f01008624e2d28c15a90d942fa36f98c8c967dsatok void registerSuggestionSpansForNotification(in SuggestionSpan[] spans); 73f9f01008624e2d28c15a90d942fa36f98c8c967dsatok boolean notifySuggestionPicked(in SuggestionSpan span, String originalString, int index); 7404d50204705c9da52b218f11972da4e7d7a9cb84satok InputMethodSubtype getCurrentInputMethodSubtype(); 75b66d287e3003a0934d5714fbf15e554b3c814906satok boolean setCurrentInputMethodSubtype(in InputMethodSubtype subtype); 76735cf38b8c7f8f91ad087511e44fe79018fa61d6satok boolean switchToLastInputMethod(in IBinder token); 77688bd47fccf1a1373e6287bc49b5b33fad12b7f3satok boolean switchToNextInputMethod(in IBinder token, boolean onlyCurrentIme); 782b10b52f6c08eb79f48f7388e2f1c69f58a9c96dSatoshi Kataoka boolean shouldOfferSwitchingToNextInputMethod(in IBinder token); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setInputMethodEnabled(String id, boolean enabled); 809e9fbb26395eb983e17a415cf78b3c2ee060ee0eYohei Yukawa void setAdditionalInputMethodSubtypes(String id, in InputMethodSubtype[] subtypes); 81658c7b896a751b971db1292d86655dbb97f00067Satoshi Kataoka int getInputMethodWindowVisibleHeight(); 82833bdcedceee60a873694a77587393abfc830eb5Yohei Yukawa void clearLastInputMethodWindowForTransition(in IBinder token); 83833bdcedceee60a873694a77587393abfc830eb5Yohei Yukawa 843d1e8129ebd69db49d80e5d598f608c59b884cdfYohei Yukawa oneway void notifyUserAction(int sequenceNumber); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 86