connectbot
connectbot copied to clipboard
Add floating text input window for native keyboard features
Summary
This PR adds a floating text input window that allows users to access native Android keyboard features like swipe typing and voice dictation, which are not available with ConnectBot's custom keyboard.
Features
- Floating Dialog Window: A draggable dialog that can be positioned anywhere on screen
- Native Keyboard Support: Full Android EditText enables swipe typing, voice input, and text prediction
- Multiple Access Methods:
- New button in toolbar (next to paste button)
- Camera button option in settings
- Persistent Positioning: Window position is saved between sessions
- Dark Theme: Matches ConnectBot's design with blue accent colors
- Text Selection: Full support for copy/paste operations
Screenshots
Technical Details
The floating window provides a native text input experience:
-
Compact title bar (36dp) for dragging
-
White text on dark background
-
Blue submit button matching app theme
-
90% screen width for comfortable typing
-
Implemented using
Dialoginstead ofPopupWindowto ensure proper text selection support -
Position persistence via
SharedPreferences -
Integrated with existing camera button preferences
-
Added new menu item with custom icon
Testing
- [x] Window can be opened via menu button
- [ ] Window can be opened via camera button (when configured) - Not tested, no camera button on test device
- [x] Text can be entered and submitted to terminal
- [x] Window can be dragged to any position
- [x] Position persists across app restarts
- [x] Text selection and copy/paste work correctly
- [x] Submit button clears text field after sending
- [x] Close button dismisses the window
Future Enhancements
- Keyboard shortcuts for quick access
- Configurable window size options
- History of recently entered text
🤖 Generated with Claude Code
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.