Skip to content

Fix the crash on any key before Android 12; lint stops on newer APIs - #187

Merged
easonxiang merged 1 commit into
mainfrom
fix-media-key-api23
Oct 4, 2026
Merged

easonxiang merged 1 commit into
mainfrom
fix-media-key-api23

Conversation

@easonxiang

Copy link
Copy Markdown
Contributor

Urgent fix for 1.4.0. KeyEvent.isMediaSessionKey (added by the screen saver) only exists from API 31, so on Android 6–11 every key press crashes CastBay. This was reproduced on a Xiaomi TV running Android 6, and dropbox shows NoSuchMethodError.

  • MainActivity: media keys come from an explicit set instead.
  • ChangelogScreen: Configuration.locales (API 24) is replaced with ConfigurationCompat.getLocales.
  • Lint: NewApi is now fatal, and PR CI runs :app:lintVitalRelease. I checked that it fails on the old code.

Tested on the Xiaomi TV (Android 6): key presses no longer crash. The crash report was then sent through the cast.weenas.com relay (CB-JP2RHT).

🤖 Generated with Claude Code

1.4.0's screen saver told media keys apart with
KeyEvent.isMediaSessionKey, which is Android 12+ (API 31): on Android
6 to 11 every key press crashed CastBay (seen on a Xiaomi TV, Android
6). The media keys are now listed in the app. What's New also read the
language with Configuration.locales (Android 7+); it now uses
ConfigurationCompat.

Lint's NewApi check reported both, but nothing ran it: it is now
fatal, and CI runs lintVitalRelease (as release builds already do),
so a call above minSdk stops the build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@easonxiang
easonxiang merged commit bed5aa7 into main Oct 4, 2026
6 checks passed
@easonxiang
easonxiang deleted the fix-media-key-api23 branch October 4, 2026 07:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant