Bug Fixes
- Hardware Call/End key intermittently unresponsive — the toolbar button callback singleton could be nulled out by the wrong activity mid-transition between MainActivity and InCallActivity. Callbacks are now tracked by reference identity so activities never clobber each other's registration.
- Duplicate dialer instance / phantom missed-call notifications — several
startActivitycalls that bring the app back to front across the in-call task boundary were missingFLAG_ACTIVITY_NEW_TASK, which Android silently requires forFLAG_ACTIVITY_REORDER_TO_FRONTto work at all. - Missed-call badge never cleared — badge state now reads
IS_READ/NEWfrom the call log directly and is no longer gated on which tab is currently active.
Features
- Korean localization added — 13 languages total.
- External keyboard call-button bridge on by default for hardware keyboard cases (e.g. Q25); settings copy shortened.
UI Polish
- Reworked in-call dial pad sizing/spacing on both Classic and Pixel themes.
- Enlarged touch targets for call/message icons in Favorites and Contacts rows.
- Removed contact label and resized the number pill on the in-call keypad.
Technical
- Fixed a pre-existing unit test failure (missing Robolectric runner) so the JVM test suite passes cleanly.
versionCode19 → 20,versionName3.0.3 → 3.1.0.