From 533d54be82a16fd9cf7ad28d86e6af7eabbb3119 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Sat, 16 May 2026 18:59:21 +0300 Subject: [PATCH] Improvements to android multiplayer --- android-project/app/build.gradle | 3 + .../app/src/main/AndroidManifest.xml | 2 + .../InfiniPaintNetworkService.java | 4 +- .../res/drawable/logo_foreground_tiny.xml | 20 ++++++ conanfile.py | 4 +- include/Helpers/Networking/NetLibrary.cpp | 5 +- logo_foreground_tiny.svg | 66 +++++++++++++++++++ 7 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 android-project/app/src/main/res/drawable/logo_foreground_tiny.xml create mode 100644 logo_foreground_tiny.svg diff --git a/android-project/app/build.gradle b/android-project/app/build.gradle index e9adba0..2f8e902 100644 --- a/android-project/app/build.gradle +++ b/android-project/app/build.gradle @@ -38,6 +38,7 @@ android { versionName "1.0" externalNativeBuild { cmake { + cppFlags "-fexceptions", "-frtti" arguments "-DANDROID_PLATFORM=android-21", "-DANDROID_STL=c++_shared", "-DCMAKE_TOOLCHAIN_FILE=conan_android_toolchain.cmake", "-DGRAPHICS_BACKEND=OpenGLES3.0" // abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' abiFilters 'arm64-v8a', 'x86_64' @@ -51,6 +52,7 @@ android { proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' externalNativeBuild { cmake { + cppFlags "-fexceptions", "-frtti" arguments "-DCMAKE_BUILD_TYPE=Release" } } @@ -62,6 +64,7 @@ android { debuggable true externalNativeBuild { cmake { + cppFlags "-fexceptions", "-frtti" arguments "-DCMAKE_BUILD_TYPE=Debug" } } diff --git a/android-project/app/src/main/AndroidManifest.xml b/android-project/app/src/main/AndroidManifest.xml index 7f52343..7a0e539 100644 --- a/android-project/app/src/main/AndroidManifest.xml +++ b/android-project/app/src/main/AndroidManifest.xml @@ -51,6 +51,8 @@ + + diff --git a/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaintNetworkService.java b/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaintNetworkService.java index fd9cb20..38973d3 100644 --- a/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaintNetworkService.java +++ b/android-project/app/src/main/java/com/erroratline0/infinipaint/InfiniPaintNetworkService.java @@ -44,8 +44,8 @@ public class InfiniPaintNetworkService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { Notification notification = new Notification.Builder(this, CHANNEL_ID) - .setContentTitle("Online canvas") - .setContentText("Currently online") + .setContentTitle("Currently online") + .setSmallIcon(R.drawable.logo_foreground_tiny) .build(); startForeground(1, notification); networkServiceStarted(); diff --git a/android-project/app/src/main/res/drawable/logo_foreground_tiny.xml b/android-project/app/src/main/res/drawable/logo_foreground_tiny.xml new file mode 100644 index 0000000..28a6bb0 --- /dev/null +++ b/android-project/app/src/main/res/drawable/logo_foreground_tiny.xml @@ -0,0 +1,20 @@ + + + + diff --git a/conanfile.py b/conanfile.py index 2f0b783..3c512ca 100644 --- a/conanfile.py +++ b/conanfile.py @@ -115,8 +115,8 @@ class CompressorRecipe(ConanFile): self.requires("onetbb/2022.0.0") if self.settings.os != "Emscripten": - self.requires("libdatachannel/0.23.2") - self.requires("libcurl/8.17.0") + self.requires("libdatachannel/0.24.0") + self.requires("libcurl/8.20.0") self.requires("zstd/1.5.7") self.requires("icu-infinipaint/77.1") diff --git a/include/Helpers/Networking/NetLibrary.cpp b/include/Helpers/Networking/NetLibrary.cpp index 480293f..359d693 100644 --- a/include/Helpers/Networking/NetLibrary.cpp +++ b/include/Helpers/Networking/NetLibrary.cpp @@ -106,9 +106,8 @@ void NetLibrary::init_config(const std::filesystem::path& p2pConfigPath) { void NetLibrary::init_websocket() { if(alreadyInitialized) return; - // Not sure why, but TLS verification fails on mac - // Should be fixed later, but for now this is fine, as the signaling server doesn't have - // critical information + // TLS verification fails on mac and android due to incorrect cert location + // Should be fixed later #if defined(__APPLE__) || defined(__ANDROID__) rtc::WebSocket::Configuration wsConfig; wsConfig.disableTlsVerification = true; diff --git a/logo_foreground_tiny.svg b/logo_foreground_tiny.svg new file mode 100644 index 0000000..8608c65 --- /dev/null +++ b/logo_foreground_tiny.svg @@ -0,0 +1,66 @@ + + + + + + + + + + +