Phase 1 foundations - #2939
Phase 1 foundations#2939ShashiDao wants to merge 73 commits into
Conversation
docs: sub-phase the roadmap, easy to tough
…affold (workflow-scope blocked, see staged file header)
…scaffold-android-workflow.yml)
This workflow scaffolds the Android platform by checking out the repository, setting up dependencies, generating the Android platform, and applying necessary overrides and configurations. It also commits changes and opens a pull request for review.
Updated the intent-filter format for better readability and maintainability in the AndroidManifest.xml.
…its the acronym+plural into "PN"+"Gs" and flags "PN" as a misspelling of "ON", failing CI spell-check
Phase 0.2: native Android scaffold
Verified locally: config.js -> rspack -> `npx cap sync android` all run clean against the merged android/ scaffold (20 Cordova plugins bridged automatically, boot.js lands in assets/public). Only `cordova build` itself was still wired to the removed Cordova platform model. fdroid proot/iap `cordova plugin add/remove` calls left as-is for now — they're currently no-ops under Capacitor (it reads plugins from package.json/node_modules, not the `plugins/` cache dir cordova CLI still writes to). Flagging as a follow-up, not fixing here.
chore: verify android-build CI (throwaway)
Added CI badge to README for build status visibility.
* Fix permission issue for gradlew in CI workflow
* fix(android): resolve FileProvider manifest merge conflict with ported Cordova plugin
capacitor-cordova-android-plugins (generated by `cap sync` from the 20
bridged plugins) brings in a second FileProvider declaration under the
old Acode identity (authorities=com.foxdebug.provider,
resource=@xml/file_provider) that collides with Bract's own
(${applicationId}.fileprovider, @xml/file_paths). Manifest merger
can't auto-resolve two different values for the same attribute, so
add the tools:replace overrides Gradle itself suggests in the error
log, keeping Bract's own FileProvider identity (ADR-011) authoritative.
…e Maverick/BouncyCastle classes compile under Capacitor.
|
| <item name="colorPrimary">@color/colorPrimary</item> | ||
| <item name="colorPrimaryDark">@color/colorPrimaryDark</item> | ||
| <item name="colorAccent">@color/colorAccent</item> |
There was a problem hiding this comment.
The new theme references colorPrimary, colorPrimaryDark, and colorAccent, but the checked-in Android resources define none of them. If no dependency supplies all three colors, Android resource linking will fail and the Gradle build cannot produce an APK. Define these colors in the app’s resources.
| - name: Sync Capacitor | ||
| if: steps.android-check.outputs.exists == 'true' | ||
| run: npx cap sync android |
There was a problem hiding this comment.
On a clean CI checkout, www/build/boot.js is absent because it is generated by Rspack and ignored by Git. This job syncs www without building it first, so Gradle can produce an APK whose index.html requests a missing script. The app then cannot start. Build the web assets before syncing them.
| if [ "$packageType" = "bundle" ]; then | ||
| gradleTask="bundle" | ||
| else | ||
| gradleTask="assemble" | ||
| fi |
There was a problem hiding this comment.
Bundle option changes artifact type
When someone selects bundle, this script now runs an app-bundle task on an Android application module. That produces an AAB instead of the AAR library the option still promises, so callers expecting a library will not receive one. Preserve the AAR build path or rename and document this option as an app bundle.
| // Context of the app under test. | ||
| Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); | ||
|
|
||
| assertEquals("com.getcapacitor.app", appContext.getPackageName()); |
There was a problem hiding this comment.
Instrumented test expects wrong package
This test expects com.getcapacitor.app, but the app’s application ID is io.github.shashidao.bract. Running the Android instrumented tests will fail this assertion even when the installed app is correct, making the test unusable until the expectation is updated.
| assertEquals("com.getcapacitor.app", appContext.getPackageName()); | |
| assertEquals("io.github.shashidao.bract", appContext.getPackageName()); |
UnschooledGamer
left a comment
There was a problem hiding this comment.
Rejected, Discuss before opening a Pull Request for such things, Especially when it's AI-Generated PRs wasting the Maintainers time with low quality PRs and the time that can be used for the Community.
This will be your second warning, if the third one happens to be similar to these 2 PRs, You'll be restricted from the Organization.
|
Oh my god it was actually a mistake i was planned to open pr on my repo branch where I'm forking and due to I'm working inside phone it happened to miss clicked. Sorry mate. |
No description provided.