How gitthubpro/vmkeyboard works
This is an Android voice keyboard/input-method app. A user enables it, selects it in Android’s input-method settings, then types through the keyboard shown by the IME service; the service routes key actions to the active editor and coordinates suggestions, clipboard actions, speech input, and translation. The UI includes configurable layouts, themes, emoji, toolbar actions, and a separate AI-prompts activity. Edges reflect the excerpts and SOURCE INDEX references; some activity and runtime details were not sampled, so uncertain connections are omitted.
Main entry points: KeyboardView.kt Keyboard view · VoiceKeyboardService.kt IME service · LayoutBuilder.kt Layout builder · MainActivity.kt Keyboard settings
Components 22
App setup
- Keyboard settings
app/src/main/java/com/volkan/voicekeyboard/MainActivity.kt - AI prompts
app/src/main/java/com/volkan/voicekeyboard/AiPromptsActivity.kt
Input method
- IME service
app/src/main/java/com/volkan/voicekeyboard/ime/VoiceKeyboardService.kt - Input processing
app/src/main/java/com/volkan/voicekeyboard/controller/InputProcessor.kt - Key codes
app/src/main/java/com/volkan/voicekeyboard/core/KeyCode.kt
Keyboard interface
- Keyboard view
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardView.kt - Layout builder
app/src/main/java/com/volkan/voicekeyboard/ui/LayoutBuilder.kt - Toolbar builder
app/src/main/java/com/volkan/voicekeyboard/ui/ToolbarBuilder.kt - Suggestion bar
app/src/main/java/com/volkan/voicekeyboard/ui/SuggestionBarBuilder.kt - Key model
app/src/main/java/com/volkan/voicekeyboard/ui/Key.kt - Key types
app/src/main/java/com/volkan/voicekeyboard/ui/KeyType.kt - Theme data
app/src/main/java/com/volkan/voicekeyboard/ui/ThemeData.kt - Keyboard parameters
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardParams.kt
Input capabilities
- Word suggestions
app/src/main/java/com/volkan/voicekeyboard/engine/SuggestionEngine.kt - Clipboard and cursor
app/src/main/java/com/volkan/voicekeyboard/controller/ClipboardController.kt - Speech recognition
app/src/main/java/com/volkan/voicekeyboard/controller/SpeechController.kt - Translation controller
app/src/main/java/com/volkan/voicekeyboard/controller/TranslationController.kt - Emoji data
app/src/main/java/com/volkan/voicekeyboard/emoji/EmojiData.kt
Other components
- User
- IME settings
- Active text editor
- Android speech service
Connections 23
- User → Keyboard settings: opens settings
app/src/main/java/com/volkan/voicekeyboard/MainActivity.kt - Keyboard settings → IME settings: opens IME settings
app/src/main/java/com/volkan/voicekeyboard/MainActivity.kt - User → IME service: selects keyboard
- IME service → Keyboard view: creates view
app/src/main/java/com/volkan/voicekeyboard/ime/VoiceKeyboardService.kt - Keyboard view → IME service: attaches service
app/src/main/java/com/volkan/voicekeyboard/ime/VoiceKeyboardService.kt - IME service → Active text editor: commits input
- IME service → Clipboard and cursor: delegates clipboard
app/src/main/java/com/volkan/voicekeyboard/ime/VoiceKeyboardService.kt - IME service → Speech recognition: handles speech
app/src/main/java/com/volkan/voicekeyboard/ime/VoiceKeyboardService.kt - Speech recognition → Android speech service: starts recognition
app/src/main/java/com/volkan/voicekeyboard/controller/SpeechController.kt - IME service → Translation controller: handles translation
app/src/main/java/com/volkan/voicekeyboard/ime/VoiceKeyboardService.kt - IME service → Word suggestions: loads and suggests
app/src/main/java/com/volkan/voicekeyboard/ime/VoiceKeyboardService.kt - Input processing → Key codes: uses codes
app/src/main/java/com/volkan/voicekeyboard/controller/InputProcessor.kt - Keyboard view → Layout builder: builds layouts
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardView.kt - Keyboard view → Toolbar builder: builds toolbar
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardView.kt - Keyboard view → Suggestion bar: builds suggestions bar
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardView.kt - Layout builder → Emoji data: uses emoji data
app/src/main/java/com/volkan/voicekeyboard/ui/LayoutBuilder.kt - Layout builder → Key model: creates keys
app/src/main/java/com/volkan/voicekeyboard/ui/LayoutBuilder.kt - Layout builder → Key types: assigns key types
app/src/main/java/com/volkan/voicekeyboard/ui/LayoutBuilder.kt - Keyboard view → Key model: handles keys
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardView.kt - Keyboard view → Key types: dispatches key types
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardView.kt - Keyboard view → Theme data: loads theme
app/src/main/java/com/volkan/voicekeyboard/ui/KeyboardView.kt - Keyboard view → Keyboard parameters: uses parameters
- Toolbar builder → Keyboard settings: opens settings
app/src/main/java/com/volkan/voicekeyboard/ui/ToolbarBuilder.kt