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. 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IInputMethodManager { 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List<InputMethodInfo> getInputMethodList(); 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project List<InputMethodInfo> getEnabledInputMethodList(); 3516331c8a1d33defccc5cbb18694def79196c921bsatok List<InputMethodSubtype> getEnabledInputMethodSubtypeList(in InputMethodInfo imi, 3616331c8a1d33defccc5cbb18694def79196c921bsatok boolean allowsImplicitlySelectedSubtypes); 3768f1b78b7b9139a0e34285ff641a664e664a14b8satok InputMethodSubtype getLastInputMethodSubtype(); 384e4569dab5c75804b01a19b2d6e6101b445c1c68satok // TODO: We should change the return type from List to List<Parcelable> 394e4569dab5c75804b01a19b2d6e6101b445c1c68satok // Currently there is a bug that aidl doesn't accept List<Parcelable> 404e4569dab5c75804b01a19b2d6e6101b445c1c68satok List getShortcutInputMethodsAndSubtypes(); 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addClient(in IInputMethodClient client, 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in IInputContext inputContext, int uid, int pid); 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void removeClient(in IInputMethodClient client); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project InputBindResult startInput(in IInputMethodClient client, 467663d80f6b6fd6ca7a736c3802013a09c0abdeb9Dianne Hackborn IInputContext inputContext, in EditorInfo attribute, int controlFlags); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void finishInput(in IInputMethodClient client); 484df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project boolean showSoftInput(in IInputMethodClient client, int flags, 494df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project in ResultReceiver resultReceiver); 504df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project boolean hideSoftInput(in IInputMethodClient client, int flags, 514df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project in ResultReceiver resultReceiver); 527663d80f6b6fd6ca7a736c3802013a09c0abdeb9Dianne Hackborn // Report that a window has gained focus. If 'attribute' is non-null, 537663d80f6b6fd6ca7a736c3802013a09c0abdeb9Dianne Hackborn // this will also do a startInput. 547663d80f6b6fd6ca7a736c3802013a09c0abdeb9Dianne Hackborn InputBindResult windowGainedFocus(in IInputMethodClient client, in IBinder windowToken, 557663d80f6b6fd6ca7a736c3802013a09c0abdeb9Dianne Hackborn int controlFlags, int softInputMode, int windowFlags, 567663d80f6b6fd6ca7a736c3802013a09c0abdeb9Dianne Hackborn in EditorInfo attribute, IInputContext inputContext); 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void showInputMethodPickerFromClient(in IInputMethodClient client); 5947a44916e2fb33cf4751906386d5f5c903b28d8bsatok void showInputMethodAndSubtypeEnablerFromClient(in IInputMethodClient client, String topId); 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setInputMethod(in IBinder token, String id); 612820351489537698ad153c6397edf3270455edc5satok void setInputMethodAndSubtype(in IBinder token, String id, in InputMethodSubtype subtype); 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void hideMySoftInput(in IBinder token, int flags); 634df2423a947bcd3f024cc3d3a1a315a8dc428598The Android Open Source Project void showMySoftInput(in IBinder token, int flags); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void updateStatusIcon(in IBinder token, String packageName, int iconId); 65857fd9b8562c29913e03ed29288bd1802d37dc60Joe Onorato void setImeWindowStatus(in IBinder token, int vis, int backDisposition); 66f9f01008624e2d28c15a90d942fa36f98c8c967dsatok void registerSuggestionSpansForNotification(in SuggestionSpan[] spans); 67f9f01008624e2d28c15a90d942fa36f98c8c967dsatok boolean notifySuggestionPicked(in SuggestionSpan span, String originalString, int index); 6804d50204705c9da52b218f11972da4e7d7a9cb84satok InputMethodSubtype getCurrentInputMethodSubtype(); 69b66d287e3003a0934d5714fbf15e554b3c814906satok boolean setCurrentInputMethodSubtype(in InputMethodSubtype subtype); 70735cf38b8c7f8f91ad087511e44fe79018fa61d6satok boolean switchToLastInputMethod(in IBinder token); 71688bd47fccf1a1373e6287bc49b5b33fad12b7f3satok boolean switchToNextInputMethod(in IBinder token, boolean onlyCurrentIme); 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean setInputMethodEnabled(String id, boolean enabled); 73ee5e77cafec2eae70890abdcc1646ed39b06edddsatok oneway void setAdditionalInputMethodSubtypes(String id, in InputMethodSubtype[] subtypes); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 75