Improvements to android multiplayer

This commit is contained in:
Yousef Khadadeh 2026-05-16 18:59:21 +03:00
parent 10079768de
commit 533d54be82
7 changed files with 97 additions and 7 deletions

View file

@ -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"
}
}

View file

@ -51,6 +51,8 @@
<!-- <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> -->
<!-- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> -->
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<!-- Allow access to the vibrator -->
<uses-permission android:name="android.permission.VIBRATE" />

View file

@ -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();

View file

@ -0,0 +1,20 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="128dp"
android:height="128dp"
android:viewportWidth="33.867"
android:viewportHeight="33.867">
<path
android:pathData="M31.452,2.344C35.081,5.973 16.332,24.722 16.332,24.722L11.493,19.884c0,0 16.33,-21.169 19.959,-17.54z"
android:strokeLineJoin="round"
android:strokeWidth="3.50476"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
<path
android:pathData="m7.259,24.117 l4.839,4.839c0,0 -0.76,1.21 -2.419,2.419 -1.66,1.21 -7.258,0 -7.258,0z"
android:strokeLineJoin="round"
android:strokeWidth="3.50476"
android:fillColor="#00000000"
android:strokeColor="#ffffff"
android:strokeLineCap="round"/>
</vector>

View file

@ -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")

View file

@ -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;

66
logo_foreground_tiny.svg Normal file
View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="128.00002"
height="127.99999"
viewBox="0 0 33.866671 33.866665"
version="1.1"
id="svg1"
inkscape:version="1.4.3 (0d15f75042, 2025-12-25)"
sodipodi:docname="logo_foreground_tiny.svg"
inkscape:export-filename="android-project/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png"
inkscape:export-xdpi="144"
inkscape:export-ydpi="144"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="currentColor"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
inkscape:zoom="8.0000002"
inkscape:cx="36.749999"
inkscape:cy="62.624998"
inkscape:window-width="3440"
inkscape:window-height="1354"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg1"
showgrid="true">
<inkscape:grid
id="grid2"
units="px"
originx="0"
originy="0"
spacingx="1.0583333"
spacingy="1.0583333"
empcolor="#0099e5"
empopacity="0.30196078"
color="#0099e5"
opacity="0.14901961"
empspacing="5"
enabled="true"
visible="true" />
</sodipodi:namedview>
<defs
id="defs1" />
<path
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3.50476;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="M 31.452255,2.3437089 C 35.081203,5.9726557 16.331646,24.722211 16.331646,24.722211 L 11.49305,19.883616 c 0,0 16.330259,-21.1688536 19.959205,-17.5399071 z"
id="path3"
sodipodi:nodetypes="sccs" />
<path
style="opacity:1;fill:none;fill-opacity:1;stroke:#ffffff;stroke-width:3.50476;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
d="m 7.2592811,24.117385 4.8385949,4.838596 c 0,0 -0.759733,1.209649 -2.4192978,2.419297 -1.6595646,1.209649 -7.2578922,0 -7.2578922,0 z"
id="path4"
sodipodi:nodetypes="ccscc" />
</svg>

After

Width:  |  Height:  |  Size: 2.4 KiB