How lurixo/aegis works
Aegis is an Android Chinese/English input method. The main path is editor input through the IME’s keyboard/controller, candidate generation and selection, then text commit back to the editor. Chinese decoding uses dictionary assets and can incorporate user learning; English completion and prediction are part of the candidate engine. Separate branches cover panels and clipboard/phrase features, settings and optional model downloads, translation, and encrypted backup/restore. The README documents these capabilities; sampled source confirms the IME, decoder, translation, and backup responsibilities, but not every connection among unsampled UI and storage modules.
Main entry points: AegisInputMethodService.kt IME service · DictEngine.kt Dictionary engine · ClipboardView.kt IME panels · KeyboardController.kt Keyboard controller
Components 21
Input and candidates
- IME service
app/src/main/java/com/aegis/ime/AegisInputMethodService.kt - Keyboard controller
app/src/main/java/com/aegis/ime/ime/KeyboardController.kt - Candidate engine
app/src/main/java/com/aegis/ime/engine/CandidateEngine.kt - Keyboard and candidates
app/src/main/java/com/aegis/ime/ime/KeyboardView.kt
Decoding and learning
- Dictionary engine
app/src/main/java/com/aegis/ime/engine/DictEngine.kt - Pinyin decoder
app/src/main/java/com/aegis/ime/decoder/PinyinDecoder.kt - Dictionary models
app/src/main/java/com/aegis/ime/dict/BinaryDict.kt - User learning
app/src/main/java/com/aegis/ime/user/UserLearning.kt
Panels and user data
- IME panels
app/src/main/java/com/aegis/ime/ime/ClipboardView.kt - Clipboard history
app/src/main/java/com/aegis/ime/user/ClipboardStore.kt - User lexicon
app/src/main/java/com/aegis/ime/user/UserLexicon.kt - Private user files
app/src/main/java/com/aegis/ime/user/UserModel.kt
Settings and assets
- Settings screens
app/src/main/java/com/aegis/ime/ui/SetupActivity.kt - Model downloads
app/src/main/java/com/aegis/ime/dict/ModelDownload.kt - Engine assets
app/src/main/java/com/aegis/ime/dict/EngineAssets.kt
External services and backup
- Translate bar
app/src/main/java/com/aegis/ime/ime/TranslateBarView.kt - Translation client
app/src/main/java/com/aegis/ime/translate/TranslateClient.kt - Backup screen
app/src/main/java/com/aegis/ime/ui/BackupActivity.kt - Backup manager
app/src/main/java/com/aegis/ime/backup/BackupManager.kt
Other components
- Text editor
- Google Translate
Connections 22
- Text editor → IME service: activates
- IME service → Keyboard controller: handles keys
- Keyboard controller → Candidate engine: requests candidates
- Candidate engine → Dictionary engine: delegates decoding
- Dictionary engine → Pinyin decoder: decodes pinyin
- Pinyin decoder → Dictionary models: reads models
- Dictionary engine → User learning: uses learning
- IME service → Keyboard and candidates: renders keyboard
- Keyboard and candidates → IME service: selects candidate
- IME service → Text editor: commits text
- IME service → IME panels: shows panels
- IME panels → Clipboard history: reads/writes clips
- IME panels → User lexicon: uses lexicon
- User lexicon → Private user files: persists entries
- Settings screens → Model downloads: starts download
- Model downloads → Engine assets: installs assets
- Engine assets → Dictionary engine: supplies models
- IME service → Translate bar: opens bar
- Translate bar → Translation client: submits text
- Translation client → Google Translate: sends translation
- Backup screen → Backup manager: exports/imports
- Backup manager → Private user files: archives user data