Compare commits

..

No commits in common. "main" and "1.0-rc1" have entirely different histories.

28 changed files with 3779 additions and 2775 deletions

View File

@ -32,7 +32,7 @@ jobs:
gpg -d --passphrase "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" --batch keystore.asc > app/keystore.properties
gpg -d --passphrase "${{ secrets.RELEASE_KEYSTORE_PASSWORD }}" --batch key.asc > app/key.jks
- uses: gradle/wrapper-validation-action@v3
- uses: gradle/wrapper-validation-action@v2
- name: create and checkout branch
if: github.event_name == 'pull_request'

View File

@ -39,11 +39,8 @@
## 📳 Installation
<div style="display: flex; justify-content: center; align-items: center; flex-direction: row;">
<!--<a href="https://f-droid.org/packages/net.helcel.beans/">
<a href="https://f-droid.org/packages/net.helcel.beans/">
<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" width="206">
</a>-->
<a href="https://apt.izzysoft.de/fdroid/index/apk/net.helcel.beans">
<img width="200" height="80" alt="Izzy Download" src=".github/images/izzy.png">
</a>
<a href="https://github.com/helcel-net/beans/releases/latest">
<img width="200" height="84" alt="APK Download" src=".github/images/apk.png">
@ -71,7 +68,7 @@ Thanks to all contributors, the developers of our dependencies, and our users.
## 📝 License
```
Copyright (C) 2024 Helcel & MYDOLI
Copyright (C) 2024 Helcel MYDOLI
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by

View File

@ -1,8 +1,8 @@
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
id 'org.jetbrains.kotlin.plugin.serialization' version '2.1.0'
id 'com.mikepenz.aboutlibraries.plugin' version '11.4.0'
id 'org.jetbrains.kotlin.plugin.serialization' version '1.9.23'
id 'com.mikepenz.aboutlibraries.plugin' version '11.1.3'
}
@ -14,8 +14,8 @@ android {
applicationId 'net.helcel.beans'
minSdk 28
targetSdk 34
versionCode 2
versionName "1.0b"
versionCode 1
versionName "1.0"
}
signingConfigs {
create("release") {
@ -77,17 +77,15 @@ android {
}
aboutLibraries {
exclusionPatterns = [~"androidx.*", ~"com.google.android.*", ~"org.jetbrains.*"]
configPath = "config"
excludeFields = ["generated"]
}
dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.1.4'
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.4'
implementation 'androidx.preference:preference-ktx:1.2.1'
implementation 'com.google.android.material:material:1.12.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.8.0'
implementation 'com.google.android.material:material:1.11.0'
implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3'
implementation 'com.caverock:androidsvg-aar:1.4'
implementation 'com.github.chrisbanes:PhotoView:2.3.0'
implementation 'com.mikepenz:aboutlibraries:11.4.0'
implementation 'com.mikepenz:aboutlibraries:11.1.3'
}

View File

@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:versionCode="2"
android:versionName="1.0c">
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.1 MiB

After

Width:  |  Height:  |  Size: 6.1 MiB

View File

@ -1030,7 +1030,7 @@ GRC_AT|GRC|Attica|3853
GRC_CR|GRC|Crete|8391
GRC_EM|GRC|Epirusand Western Macedonia|18771
GRC_MH|GRC|Macedonia and Thrace|33122
GRC_PW|GRC|Peloponnese, Western Greece and the Ionian|29194
GRC_PW|GRC|Peloponnese, Western Greeceand|29194
GRC_TC|GRC|Thessalyand Central Greece|29744
GRL_KU|GRL|Kujalleq|45647
GRL_UO|GRL|Northeast Greenland National Par|919384
@ -1537,8 +1537,8 @@ LAO_OU|LAO|Oudômxai|11832
LAO_PH|LAO|Phôngsali|15414
LAO_SL|LAO|Saravan|10238
LAO_SV|LAO|Savannakhét|21546
LAO_VI|LAO|Vientiane Province|12590
LAO_VT|LAO|Vientiane Prefecture|3639
LAO_VI|LAO|Vientiane|12590
LAO_VT|LAO|Vientiane[prefecture]|3639
LAO_XA|LAO|Xaignabouri|15691
LAO_XS|LAO|Xaisômboun|7778
LAO_XE|LAO|Xékong|8414
@ -1613,7 +1613,7 @@ LIE_SN|LIE|Schaan|28
LIE_SB|LIE|Schellenberg|3
LIE_TN|LIE|Triesen|26
LIE_TB|LIE|Triesenberg|29
LIE_VA|LIE|Vaduz|17
LIE_VA|LIE|Valduz|17
LTU_AS|LTU|Alytaus|5624
LTU_KS|LTU|Kauno|8156
LTU_KP|LTU|Klaipedos|5363
@ -1794,7 +1794,7 @@ MHL_Ujae|MHL|Ujae|3
MHL_Utirik|MHL|Utirik|14
MHL_Wotho|MHL|Wotho|6
MHL_Wotje|MHL|Wotje|15
MHL_19_1|MHL|Rongelap|26
MHL_19_1|MHL|NA|26
MTQ_FF|MTQ|Fort-de-France|189
MTQ_MA|MTQ|Le Marin|393
MTQ_TR|MTQ|Le Trinité|353
@ -2040,7 +2040,7 @@ NLD_OV|NLD|Overijssel|3369
NLD_UT|NLD|Utrecht|1555
NLD_ZE|NLD|Zeeland|1804
NLD_Zeeuwsemeren|NLD|Zeeuwsemeren|477
NLD_14_1|NLD|Zuid-Holland|3143
NLD_14_1|NLD|NA|3143
NCL_IL|NCL|Îles Loyauté|1988
NCL_NO|NCL|Nord|9520
NCL_SU|NCL|Sud|7408
@ -3340,6 +3340,7 @@ UGA_SR|UGA|Soroti|3401
UGA_TR|UGA|Tororo|1863
UGA_WA|UGA|Wakiso|1944
UGA_YU|UGA|Yumbe|2337
UKR_?|UKR|?|136
UKR_CK|UKR|Cherkasy|20922
UKR_CH|UKR|Chernihiv|32416
UKR_CV|UKR|Chernivtsi|8202
@ -3351,7 +3352,7 @@ UKR_KK|UKR|Kharkiv|31388
UKR_KS|UKR|Kherson|25534
UKR_KM|UKR|Khmel'nyts'kyy|20718
UKR_KV|UKR|Kiev|28073
UKR_KC|UKR|Kiev City|831
UKR_KC|UKR|Kiev City|695
UKR_KH|UKR|Kirovohrad|24713
UKR_LV|UKR|L'viv|21773
UKR_LH|UKR|Luhans'k|27042

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.0 MiB

After

Width:  |  Height:  |  Size: 6.0 MiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 6.1 MiB

After

Width:  |  Height:  |  Size: 6.1 MiB

View File

@ -5,14 +5,17 @@ import android.view.Menu
import android.view.MenuItem
import androidx.activity.addCallback
import androidx.appcompat.app.AppCompatActivity
import androidx.fragment.app.Fragment
import com.google.android.material.tabs.TabLayoutMediator
import net.helcel.beans.R
import net.helcel.beans.activity.adapter.ViewPagerAdapter
import net.helcel.beans.activity.fragment.EditGroupAddFragment
import net.helcel.beans.activity.fragment.EditPlaceColorFragment
import net.helcel.beans.activity.fragment.EditPlaceFragment
import net.helcel.beans.countries.World
import net.helcel.beans.databinding.ActivityEditBinding
import net.helcel.beans.helper.Data
import net.helcel.beans.helper.DialogCloser
import net.helcel.beans.helper.Settings
import net.helcel.beans.helper.Theme.createActionBar
@ -59,7 +62,6 @@ class EditActivity : AppCompatActivity() {
}, {}, false).show(supportFragmentManager, "AddColorDialogFragment")
}
}
else -> finish()
}
return super.onOptionsItemSelected(item)

View File

@ -12,6 +12,7 @@ import net.helcel.beans.countries.GeoLocImporter
import net.helcel.beans.databinding.ActivityMainBinding
import net.helcel.beans.helper.Data
import net.helcel.beans.helper.Settings
import net.helcel.beans.helper.Theme.colorWrapper
import net.helcel.beans.svg.CSSWrapper
import net.helcel.beans.svg.SVGWrapper

View File

@ -5,10 +5,9 @@ enum class Country(
override val area: Int
) : GeoLoc {
ATA("Antarctica", 14000000),
// HKG("Hong Kong", 1104),
// MAC("Macao", 32),
// ANT("Netherlands Antilles", 800),
HKG("Hong Kong", 1104),
MAC("Macao", 32),
ANT("Netherlands Antilles", 800),
AFG("Afghanistan", 645487),
XAD("Akrotiri and Dhekelia", 234),
ALA("Åland", 1483),

View File

@ -6,6 +6,7 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
EEE(
"Europe", setOf(
XAD,
ALA,// Åland Islands: an autonomous region of Finland, but not a member of the EU or UN
ALB,
AND,
@ -15,6 +16,7 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
BIH,
BGR,
HRV,
CYP,
CZE,
DNK,
EST,
@ -24,7 +26,6 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
DEU,
GIB, // Gibraltar: a British overseas territory located at the southern tip of the Iberian Peninsula
GRC,
GRL,
GGY, // Guernsey: a British Crown dependency in the English Channel
HUN,
ISL,
@ -32,6 +33,7 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
IMN, // Isle of Man: a British Crown dependency located in the Irish Sea
ITA,
JEY, // Jersey: a British Crown dependency located in the English Channel
KAZ,
XKO,
LVA,
LIE,
@ -63,7 +65,6 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
),
ABB(
"Asia", setOf(
XAD,
AFG,
ARM,
AZE,
@ -76,9 +77,8 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
CCK, // Cocos (Keeling) Islands: an Australian external territory in the Indian Ocean
CHN,
CXR, // Christmas Island: an Australian external territory in the Indian Ocean
CYP,
GEO,
//HKG,
HKG,
IND,
IDN,
IRN,
@ -86,12 +86,11 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
ISR,
JPN,
JOR,
KAZ,
KWT,
KGZ,
LAO,
LBN,
//MAC,
MAC,
MYS,
MDV,
MNG,
@ -128,7 +127,6 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
BDI,
BEN,
BWA,
BVT, // Bouvet Island: an uninhabited territory of Norway in the South Atlantic
BFA,
BDI,
CPV,
@ -150,7 +148,6 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
GHA,
GIN,
GNB,
HMD, // Heard Island and McDonald Islands: an uninhabited Australian external territory in the southern Indian Ocean
KEN,
LSO,
LBR,
@ -209,6 +206,7 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
DMA,
DOM,
SLV,
GRL,
GRD,
GLP,
GTM,
@ -218,7 +216,7 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
MTQ,
MEX,
MSR,
//ANT,
ANT,
CUW,
NIC,
PAN,
@ -250,7 +248,6 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
GUY,
PRY,
PER,
SGS, // South Georgia and the South Sandwich Islands: a British overseas territory in the southern Atlantic Ocean
SUR,
URY,
VEN,
@ -287,8 +284,11 @@ enum class Group(override val fullName: String, override val children: Set<GeoLo
),
XXX(
"Other", setOf(
"Others", setOf(
ATA, // Antarctica: not in any other region
BVT, // Bouvet Island: an uninhabited territory of Norway in the South Atlantic
HMD, // Heard Island and McDonald Islands: an uninhabited Australian external territory in the southern Indian Ocean
SGS, // South Georgia and the South Sandwich Islands: a British overseas territory in the southern Atlantic Ocean
)
),

View File

@ -6,8 +6,7 @@ enum class World(override val fullName: String, override val children: Set<GeoLo
WWW(
"World", setOf(
EEE, ABB, FFF, NNN, SRR, UUU, Country.ATA,
EEE, ABB, FFF, NNN, SRR, UUU, XXX
)
);

View File

@ -1,15 +1,13 @@
package net.helcel.beans.svg
import android.content.Context
import android.content.SharedPreferences
import androidx.preference.PreferenceManager
import com.caverock.androidsvg.SVG
import net.helcel.beans.R
class SVGWrapper(ctx: Context) {
private val sharedPreferences: SharedPreferences =
PreferenceManager.getDefaultSharedPreferences(ctx)
val sharedPreferences = PreferenceManager.getDefaultSharedPreferences(ctx)
private val svgFile = when (sharedPreferences.getString(
ctx.getString(R.string.key_projection),
ctx.getString(R.string.mercator)

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Beans</string>
<string name="app_version">1.0a</string>
<string name="app_version">1.0</string>
<string name="action_settings">Settings</string>
<string name="action_stat">Stats</string>
<string name="action_edit">Edit</string>

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 '8.8.0' apply false
id 'com.android.library' version '8.8.0' apply false
id 'org.jetbrains.kotlin.android' version '2.1.0' apply false
id 'com.android.application' version '8.3.1' apply false
id 'com.android.library' version '8.3.1' apply false
id 'org.jetbrains.kotlin.android' version '1.9.23' apply false
}

View File

@ -1,21 +0,0 @@
{
"uniqueId": "org.gadm:data",
"developers": [
{
"organisationUrl": "https://gadm.org/index.html",
"name": "GADM"
}
],
"artifactVersion": "4.1",
"description": "GADM provides maps and spatial data for all countries and their sub-divisions.",
"scm": {
"connection": "scm:git@github.com:mikepenz/MaterialDrawer.git",
"url": "https://github.com/mikepenz/MaterialDrawer",
"developerConnection": "scm:git@github.com:mikepenz/MaterialDrawer.git"
},
"name": "GADM maps and data",
"website": "https://gadm.org/index.html",
"licenses": [
"0151ac7b561a385c536ad4c94532e60b"
]
}

View File

@ -1,6 +0,0 @@
{
"content": "<b>The data are freely available for academic use and other non-commercial use. Redistribution or commercial use is not allowed without prior permission.</b>\n\nUsing the data to create maps for publishing of academic research articles is allowed. Thus you can use the maps you made with GADM data for figures in articles published by PLoS, Springer Nature, Elsevier, MDPI, etc. You are allowed (but not required) to publish these articles (and the maps they contain) under an open license such as CC-BY as is the case with PLoS journals and may be the case with other open access articles. <b>Data for the following countries is covered by a a different license</b> <b>Austria</b>: Creative Commons Attribution-ShareAlike 2.0 (source: Government of Ausria)",
"hash": "0151ac7b561a385c536ad4c94532e60b",
"url": "https://gadm.org/license.html",
"name": "GADM license"
}

View File

@ -63,8 +63,8 @@ const formatStr = (str)=> str.replace(/(?<!\b\w\u00E0-\u00FC)\B[A-Z\u00C0-\u00DC
return ', ';
} else {
return ' ' + match;
}}).replace("ofthe "," of the ").replace("dela ", " de la ").replace("delos ", " de los ").replace("áD","á D").replace("eÁ","e Á")
.replace("ed'","e d'").replace("leof ","le of ").replace("dde ","d de ").replace("iode ","io de ").replace("àde ","à de ")
}}).replace("ofthe "," of the ").replace("dela ", " de la ").replace("delos ", " de los ").replace("áD","á D")
.replace("Côted'","Côte d'").replace("leof ","le of ").replace("dde ","d de ").replace("iode ","io de ").replace("àde ","à de ")
.replace("yof ","y of ").replace("Andrésy ","Andrés y")
.replace("aand ","a and ").replace("iand ", "i and ").replace("tsand ","ts and ").replace("onand ","on and ").replace("reand ", "re and ")
.replace("odel ","o del ").replace("adel ", "a del ").replace("ndel ","n del ").replace("zdel ","z del ").replace("falde ", "fal de ").replace("casdel ","cas del ")
@ -76,11 +76,6 @@ const formatStr = (str)=> str.replace(/(?<!\b\w\u00E0-\u00FC)\B[A-Z\u00C0-\u00DC
.replace("Valledel ","Valle del ").replace("Valde ","Val de ").replace("Îlesdu ","Îles du ")
.replace("sÉ","s É").replace("áO","á O").replace("N C Tof ","NCT of ").replace("N A","NA")
.replace("Nortede ", "Norte de ")
.replace("Pinardel ", "Pinar del ")
.replace("Greeceand", "Greece and the Ionian")
.replace("Vientiane", "Vientiane Province")
.replace("Vientiane Province[prefecture]", "Vientiane Prefecture")
.replace("Valduz", "Vaduz")
.trim()
const parse0 = (country) => {

Binary file not shown.

View File

@ -1,7 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=7a00d51fb93147819aab76024feece20b6b84e420694101f276be952e08bef03
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

6
gradlew vendored
View File

@ -15,8 +15,6 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
# SPDX-License-Identifier: Apache-2.0
#
##############################################################################
#
@ -57,7 +55,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.
@ -86,7 +84,7 @@ done
# shellcheck disable=SC2034
APP_BASE_NAME=${0##*/}
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD=maximum

2
gradlew.bat vendored
View File

@ -13,8 +13,6 @@
@rem See the License for the specific language governing permissions and
@rem limitations under the License.
@rem
@rem SPDX-License-Identifier: Apache-2.0
@rem
@if "%DEBUG%"=="" @echo off
@rem ##########################################################################

View File

@ -2,10 +2,10 @@ Beans is a scratchmap of the world for Android.
Keep track of your discovery of the world on a colorful visual map.
* Color a map of places based on custom labels
* Country/State based coloring
* Single/Multi color modes
* Different map projections available
* Small & Fast
* Statistics (WIP)
* 100% Free and Open Source software, with no proprietary dependencies
Color a map of places based on custom labels
Country/State based coloring
Single/Multi color modes
Different map projections available
Small & Fast
Statistics (WIP)
100% Free and Open Source software, with no proprietary dependencies

View File

@ -1,8 +1,8 @@
{
"dependencies": {
"@turf/area": "^7.0.0",
"@turf/turf": "^7.0.0",
"jsdom": "^26.0.0",
"@turf/area": "^6.5.0",
"@turf/turf": "^6.5.0",
"jsdom": "^24.0.0",
"mapshaper": "^0.6.79"
},
"type": "module"

6095
yarn.lock

File diff suppressed because it is too large Load Diff