Skip to content

Add direct ROM launch support for ES-DE/Beacon launchers and build CI…#1098

Closed
sweatyeggs69 wants to merge 3 commits intoSwordfish90:masterfrom
sweatyeggs69:claude/android-rom-launcher-support-JLyeM
Closed

Add direct ROM launch support for ES-DE/Beacon launchers and build CI…#1098
sweatyeggs69 wants to merge 3 commits intoSwordfish90:masterfrom
sweatyeggs69:claude/android-rom-launcher-support-JLyeM

Conversation

@sweatyeggs69
Copy link
Copy Markdown

… workflow

  • Register ExternalGameLauncherActivity for content:// and file:// URI schemes so external launchers (ES-DE, Beacon) can launch ROMs directly by file path
  • Update ExternalGameLauncherActivity to resolve ROMs from the library by exact URI match with filename fallback when scheme differs (e.g. indexer uses content:// but launcher sends file://)
  • Add GameDao.selectByFileName() query to support the filename fallback lookup
  • Add .github/workflows/build.yml that builds a debug APK on every push to master or claude/** branches and on pull requests, uploading the APK as an artifact

https://claude.ai/code/session_0172bQeaHQRzBXzAbhkpSoxw

claude added 3 commits March 25, 2026 00:35
… workflow

- Register ExternalGameLauncherActivity for content:// and file:// URI schemes
  so external launchers (ES-DE, Beacon) can launch ROMs directly by file path
- Update ExternalGameLauncherActivity to resolve ROMs from the library by exact
  URI match with filename fallback when scheme differs (e.g. indexer uses
  content:// but launcher sends file://)
- Add GameDao.selectByFileName() query to support the filename fallback lookup
- Add .github/workflows/build.yml that builds a debug APK on every push to
  master or claude/** branches and on pull requests, uploading the APK as an
  artifact

https://claude.ai/code/session_0172bQeaHQRzBXzAbhkpSoxw
The previous workflow used `assembleFreeDebug` which is not a valid Gradle
task because the project has two flavor dimensions (opensource + cores).
The correct task for a self-contained release APK is `assembleFreeBundleRelease`.

Changes:
- Use assembleFreeBundleRelease (free + bundled cores + release build type)
- Generate a release.jks at CI time using the hardcoded credentials already
  present in build.gradle.kts, with fallback to RELEASE_KEYSTORE secret when
  available so the official key can be used if set up
- Fix the APK output path to match the freeBundle/release variant
- Extend artifact retention to 30 days

https://claude.ai/code/session_0172bQeaHQRzBXzAbhkpSoxw
- Switch from assembleFreeBundleRelease to assembleFreeDynamicRelease: the
  bundle variant requires the lemuroid-cores submodule to be fully populated
  with compiled .so files, which are absent in CI. The dynamic variant (used
  by publish.yml) downloads cores at runtime and has no such requirement.
- Update APK artifact path to match freeDynamic/release output.
- Remove redundant substringAfterLast('/') on uri.lastPathSegment which
  already returns only the final path segment.
- Use an explicit val resolvedGame to eliminate the nullable var smart-cast
  ambiguity when calling launchGame(Game).

https://claude.ai/code/session_0172bQeaHQRzBXzAbhkpSoxw
@sweatyeggs69 sweatyeggs69 closed this by deleting the head repository Mar 25, 2026
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.

2 participants