Repository: rustdesk
Issue: RustDesk iOS -> Android - flutter widgets hide remote software keyboard
Labels: bug

### Bug Description

Hello,

When I connect to an Android target using RustDesk iOS app, and need to enter something in a text editor, it displays the android on screen keyboard, but the RustDesk widgets such as the blue up arrow and RustDesk toolbar block some of the android on screen keyboard buttons.

### How to Reproduce

Connect to the target, get into an app or a place where you need to enter some keyboard input.
The android on screen keyboard shows, but some keys are blocked by RuskDesk widgets.

### Expected Behavior

Either allow to use the native iOS on screen keyboard (by un-hiding the keyboard icon button), so it's above the RustDesk widgets or make it so the RustDesk widgets don't block the android on-screen keys (either with another button that hides them or by identifying when the android on screen keyboard is showing and hide them accordingly).

### Operating system(s) on local side and remote side

iOS 14 -> Android 11

### RustDesk Version(s) on local side and remote side

1.1.10 -> 1.1.10-1

### Screenshots

![image](https://github.com/rustdesk/rustdesk/assets/134864072/91a63abf-ba76-42fd-aebd-266841cf9e76)

![image](https://github.com/rustdesk/rustdesk/assets/134864072/53fcb0e7-8d05-4721-83fa-3aed6b18fffa)

### Additional Context

For reference, here is the keyboard icon I’m talking about that shows if I connect to a Windows based target:

![6809AB38-0297-459A-8D4E-55F45DFC1A22](https://github.com/rustdesk/rustdesk/assets/134864072/230b557f-7037-4e0d-912d-6c640551f0aa)

No keyboard icon shows when connecting to android mobile device:

![BBB25C38-A029-46B8-8A08-1ED789A1D4C0](https://github.com/rustdesk/rustdesk/assets/134864072/680cd046-0165-40a3-b475-340072fade9b)

Important note: I tried to use the remote soft keyboard of Android, but It's too slow and prone to errors to try to type on the target Android soft keyboard that’s on the target screen rather than sending the keystrokes from the client connecting iOS side native soft keyboard.

Other remote desktop apps including TeamViewer allow this without any problem. Here is an example for another remote desktop app that gives you the option to either use the target android soft keyboard on screen or the source ios soft keyboard:

https://imgur.com/a/m5OirEK

I believe that’s how it should be in RustDesk too. The way it is right now basically makes the keyboard input very difficult and extremely unreliable especially if facing with a less stable connection. Not to mention it's blocked by some RustDesk widgets such as the blue up arrow and RustDesk toolbar. 

I tried to use the remote soft keyboard of Android, but It's too slow and prone to errors to try to type on the target Android soft keyboard that’s on the target screen rather than sending the keystrokes from the client connecting iOS side native soft keyboard. It’s especially true if you are facing a less stable connection. So typing in the native iOS soft keyboard is much better, more efficient and less prone to errors since sending keystrokes from local keyboard has less latency than relying on passing touch screen strokes on a screen that could be lagged because of the connection.

**Important:** Could you please also add an option where you can pin the native iOS keyboard to be open all the time if needed, so if you touch the screen in another area it won't hide the keyboard? This is useful as sometimes when you type something it shows you auto complete or auto correct words that you need to press on them on the screen so just want to make sure the native iOS keyboard will continue to show in case I need to continue to type and occasionally interact with the screen if that make sense.

To elaborate, here is a case study how it looks in TeamViewer in the two attached screenshots, I’ll explain each figure marked in the screenshots:

![image](https://github.com/wsvn53/scrcpy-mobile/assets/134864072/11cc7c29-b6b8-462b-80c2-8c119114abc1)

1. For example, I typed “Hel” which could be either incomplete word or incorrect word.
2. Auto correct/Auto complete is offering to press the “Hello” word.
3. A keyboard icon exists in the app menu that allows you to open the native ios keyboard.

![image](https://github.com/wsvn53/scrcpy-mobile/assets/134864072/9714d04d-6073-4807-8e4b-486e9f9c3068)
 
4. Once the keyboard is open, you can still press on the suggested “Hello” word on the screen, without the keyboard closing.
5. There is a button that allows you to close the keyboard when you are done using it.
6. This is not the best example how to do it as the extra menu line on top of the native ios keyboard that TeamViewer added is blocking some of the suggested words for auto complete/correct so better allow to pin the keyboard ahead of time or in a different menu so it doesn’t interfere or block the screen auto complete/correct words.

Please let me know if you have any questions.

Thank you.