137 Commits

Author SHA1 Message Date
d262331d1b Update .github/workflows/build.yml 2026-05-23 14:45:03 +02:00
7440e85987 Update app/build.gradle 2026-05-23 14:42:40 +02:00
2351512af8 Update app/build.gradle 2026-05-23 14:42:30 +02:00
ae2cde3545 Update app/build.gradle 2026-05-23 14:06:23 +02:00
soraefir
1000319b8f Bump java version workflow to 21 2026-05-23 11:45:32 +02:00
soraefir
8c4c5e16e0 Fix build error with backuprules 2026-05-23 11:42:03 +02:00
soraefir
0ce1e604a8 Update node deps 2026-05-23 11:39:04 +02:00
soraefir
757783534c Fix build, errors and spring cleaning 2026-05-23 11:35:02 +02:00
soraefir
3eba48ea7d WIP
# Conflicts:
#	build.gradle
#	gradle/wrapper/gradle-wrapper.properties
2026-05-23 10:53:36 +02:00
bot
cf886b9581 Merge pull request 'Lock file maintenance' (#501) from renovate/lock-file-maintenance into main 2026-05-23 04:01:46 +02:00
Renovate Bot
f2ff152c07 Lock file maintenance 2026-05-23 02:01:43 +00:00
bot
19b152db8c Merge pull request 'Update dependency mapshaper to v0.7.19' (#500) from renovate/mapshaper-0.x-lockfile into main 2026-05-21 04:01:48 +02:00
Renovate Bot
18dff78e5b Update dependency mapshaper to v0.7.19 2026-05-21 02:01:40 +00:00
bot
9b16a30c9a Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.11.2' (#499) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-05-21 04:01:25 +02:00
Renovate Bot
62bf040093 Update dependency androidx.compose.ui:ui-tooling to v1.11.2 2026-05-21 02:01:22 +00:00
bot
60bafc6798 Merge pull request 'Update dependency androidx.compose.material:material to v1.11.2' (#498) from renovate/androidx.compose.material-material-1.x into main 2026-05-20 04:01:24 +02:00
bot
bf206efc1f Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.05.01' (#497) from renovate/androidx.compose-compose-bom-2026.x into main 2026-05-20 04:01:22 +02:00
Renovate Bot
c42f72a856 Update dependency androidx.compose.material:material to v1.11.2 2026-05-20 02:01:21 +00:00
Renovate Bot
c6a890aee3 Update dependency androidx.compose:compose-bom to v2026.05.01 2026-05-20 02:01:19 +00:00
bot
59450cf480 Merge pull request 'Update dependency mapshaper to v0.7.18' (#496) from renovate/mapshaper-0.x-lockfile into main 2026-05-19 04:01:44 +02:00
Renovate Bot
7f068ea10f Update dependency mapshaper to v0.7.18 2026-05-19 02:01:35 +00:00
bot
f9763d7b53 Merge pull request 'Lock file maintenance' (#495) from renovate/lock-file-maintenance into main 2026-05-16 04:02:06 +02:00
Renovate Bot
f2e9f44dee Lock file maintenance 2026-05-16 02:02:05 +00:00
bot
1039e220fb Merge pull request 'Update dependency mapshaper to v0.7.17' (#494) from renovate/mapshaper-0.x-lockfile into main 2026-05-16 04:01:45 +02:00
Renovate Bot
a810345e2b Update dependency mapshaper to v0.7.17 2026-05-16 02:01:36 +00:00
bot
4dc5213e6f Merge pull request 'Update dependency com.google.android.material:material to v1.14.0' (#493) from renovate/com.google.android.material-material-1.x into main 2026-05-14 04:02:04 +02:00
bot
5f313a20d5 Merge pull request 'Update dependency mapshaper to v0.7.16' (#492) from renovate/mapshaper-0.x-lockfile into main 2026-05-14 04:01:59 +02:00
Renovate Bot
01eae6daf9 Update dependency com.google.android.material:material to v1.14.0 2026-05-14 02:01:58 +00:00
Renovate Bot
7ae7ebb9b3 Update dependency mapshaper to v0.7.16 2026-05-14 02:01:50 +00:00
bot
a4e64e43f3 Merge pull request 'Update dependency mapshaper to v0.7.15' (#491) from renovate/mapshaper-0.x-lockfile into main 2026-05-13 04:02:32 +02:00
Renovate Bot
a1e73f5844 Update dependency mapshaper to v0.7.15 2026-05-13 02:02:24 +00:00
bot
a6189c77ef Merge pull request 'Update dependency gradle to v9.5.1' (#490) from renovate/gradle-9.x into main 2026-05-13 04:02:08 +02:00
Renovate Bot
1b36ae84d7 Update dependency gradle to v9.5.1 2026-05-13 02:01:54 +00:00
bot
c609cccdc6 Merge pull request 'Update plugin com.mikepenz.aboutlibraries.plugin to v14.2.0' (#489) from renovate/com.mikepenz.aboutlibraries.plugin-14.x into main 2026-05-11 04:02:16 +02:00
bot
1360c5eeef Merge pull request 'Update dependency mapshaper to v0.7.13' (#488) from renovate/mapshaper-0.x-lockfile into main 2026-05-11 04:02:10 +02:00
Renovate Bot
d087eddc29 Update plugin com.mikepenz.aboutlibraries.plugin to v14.2.0 2026-05-11 02:02:09 +00:00
Renovate Bot
1910a8672b Update dependency mapshaper to v0.7.13 2026-05-11 02:02:00 +00:00
bot
787175ee37 Merge pull request 'Update dependency com.mikepenz:aboutlibraries-core to v14.2.0' (#487) from renovate/com.mikepenz-aboutlibraries-core-14.x into main 2026-05-10 04:02:13 +02:00
Renovate Bot
90285d5efa Update dependency com.mikepenz:aboutlibraries-core to v14.2.0 2026-05-10 02:02:09 +00:00
bot
66b06d608d Merge pull request 'Update dependency com.mikepenz:aboutlibraries-compose-m3 to v14.2.0' (#486) from renovate/com.mikepenz-aboutlibraries-compose-m3-14.x into main 2026-05-10 04:01:53 +02:00
Renovate Bot
cabaa02f59 Update dependency com.mikepenz:aboutlibraries-compose-m3 to v14.2.0 2026-05-10 02:01:45 +00:00
bot
ee60dffa17 Merge pull request 'Update dependency com.mikepenz:aboutlibraries to v14.2.0' (#485) from renovate/com.mikepenz-aboutlibraries-14.x into main 2026-05-09 04:01:57 +02:00
Renovate Bot
98a2558ad2 Update dependency com.mikepenz:aboutlibraries to v14.2.0 2026-05-09 02:01:51 +00:00
bot
d820c0e5fa Merge pull request 'Update dependency mapshaper to v0.7.12' (#484) from renovate/mapshaper-0.x-lockfile into main 2026-05-09 04:01:42 +02:00
Renovate Bot
61bba0c099 Update dependency mapshaper to v0.7.12 2026-05-09 02:01:34 +00:00
bot
c58f1359cd Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.05.00' (#483) from renovate/androidx.compose-compose-bom-2026.x into main 2026-05-08 04:01:49 +02:00
bot
942e3a6235 Merge pull request 'Update dependency mapshaper to v0.7.10' (#482) from renovate/mapshaper-0.x-lockfile into main 2026-05-08 04:01:45 +02:00
Renovate Bot
d43535f772 Update dependency androidx.compose:compose-bom to v2026.05.00 2026-05-08 02:01:44 +00:00
Renovate Bot
e12c7194e6 Update dependency mapshaper to v0.7.10 2026-05-08 02:01:36 +00:00
bot
47277d3609 Merge pull request 'Update plugin com.android.library to v9.2.1' (#479) from renovate/com.android.library-9.x into main 2026-05-07 04:01:42 +02:00
bot
2a8bb6d1b4 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.11.1' (#481) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-05-07 04:01:41 +02:00
Renovate Bot
7ad2eff27b Update plugin com.android.library to v9.2.1 2026-05-07 02:01:37 +00:00
bot
b52c16c242 Merge pull request 'Update dependency androidx.compose.material:material to v1.11.1' (#480) from renovate/androidx.compose.material-material-1.x into main 2026-05-07 04:01:36 +02:00
Renovate Bot
caeb0f69a5 Update dependency androidx.compose.ui:ui-tooling to v1.11.1 2026-05-07 02:01:35 +00:00
Renovate Bot
74b4fe4ac4 Update dependency androidx.compose.material:material to v1.11.1 2026-05-07 02:01:32 +00:00
bot
504ae87174 Merge pull request 'Update plugin com.android.application to v9.2.1' (#478) from renovate/com.android.application-9.x into main 2026-05-06 10:00:18 +02:00
Renovate Bot
06bba3ceaf Update plugin com.android.application to v9.2.1 2026-05-06 08:00:13 +00:00
bot
70defaf916 Merge pull request 'Update dependency mapshaper to v0.7.9' (#477) from renovate/mapshaper-0.x-lockfile into main 2026-05-05 04:02:04 +02:00
Renovate Bot
dfcebe327f Update dependency mapshaper to v0.7.9 2026-05-05 02:01:54 +00:00
bot
3b27613e99 Merge pull request 'Update dependency com.mikepenz:aboutlibraries-core to v14.1.0' (#476) from renovate/com.mikepenz-aboutlibraries-core-14.x into main 2026-05-04 04:01:25 +02:00
Renovate Bot
bff39001a4 Update dependency com.mikepenz:aboutlibraries-core to v14.1.0 2026-05-04 02:01:17 +00:00
bot
e77c8dc49e Merge pull request 'Update dependency com.mikepenz:aboutlibraries-compose-m3 to v14.1.0' (#475) from renovate/com.mikepenz-aboutlibraries-compose-m3-14.x into main 2026-05-03 04:02:23 +02:00
Renovate Bot
c4da784b95 Update dependency com.mikepenz:aboutlibraries-compose-m3 to v14.1.0 2026-05-03 02:02:16 +00:00
bot
cbf1871cec Merge pull request 'Update dependency mapshaper to v0.7.8' (#474) from renovate/mapshaper-0.x-lockfile into main 2026-05-03 04:02:02 +02:00
Renovate Bot
9ed40a67bc Update dependency mapshaper to v0.7.8 2026-05-03 02:01:52 +00:00
bot
8e699d0b22 Merge pull request 'Update dependency com.mikepenz:aboutlibraries to v14.1.0' (#473) from renovate/com.mikepenz-aboutlibraries-14.x into main 2026-05-02 04:01:52 +02:00
Renovate Bot
9424517eb4 Update dependency com.mikepenz:aboutlibraries to v14.1.0 2026-05-02 02:01:47 +00:00
bot
acd6753112 Merge pull request 'Update dependency mapshaper to v0.7.7' (#472) from renovate/mapshaper-0.x-lockfile into main 2026-05-02 04:01:39 +02:00
Renovate Bot
6fa02d117b Update dependency mapshaper to v0.7.7 2026-05-02 02:01:31 +00:00
bot
f83ff7aca1 Merge pull request 'Update dependency mapshaper to v0.7.6' (#471) from renovate/mapshaper-0.x-lockfile into main 2026-05-01 04:01:52 +02:00
Renovate Bot
89bd79b542 Update dependency mapshaper to v0.7.6 2026-05-01 02:01:43 +00:00
bot
4db4757701 Merge pull request 'Update dependency jsdom to v29.1.1' (#470) from renovate/jsdom-29.x-lockfile into main 2026-05-01 04:01:37 +02:00
Renovate Bot
f57f29cda6 Update dependency jsdom to v29.1.1 2026-05-01 02:01:28 +00:00
bot
51ff021d37 Merge pull request 'Update dependency mapshaper to v0.7.5' (#469) from renovate/mapshaper-0.x-lockfile into main 2026-04-30 04:01:45 +02:00
Renovate Bot
c6f9bf7fc5 Update dependency mapshaper to v0.7.5 2026-04-30 02:01:35 +00:00
bot
9385442542 Merge pull request 'Update dependency gradle to v9.5.0' (#468) from renovate/gradle-9.x into main 2026-04-29 04:02:22 +02:00
Renovate Bot
19a185a6c3 Update dependency gradle to v9.5.0 2026-04-29 02:02:12 +00:00
bot
725de6c7b3 Merge pull request 'Update dependency mapshaper to v0.7.4' (#467) from renovate/mapshaper-0.x-lockfile into main 2026-04-29 04:01:39 +02:00
Renovate Bot
5228ac2508 Update dependency mapshaper to v0.7.4 2026-04-29 02:01:31 +00:00
bot
80d6693ef3 Merge pull request 'Update dependency jsdom to v29.1.0' (#466) from renovate/jsdom-29.x-lockfile into main 2026-04-28 04:01:42 +02:00
Renovate Bot
9d3ce7410a Update dependency jsdom to v29.1.0 2026-04-28 02:01:36 +00:00
bot
989fd1cea0 Merge pull request 'Update dependency androidx.compose.material:material to v1.11.0' (#464) from renovate/androidx.compose.material-material-1.x into main 2026-04-27 04:01:33 +02:00
bot
d3b11fbb02 Merge pull request 'Update dependency androidx.compose.ui:ui-tooling to v1.11.0' (#465) from renovate/androidx.compose.ui-ui-tooling-1.x into main 2026-04-27 04:01:30 +02:00
Renovate Bot
9a8c13e148 Update dependency androidx.compose.ui:ui-tooling to v1.11.0 2026-04-27 02:01:28 +00:00
Renovate Bot
4f65a86302 Update dependency androidx.compose.material:material to v1.11.0 2026-04-27 02:01:25 +00:00
bot
8c559f73f7 Merge pull request 'Update dependency @turf/turf to v7.3.5' (#453) from renovate/turf-turf-7.x-lockfile into main 2026-04-26 04:02:09 +02:00
Renovate Bot
1e77399412 Update dependency @turf/turf to v7.3.5 2026-04-26 02:02:08 +00:00
bot
6f2d9cacc4 Merge pull request 'Update dependency mapshaper to v0.7.3' (#463) from renovate/mapshaper-0.x-lockfile into main 2026-04-26 04:01:55 +02:00
Renovate Bot
f6209562ff Update dependency mapshaper to v0.7.3 2026-04-26 02:01:48 +00:00
bot
9e692dae6a Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.21' (#462) from renovate/org.jetbrains.kotlin.plugin.serialization-2.x into main 2026-04-25 04:10:56 +02:00
Renovate Bot
16458b014f Update plugin org.jetbrains.kotlin.plugin.serialization to v2.3.21 2026-04-25 02:03:25 +00:00
bot
af262b0ad2 Merge pull request 'Update dependency mapshaper to v0.7.1' (#461) from renovate/mapshaper-0.x-lockfile into main 2026-04-25 04:02:56 +02:00
Renovate Bot
5a81ae5170 Update dependency mapshaper to v0.7.1 2026-04-25 02:02:46 +00:00
bot
89931b9c32 Merge pull request 'Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.21' (#460) from renovate/org.jetbrains.kotlin.plugin.compose-2.x into main 2026-04-24 04:06:03 +02:00
bot
5a07720457 Merge pull request 'Update plugin org.jetbrains.kotlin.android to v2.3.21' (#459) from renovate/org.jetbrains.kotlin.android-2.x into main 2026-04-24 04:06:01 +02:00
Renovate Bot
7dd4049f89 Update plugin org.jetbrains.kotlin.plugin.compose to v2.3.21 2026-04-24 02:06:00 +00:00
Renovate Bot
6aa1253ab6 Update plugin org.jetbrains.kotlin.android to v2.3.21 2026-04-24 02:01:44 +00:00
bot
3391985d20 Merge pull request 'Update plugin com.android.library to v9.2.0' (#456) from renovate/com.android.library-9.x into main 2026-04-23 04:01:56 +02:00
bot
28bb0ae611 Merge pull request 'Update dependency androidx.compose:compose-bom to v2026.04.01' (#458) from renovate/androidx.compose-compose-bom-2026.x into main 2026-04-23 04:01:52 +02:00
Renovate Bot
d7a3f5389e Update plugin com.android.library to v9.2.0 2026-04-23 02:01:51 +00:00
bot
0552dc33c0 Merge pull request 'Update dependency androidx.navigation:navigation-compose to v2.9.8' (#457) from renovate/androidx.navigation-navigation-compose-2.x into main 2026-04-23 04:01:49 +02:00
Renovate Bot
b0799070eb Update dependency androidx.compose:compose-bom to v2026.04.01 2026-04-23 02:01:49 +00:00
Renovate Bot
b000b2e921 Update dependency androidx.navigation:navigation-compose to v2.9.8 2026-04-23 02:01:47 +00:00
bot
10c5f9538f Merge pull request 'Update plugin com.android.application to v9.2.0' (#455) from renovate/com.android.application-9.x into main 2026-04-22 04:01:49 +02:00
Renovate Bot
5a47c70a6f Update plugin com.android.application to v9.2.0 2026-04-22 02:01:46 +00:00
bot
f768306651 Merge pull request 'Update dependency mapshaper to ^0.7.0' (#454) from renovate/mapshaper-0.x into main 2026-04-21 04:02:00 +02:00
Renovate Bot
ff22ea6355 Update dependency mapshaper to ^0.7.0 2026-04-21 02:01:52 +00:00
bot
f22ff6eb34 Merge pull request 'Update dependency @turf/area to v7.3.5' (#452) from renovate/turf-area-7.x-lockfile into main 2026-04-20 04:01:43 +02:00
Renovate Bot
12812dcc2f Update dependency @turf/area to v7.3.5 2026-04-20 02:01:38 +00:00
bot
c348a2c8a6 Merge pull request 'Lock file maintenance' (#451) from renovate/lock-file-maintenance into main 2026-04-19 04:02:10 +02:00
Renovate Bot
417f53860d Lock file maintenance 2026-04-19 02:02:09 +00:00
bot
7dc7381075 Merge pull request 'Update dependency mapshaper to v0.6.121' (#450) from renovate/mapshaper-0.x-lockfile into main 2026-04-19 04:01:47 +02:00
Renovate Bot
b86c1aeebe Update dependency mapshaper to v0.6.121 2026-04-19 02:01:38 +00:00
bot
1d32687848 Merge pull request 'Lock file maintenance' (#449) from renovate/lock-file-maintenance into main 2026-04-18 04:02:18 +02:00
Renovate Bot
80738118f0 Lock file maintenance 2026-04-18 02:02:15 +00:00
bot
45776a2f9b Merge pull request 'Update dependency mapshaper to v0.6.119' (#448) from renovate/mapshaper-0.x-lockfile into main 2026-04-18 04:01:47 +02:00
Renovate Bot
b303bc6aa6 Update dependency mapshaper to v0.6.119 2026-04-18 02:01:28 +00:00
bot
476dcddaa9 Merge pull request 'Update dependency mapshaper to v0.6.118' (#447) from renovate/mapshaper-0.x-lockfile into main 2026-04-17 04:01:28 +02:00
Renovate Bot
5229507771 Update dependency mapshaper to v0.6.118 2026-04-17 02:01:18 +00:00
bot
9a16f1b2ce Merge pull request 'Update dependency mapshaper to v0.6.117' (#446) from renovate/mapshaper-0.x-lockfile into main 2026-04-16 04:01:15 +02:00
Renovate Bot
633a7b5d06 Update dependency mapshaper to v0.6.117 2026-04-16 02:01:05 +00:00
bot
80ff0458a1 Merge pull request 'Update plugin com.android.library to v9.1.1' (#445) from renovate/com.android.library-9.x into main 2026-04-15 04:01:03 +02:00
Renovate Bot
5d5d6c6962 Update plugin com.android.library to v9.1.1 2026-04-15 02:00:58 +00:00
bot
2c94f7871b Merge pull request 'Update plugin com.android.application to v9.1.1' (#444) from renovate/com.android.application-9.x into main 2026-04-14 04:01:07 +02:00
Renovate Bot
26a4aae265 Update plugin com.android.application to v9.1.1 2026-04-14 02:01:01 +00:00
bot
477a8c94fd Merge pull request 'Update softprops/action-gh-release action to v3' (#443) from renovate/softprops-action-gh-release-3.x into main 2026-04-13 04:01:11 +02:00
Renovate Bot
c00078e766 Update softprops/action-gh-release action to v3 2026-04-13 02:01:06 +00:00
bot
09ba61f3c5 Merge pull request 'Update dependency com.mikepenz:aboutlibraries-core to v14' (#438) from renovate/com.mikepenz-aboutlibraries-core-14.x into main 2026-04-12 04:01:15 +02:00
Renovate Bot
71d48d87be Update dependency com.mikepenz:aboutlibraries-core to v14 2026-04-12 02:01:13 +00:00
bot
9695f69e70 Merge pull request 'Update plugin com.mikepenz.aboutlibraries.plugin to v14' (#442) from renovate/com.mikepenz.aboutlibraries.plugin-14.x into main 2026-04-12 04:01:02 +02:00
Renovate Bot
992116fcfe Update plugin com.mikepenz.aboutlibraries.plugin to v14 2026-04-12 02:00:59 +00:00
bot
270946c082 Merge pull request 'Update dependency com.mikepenz:aboutlibraries-compose-m3 to v14.0.1' (#440) from renovate/com.mikepenz-aboutlibraries-compose-m3-14.x into main 2026-04-11 04:01:19 +02:00
Renovate Bot
6832f3ebee Update dependency com.mikepenz:aboutlibraries-compose-m3 to v14.0.1 2026-04-11 02:01:17 +00:00
bot
ce47bff4f5 Merge pull request 'Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.11.0' (#441) from renovate/org.jetbrains.kotlinx-kotlinx-serialization-json-1.x into main 2026-04-11 04:01:03 +02:00
Renovate Bot
47c8cf7812 Update dependency org.jetbrains.kotlinx:kotlinx-serialization-json to v1.11.0 2026-04-11 02:00:59 +00:00
bot
5cd1b5f9db Merge pull request 'Update dependency com.mikepenz:aboutlibraries to v14.0.1' (#439) from renovate/com.mikepenz-aboutlibraries-14.x into main 2026-04-10 04:01:08 +02:00
Renovate Bot
e3a6b11c67 Update dependency com.mikepenz:aboutlibraries to v14.0.1 2026-04-10 02:01:00 +00:00
20 changed files with 4691 additions and 2732 deletions

View File

@@ -24,7 +24,9 @@ jobs:
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: set up secrets
run: |
echo "${{ secrets.RELEASE_KEYSTORE }}" > keystore.asc
@@ -42,17 +44,19 @@ jobs:
- name: set up JDK
uses: actions/setup-java@v5
with:
java-version: 17
java-version: 21
distribution: "temurin"
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v6
- name: Build APK
run: ./gradlew assembleSignedRelease
run: |
VERSION_CODE=$(git rev-list --count HEAD)
./gradlew assembleSignedRelease -PVERSION_CODE=$VERSION_CODE
- name: Release
uses: softprops/action-gh-release@v2
uses: softprops/action-gh-release@v3
if: startsWith(github.ref, 'refs/tags/')
with:
files: |

View File

@@ -1,27 +1,25 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'org.jetbrains.kotlin.plugin.serialization' version '2.3.20'
id 'org.jetbrains.kotlin.plugin.compose' version '2.3.20'
id 'com.mikepenz.aboutlibraries.plugin' version '13.2.1'
id 'org.jetbrains.kotlin.plugin.serialization' version '2.3.21'
id 'org.jetbrains.kotlin.plugin.compose' version '2.3.21'
id 'com.mikepenz.aboutlibraries.plugin' version '14.2.0'
}
android {
namespace 'net.helcel.beans'
compileSdk 36
compileSdk = 37
defaultConfig {
buildConfigField("String", "APP_NAME", "\"Beans\"")
manifestPlaceholders["APP_NAME"] = "Beans"
applicationId 'net.helcel.beans'
minSdk 28
targetSdk 36
versionCode 4
versionName "1.1a"
minSdk = 28
targetSdk = 37
versionName "1.2b"
versionCode project.hasProperty('VERSION_CODE') ? project.property('VERSION_CODE').toInteger() : 1
}
signingConfigs {
create("release") {
register("release") {
try {
def keystorePropertiesFile = rootProject.file("app/keystore.properties")
def keystoreProperties = new Properties()
@@ -36,20 +34,18 @@ android {
}
}
}
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
shrinkResources false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
signedRelease {
minifyEnabled true
shrinkResources false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig = signingConfigs.getByName("release")
}
@@ -78,10 +74,6 @@ android {
kotlinCompilerExtensionVersion = "2.2.20"
}
kotlin {
jvmToolchain(21)
}
lint {
disable 'UsingMaterialAndMaterial3Libraries'
}
@@ -91,34 +83,33 @@ aboutLibraries {
library {
exclusionPatterns = [~"androidx.*", ~"com.google.android.*", ~"org.jetbrains.*"]
}
excludeFields = ["generated"]
}
dependencies {
implementation 'androidx.compose.material3:material3:1.4.0'
implementation "androidx.compose.material:material:1.10.6"
implementation "androidx.compose.material:material:1.11.2"
implementation 'androidx.compose.material:material-icons-extended:1.7.8'
implementation 'androidx.navigation:navigation-compose:2.9.7'
implementation 'androidx.navigation:navigation-compose:2.9.8'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.5'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.10.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation 'androidx.compose.ui:ui'
implementation "androidx.activity:activity-ktx:1.13.0"
implementation 'androidx.compose.ui:ui-tooling-preview'
implementation 'com.google.android.material:material:1.13.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.10.0'
implementation 'com.google.android.material:material:1.14.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0'
implementation 'com.caverock:androidsvg-aar:1.4'
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
implementation 'com.mikepenz:aboutlibraries:14.0.0'
implementation 'com.mikepenz:aboutlibraries-compose-m3:14.0.0'
implementation 'com.mikepenz:aboutlibraries-core:14.0.0'
implementation 'com.mikepenz:aboutlibraries:14.2.0'
implementation 'com.mikepenz:aboutlibraries-compose-m3:14.2.0'
implementation 'com.mikepenz:aboutlibraries-core:14.2.0'
implementation platform('androidx.compose:compose-bom:2026.03.01')
debugImplementation 'androidx.compose.ui:ui-tooling:1.10.6'
implementation platform('androidx.compose:compose-bom:2026.05.01')
debugImplementation 'androidx.compose.ui:ui-tooling:1.11.2'
}

View File

@@ -8,8 +8,7 @@
android:hardwareAccelerated="false"
android:icon="@mipmap/ic_launcher_round"
android:label="${APP_NAME}"
android:supportsRtl="true"
tools:replace="android:allowBackup">
android:supportsRtl="true">
<activity
android:name=".activity.MainScreen"
android:exported="true">

View File

@@ -16,7 +16,6 @@ import androidx.compose.material.Scaffold
import androidx.compose.material.Text
import androidx.compose.material.TopAppBar
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.DateRange
import androidx.compose.material.icons.filled.Edit
import androidx.compose.material.icons.filled.Percent
import androidx.compose.material.icons.filled.Settings

View File

@@ -152,11 +152,17 @@ fun SettingsMainScreen(onExit: ()->Unit = {}) {
fun SettingsScreen(navController: NavHostController = settingsNav()) {
val context = LocalContext.current
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
val keyTheme = stringResource(R.string.key_theme)
val defaultTheme = stringResource(R.string.system)
val keyProjection = stringResource(R.string.key_projection)
val keyGroup = stringResource(R.string.key_group)
val offString = stringResource(R.string.off)
var showEdit by remember { mutableStateOf(false) }
var theme by remember { mutableStateOf(prefs.getString(context.getString(R.string.key_theme), context.getString(R.string.system))!!) }
var projection by remember { mutableStateOf(prefs.getString(context.getString(R.string.key_projection), "default")!!) }
var groups by remember { mutableStateOf(prefs.getString(context.getString(R.string.key_group), context.getString(R.string.off))!!) }
var theme by remember { mutableStateOf(prefs.getString(keyTheme, defaultTheme)!!) }
var projection by remember { mutableStateOf(prefs.getString(keyProjection, "default")!!) }
var groups by remember { mutableStateOf(prefs.getString(keyGroup,offString)!!) }
if(showEdit)
EditPlaceDialog(true) {
@@ -179,7 +185,7 @@ fun SettingsScreen(navController: NavHostController = settingsNav()) {
)
MultiPreference(arrayOf(stringResource(R.string.system),stringResource(R.string.light),stringResource(R.string.dark)), theme) { newTheme ->
theme = newTheme
prefs.edit { putString(context.getString(R.string.key_theme), newTheme) }
prefs.edit { putString(keyTheme, newTheme) }
}
HorizontalDivider()
}
@@ -192,7 +198,7 @@ fun SettingsScreen(navController: NavHostController = settingsNav()) {
)
MultiPreference(arrayOf(stringResource(R.string.mercator), stringResource(R.string.azimuthalequidistant)), projection) { newProj ->
projection = newProj
prefs.edit { putString(context.getString(R.string.key_projection), newProj) }
prefs.edit { putString(keyProjection, newProj) }
Settings.refreshProjection()
}
HorizontalDivider()
@@ -219,11 +225,11 @@ fun SettingsScreen(navController: NavHostController = settingsNav()) {
arrayOf(stringResource(R.string.on), stringResource(R.string.off)),
groups
) { key ->
if (key == context.getString(R.string.off)) {
if (key == offString) {
showDialog=true
}
groups = key
prefs.edit { putString(context.getString(R.string.key_group), key) }
prefs.edit { putString(keyGroup, key) }
}
HorizontalDivider()
}
@@ -283,9 +289,13 @@ fun SettingsScreen(navController: NavHostController = settingsNav()) {
@Composable
fun RegionalScreen() {
val context = LocalContext.current
val keyRegional = stringResource(R.string.key_regional)
val offString = stringResource(R.string.off)
val onString = stringResource(R.string.on)
val prefs = PreferenceManager.getDefaultSharedPreferences(context)
var selected by remember { mutableStateOf(prefs.getString(context.getString(R.string.key_regional),context.getString(R.string.off))!!)}
var regional by remember{ mutableStateOf(prefs.getString(context.getString(R.string.key_regional), context.getString(R.string.off))!!)}
var selected by remember { mutableStateOf(prefs.getString(keyRegional, offString)!!)}
var regional by remember{ mutableStateOf(prefs.getString(keyRegional, offString)!!)}
var showDialog by remember{mutableStateOf(false)}
var showLoad by remember{mutableStateOf(false)}
@@ -305,7 +315,7 @@ fun RegionalScreen() {
regional= selected
prefs.edit {
putString(
context.getString(R.string.key_regional),
keyRegional,
regional
)
}
@@ -332,12 +342,12 @@ fun RegionalScreen() {
val scope = rememberCoroutineScope()
MultiPreference(arrayOf(stringResource(R.string.on),stringResource(R.string.off)),regional) { key ->
when (key) {
context.getString(R.string.off) -> { showDialog=true
offString -> { showDialog=true
selected=key
}
context.getString(R.string.on) -> {
onString -> {
regional = key
prefs.edit { putString(context.getString(R.string.key_regional), key) }
prefs.edit { putString(keyRegional, key) }
showLoad=true
scope.launch {
withContext(Dispatchers.IO) {
@@ -354,7 +364,7 @@ fun RegionalScreen() {
@Composable
fun MultiPreference(list: Array<String>, selected: String, onSelected: (String) -> Unit) {
Column(Modifier.padding(2.dp)) {
list.map { value ->
list.forEach { value ->
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier

View File

@@ -115,7 +115,6 @@ fun StatsList(activeMode: LocType, countMode: Boolean) {
@Composable
fun StatsRow(group: Groups.Group, activeMode: LocType, countMode: Boolean) {
val context = LocalContext.current
val visited = remember(group, activeMode) {
Data.visits.getVisitedByValue(group.key)
@@ -124,18 +123,18 @@ fun StatsRow(group: Groups.Group, activeMode: LocType, countMode: Boolean) {
val count = when (activeMode) {
LocType.WORLD -> World.WWW.children.filter { it.code in visited }.size
LocType.COUNTRY -> World.WWW.children.flatMap { it.children.filter { c -> c.code in visited } }.size
LocType.STATE -> World.WWW.children.flatMap { itc->itc.children.flatMap { it.children.filter { it.code in visited } } }.size
LocType.STATE -> World.WWW.children.flatMap { a->a.children.flatMap { b->b.children.filter { c->c.code in visited } } }.size
else -> 0
}
val area = when (activeMode) {
LocType.WORLD -> World.WWW.children.filter { it.code in visited }.sumOf { it.area }
LocType.COUNTRY -> World.WWW.children.flatMap { it.children.filter { c -> c.code in visited } }.sumOf { it.area }
LocType.STATE -> World.WWW.children.flatMap { it.children.flatMap { it.children.filter { it.code in visited } } }.sumOf { it.area }
LocType.STATE -> World.WWW.children.flatMap { a->a.children.flatMap { b->b.children.filter { c->c.code in visited } } }.sumOf { it.area }
else -> 0
}
val displayValue = if (countMode) count.toString() else context.getString(R.string.number_with_unit, area, "km²")
val displayValue = if (countMode) count.toString() else stringResource(R.string.number_with_unit, area, "km²")
val backgroundColor = group.color.color
val textColor = getContrastColor(backgroundColor)

View File

@@ -58,7 +58,7 @@ fun syncVisited(loc: GeoLoc?=World.WWW){
loc?.children?.forEach { tt ->
tt.children.forEach {itc->
if(Data.visits.getVisited(itc) in listOf(AUTO_GROUP,NO_GROUP)) {
if(itc.children.any { itcc -> Data.visits.getVisited(itcc) != NO_GROUP })
if(itc.children.any { c -> Data.visits.getVisited(c) != NO_GROUP })
Data.visits.setVisited(itc, AUTO_GROUP)
else
Data.visits.setVisited(itc, NO_GROUP)
@@ -111,21 +111,20 @@ fun EditPlaceScreen(loc: GeoLoc, onExit:()->Unit={}) {
Column {
val currentTab = tabs.getOrNull(selectedTab) ?: return@Column
TabRow(
selectedTabIndex = min(tabs.lastIndex, selectedTab),
) {
tabs.forEachIndexed { index, tab ->
Tab(
selected = selectedTab == index,
onClick = {
while (tabs.size > index + 1)
tabs.removeAt(tabs.lastIndex)
},
text = { Text(tab.fullName) }
)
}
TabRow(
selectedTabIndex = min(tabs.lastIndex, selectedTab),
) {
tabs.forEachIndexed { index, tab ->
Tab(
selected = selectedTab == index,
onClick = {
while (tabs.size > index + 1)
tabs.removeAt(tabs.lastIndex)
},
text = { Text(tab.fullName) }
)
}
}
LazyColumn(
modifier = Modifier.fillMaxSize()

View File

@@ -7,7 +7,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import com.mikepenz.aboutlibraries.ui.compose.DefaultChipColors
import com.mikepenz.aboutlibraries.ui.compose.DefaultLibraryColors
import com.mikepenz.aboutlibraries.ui.compose.android.rememberLibraries
import com.mikepenz.aboutlibraries.ui.compose.android.produceLibraries
import com.mikepenz.aboutlibraries.ui.compose.m3.LibrariesContainer
import net.helcel.beans.R
import net.helcel.beans.activity.SysTheme
@@ -16,14 +16,14 @@ import net.helcel.beans.activity.SysTheme
@Preview
@Composable
fun LicenseScreen() {
val libraries = rememberLibraries(R.raw.aboutlibraries)
val libraries = produceLibraries(R.raw.aboutlibraries)
SysTheme {
LibrariesContainer(
libraries = libraries.value,
modifier = Modifier.fillMaxSize(),
colors = DefaultLibraryColors(
backgroundColor = MaterialTheme.colors.background,
contentColor = MaterialTheme.colors.onBackground,
libraryBackgroundColor = MaterialTheme.colors.background,
libraryContentColor = MaterialTheme.colors.onBackground,
licenseChipColors = DefaultChipColors(
containerColor = MaterialTheme.colors.primary,
contentColor = MaterialTheme.colors.onPrimary,
@@ -37,6 +37,8 @@ fun LicenseScreen() {
contentColor = MaterialTheme.colors.onSecondary,
),
dialogConfirmButtonColor = MaterialTheme.colors.primary,
dialogBackgroundColor = MaterialTheme.colors.onPrimary,
dialogContentColor = MaterialTheme.colors.primary,
)
)
}

View File

@@ -2,6 +2,7 @@ package net.helcel.beans.countries
import net.helcel.beans.countries.Country.*
@Suppress("RedundantSuppression", "SpellCheckingInspection", "unused")
enum class Group(override val fullName: String, override val children: Set<GeoLoc>) : GeoLoc {
EEE(

View File

@@ -24,53 +24,53 @@ const val AUTO_GROUP = -1
@Serializable
class Groups(val id: Int, private val grps: HashMap<Int, Group>) {
class Groups(val id: Int, private val groups: HashMap<Int, Group>) {
@kotlinx.serialization.Transient
private val _groupsFlow = MutableStateFlow<List<Group>>(grps.values.toList())
private val _groupsFlow = MutableStateFlow<List<Group>>(groups.values.toList())
@kotlinx.serialization.Transient
val groupsFlow: StateFlow<List<Group>> = _groupsFlow.asStateFlow()
fun setGroup(key: Int, name: String, col: ColorDrawable) {
grps[key] = Group(key, name, col)
_groupsFlow.value = grps.values.toList()
groups[key] = Group(key, name, col)
_groupsFlow.value = groups.values.toList()
}
fun deleteGroup(key: Int) {
grps.remove(key)
_groupsFlow.value = grps.values.toList()
groups.remove(key)
_groupsFlow.value = groups.values.toList()
}
fun getGroupFromKey(key: Int): Group {
return grps.getOrDefault(key, EmptyGroup())
return groups.getOrDefault(key, EmptyGroup())
}
fun genKey(): Int {
val key = rnd.nextInt()
if (grps.containsKey(key) || key in listOf(NO_GROUP, DEFAULT_GROUP, AUTO_GROUP)) return genKey()
if (groups.containsKey(key) || key in listOf(NO_GROUP, DEFAULT_GROUP, AUTO_GROUP)) return genKey()
return key
}
fun size(): Int {
return grps.size
return groups.size
}
fun getUniqueEntry(): Group? {
assert(size() == 1)
return if (grps.size == 1) {
grps[grps.keys.first()]
return if (groups.size == 1) {
groups[groups.keys.first()]
} else {
null
}
}
fun getGroupFromPos(pos: Int): Pair<Int, Group> {
if(grps.keys.isEmpty()) return Pair(NO_GROUP,Group(NO_GROUP,"-"))
val key = grps.keys.toList()[pos]
if(groups.keys.isEmpty()) return Pair(NO_GROUP,Group(NO_GROUP,"-"))
val key = groups.keys.toList()[pos]
return Pair(key, getGroupFromKey(key))
}
fun findGroupPos(key: Int): Int {
return grps.keys.toList().indexOf(key)
return groups.keys.toList().indexOf(key)
}
class EmptyGroup : Group(0, "")

View File

@@ -2,4 +2,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@drawable/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

View File

@@ -1,6 +1,6 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins {
id 'com.android.application' version '9.1.0' apply false
id 'com.android.library' version '9.1.0' apply false
id 'org.jetbrains.kotlin.android' version '2.3.20' apply false
id 'com.android.application' version '9.2.1' apply false
id 'com.android.library' version '9.2.1' apply false
id 'org.jetbrains.kotlin.android' version '2.3.21' apply false
}

View File

@@ -1,24 +1,9 @@
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true
android.enableJetifier=false
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style=official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass=true
android.nonTransitiveRClass=true
android.uniquePackageNames=false
android.dependency.useConstraints=false
android.r8.strictFullModeForKeepRules=false

Binary file not shown.

View File

@@ -1,8 +1,10 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=2ab2958f2a1e51120c326cad6f385153bb11ee93b3c216c5fccebfdfbb7ec6cb
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
distributionSha256Sum=bafc141b619ad6350fd975fc903156dd5c151998cc8b058e8c1044ab5f7b031f
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

2
gradlew vendored
View File

@@ -57,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/3d91ce3b8caaf77ad09f381f43615b715b53f72c/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.

31
gradlew.bat vendored
View File

@@ -23,8 +23,8 @@
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Set local scope for the variables, and ensure extensions are enabled
setlocal EnableExtensions
set DIRNAME=%~dp0
if "%DIRNAME%"=="" set DIRNAME=.
@@ -51,7 +51,7 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
"%COMSPEC%" /c exit 1
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
@@ -65,7 +65,7 @@ echo. 1>&2
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
echo location of your Java installation. 1>&2
goto fail
"%COMSPEC%" /c exit 1
:execute
@rem Setup the command line
@@ -73,21 +73,10 @@ goto fail
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %*
@rem endlocal doesn't take effect until after the line is parsed and variables are expanded
@rem which allows us to clear the local environment before executing the java command
endlocal & "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* & call :exitWithErrorLevel
:end
@rem End local scope for the variables with windows NT shell
if %ERRORLEVEL% equ 0 goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
set EXIT_CODE=%ERRORLEVEL%
if %EXIT_CODE% equ 0 set EXIT_CODE=1
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
exit /b %EXIT_CODE%
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
:exitWithErrorLevel
@rem Use "%COMSPEC%" /c exit to allow operators to work properly in scripts
"%COMSPEC%" /c exit %ERRORLEVEL%

View File

@@ -1,9 +1,9 @@
{
"dependencies": {
"@turf/area": "^7.0.0",
"@turf/turf": "^7.0.0",
"jsdom": "^29.0.0",
"mapshaper": "^0.6.79"
"@turf/area": "^7.3.5",
"@turf/turf": "^7.3.5",
"jsdom": "^29.1.1",
"mapshaper": "^0.7.19"
},
"type": "module"
}

View File

@@ -6,6 +6,9 @@ pluginManagement {
maven { url 'https://jitpack.io' }
}
}
plugins {
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
}
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {

7163
yarn.lock

File diff suppressed because it is too large Load Diff