Releases: awcjack/DualQuickIME
Releases · awcjack/DualQuickIME
DualQuickIME v1.8.3
Immutable
release. Only release title and notes can be modified.
What's Changed
DualQuickIME v1.8.2
Immutable
release. Only release title and notes can be modified.
What's Changed
DualQuickIME v1.8.1
Immutable
release. Only release title and notes can be modified.
Added
- Long-press direction picker on 簡⇄繁 key: Long-press the conversion key to force 繁→簡 or 簡→繁 when auto-detection would pick the wrong direction (e.g., mixed Simplified/Traditional text). Tap still auto-detects.
- Sentence fallback for 簡⇄繁 key: When no text is selected, the conversion key now converts the last sentence before the cursor — useful for fixing a sentence immediately after typing it without having to select first.
Fixed
- Emoji picker no longer shows duplicate base emojis when a skin-tone variant is present in the same category
DualQuickIME v1.8.0
Immutable
release. Only release title and notes can be modified.
Added
- Simplified ⇄ Traditional Chinese Conversion: New 簡⇄繁 key on the symbol keyboard converts the selected text using OpenCC
- Auto-detects direction: Traditional input becomes Simplified, Simplified input becomes Traditional
- Single tap; no long-press needed
- Settings toggle to hide the key (full flavor only — lite ships without OpenCC)
- Symbol-Mode Util Bar: Emoji, clipboard, 簡⇄繁, and voice buttons moved into a dedicated bar above the number row
- Frees up the symbol bottom row and keeps utility actions reachable while typing numbers/symbols
- Configurable Candidate Spacing: New seekbar in Settings → Keyboard adjusts candidate pill padding (2–14dp)
- Smaller padding fits more candidates per row
Fixed
- Candidate bar overflow: pills no longer get clipped past the right edge when English-character candidates or composition text change row width
- Candidate page indicator now reflects the corrected total after overflow rolls candidates to the next page
- Soft keyboard now shows reliably even when the framework reports a hardware keyboard attached
- KeyboardView recovers automatically (resets to letter mode and retries) if
loadThemeorbuildKeyboardthrows, with the failure logged for diagnosis
DualQuickIME v1.7.1
Immutable
release. Only release title and notes can be modified.
Changed
- Gboard-Style Symbol Keyboard: Rearranged number/symbol keyboard to match Gboard layout
- Page 1:
@ # $ % & - + ( )and* " ' : ; ! ? - Page 2:
~ \| • √ π ÷ × ¶ ∆and£ ¢ € ¥ ^ ° = { }`
- Page 1:
- Half-Width Default in Symbol Keyboard: Symbol keyboard now outputs half-width characters by default
- Long-press for full-width variants (reverse of main keyboard behavior)
- Main keyboard retains full-width
,。default with half-width on long-press
- Comma and Period on Symbol Bottom Row: Added
,and.keys flanking the spacebar- Matches Gboard bottom row layout while preserving emoji and clipboard buttons
Fixed
- Pending English text now committed when switching to number keyboard
DualQuickIME v1.7.0
Immutable
release. Only release title and notes can be modified.
Added
- Complete Unicode 16.0 Emoji Support: Expanded emoji keyboard from ~1,247 to 3,781 emojis
- All skin tone variants (🏻🏼🏽🏾🏿) for supported emojis
- All gender variants (♂️/♀️) for people activities
- All ZWJ sequences (professions, families, couples)
- Directional variants (🚶➡️, 🏃➡️, etc.)
- All 270 flags including UK subdivisions (🏴, 🏴, 🏴)
- Unicode 16.0 additions: and more
DualQuickIME v1.6.5
Immutable
release. Only release title and notes can be modified.
Added
- Quick Number Row: Number keys (1-0) displayed in candidate bar when idle
- Allows quick number input without switching to symbol keyboard
- Numbers fill the entire candidate bar width with equal spacing
- Automatically hides when typing to show candidates
- Hidden in symbol mode to avoid duplication with number keyboard
Fixed
- Candidate bar properly restored when returning from symbol/emoji/clipboard/grid views
- All candidates now display correctly (not just the first one) after switching views
- Fixed post callback on detached views causing candidate refresh failures
DualQuickIME v1.6.4
Immutable
release. Only release title and notes can be modified.
Security
- Encrypted Clipboard History: Clipboard data now encrypted at rest using AES256-GCM
- Uses EncryptedSharedPreferences with automatic migration from old storage
- Password field detection: skips capturing content from password inputs
- Configurable TTL (default 24h) auto-expires non-pinned clipboard items
- Disabled Android Backup: Prevents clipboard history exposure via backup mechanisms
- HTTPS-Only Network: Added network security config enforcing HTTPS connections
- Model Download Integrity: SHA-256 checksum verification for voice model downloads
- Debug Log Protection: Sensitive speech recognition content no longer logged in release builds
Fixed
- R8 minification failure in lite release build (added ProGuard rules for security-crypto)
DualQuickIME v1.6.3
Immutable
release. Only release title and notes can be modified.
Added
- Emoji Skin Tone Selector: Long-press emojis that support skin tones to choose from 6 variants
- Selected skin tone becomes the default for all future emoji input
- Preference persists across sessions
- Grapheme-Aware Backspace: Delete entire emoji (including skin tone modifiers) in one press
- Uses ICU BreakIterator to properly handle multi-codepoint emojis
- Works with ZWJ sequences, flags, and other complex emoji
Fixed
- Emoji keyboard no longer scrolls to top after selecting a skin tone
DualQuickIME v1.6.2
Immutable
release. Only release title and notes can be modified.
Changed
- Dynamic Candidate Pagination: Candidates now flow to next page based on available width
- Long associated phrases that don't fit are automatically moved to next page
- At least one candidate always displays even if too wide
- Improves usability for multi-character phrases
- Candidate bar height is now dynamic (expands for multi-line text)
- Candidate pills support up to 2 lines of text wrapping
Fixed
- Associated Phrase Display: Multi-character phrases now display correctly
- Removed horizontal scroll approach in favor of expandable boxes
- Text wrapping enabled for long phrases
- Candidate Grid View Size: Grid view now stays within keyboard bounds
- Fixed rows have 44dp height instead of expanding
- Prevents grid from taking over entire screen
Technical
- CompositionState tracks
displayOffsetandlastDisplayedCountfor dynamic pagination - KeyboardView.setCandidates() measures text width and returns count displayed
- Associated phrases mode uses offset-based pagination matching composition behavior