diff options
author | 2011-07-17 21:18:47 -0700 | |
---|---|---|
committer | 2011-07-19 22:22:47 -0700 | |
commit | bf9d8348d89be257ccc3db75333bfd4cdf0a9b7e (patch) | |
tree | 8d385533c9f19024c9c8ad392245ee866ac7245f /java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java | |
parent | fa9f4d1badee67ceb581391dfab2202e4ccb99c0 (diff) | |
download | latinime-bf9d8348d89be257ccc3db75333bfd4cdf0a9b7e.tar.gz latinime-bf9d8348d89be257ccc3db75333bfd4cdf0a9b7e.tar.xz latinime-bf9d8348d89be257ccc3db75333bfd4cdf0a9b7e.zip |
Support select input method dialog on pre-HC platform
Bug: 4971680
Change-Id: I641b336da54813e13409bd7874aa22e51f790729
Diffstat (limited to 'java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java')
-rw-r--r-- | java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java index 7d8c745c3..7aab66d05 100644 --- a/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java +++ b/java/src/com/android/inputmethod/compat/InputMethodServiceCompatWrapper.java @@ -16,10 +16,15 @@ package com.android.inputmethod.compat; +import android.app.AlertDialog; import android.inputmethodservice.InputMethodService; +import android.os.IBinder; +import android.view.Window; +import android.view.WindowManager; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.deprecated.LanguageSwitcherProxy; +import com.android.inputmethod.keyboard.KeyboardSwitcher; import com.android.inputmethod.latin.SubtypeSwitcher; public class InputMethodServiceCompatWrapper extends InputMethodService { @@ -32,10 +37,33 @@ public class InputMethodServiceCompatWrapper extends InputMethodService { private InputMethodManagerCompatWrapper mImm; + // For compatibility of {@link InputMethodManager#showInputMethodPicker}. + // TODO: Move this variable back to LatinIME when this compatibility wrapper is removed. + protected AlertDialog mOptionsDialog; + + public void showOptionDialogInternal(AlertDialog dialog) { + final IBinder windowToken = KeyboardSwitcher.getInstance().getKeyboardView() + .getWindowToken(); + if (windowToken == null) return; + + dialog.setCancelable(true); + dialog.setCanceledOnTouchOutside(true); + + final Window window = dialog.getWindow(); + final WindowManager.LayoutParams lp = window.getAttributes(); + lp.token = windowToken; + lp.type = WindowManager.LayoutParams.TYPE_APPLICATION_ATTACHED_DIALOG; + window.setAttributes(lp); + window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); + + mOptionsDialog = dialog; + dialog.show(); + } + @Override public void onCreate() { super.onCreate(); - mImm = InputMethodManagerCompatWrapper.getInstance(this); + mImm = InputMethodManagerCompatWrapper.getInstance(); } // When the API level is 10 or previous, notifyOnCurrentInputMethodSubtypeChanged should |