Skip to content

Conversation

@jermy-c
Copy link
Collaborator

@jermy-c jermy-c commented Dec 18, 2025

  • Moved Node.js into ViewModel
  • Redirect C++ std::out and std::out logs to the frontend in Coroutines for debugging errors with SMTP or IMAP
  • The C++ Libraries are now loaded in Coroutine also but it is always loaded before running C++ code.
  • The Android compileSDK and targetSDK had to be upgraded because androidx.core:core-ktx:1.17.0 would not work
  • Build scripts are updated to download libnode and also update the package name and also the directory structure to match the package name
  • The Logger Class logs to the frontend if available but always logs to Logcat
  • This should replace Android: Run Node.js based on native App lifecycle #900
  • A build from this PR: https://github.com/mustang-im/mustang/releases/download/v0.9.9-dev/Mustang-0.9.9-dev.apk

@jermy-c jermy-c requested a review from benbucksch December 18, 2025 22:44
@jermy-c jermy-c self-assigned this Dec 18, 2025
@benbucksch
Copy link
Collaborator

I don't know where the kotlin and C++ code comes from?

exit 0
fi

DOWNLOAD_URL="https://github.com/mustang-im/nodejs-mobile/releases/download/v22.9.0/nodejs-mobile-v22.9.0-android.zip"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In general, downloading binary blobs is uncool and dangerous. It will get is thrown out of F-Droid (or rejected from), for instance.
It's also against reproducible builds.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Idea: Put the libs into an npm release.
Then, get them from node_modules/...
Still a binary module, but at least using the normal package installer dependency system, not just fetching it via https.


// Task 4: Update C++ Files
async function updateCppFiles() {
const OLD_JNI_PREFIX = "im/mustang/capa";
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does that make any difference which package name the code has?
Can we just leave it as-is?
Does a user see the difference?

I understand that stack traces would be different, but that's rather a disadvantage that an advantage.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this can be removed we're no longer calling any method from Java.

@jermy-c jermy-c marked this pull request as draft December 19, 2025 18:33
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.

3 participants