diff --git a/.github/workflows/tauri.yml b/.github/workflows/tauri.yml index 7fb6fe7..ecb4465 100644 --- a/.github/workflows/tauri.yml +++ b/.github/workflows/tauri.yml @@ -57,21 +57,21 @@ jobs: echo "${Env:TAURI_VERSION}" shell: pwsh - name: Move msi - run: Move-Item "src-tauri\target\release\bundle\msi\Cinny_${{ env.TAURI_VERSION }}_x64_en-US.msi" "src-tauri\target\release\bundle\msi\Cinny_desktop-x86_64.msi" + run: Move-Item "src-tauri\target\release\bundle\msi\Paarrot_${{ env.TAURI_VERSION }}_x64_en-US.msi" "src-tauri\target\release\bundle\msi\Paarrot_desktop-x86_64.msi" shell: pwsh - name: Move msi.zip - run: Move-Item "src-tauri\target\release\bundle\msi\Cinny_${{ env.TAURI_VERSION }}_x64_en-US.msi.zip" "src-tauri\target\release\bundle\msi\Cinny_desktop-x86_64.msi.zip" + run: Move-Item "src-tauri\target\release\bundle\msi\Paarrot_${{ env.TAURI_VERSION }}_x64_en-US.msi.zip" "src-tauri\target\release\bundle\msi\Paarrot_desktop-x86_64.msi.zip" shell: pwsh - name: Move msi.zip.sig - run: Move-Item "src-tauri\target\release\bundle\msi\Cinny_${{ env.TAURI_VERSION }}_x64_en-US.msi.zip.sig" "src-tauri\target\release\bundle\msi\Cinny_desktop-x86_64.msi.zip.sig" + run: Move-Item "src-tauri\target\release\bundle\msi\Paarrot_${{ env.TAURI_VERSION }}_x64_en-US.msi.zip.sig" "src-tauri\target\release\bundle\msi\Paarrot_desktop-x86_64.msi.zip.sig" shell: pwsh - name: Upload tagged release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 with: files: | - src-tauri/target/release/bundle/msi/Cinny_desktop-x86_64.msi - src-tauri/target/release/bundle/msi/Cinny_desktop-x86_64.msi.zip - src-tauri/target/release/bundle/msi/Cinny_desktop-x86_64.msi.zip.sig + src-tauri/target/release/bundle/msi/Paarrot_desktop-x86_64.msi + src-tauri/target/release/bundle/msi/Paarrot_desktop-x86_64.msi.zip + src-tauri/target/release/bundle/msi/Paarrot_desktop-x86_64.msi.zip.sig # Linux-x86_64 linux-x86_64: @@ -125,21 +125,21 @@ jobs: id: vars run: echo "tag=$(jq .package.version src-tauri/tauri.conf.json | tr -d '"')" >> $GITHUB_OUTPUT - name: Move deb - run: mv "src-tauri/target/release/bundle/deb/cinny_${{ steps.vars.outputs.tag }}_amd64.deb" "src-tauri/target/release/bundle/deb/Cinny_desktop-x86_64.deb" + run: mv "src-tauri/target/release/bundle/deb/Paarrot_${{ steps.vars.outputs.tag }}_amd64.deb" "src-tauri/target/release/bundle/deb/Paarrot_desktop-x86_64.deb" - name: Move AppImage - run: mv "src-tauri/target/release/bundle/appimage/cinny_${{ steps.vars.outputs.tag }}_amd64.AppImage" "src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage" + run: mv "src-tauri/target/release/bundle/appimage/Paarrot_${{ steps.vars.outputs.tag }}_amd64.AppImage" "src-tauri/target/release/bundle/appimage/Paarrot_desktop-x86_64.AppImage" - name: Move AppImage.tar.gz - run: mv "src-tauri/target/release/bundle/appimage/cinny_${{ steps.vars.outputs.tag }}_amd64.AppImage.tar.gz" "src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz" + run: mv "src-tauri/target/release/bundle/appimage/Paarrot_${{ steps.vars.outputs.tag }}_amd64.AppImage.tar.gz" "src-tauri/target/release/bundle/appimage/Paarrot_desktop-x86_64.AppImage.tar.gz" - name: Move AppImage.tar.gz.sig - run: mv "src-tauri/target/release/bundle/appimage/cinny_${{ steps.vars.outputs.tag }}_amd64.AppImage.tar.gz.sig" "src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz.sig" + run: mv "src-tauri/target/release/bundle/appimage/Paarrot_${{ steps.vars.outputs.tag }}_amd64.AppImage.tar.gz.sig" "src-tauri/target/release/bundle/appimage/Paarrot_desktop-x86_64.AppImage.tar.gz.sig" - name: Upload tagged release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 with: files: | - src-tauri/target/release/bundle/deb/Cinny_desktop-x86_64.deb - src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage - src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz - src-tauri/target/release/bundle/appimage/Cinny_desktop-x86_64.AppImage.tar.gz.sig + src-tauri/target/release/bundle/deb/Paarrot_desktop-x86_64.deb + src-tauri/target/release/bundle/appimage/Paarrot_desktop-x86_64.AppImage + src-tauri/target/release/bundle/appimage/Paarrot_desktop-x86_64.AppImage.tar.gz + src-tauri/target/release/bundle/appimage/Paarrot_desktop-x86_64.AppImage.tar.gz.sig # macos-universal macos-universal: @@ -190,18 +190,18 @@ jobs: id: vars run: echo "tag=$(jq .package.version src-tauri/tauri.conf.json | tr -d '"')" >> $GITHUB_OUTPUT - name: Move dmg - run: mv "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Cinny_${{ steps.vars.outputs.tag }}_universal.dmg" "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Cinny_desktop-universal.dmg" + run: mv "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Paarrot_${{ steps.vars.outputs.tag }}_universal.dmg" "src-tauri/target/universal-apple-darwin/release/bundle/dmg/Paarrot_desktop-universal.dmg" - name: Move app.tar.gz - run: mv "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny.app.tar.gz" "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz" + run: mv "src-tauri/target/universal-apple-darwin/release/bundle/macos/Paarrot.app.tar.gz" "src-tauri/target/universal-apple-darwin/release/bundle/macos/Paarrot_desktop-universal.app.tar.gz" - name: Move app.tar.gz.sig - run: mv "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny.app.tar.gz.sig" "src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz.sig" + run: mv "src-tauri/target/universal-apple-darwin/release/bundle/macos/Paarrot.app.tar.gz.sig" "src-tauri/target/universal-apple-darwin/release/bundle/macos/Paarrot_desktop-universal.app.tar.gz.sig" - name: Upload tagged release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 with: files: | - src-tauri/target/universal-apple-darwin/release/bundle/dmg/Cinny_desktop-universal.dmg - src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz - src-tauri/target/universal-apple-darwin/release/bundle/macos/Cinny_desktop-universal.app.tar.gz.sig + src-tauri/target/universal-apple-darwin/release/bundle/dmg/Paarrot_desktop-universal.dmg + src-tauri/target/universal-apple-darwin/release/bundle/macos/Paarrot_desktop-universal.app.tar.gz + src-tauri/target/universal-apple-darwin/release/bundle/macos/Paarrot_desktop-universal.app.tar.gz.sig # Android ARM64 android-arm64: @@ -266,12 +266,12 @@ jobs: id: vars run: echo "tag=$(jq .package.version src-tauri/tauri.conf.json | tr -d '"')" >> $GITHUB_OUTPUT - name: Move APK - run: mv "src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk" "src-tauri/gen/android/app/build/outputs/apk/universal/release/Cinny_desktop-arm64.apk" || true + run: mv "src-tauri/gen/android/app/build/outputs/apk/universal/release/app-universal-release-unsigned.apk" "src-tauri/gen/android/app/build/outputs/apk/universal/release/Paarrot_desktop-arm64.apk" || true - name: Upload tagged release uses: softprops/action-gh-release@6cbd405e2c4e67a21c47fa9e383d020e4e28b836 with: files: | - src-tauri/gen/android/app/build/outputs/apk/universal/release/Cinny_desktop-arm64.apk + src-tauri/gen/android/app/build/outputs/apk/universal/release/Paarrot_desktop-arm64.apk # Upload release.json release-update: diff --git a/appicon-square.png b/appicon-square.png new file mode 100644 index 0000000..6595e24 Binary files /dev/null and b/appicon-square.png differ diff --git a/appicon.png b/appicon.png new file mode 100644 index 0000000..a6b01fa Binary files /dev/null and b/appicon.png differ diff --git a/cinny b/cinny index 0cfc6cb..7b97d19 160000 --- a/cinny +++ b/cinny @@ -1 +1 @@ -Subproject commit 0cfc6cb0ab560fe8796b39512ef7c7ffddd4a24d +Subproject commit 7b97d19e48929c340bfbf74be8c3b1af8fe29862 diff --git a/package-lock.json b/package-lock.json index bc38d2e..1468b7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ "devDependencies": { "@actions/github": "6.0.0", "@tauri-apps/cli": "^2.0.0", - "node-fetch": "3.3.2" + "node-fetch": "3.3.2", + "sharp": "0.34.5" }, "engines": { "node": ">=18.0.0" @@ -42,6 +43,17 @@ "undici": "^5.25.4" } }, + "node_modules/@emnapi/runtime": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.8.1.tgz", + "integrity": "sha512-mehfKSMWjjNol8659Z8KxEMrdSJDDot5SXMq00dM8BN4o+CLNXQ0xH2V7EchNHV4RmbZLmmPdEaXZc5H2FXmDg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@fastify/busboy": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", @@ -51,6 +63,496 @@ "node": ">=14" } }, + "node_modules/@img/colour": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@img/colour/-/colour-1.0.0.tgz", + "integrity": "sha512-A5P/LfWGFSl6nsckYtjw9da+19jB8hkJ6ACTGcDfEJ0aE+l2n2El7dsVM7UVHZQ9s2lmYMWlrS21YLy2IR1LUw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.5.tgz", + "integrity": "sha512-imtQ3WMJXbMY4fxb/Ndp6HBTNVtWCUI0WdobyheGf5+ad6xX8VIDO8u2xE4qc/fr08CKG/7dDseFtn6M6g/r3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.5.tgz", + "integrity": "sha512-YNEFAF/4KQ/PeW0N+r+aVVsoIY0/qxxikF2SWdp+NRkmMB7y9LBZAVqQ4yhGCm/H3H270OSykqmQMKLBhBJDEw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.2.4.tgz", + "integrity": "sha512-zqjjo7RatFfFoP0MkQ51jfuFZBnVE2pRiaydKJ1G/rHZvnsrHAOcQALIi9sA5co5xenQdTugCvtb1cuf78Vf4g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.2.4.tgz", + "integrity": "sha512-1IOd5xfVhlGwX+zXv2N93k0yMONvUlANylbJw1eTah8K/Jtpi15KC+WSiaX/nBmbm2HxRM1gZ0nSdjSsrZbGKg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.2.4.tgz", + "integrity": "sha512-bFI7xcKFELdiNCVov8e44Ia4u2byA+l3XtsAj+Q8tfCwO6BQ8iDojYdvoPMqsKDkuoOo+X6HZA0s0q11ANMQ8A==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.2.4.tgz", + "integrity": "sha512-excjX8DfsIcJ10x1Kzr4RcWe1edC9PquDRRPx3YVCvQv+U5p7Yin2s32ftzikXojb1PIFc/9Mt28/y+iRklkrw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-ppc64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.2.4.tgz", + "integrity": "sha512-FMuvGijLDYG6lW+b/UvyilUWu5Ayu+3r2d1S8notiGCIyYU/76eig1UfMmkZ7vwgOrzKzlQbFSuQfgm7GYUPpA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-riscv64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-riscv64/-/sharp-libvips-linux-riscv64-1.2.4.tgz", + "integrity": "sha512-oVDbcR4zUC0ce82teubSm+x6ETixtKZBh/qbREIOcI3cULzDyb18Sr/Wcyx7NRQeQzOiHTNbZFF1UwPS2scyGA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.2.4.tgz", + "integrity": "sha512-qmp9VrzgPgMoGZyPvrQHqk02uyjA0/QrTO26Tqk6l4ZV0MPWIW6LTkqOIov+J1yEu7MbFQaDpwdwJKhbJvuRxQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.2.4.tgz", + "integrity": "sha512-tJxiiLsmHc9Ax1bz3oaOYBURTXGIRDODBqhveVHonrHJ9/+k89qbLl0bcJns+e4t4rvaNBxaEZsFtSfAdquPrw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.2.4.tgz", + "integrity": "sha512-FVQHuwx1IIuNow9QAbYUzJ+En8KcVm9Lk5+uGUQJHaZmMECZmOlix9HnH7n1TRkXMS0pGxIJokIVB9SuqZGGXw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.2.4.tgz", + "integrity": "sha512-+LpyBk7L44ZIXwz/VYfglaX/okxezESc6UxDSoyo2Ks6Jxc4Y7sGjpgU9s4PMgqgjj1gZCylTieNamqA1MF7Dg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.5.tgz", + "integrity": "sha512-9dLqsvwtg1uuXBGZKsxem9595+ujv0sJ6Vi8wcTANSFpwV/GONat5eCkzQo/1O6zRIkh0m/8+5BjrRr7jDUSZw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.5.tgz", + "integrity": "sha512-bKQzaJRY/bkPOXyKx5EVup7qkaojECG6NLYswgktOZjaXecSAeCWiZwwiFf3/Y+O1HrauiE3FVsGxFg8c24rZg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-ppc64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-ppc64/-/sharp-linux-ppc64-0.34.5.tgz", + "integrity": "sha512-7zznwNaqW6YtsfrGGDA6BRkISKAAE1Jo0QdpNYXNMHu2+0dTrPflTLNkpc8l7MUP5M16ZJcUvysVWWrMefZquA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-ppc64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-riscv64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-riscv64/-/sharp-linux-riscv64-0.34.5.tgz", + "integrity": "sha512-51gJuLPTKa7piYPaVs8GmByo7/U7/7TZOq+cnXJIHZKavIRHAP77e3N2HEl3dgiqdD/w0yUfiJnII77PuDDFdw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-riscv64": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.5.tgz", + "integrity": "sha512-nQtCk0PdKfho3eC5MrbQoigJ2gd1CgddUMkabUj+rBevs8tZ2cULOx46E7oyX+04WGfABgIwmMC0VqieTiR4jg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.2.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.5.tgz", + "integrity": "sha512-MEzd8HPKxVxVenwAa+JRPwEC7QFjoPWuS5NZnBt6B3pu7EG2Ge0id1oLHZpPJdn3OQK+BQDiw9zStiHBTJQQQQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.5.tgz", + "integrity": "sha512-fprJR6GtRsMt6Kyfq44IsChVZeGN97gTD331weR1ex1c1rypDEABN6Tm2xa1wE6lYb5DdEnk03NZPqA7Id21yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.5.tgz", + "integrity": "sha512-Jg8wNT1MUzIvhBFxViqrEhWDGzqymo3sV7z7ZsaWbZNDLXRJZoRGrjulp60YYtV4wfY8VIKcWidjojlLcWrd8Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.2.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.5.tgz", + "integrity": "sha512-OdWTEiVkY2PHwqkbBI8frFxQQFekHaSSkUIJkwzclWZe64O1X4UlUjqqqLaPbUpMOQk6FBu/HtlGXNblIs0huw==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.7.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-arm64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-arm64/-/sharp-win32-arm64-0.34.5.tgz", + "integrity": "sha512-WQ3AgWCWYSb2yt+IG8mnC6Jdk9Whs7O0gxphblsLvdhSpSTtmu69ZG1Gkb6NuvxsNACwiPV6cNSZNzt0KPsw7g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.5.tgz", + "integrity": "sha512-FV9m/7NmeCmSHDD5j4+4pNI8Cp3aW+JvLoXcTUo0IqyjSfAZJ8dIUmijx1qaJsIiU+Hosw6xM5KijAWRJCSgNg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.5.tgz", + "integrity": "sha512-+29YMsqY2/9eFEiW93eqWnuLcWcufowXewwSNIT6UwZdUUCrM3oFjMWH/Z6/TMmb4hlFenmfAVbpWeup2jryCw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@octokit/auth-token": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-4.0.0.tgz", @@ -429,6 +931,16 @@ "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "dev": true }, + "node_modules/detect-libc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=8" + } + }, "node_modules/fetch-blob": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/fetch-blob/-/fetch-blob-3.2.0.tgz", @@ -519,6 +1031,72 @@ "wrappy": "1" } }, + "node_modules/semver": { + "version": "7.7.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sharp": { + "version": "0.34.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.5.tgz", + "integrity": "sha512-Ou9I5Ft9WNcCbXrU9cMgPBcCK8LiwLqcbywW3t4oDV37n1pzpuNLsYiAV8eODnjbtQlSDwZ2cUEeQz4E54Hltg==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "dependencies": { + "@img/colour": "^1.0.0", + "detect-libc": "^2.1.2", + "semver": "^7.7.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.34.5", + "@img/sharp-darwin-x64": "0.34.5", + "@img/sharp-libvips-darwin-arm64": "1.2.4", + "@img/sharp-libvips-darwin-x64": "1.2.4", + "@img/sharp-libvips-linux-arm": "1.2.4", + "@img/sharp-libvips-linux-arm64": "1.2.4", + "@img/sharp-libvips-linux-ppc64": "1.2.4", + "@img/sharp-libvips-linux-riscv64": "1.2.4", + "@img/sharp-libvips-linux-s390x": "1.2.4", + "@img/sharp-libvips-linux-x64": "1.2.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.2.4", + "@img/sharp-libvips-linuxmusl-x64": "1.2.4", + "@img/sharp-linux-arm": "0.34.5", + "@img/sharp-linux-arm64": "0.34.5", + "@img/sharp-linux-ppc64": "0.34.5", + "@img/sharp-linux-riscv64": "0.34.5", + "@img/sharp-linux-s390x": "0.34.5", + "@img/sharp-linux-x64": "0.34.5", + "@img/sharp-linuxmusl-arm64": "0.34.5", + "@img/sharp-linuxmusl-x64": "0.34.5", + "@img/sharp-wasm32": "0.34.5", + "@img/sharp-win32-arm64": "0.34.5", + "@img/sharp-win32-ia32": "0.34.5", + "@img/sharp-win32-x64": "0.34.5" + } + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD", + "optional": true + }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", diff --git a/package.json b/package.json index 02c23a8..3328cce 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "cinny", + "name": "paarrot", "version": "4.10.2", "description": "Yet another matrix client", "main": "index.js", @@ -19,6 +19,7 @@ "devDependencies": { "@actions/github": "6.0.0", "@tauri-apps/cli": "^2.0.0", - "node-fetch": "3.3.2" + "node-fetch": "3.3.2", + "sharp": "0.34.5" } } diff --git a/scripts/generate-icons.mjs b/scripts/generate-icons.mjs new file mode 100644 index 0000000..cd56975 --- /dev/null +++ b/scripts/generate-icons.mjs @@ -0,0 +1,152 @@ +import sharp from 'sharp'; +import { promises as fs } from 'fs'; +import path from 'path'; +import { fileURLToPath } from 'url'; + +const __dirname = path.dirname(fileURLToPath(import.meta.url)); +const rootDir = path.resolve(__dirname, '..'); +const sourceIcon = path.join(rootDir, 'appicon-square.png'); + +// Tauri desktop icons +const tauriIcons = [ + { name: '32x32.png', size: 32 }, + { name: '128x128.png', size: 128 }, + { name: '128x128@2x.png', size: 256 }, + { name: 'icon.png', size: 512 }, + { name: 'Square30x30Logo.png', size: 30 }, + { name: 'Square44x44Logo.png', size: 44 }, + { name: 'Square71x71Logo.png', size: 71 }, + { name: 'Square89x89Logo.png', size: 89 }, + { name: 'Square107x107Logo.png', size: 107 }, + { name: 'Square142x142Logo.png', size: 142 }, + { name: 'Square150x150Logo.png', size: 150 }, + { name: 'Square284x284Logo.png', size: 284 }, + { name: 'Square310x310Logo.png', size: 310 }, + { name: 'StoreLogo.png', size: 50 }, +]; + +// Android mipmap sizes +const androidMipmaps = [ + { folder: 'mipmap-mdpi', size: 48 }, + { folder: 'mipmap-hdpi', size: 72 }, + { folder: 'mipmap-xhdpi', size: 96 }, + { folder: 'mipmap-xxhdpi', size: 144 }, + { folder: 'mipmap-xxxhdpi', size: 192 }, +]; + +// Android adaptive icon foreground sizes (with padding for safe zone) +const androidForegroundSizes = [ + { folder: 'mipmap-mdpi', size: 108 }, + { folder: 'mipmap-hdpi', size: 162 }, + { folder: 'mipmap-xhdpi', size: 216 }, + { folder: 'mipmap-xxhdpi', size: 324 }, + { folder: 'mipmap-xxxhdpi', size: 432 }, +]; + +async function generateTauriIcons() { + const iconsDir = path.join(rootDir, 'src-tauri', 'icons'); + + for (const icon of tauriIcons) { + const outputPath = path.join(iconsDir, icon.name); + await sharp(sourceIcon) + .resize(icon.size, icon.size) + .png() + .toFile(outputPath); + console.log(`Generated: ${icon.name}`); + } + + // Generate ICO file (Windows) + const icoPath = path.join(iconsDir, 'icon.ico'); + const sizes = [16, 24, 32, 48, 64, 128, 256]; + const icoBuffers = await Promise.all( + sizes.map(size => + sharp(sourceIcon) + .resize(size, size) + .png() + .toBuffer() + ) + ); + // For ICO, we'll just use the 256x256 as the main icon + await sharp(sourceIcon) + .resize(256, 256) + .png() + .toFile(icoPath.replace('.ico', '.ico.png')); + // Copy as ico (sharp doesn't support ico directly, need to use png2ico or similar) + console.log('Note: ICO file needs manual conversion or use png2ico tool'); + + // Generate ICNS file (macOS) - sharp doesn't support icns directly + console.log('Note: ICNS file needs manual conversion or use iconutil on macOS'); +} + +async function generateAndroidIcons() { + const androidResDir = path.join(rootDir, 'src-tauri', 'gen', 'android', 'app', 'src', 'main', 'res'); + + for (const mipmap of androidMipmaps) { + const outputDir = path.join(androidResDir, mipmap.folder); + + // Standard launcher icon + await sharp(sourceIcon) + .resize(mipmap.size, mipmap.size) + .png() + .toFile(path.join(outputDir, 'ic_launcher.png')); + console.log(`Generated: ${mipmap.folder}/ic_launcher.png`); + + // Round launcher icon + const roundSize = mipmap.size; + const roundIcon = await sharp(sourceIcon) + .resize(roundSize, roundSize) + .png() + .toBuffer(); + + // Create circular mask + const circleMask = Buffer.from( + `` + ); + + await sharp(roundIcon) + .composite([{ + input: circleMask, + blend: 'dest-in' + }]) + .png() + .toFile(path.join(outputDir, 'ic_launcher_round.png')); + console.log(`Generated: ${mipmap.folder}/ic_launcher_round.png`); + } + + // Generate adaptive icon foregrounds + for (const fg of androidForegroundSizes) { + const outputDir = path.join(androidResDir, fg.folder); + const iconSize = Math.floor(fg.size * 0.66); // Icon should be ~66% of the foreground + const padding = Math.floor((fg.size - iconSize) / 2); + + await sharp(sourceIcon) + .resize(iconSize, iconSize) + .extend({ + top: padding, + bottom: fg.size - iconSize - padding, + left: padding, + right: fg.size - iconSize - padding, + background: { r: 0, g: 0, b: 0, alpha: 0 } + }) + .png() + .toFile(path.join(outputDir, 'ic_launcher_foreground.png')); + console.log(`Generated: ${fg.folder}/ic_launcher_foreground.png`); + } +} + +async function main() { + console.log('Generating icons from:', sourceIcon); + console.log(''); + + console.log('=== Tauri Desktop Icons ==='); + await generateTauriIcons(); + console.log(''); + + console.log('=== Android Icons ==='); + await generateAndroidIcons(); + console.log(''); + + console.log('Done! Note: ICO and ICNS files may need manual conversion.'); +} + +main().catch(console.error); diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index b39a187..98a93db 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,18 +1,18 @@ # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [package] -name = "cinny" +name = "paarrot" version = "4.10.2" description = "Yet another matrix client" authors = ["Ajay Bura"] license = "AGPL-3.0-only" repository = "https://github.com/cinnyapp/cinny-desktop" -default-run = "cinny" +default-run = "paarrot" edition = "2021" rust-version = "1.70" [lib] -name = "cinny_lib" +name = "paarrot_lib" crate-type = ["staticlib", "cdylib", "lib"] [build-dependencies] diff --git a/src-tauri/gen/android/app/.gitignore b/src-tauri/gen/android/app/.gitignore index 4c00a3e..79951c8 100644 --- a/src-tauri/gen/android/app/.gitignore +++ b/src-tauri/gen/android/app/.gitignore @@ -1,4 +1,4 @@ -/src/main/java/in/cinny/app/generated +/src/main/java/wtf/ruv/paarrot/generated /src/main/jniLibs/**/*.so /src/main/assets/tauri.conf.json /tauri.build.gradle.kts diff --git a/src-tauri/gen/android/app/build.gradle.kts b/src-tauri/gen/android/app/build.gradle.kts index 1dc4643..2336de3 100644 --- a/src-tauri/gen/android/app/build.gradle.kts +++ b/src-tauri/gen/android/app/build.gradle.kts @@ -15,10 +15,10 @@ val tauriProperties = Properties().apply { android { compileSdk = 36 - namespace = "in.cinny.app" + namespace = "wtf.ruv.paarrot" defaultConfig { manifestPlaceholders["usesCleartextTraffic"] = "false" - applicationId = "in.cinny.app" + applicationId = "wtf.ruv.paarrot" minSdk = 24 targetSdk = 36 versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() diff --git a/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/src-tauri/gen/android/app/src/main/AndroidManifest.xml index 64e228d..3593690 100644 --- a/src-tauri/gen/android/app/src/main/AndroidManifest.xml +++ b/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -15,7 +15,7 @@ = Build.VERSION_CODES.TIRAMISU) { - if (ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS) - != PackageManager.PERMISSION_GRANTED) { - ActivityCompat.requestPermissions( - this, - arrayOf(Manifest.permission.POST_NOTIFICATIONS), - NOTIFICATION_PERMISSION_CODE - ) - } - } - } - - private fun startSyncService() { - SyncService.start(this) - } -} diff --git a/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/BootReceiver.kt b/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/BootReceiver.kt new file mode 100644 index 0000000..d287440 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/BootReceiver.kt @@ -0,0 +1,22 @@ +package wtf.ruv.paarrot + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.os.Build + +/** + * Receives BOOT_COMPLETED broadcast to restart the sync service after device reboot. + */ +class BootReceiver : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + if (intent.action == Intent.ACTION_BOOT_COMPLETED) { + val serviceIntent = Intent(context, SyncService::class.java) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + context.startForegroundService(serviceIntent) + } else { + context.startService(serviceIntent) + } + } + } +} diff --git a/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/MainActivity.kt b/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/MainActivity.kt new file mode 100644 index 0000000..1c88ab1 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/MainActivity.kt @@ -0,0 +1,11 @@ +package wtf.ruv.paarrot + +import android.os.Bundle +import androidx.activity.enableEdgeToEdge + +class MainActivity : TauriActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + } +} diff --git a/src-tauri/gen/android/app/src/main/java/in/cinny/app/SyncService.kt b/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/SyncService.kt similarity index 52% rename from src-tauri/gen/android/app/src/main/java/in/cinny/app/SyncService.kt rename to src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/SyncService.kt index 203e0ac..7ec2840 100644 --- a/src-tauri/gen/android/app/src/main/java/in/cinny/app/SyncService.kt +++ b/src-tauri/gen/android/app/src/main/java/wtf/ruv/paarrot/SyncService.kt @@ -1,6 +1,5 @@ -package `in`.cinny.app +package wtf.ruv.paarrot -import android.app.Notification import android.app.NotificationChannel import android.app.NotificationManager import android.app.PendingIntent @@ -13,30 +12,15 @@ import android.os.PowerManager import androidx.core.app.NotificationCompat /** - * Foreground service to keep Matrix sync connection alive in background. - * This service maintains a wake lock and shows a persistent notification - * to prevent Android from killing the app while syncing. + * Foreground service that keeps the app alive for background sync. + * This allows Matrix sync to continue even when the app is in the background. */ class SyncService : Service() { - companion object { - private const val CHANNEL_ID = "cinny_sync_channel" - private const val NOTIFICATION_ID = 1001 - private const val WAKE_LOCK_TAG = "Cinny:SyncWakeLock" - - fun start(context: Context) { - val intent = Intent(context, SyncService::class.java) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - context.startForegroundService(intent) - } else { - context.startService(intent) - } - } - - fun stop(context: Context) { - val intent = Intent(context, SyncService::class.java) - context.stopService(intent) - } + private const val NOTIFICATION_ID = 1 + private const val CHANNEL_ID = "paarrot_sync_channel" + private const val CHANNEL_NAME = "Background Sync" + private const val WAKE_LOCK_TAG = "Paarrot:SyncWakeLock" } private var wakeLock: PowerManager.WakeLock? = null @@ -50,8 +34,7 @@ class SyncService : Service() { } override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { - val notification = createNotification() - startForeground(NOTIFICATION_ID, notification) + startForeground(NOTIFICATION_ID, createNotification()) return START_STICKY } @@ -64,32 +47,33 @@ class SyncService : Service() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val channel = NotificationChannel( CHANNEL_ID, - "Matrix Sync", + CHANNEL_NAME, NotificationManager.IMPORTANCE_LOW ).apply { - description = "Keeps Cinny connected for message notifications" + description = "Keeps Paarrot connected for message notifications" setShowBadge(false) } - val manager = getSystemService(NotificationManager::class.java) - manager.createNotificationChannel(channel) + + val notificationManager = getSystemService(NotificationManager::class.java) + notificationManager.createNotificationChannel(channel) } } - private fun createNotification(): Notification { - val intent = Intent(this, MainActivity::class.java) + private fun createNotification(): android.app.Notification { val pendingIntent = PendingIntent.getActivity( - this, 0, intent, - PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + this, + 0, + Intent(this, MainActivity::class.java), + PendingIntent.FLAG_IMMUTABLE ) return NotificationCompat.Builder(this, CHANNEL_ID) - .setContentTitle("Cinny") - .setContentText("Connected to Matrix") - .setSmallIcon(R.mipmap.ic_launcher) - .setOngoing(true) + .setContentTitle("Paarrot") + .setContentText("Syncing messages...") + .setSmallIcon(android.R.drawable.ic_dialog_info) .setContentIntent(pendingIntent) .setPriority(NotificationCompat.PRIORITY_LOW) - .setCategory(NotificationCompat.CATEGORY_SERVICE) + .setOngoing(true) .build() } @@ -99,7 +83,7 @@ class SyncService : Service() { PowerManager.PARTIAL_WAKE_LOCK, WAKE_LOCK_TAG ).apply { - acquire(10 * 60 * 1000L) // 10 minutes, will be renewed + acquire(10 * 60 * 1000L) // 10 minutes timeout } } diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png index 28f1aa1..522867e 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png and b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png index 85d0c88..4768fdb 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png index 28f1aa1..4c169c5 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png index 73e48db..69dee52 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png and b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png index 13dd214..d330104 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png index 73e48db..bf2a883 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png index 1d98044..adca8bc 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png index a888b33..746505a 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png index 1d98044..3978209 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png index 0818324..2a8f4d6 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index a2a838e..aa73395 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png index 0818324..a9b2a23 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png index b18bceb..a3885eb 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png index 3f8a57f..880616f 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png index b18bceb..223a786 100644 Binary files a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ diff --git a/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml index 73bdcc1..083c23c 100644 --- a/src-tauri/gen/android/app/src/main/res/values-night/themes.xml +++ b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -1,6 +1,6 @@ - diff --git a/src-tauri/gen/android/app/src/main/res/values/strings.xml b/src-tauri/gen/android/app/src/main/res/values/strings.xml index a55d343..3bf966d 100644 --- a/src-tauri/gen/android/app/src/main/res/values/strings.xml +++ b/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -1,4 +1,4 @@ - Cinny - Cinny + Paarrot + Paarrot \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/themes.xml b/src-tauri/gen/android/app/src/main/res/values/themes.xml index 73bdcc1..083c23c 100644 --- a/src-tauri/gen/android/app/src/main/res/values/themes.xml +++ b/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -1,6 +1,6 @@ - diff --git a/src-tauri/gen/android/buildSrc/src/main/java/in/cinny/app/kotlin/BuildTask.kt b/src-tauri/gen/android/buildSrc/src/main/java/wtf/ruv/paarrot/kotlin/BuildTask.kt similarity index 100% rename from src-tauri/gen/android/buildSrc/src/main/java/in/cinny/app/kotlin/BuildTask.kt rename to src-tauri/gen/android/buildSrc/src/main/java/wtf/ruv/paarrot/kotlin/BuildTask.kt diff --git a/src-tauri/gen/android/buildSrc/src/main/java/in/cinny/app/kotlin/RustPlugin.kt b/src-tauri/gen/android/buildSrc/src/main/java/wtf/ruv/paarrot/kotlin/RustPlugin.kt similarity index 100% rename from src-tauri/gen/android/buildSrc/src/main/java/in/cinny/app/kotlin/RustPlugin.kt rename to src-tauri/gen/android/buildSrc/src/main/java/wtf/ruv/paarrot/kotlin/RustPlugin.kt diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png index fb92cc4..6812f43 100644 Binary files a/src-tauri/icons/128x128.png and b/src-tauri/icons/128x128.png differ diff --git a/src-tauri/icons/128x128@2x.png b/src-tauri/icons/128x128@2x.png index 0e6f716..60d77eb 100644 Binary files a/src-tauri/icons/128x128@2x.png and b/src-tauri/icons/128x128@2x.png differ diff --git a/src-tauri/icons/32x32.png b/src-tauri/icons/32x32.png index 34b3f85..7e49b32 100644 Binary files a/src-tauri/icons/32x32.png and b/src-tauri/icons/32x32.png differ diff --git a/src-tauri/icons/Square107x107Logo.png b/src-tauri/icons/Square107x107Logo.png index 354ea86..b9fe19f 100644 Binary files a/src-tauri/icons/Square107x107Logo.png and b/src-tauri/icons/Square107x107Logo.png differ diff --git a/src-tauri/icons/Square142x142Logo.png b/src-tauri/icons/Square142x142Logo.png index 14cbdab..7671f8d 100644 Binary files a/src-tauri/icons/Square142x142Logo.png and b/src-tauri/icons/Square142x142Logo.png differ diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png index 10c09f1..a54cc3d 100644 Binary files a/src-tauri/icons/Square150x150Logo.png and b/src-tauri/icons/Square150x150Logo.png differ diff --git a/src-tauri/icons/Square284x284Logo.png b/src-tauri/icons/Square284x284Logo.png index 84d94eb..a2a6215 100644 Binary files a/src-tauri/icons/Square284x284Logo.png and b/src-tauri/icons/Square284x284Logo.png differ diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png index 0c97f33..8426fee 100644 Binary files a/src-tauri/icons/Square30x30Logo.png and b/src-tauri/icons/Square30x30Logo.png differ diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png index 384d361..6807a2f 100644 Binary files a/src-tauri/icons/Square310x310Logo.png and b/src-tauri/icons/Square310x310Logo.png differ diff --git a/src-tauri/icons/Square44x44Logo.png b/src-tauri/icons/Square44x44Logo.png index 6a3dae0..32ad97b 100644 Binary files a/src-tauri/icons/Square44x44Logo.png and b/src-tauri/icons/Square44x44Logo.png differ diff --git a/src-tauri/icons/Square71x71Logo.png b/src-tauri/icons/Square71x71Logo.png index 29f54c1..0ccb652 100644 Binary files a/src-tauri/icons/Square71x71Logo.png and b/src-tauri/icons/Square71x71Logo.png differ diff --git a/src-tauri/icons/Square89x89Logo.png b/src-tauri/icons/Square89x89Logo.png index ef039cd..3aed433 100644 Binary files a/src-tauri/icons/Square89x89Logo.png and b/src-tauri/icons/Square89x89Logo.png differ diff --git a/src-tauri/icons/StoreLogo.png b/src-tauri/icons/StoreLogo.png index 1884b4f..b1f9929 100644 Binary files a/src-tauri/icons/StoreLogo.png and b/src-tauri/icons/StoreLogo.png differ diff --git a/src-tauri/icons/icon.ico b/src-tauri/icons/icon.ico index 20c035e..81988f9 100644 Binary files a/src-tauri/icons/icon.ico and b/src-tauri/icons/icon.ico differ diff --git a/src-tauri/icons/icon.ico.png b/src-tauri/icons/icon.ico.png new file mode 100644 index 0000000..60d77eb Binary files /dev/null and b/src-tauri/icons/icon.ico.png differ diff --git a/src-tauri/icons/icon.png b/src-tauri/icons/icon.png index 221fb21..ab5e993 100644 Binary files a/src-tauri/icons/icon.png and b/src-tauri/icons/icon.png differ diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index a5a5f61..5d24722 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -4,5 +4,5 @@ )] fn main() { - cinny_lib::run(); + paarrot_lib::run(); } diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 5a9e818..9122f52 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,8 +1,8 @@ { "$schema": "https://schema.tauri.app/config/2", - "productName": "Cinny", + "productName": "Paarrot", "version": "4.10.8", - "identifier": "in.cinny.app", + "identifier": "wtf.ruv.paarrot", "build": { "frontendDist": "../cinny/dist", "devUrl": "http://localhost:8080", @@ -12,7 +12,7 @@ "app": { "windows": [ { - "title": "Cinny", + "title": "Paarrot", "width": 1280, "height": 905, "center": true,