diff --git a/app/src/main/java/com/limelight/GameMenu.java b/app/src/main/java/com/limelight/GameMenu.java
index cce2011cf..b2f68bb78 100755
--- a/app/src/main/java/com/limelight/GameMenu.java
+++ b/app/src/main/java/com/limelight/GameMenu.java
@@ -273,6 +273,9 @@ private void showAdvancedMenu() {
options.add(new MenuOption(getString(R.string.game_menu_toggle_virtual_keyboard_model), true,
game::showHidekeyBoardLayoutController));
+ options.add(new MenuOption(getString(R.string.game_menu_task_manager), true,
+ () -> sendKeys(new short[]{KeyboardTranslator.VK_LCONTROL, KeyboardTranslator.VK_LSHIFT, KeyboardTranslator.VK_ESCAPE})));
+
options.add(new MenuOption(getString(R.string.game_menu_send_keys), this::showSpecialKeysMenu));
options.add(new MenuOption(getString(R.string.game_menu_switch_touch_sensitivity_model), true,
diff --git a/app/src/main/java/com/limelight/PcView.java b/app/src/main/java/com/limelight/PcView.java
index e05885e38..dc38b9449 100755
--- a/app/src/main/java/com/limelight/PcView.java
+++ b/app/src/main/java/com/limelight/PcView.java
@@ -542,7 +542,13 @@ private void doOTPPair(final ComputerDetails computer) {
dialogBuilder.setTitle(R.string.pcview_menu_pair_pc_otp);
dialogBuilder.setView(layout);
- dialogBuilder.setPositiveButton(getString(R.string.proceed), (dialog, which) -> {
+ dialogBuilder.setPositiveButton(getString(R.string.proceed), null);
+
+ dialogBuilder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.dismiss());
+ AlertDialog dialog = dialogBuilder.create();
+ dialog.show();
+
+ dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
String pin = otpInput.getText().toString();
String passphrase = passphraseInput.getText().toString();
if (pin.length() != 4) {
@@ -554,10 +560,8 @@ private void doOTPPair(final ComputerDetails computer) {
return;
}
doPair(computer, pin, passphrase);
+ dialog.dismiss(); // Manually dismiss the dialog if the input is valid
});
-
- dialogBuilder.setNegativeButton(getString(R.string.cancel), (dialog, which) -> dialog.dismiss());
- dialogBuilder.create().show();
}
private void doWakeOnLan(final ComputerDetails computer) {
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 54bb448d1..f917575d3 100755
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -11,7 +11,7 @@
正在加载帮助页面……
浏览游戏列表
- 和电脑配对
+ 普通配对
OTP配对
取消配对
发送 Wake-On-LAN 请求
@@ -27,7 +27,7 @@
请在目标电脑上输入以下PIN码:
正在配对,请稍候…
OTP 配对仅支持 Apollo,其他服务端请在 WebUI 上手动输入刚刚提供的PIN码。
- PIN码错误
+ PIN码或口令错误
配对失败
配对中,请稍候
口令
@@ -314,6 +314,7 @@
触控灵敏度切换
断开连接
取消
+ 打开任务管理器
发送特殊按键
发送 Ctrl + V (粘贴剪切板)
发送 Win (打开Windows开始菜单)
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 43c6b8387..bd02a5a4f 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -16,7 +16,7 @@
Offline
Refreshing
View All Apps
- Pair with PC
+ Legacy Pair
OTP Pair
Unpair
Send Wake-On-LAN request
@@ -45,7 +45,7 @@
If your host PC is running Sunshine, navigate to the Sunshine web UI to enter the PIN.
Pairing, please wait…
OTP pairing is only available with Apollo, enter the PIN you just provided on the web UI manually if you\'re using other host software.
- Incorrect PIN
+ Incorrect PIN or Passphrase
Pairing failed
Pairing already in progress
Passphrase
@@ -337,6 +337,7 @@
Disable Controller Mouse Emulation
Disconnect
Cancel
+ Open Task Manager
Send special keys
Send ESC
Send F11