diff options
author | 2019-05-06 08:25:05 -0700 | |
---|---|---|
committer | 2019-05-06 08:25:05 -0700 | |
commit | d6c56279b305dfbf1a98fa459422a7ece3008524 (patch) | |
tree | c1d7ddd47896f4047d307169973e794f2941b029 /java/src | |
parent | 93fbdb44d42a5bfd4fa91dbef4be5ef253d714c9 (diff) | |
parent | d7628414941edb8c5be8120f168ebfdd98a762eb (diff) | |
download | latinime-d6c56279b305dfbf1a98fa459422a7ece3008524.tar.gz latinime-d6c56279b305dfbf1a98fa459422a7ece3008524.tar.xz latinime-d6c56279b305dfbf1a98fa459422a7ece3008524.zip |
Launch AOSP Keyboard Settings on the same display
am: d762841494
Change-Id: Id06f29304f0f1e47ee546bacbee28f66d15e8baa
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 00ed52cad..4b6ab7e27 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -21,6 +21,7 @@ import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROP import static com.android.inputmethod.latin.common.Constants.ImeOption.NO_MICROPHONE_COMPAT; import android.Manifest.permission; +import android.app.ActivityOptions; import android.app.AlertDialog; import android.content.BroadcastReceiver; import android.content.Context; @@ -1781,6 +1782,22 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } }; + /** + * Starts {@link android.app.Activity} on the same display where the IME is shown. + * + * @param intent {@link Intent} to be used to start {@link android.app.Activity}. + */ + private void startActivityOnTheSameDisplay(Intent intent) { + // Note that WindowManager#getDefaultDisplay() returns the display ID associated with the + // Context from which the WindowManager instance was obtained. Therefore the following code + // returns the display ID for the window where the IME is shown. + final int currentDisplayId = ((WindowManager) getSystemService(Context.WINDOW_SERVICE)) + .getDefaultDisplay().getDisplayId(); + + startActivity(intent, + ActivityOptions.makeBasic().setLaunchDisplayId(currentDisplayId).toBundle()); + } + void launchSettings(final String extraEntryValue) { mInputLogic.commitTyped(mSettings.getCurrent(), LastComposedWord.NOT_A_SEPARATOR); requestHideSelf(0); @@ -1795,7 +1812,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra(SettingsActivity.EXTRA_SHOW_HOME_AS_UP, false); intent.putExtra(SettingsActivity.EXTRA_ENTRY_KEY, extraEntryValue); - startActivity(intent); + startActivityOnTheSameDisplay(intent); } private void showSubtypeSelectorAndSettings() { @@ -1819,7 +1836,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra(Intent.EXTRA_TITLE, languageSelectionTitle); - startActivity(intent); + startActivityOnTheSameDisplay(intent); break; case 1: launchSettings(SettingsActivity.EXTRA_ENTRY_VALUE_LONG_PRESS_COMMA); |