aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorYohei Yukawa <yukawa@google.com>2019-05-06 08:37:18 -0700
committerandroid-build-merger <android-build-merger@google.com>2019-05-06 08:37:18 -0700
commit9dd88539325e01e3c7e4cc18a5476c4b92609b4b (patch)
treeabeab7c5b4cc12ad54dc9240972a264505740e68 /java/src
parent451e55acaa8cd0c6ad68cb7acc64e04219b2bba1 (diff)
parentd6c56279b305dfbf1a98fa459422a7ece3008524 (diff)
downloadlatinime-9dd88539325e01e3c7e4cc18a5476c4b92609b4b.tar.gz
latinime-9dd88539325e01e3c7e4cc18a5476c4b92609b4b.tar.xz
latinime-9dd88539325e01e3c7e4cc18a5476c4b92609b4b.zip
Launch AOSP Keyboard Settings on the same display am: d762841494
am: d6c56279b3 Change-Id: Iee16bafc93cd5550cdb8da83b1bf2b93f3b2a83e
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java21
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);