Skip to content

Releases: awcjack/DualQuickIME

DualQuickIME v1.8.3

14 May 09:36
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

DualQuickIME v1.8.2

06 May 02:02
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

What's Changed

DualQuickIME v1.8.1

18 Apr 02:50
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

18 Apr 01:01
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 loadTheme or buildKeyboard throws, with the failure logged for diagnosis

DualQuickIME v1.7.1

09 Apr 00:39
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Changed

  • Gboard-Style Symbol Keyboard: Rearranged number/symbol keyboard to match Gboard layout
    • Page 1: @ # $ % & - + ( ) and * " ' : ; ! ?
    • Page 2: ~ \ | • √ π ÷ × ¶ ∆and£ ¢ € ¥ ^ ° = { }`
  • 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

07 Apr 22:59
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

07 Apr 12:52
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

07 Apr 04:04
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

07 Apr 02:12
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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

06 Apr 15:53
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

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 displayOffset and lastDisplayedCount for dynamic pagination
  • KeyboardView.setCandidates() measures text width and returns count displayed
  • Associated phrases mode uses offset-based pagination matching composition behavior