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