From b03cbcf4571912bc9ebb15688c45232c1e1400f0 Mon Sep 17 00:00:00 2001 From: soraefir Date: Wed, 7 Feb 2024 16:21:37 +0100 Subject: [PATCH 1/2] Refactoring , editactivity and state level added --- app/build.gradle | 5 +- app/src/main/AndroidManifest.xml | 8 + .../helcel/beendroid/activity/EditActivity.kt | 30 + .../beendroid/activity/FoldingListAdapter.kt | 44 +- .../helcel/beendroid/activity/MainActivity.kt | 81 +-- .../beendroid/activity/SettingsActivity.kt | 10 +- .../activity/{ => fragment}/AboutFragment.kt | 2 +- .../{ => fragment}/LicenseFragment.kt | 2 +- .../{ => fragment}/SettingsFragment.kt | 2 +- .../net/helcel/beendroid/countries/Country.kt | 514 +++++++++--------- .../net/helcel/beendroid/countries/Group.kt | 2 +- .../net/helcel/beendroid/countries/State.kt | 133 ++++- .../net/helcel/beendroid/countries/Visited.kt | 9 +- .../java/net/helcel/beendroid/helper/Theme.kt | 13 + .../net/helcel/beendroid/svg/PSVGWrapper.kt | 2 +- .../main/res/drawable/{info.xml => about.xml} | 0 .../drawable/{checklist.xml => licenses.xml} | 0 app/src/main/res/layout/activity_edit.xml | 22 + app/src/main/res/layout/activity_main.xml | 26 +- app/src/main/res/layout/activity_settings.xml | 1 - app/src/main/res/layout/fragment_about.xml | 2 +- app/src/main/res/layout/fragment_license.xml | 2 +- app/src/main/res/layout/item_list.xml | 45 +- app/src/main/res/menu/menu_main.xml | 1 - app/src/main/res/values-night/themes.xml | 9 - app/src/main/res/values/themes.xml | 9 +- app/src/main/res/xml/fragment_settings.xml | 4 +- gradle.properties | 1 + 28 files changed, 574 insertions(+), 405 deletions(-) create mode 100644 app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt rename app/src/main/java/net/helcel/beendroid/activity/{ => fragment}/AboutFragment.kt (94%) rename app/src/main/java/net/helcel/beendroid/activity/{ => fragment}/LicenseFragment.kt (96%) rename app/src/main/java/net/helcel/beendroid/activity/{ => fragment}/SettingsFragment.kt (98%) create mode 100644 app/src/main/java/net/helcel/beendroid/helper/Theme.kt rename app/src/main/res/drawable/{info.xml => about.xml} (100%) rename app/src/main/res/drawable/{checklist.xml => licenses.xml} (100%) create mode 100644 app/src/main/res/layout/activity_edit.xml delete mode 100644 app/src/main/res/values-night/themes.xml diff --git a/app/build.gradle b/app/build.gradle index 5988d60..216ffc0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -44,13 +44,14 @@ dependencies { implementation 'androidx.navigation:navigation-fragment-ktx:2.7.6' implementation 'androidx.navigation:navigation-ui-ktx:2.7.6' implementation 'androidx.core:core-ktx:1.12.0' - implementation "androidx.preference:preference-ktx:1.2.1" + implementation 'androidx.preference:preference-ktx:1.2.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' implementation 'com.caverock:androidsvg-aar:1.4' - implementation "com.mikepenz:aboutlibraries:10.10.0" + implementation 'com.github.chrisbanes:PhotoView:2.0.0' + implementation 'com.mikepenz:aboutlibraries:10.10.0' } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e6296b5..41249f9 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,6 +14,7 @@ tools:targetApi="31" tools:replace="android:allowBackup" > + @@ -22,6 +23,13 @@ + + + + + diff --git a/app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt b/app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt new file mode 100644 index 0000000..3c7c9dd --- /dev/null +++ b/app/src/main/java/net/helcel/beendroid/activity/EditActivity.kt @@ -0,0 +1,30 @@ +package net.helcel.beendroid.activity + +import android.os.Bundle +import androidx.appcompat.app.AppCompatActivity +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import net.helcel.beendroid.R +import net.helcel.beendroid.countries.Visited +import net.helcel.beendroid.countries.World + + +class EditActivity : AppCompatActivity() { + + private lateinit var list : RecyclerView + private lateinit var visited : Visited + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + + setContentView(R.layout.activity_edit) + + visited = Visited(this) + visited.load() + + list = findViewById(R.id.list) + list.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) + list.adapter = FoldingListAdapter(this, World.WWW.children, visited) { } + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt b/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt index 379bbb2..6d9ebae 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/FoldingListAdapter.kt @@ -14,7 +14,6 @@ import androidx.recyclerview.widget.RecyclerView import com.google.android.material.checkbox.MaterialCheckBox import net.helcel.beendroid.R import net.helcel.beendroid.countries.GeoLoc -import net.helcel.beendroid.countries.LocType import net.helcel.beendroid.countries.Visited import java.util.* @@ -61,6 +60,7 @@ class FoldingListAdapter( private val visited: Visited, ) : RecyclerView.ViewHolder(itemView) { private val textView: TextView = itemView.findViewById(R.id.textView) + private val progressView: TextView = itemView.findViewById(R.id.progressView) private val checkBox: MaterialCheckBox = itemView.findViewById(R.id.checkBox) private val subItemView: View = itemView.findViewById(R.id.sub_item) private val list: RecyclerView = itemView.findViewById(R.id.list_list) @@ -72,27 +72,37 @@ class FoldingListAdapter( subItemView.visibility = if (el.second) View.VISIBLE else View.GONE textView.text = el.first.fullName - if (el.first.type == LocType.GROUP) { - textView.setTypeface(null, Typeface.BOLD) - - val colorGrayTyped = TypedValue() - ctx.theme.resolveAttribute(android.R.attr.panelColorBackground, colorGrayTyped, true) - val color = Color.valueOf(colorGrayTyped.data) - textView.setBackgroundColor(Color.valueOf(color.red(), color.green(), color.blue(), 0.5f).toArgb()) - list.adapter = FoldingListAdapter(ctx, el.first.children,visited, parentLambda) - textView.parent.parent.requestChildFocus(textView,textView) - - } else { + if (el.first.children.isEmpty()) { val colorBackgroundTyped = TypedValue() - ctx.theme.resolveAttribute(android.R.attr.colorBackground, colorBackgroundTyped, true) + ctx.theme.resolveAttribute( + android.R.attr.colorBackground, + colorBackgroundTyped, + true + ) textView.backgroundTintList = null textView.background = ColorDrawable(colorBackgroundTyped.data) textView.isActivated = false + }else { + textView.setTypeface(null, Typeface.BOLD) + progressView.text = "${(el.first.children.map { visited.visited(it) }.count { it })}/${el.first.children.size}" - val layoutParam = checkBox.layoutParams - layoutParam.width = 125 - checkBox.layoutParams = layoutParam - checkBox.visibility = View.VISIBLE + val colorGrayTyped = TypedValue() + ctx.theme.resolveAttribute( + android.R.attr.panelColorBackground, + colorGrayTyped, + true + ) + val color = Color.valueOf(colorGrayTyped.data) + textView.setBackgroundColor( + Color.valueOf( + color.red(), + color.green(), + color.blue(), + 0.5f + ).toArgb() + ) + list.adapter = FoldingListAdapter(ctx, el.first.children, visited, parentLambda) + textView.parent.parent.requestChildFocus(textView, textView) } checkBox.checkedState = if (visited.visited(el.first)) MaterialCheckBox.STATE_CHECKED diff --git a/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt b/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt index 5bb5699..d7e8978 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/MainActivity.kt @@ -1,53 +1,50 @@ package net.helcel.beendroid.activity -import kotlinx.coroutines.* import android.content.Intent import android.content.SharedPreferences -import android.graphics.Bitmap -import android.graphics.Canvas import android.graphics.drawable.ColorDrawable +import android.graphics.drawable.PictureDrawable import android.os.Bundle -import android.util.TypedValue import android.view.Menu import android.view.MenuInflater import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity import androidx.core.view.MenuProvider import androidx.preference.PreferenceManager -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView import com.caverock.androidsvg.RenderOptions -import com.caverock.androidsvg.SVGImageView +import com.github.chrisbanes.photoview.PhotoView +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import net.helcel.beendroid.R +import net.helcel.beendroid.activity.fragment.SettingsFragment import net.helcel.beendroid.countries.Visited -import net.helcel.beendroid.countries.World + import net.helcel.beendroid.svg.CSSWrapper import net.helcel.beendroid.svg.PSVGWrapper +import net.helcel.beendroid.helper.* class MainActivity : AppCompatActivity() { private lateinit var sharedPreferences: SharedPreferences - private lateinit var map : SVGImageView - private lateinit var list : RecyclerView + private lateinit var photoView : PhotoView private lateinit var visited : Visited private lateinit var psvg : PSVGWrapper private lateinit var css : CSSWrapper - private var processor: ImageProcessor = ImageProcessor({ refreshMapCompute() },{ refreshMapDisplay(it) }) - - private val bitmap: Bitmap = Bitmap.createBitmap(1200,900, Bitmap.Config.ARGB_8888) - private val canvas = Canvas(bitmap) + override fun onActivityReenter(resultCode: Int, data: Intent?) { + super.onActivityReenter(resultCode, data) + refreshMap() + } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // Create action bar - val colorPrimaryTyped = TypedValue() - theme.resolveAttribute(android.R.attr.colorPrimary, colorPrimaryTyped, true) - supportActionBar?.setBackgroundDrawable(ColorDrawable(colorPrimaryTyped.data)) + supportActionBar?.setBackgroundDrawable(colorPrimary(this)) // Fetch shared preferences to restore app theme upon startup sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this) @@ -62,7 +59,7 @@ class MainActivity : AppCompatActivity() { override fun onMenuItemSelected(menuItem: MenuItem): Boolean { return when (menuItem.itemId) { R.id.action_edit -> { - // TODO: Enable editing selected countries + startActivity(Intent(this@MainActivity, EditActivity::class.java)) true } R.id.action_stats -> { @@ -92,47 +89,21 @@ class MainActivity : AppCompatActivity() { // Populate map from list of countries setContentView(R.layout.activity_main) - map = findViewById(R.id.map) - map.setImageBitmap(bitmap) - refreshMapDisplay(refreshMapCompute()) - // Populate list below the map - list = findViewById(R.id.list) - list.layoutManager = LinearLayoutManager(this, RecyclerView.VERTICAL, false) - list.adapter = FoldingListAdapter(this, World.WWW.children, visited) { processor.process() } + photoView = findViewById(R.id.photo_view) + photoView.minimumScale = 1f + photoView.maximumScale = 30f + + refreshMap() } - private fun refreshMapDisplay(css_value: String){ - // Set or reset background (replaces canvas.drawColor(0, 0, 0)) - val colorBackgroundTyped = TypedValue() - theme.resolveAttribute(android.R.attr.colorBackground, colorBackgroundTyped, true) - canvas.drawColor(colorBackgroundTyped.data) - - // Render all countries and visited ones - psvg.getFill().renderToCanvas(canvas, RenderOptions.create().css(css_value)) - - // Render all contours in the same color as the background to make them much clearer - psvg.getDraw().renderToCanvas(canvas) - } - - private fun refreshMapCompute() : String { - return css.get() - } - - - - class ImageProcessor(private val refreshMapCompute: ()->String, private val refreshMapDisplay: (String)->Unit) { - - private var currentJob : Job? = null - fun process() { - currentJob?.cancel() - currentJob = CoroutineScope(Dispatchers.Main).launch { - try { - refreshMapDisplay(refreshMapCompute()) - } catch (_: CancellationException) { - } - } + private fun refreshMap() { + val opt : RenderOptions = RenderOptions.create() + CoroutineScope(Dispatchers.IO).launch { + opt.css(css.get()) } + photoView.setImageLevel(1) + photoView.setImageDrawable(PictureDrawable(psvg.getFill().renderToPicture(opt))) } } \ No newline at end of file diff --git a/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt b/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt index e06fba4..4cd9ef4 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/SettingsActivity.kt @@ -1,11 +1,13 @@ package net.helcel.beendroid.activity -import android.graphics.drawable.ColorDrawable import android.os.Bundle -import android.util.TypedValue import android.view.MenuItem import androidx.appcompat.app.AppCompatActivity import net.helcel.beendroid.R +import net.helcel.beendroid.activity.fragment.AboutFragment +import net.helcel.beendroid.activity.fragment.LicenseFragment +import net.helcel.beendroid.activity.fragment.SettingsFragment +import net.helcel.beendroid.helper.* class SettingsActivity: AppCompatActivity() { @@ -16,9 +18,7 @@ class SettingsActivity: AppCompatActivity() { setContentView(R.layout.activity_settings) // Create action bar - val colorPrimaryTyped = TypedValue() - theme.resolveAttribute(android.R.attr.colorPrimary, colorPrimaryTyped, true) - supportActionBar?.setBackgroundDrawable(ColorDrawable(colorPrimaryTyped.data)) + supportActionBar?.setBackgroundDrawable(colorPrimary(this)) supportActionBar?.title = getString(R.string.action_settings) supportActionBar?.setDisplayHomeAsUpEnabled(true) diff --git a/app/src/main/java/net/helcel/beendroid/activity/AboutFragment.kt b/app/src/main/java/net/helcel/beendroid/activity/fragment/AboutFragment.kt similarity index 94% rename from app/src/main/java/net/helcel/beendroid/activity/AboutFragment.kt rename to app/src/main/java/net/helcel/beendroid/activity/fragment/AboutFragment.kt index 0001d9c..00ca0c0 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/AboutFragment.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/fragment/AboutFragment.kt @@ -1,4 +1,4 @@ -package net.helcel.beendroid.activity +package net.helcel.beendroid.activity.fragment import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/net/helcel/beendroid/activity/LicenseFragment.kt b/app/src/main/java/net/helcel/beendroid/activity/fragment/LicenseFragment.kt similarity index 96% rename from app/src/main/java/net/helcel/beendroid/activity/LicenseFragment.kt rename to app/src/main/java/net/helcel/beendroid/activity/fragment/LicenseFragment.kt index ee964e9..6043924 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/LicenseFragment.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/fragment/LicenseFragment.kt @@ -1,4 +1,4 @@ -package net.helcel.beendroid.activity +package net.helcel.beendroid.activity.fragment import android.os.Bundle import android.view.LayoutInflater diff --git a/app/src/main/java/net/helcel/beendroid/activity/SettingsFragment.kt b/app/src/main/java/net/helcel/beendroid/activity/fragment/SettingsFragment.kt similarity index 98% rename from app/src/main/java/net/helcel/beendroid/activity/SettingsFragment.kt rename to app/src/main/java/net/helcel/beendroid/activity/fragment/SettingsFragment.kt index 6378e15..4f7685f 100644 --- a/app/src/main/java/net/helcel/beendroid/activity/SettingsFragment.kt +++ b/app/src/main/java/net/helcel/beendroid/activity/fragment/SettingsFragment.kt @@ -1,4 +1,4 @@ -package net.helcel.beendroid.activity +package net.helcel.beendroid.activity.fragment import android.content.Context import android.os.Bundle diff --git a/app/src/main/java/net/helcel/beendroid/countries/Country.kt b/app/src/main/java/net/helcel/beendroid/countries/Country.kt index a6a4cdc..777278a 100644 --- a/app/src/main/java/net/helcel/beendroid/countries/Country.kt +++ b/app/src/main/java/net/helcel/beendroid/countries/Country.kt @@ -1,265 +1,267 @@ package net.helcel.beendroid.countries +import net.helcel.beendroid.countries.Country.* +import net.helcel.beendroid.countries.State.* -enum class Country(override val fullName: String, override val area : Int) : GeoLoc { - AFG("Afghanistan", 652864), - ALA("Åland Islands", 1580), - ALB("Albania", 28748), - DZA("Algeria", 2381741), - ASM("American Samoa", 199000), - AND("Andorra", 468765), - AGO("Angola", 1246700), - AIA("Anguilla", 96), - ATA("Antarctica", 14000000), - ATG("Antigua and Barbuda", 442), - ARG("Argentina", 2780400), - ARM("Armenia", 29743), - ABW("Aruba", 180), - AUS("Australia", 7692024), - AUT("Austria", 83879), - AZE("Azerbaijan", 86600), - BHS("Bahamas", 13878), - BHR("Bahrain", 778), - BGD("Bangladesh", 143998), - BRB("Barbados", 430), - BLR("Belarus", 207595), - BEL("Belgium", 30528), - BLZ("Belize", 22965), - BEN("Benin", 114763), - BMU("Bermuda", 54), - BTN("Bhutan", 38394), - BOL("Bolivia (Plurinational State of)", 1098581), - BES("Bonaire, Sint Eustatius and Saba", 294), - BIH("Bosnia and Herzegovina", 51209), - BWA("Botswana", 581730), - BVT("Bouvet Island", 49), - BRA("Brazil", 8515767), - IOT("British Indian Ocean Territory", 60), - BRN("Brunei Darussalam", 5765), - BGR("Bulgaria", 110994), - BFA("Burkina Faso", 274200), - BDI("Burundi", 27834), - CPV("Cabo Verde", 4033), - KHM("Cambodia", 181035), - CMR("Cameroon", 475442), - CAN("Canada", 9984670), - CYM("Cayman Islands", 264), - CAF("Central African Republic", 622436), - TCD("Chad", 1284000), - CHL("Chile", 756102), - CHN("China", 9596961), - CXR("Christmas Island", 135), - CCK("Cocos (Keeling) Islands", 14), - COL("Colombia", 1141748), - COM("Comoros", 2235), - COG("Congo", 342000), - COD("Congo, Democratic Republic of the", 2344858), - COK("Cook Islands", 237), - CRI("Costa Rica", 51100), - CIV("Côte d'Ivoire", 322463), - HRV("Croatia", 56594), - CUB("Cuba", 109884), - CUW("Curaçao", 444), - CYP("Cyprus", 9251), - CZE("Czech Republic", 78865), - DNK("Denmark", 42933), - DJI("Djibouti", 23200), - DMA("Dominica", 750), - ECU("Ecuador", 276841), - EGY("Egypt", 1002450), - SLV("El Salvador", 21041), - GNQ("Equatorial Guinea", 28051), - ERI("Eritrea", 117600), - EST("Estonia", 45227), - SWZ("Eswatini", 17364), - ETH("Ethiopia", 1104300), - FLK("Falkland Islands (Malvinas)", 12173), - FRO("Faroe Islands", 1399), - FJI("Fiji", 18333), - FIN("Finland", 338424), - FRA("France", 643801), - GUF("French Guiana", 83534), - PYF("French Polynesia", 4167), - ATF("French Southern Territories", 7747), - GAB("Gabon", 267667), - GMB("Gambia", 11295), - GEO("Georgia", 69700), - DEU("Germany", 357408), - GHA("Ghana", 238533), - GIB("Gibraltar", 6), - GRC("Greece", 131957), - GRL("Greenland", 2166086), - GRD("Grenada", 344), - GLP("Guadeloupe", 1628), - GUM("Guam", 541), - GTM("Guatemala", 108889), - GGY("Guernsey", 78), - GIN("Guinea", 245857), - GNB("Guinea-Bissau", 36125), - GUY("Guyana", 214969), - HTI("Haiti", 27750), - HMD("Heard Island and McDonald Islands", 412), - VAT("Holy See (Vatican)", 1), - HND("Honduras", 112492), - HKG("Hong Kong", 1104), - HUN("Hungary", 93028), - ISL("Iceland", 102775), - IND("India", 3287263), - IDN("Indonesia", 1904569), - IRN("Iran (Islamic Republic of)", 1648195), - IRQ("Iraq", 438317), - IRL("Ireland", 70273), - IMN("Isle of Man", 572), - ISR("Israel", 22072), - ITA("Italy", 301340), - JAM("Jamaica", 10991), - JPN("Japan", 377915), - JEY("Jersey", 118), - JOR("Jordan", 89342), - KAZ("Kazakhstan", 2724900), - KEN("Kenya", 580367), - KIR("Kiribati", 811), - PRK("Korea (Democratic People's Republic of)", 120538), - KOR("Korea, Republic of", 100210), - XKO("Kosovo", 10887), - KWT("Kuwait", 17818), - KGZ("Kyrgyzstan", 199900), - LAO("Lao People's Democratic Republic", 236800), - LVA("Latvia", 64559), - LBN("Lebanon", 10452), - LSO("Lesotho", 30355), - LBR("Liberia", 111369), - LBY("Libya", 1759540), - LIE("Liechtenstein", 160), - LTU("Lithuania", 65300), - LUX("Luxembourg", 2586), - MAC("Macao", 32), - MDG("Madagascar", 587041), - MWI("Malawi", 118484), - MYS("Malaysia", 330803), - MDV("Maldives", 300), - MLI("Mali", 1240192), - MLT("Malta", 316), - MHL("Marshall Islands", 181), - MTQ("Martinique", 1128), - MRT("Mauritania", 1030700), - MUS("Mauritius", 2040), - MYT("Mayotte", 374), - MEX("Mexico", 1964375), - FSM("Micronesia (Federated States of)", 702), - MDA("Moldova, Republic of", 33846), - MCO("Monaco", 2), - MNG("Mongolia", 1564116), - MNE("Montenegro", 13812), - MSR("Montserrat", 102), - MAR("Morocco", 446550), - MOZ("Mozambique", 799380), - MMR("Myanmar", 676578), - NAM("Namibia", 824292), - NRU("Nauru", 21), - NPL("Nepal", 147181), - NLD("Netherlands", 41526), - NCL("New Caledonia", 18575), - NZL("New Zealand", 270467), - NIC("Nicaragua", 130373), - NER("Niger", 1267000), - NGA("Nigeria", 923768), - NIU("Niue", 261), - NFK("Norfolk Island", 35), - MNP("Northern Mariana Islands", 457), - NOR("Norway", 385207), - OMN("Oman", 309500), - PAK("Pakistan", 881913), - PLW("Palau", 459), - PSE("Palestine, State of", 6220), - PAN("Panama", 75417), - PNG("Papua New Guinea", 462840), - PRY("Paraguay", 406752), - PER("Peru", 1285216), - PHL("Philippines", 300000), - PCN("Pitcairn", 47), - POL("Poland", 312696), - PRT("Portugal", 92090), - PRI("Puerto Rico", 9104), - QAT("Qatar", 11586), - MKD("Republic of North Macedonia", 25713), - ROU("Romania", 238391), - RUS("Russian Federation", 17125242), - RWA("Rwanda", 26338), - REU("Réunion", 2511), - BLM("Saint Barthélemy", 21), - SHN("Saint Helena, Ascension and Tristan da Cunha", 394), - KNA("Saint Kitts and Nevis", 270), - LCA("Saint Lucia", 617), - MAF("Saint Martin (French part)", 53), - SPM("Saint Pierre and Miquelon", 242), - VCT("Saint Vincent and the Grenadines", 389), - WSM("Samoa", 2831), - SMR("San Marino", 61), - STP("Sao Tome and Principe", 1001), - SAU("Saudi Arabia", 2149690), - SEN("Senegal", 196722), - SRB("Serbia", 88361), - SYC("Seychelles", 459), - SLE("Sierra Leone", 71740), - SGP("Singapore", 725), - SXM("Sint Maarten (Dutch part)", 34), - SVK("Slovakia", 49036), - SVN("Slovenia", 20273), - SLB("Solomon Islands", 28896), - SOM("Somalia", 637657), - ZAF("South Africa", 1221037), - SGS("South Georgia and the South Sandwich Islands", 3903), - SSD("South Sudan", 619745), - ESP("Spain", 505990), - LKA("Sri Lanka", 65610), - SDN("Sudan", 1839542), - SUR("Suriname", 163820), - SJM("Svalbard and Jan Mayen", 61399), - SWE("Sweden", 450295), - CHE("Switzerland", 41284), - SYR("Syrian Arab Republic", 185180), - TWN("Taiwan, Province of China", 36193), - TJK("Tajikistan", 143100), - TZA("Tanzania, United Republic of", 947300), - THA("Thailand", 513120), - TLS("Timor-Leste", 14919), - TGO("Togo", 56785), - TKL("Tokelau", 12), - TON("Tonga", 747), - TTO("Trinidad and Tobago", 5128), - TUN("Tunisia", 163610), - TUR("Turkey", 783562), - TKM("Turkmenistan", 488100), - TCA("Turks and Caicos Islands", 948), - TUV("Tuvalu", 26), - UGA("Uganda", 241551), - UKR("Ukraine", 603700), - ARE("United Arab Emirates", 83600), - GBR("United Kingdom of Great Britain and Northern Ireland", 242910), - USA("United States of America", 9833517), - UMI("United States Minor Outlying Islands", 34), - URY("Uruguay", 176215), - UZB("Uzbekistan", 447400), - VUT("Vanuatu", 12189), - VEN("Venezuela (Bolivarian Republic of)", 912050), - VNM("Viet Nam", 331212), - VGB("Virgin Islands (British", 153), - VIR("Virgin Islands (U.S.)", 347), - WLF("Wallis and Futuna", 142), - ESH("Western Sahara", 266000), - YEM("Yemen", 527968), - ZMB("Zambia", 752612), - ZWE("Zimbabwe", 390757), - DOM("Dominican Republic", 48671), - ANT("Netherlands Antilles", 800), - XAD("Akrotiri and Dhekelia", 254), - XCL("Clipperton Island", 6), - ZNC("Nothern Cyprus", 3355), +enum class Country(override val fullName: String, override val area : Int, override val children : List) : GeoLoc { + AFG("Afghanistan", 652864, emptyList()), + ALA("Åland Islands", 1580, emptyList()), + ALB("Albania", 28748, emptyList()), + DZA("Algeria", 2381741, emptyList()), + ASM("American Samoa", 199000, emptyList()), + AND("Andorra", 468765, emptyList()), + AGO("Angola", 1246700, emptyList()), + AIA("Anguilla", 96, emptyList()), + ATA("Antarctica", 14000000, emptyList()), + ATG("Antigua and Barbuda", 442, emptyList()), + ARG("Argentina", 2780400, emptyList()), + ARM("Armenia", 29743, emptyList()), + ABW("Aruba", 180, emptyList()), + AUS("Australia", 7692024, emptyList()), + AUT("Austria", 83879, emptyList()), + AZE("Azerbaijan", 86600, emptyList()), + BHS("Bahamas", 13878, emptyList()), + BHR("Bahrain", 778, emptyList()), + BGD("Bangladesh", 143998, emptyList()), + BRB("Barbados", 430, emptyList()), + BLR("Belarus", 207595, emptyList()), + BEL("Belgium", 30528, emptyList()), + BLZ("Belize", 22965, emptyList()), + BEN("Benin", 114763, emptyList()), + BMU("Bermuda", 54, emptyList()), + BTN("Bhutan", 38394, emptyList()), + BOL("Bolivia (Plurinational State of)", 1098581, emptyList()), + BES("Bonaire, Sint Eustatius and Saba", 294, emptyList()), + BIH("Bosnia and Herzegovina", 51209, emptyList()), + BWA("Botswana", 581730, emptyList()), + BVT("Bouvet Island", 49, emptyList()), + BRA("Brazil", 8515767, emptyList()), + IOT("British Indian Ocean Territory", 60, emptyList()), + BRN("Brunei Darussalam", 5765, emptyList()), + BGR("Bulgaria", 110994, emptyList()), + BFA("Burkina Faso", 274200, emptyList()), + BDI("Burundi", 27834, emptyList()), + CPV("Cabo Verde", 4033, emptyList()), + KHM("Cambodia", 181035, emptyList()), + CMR("Cameroon", 475442, emptyList()), + CAN("Canada", 9984670, emptyList()), + CYM("Cayman Islands", 264, emptyList()), + CAF("Central African Republic", 622436, emptyList()), + TCD("Chad", 1284000, emptyList()), + CHL("Chile", 756102, emptyList()), + CHN("China", 9596961, emptyList()), + CXR("Christmas Island", 135, emptyList()), + CCK("Cocos (Keeling) Islands", 14, emptyList()), + COL("Colombia", 1141748, emptyList()), + COM("Comoros", 2235, emptyList()), + COG("Congo", 342000, emptyList()), + COD("Congo, Democratic Republic of the", 2344858, emptyList()), + COK("Cook Islands", 237, emptyList()), + CRI("Costa Rica", 51100, emptyList()), + CIV("Côte d'Ivoire", 322463, emptyList()), + HRV("Croatia", 56594, emptyList()), + CUB("Cuba", 109884, emptyList()), + CUW("Curaçao", 444, emptyList()), + CYP("Cyprus", 9251, emptyList()), + CZE("Czech Republic", 78865, emptyList()), + DNK("Denmark", 42933, emptyList()), + DJI("Djibouti", 23200, emptyList()), + DMA("Dominica", 750, emptyList()), + ECU("Ecuador", 276841, emptyList()), + EGY("Egypt", 1002450, emptyList()), + SLV("El Salvador", 21041, emptyList()), + GNQ("Equatorial Guinea", 28051, emptyList()), + ERI("Eritrea", 117600, emptyList()), + EST("Estonia", 45227, emptyList()), + SWZ("Eswatini", 17364, emptyList()), + ETH("Ethiopia", 1104300, emptyList()), + FLK("Falkland Islands (Malvinas)", 12173, emptyList()), + FRO("Faroe Islands", 1399, emptyList()), + FJI("Fiji", 18333, emptyList()), + FIN("Finland", 338424, emptyList()), + FRA("France", 643801, emptyList()), + GUF("French Guiana", 83534, emptyList()), + PYF("French Polynesia", 4167, emptyList()), + ATF("French Southern Territories", 7747, emptyList()), + GAB("Gabon", 267667, emptyList()), + GMB("Gambia", 11295, emptyList()), + GEO("Georgia", 69700, emptyList()), + DEU("Germany", 357408, listOf(DEU_BY, DEU_BE, DEU_BB, DEU_HB, DEU_HH, DEU_HE, DEU_MV, DEU_NI, DEU_NW, DEU_RP, DEU_SL, DEU_SN, DEU_ST, DEU_SH, DEU_TH)), + GHA("Ghana", 238533, emptyList()), + GIB("Gibraltar", 6, emptyList()), + GRC("Greece", 131957, emptyList()), + GRL("Greenland", 2166086, emptyList()), + GRD("Grenada", 344, emptyList()), + GLP("Guadeloupe", 1628, emptyList()), + GUM("Guam", 541, emptyList()), + GTM("Guatemala", 108889, emptyList()), + GGY("Guernsey", 78, emptyList()), + GIN("Guinea", 245857, emptyList()), + GNB("Guinea-Bissau", 36125, emptyList()), + GUY("Guyana", 214969, emptyList()), + HTI("Haiti", 27750, emptyList()), + HMD("Heard Island and McDonald Islands", 412, emptyList()), + VAT("Holy See (Vatican)", 1, emptyList()), + HND("Honduras", 112492, emptyList()), + HKG("Hong Kong", 1104, emptyList()), + HUN("Hungary", 93028, emptyList()), + ISL("Iceland", 102775, emptyList()), + IND("India", 3287263, emptyList()), + IDN("Indonesia", 1904569, emptyList()), + IRN("Iran (Islamic Republic of)", 1648195, emptyList()), + IRQ("Iraq", 438317, emptyList()), + IRL("Ireland", 70273, emptyList()), + IMN("Isle of Man", 572, emptyList()), + ISR("Israel", 22072, emptyList()), + ITA("Italy", 301340, emptyList()), + JAM("Jamaica", 10991, emptyList()), + JPN("Japan", 377915, listOf(JPN_HO, JPN_AO, JPN_IW, JPN_MI, JPN_AK, JPN_YA, JPN_FU, JPN_IB, JPN_TO, JPN_GU, JPN_SA, JPN_CH, JPN_TY, JPN_KA, JPN_NI, JPN_TOY, JPN_ISH, JPN_FK, JPN_YAM, JPN_NG, JPN_GI, JPN_SHI, JPN_AI, JPN_ME, JPN_SG, JPN_KY, JPN_OS, JPN_HY, JPN_NA, JPN_WK, JPN_TO, JPN_SM, JPN_OK, JPN_HR, JPN_YG, JPN_TS, JPN_KG, JPN_EH, JPN_KC, JPN_FK, JPN_SG, JPN_NG, JPN_KM, JPN_OT, JPN_MY, JPN_KG, JPN_OK)), + JEY("Jersey", 118, emptyList()), + JOR("Jordan", 89342, emptyList()), + KAZ("Kazakhstan", 2724900, emptyList()), + KEN("Kenya", 580367, emptyList()), + KIR("Kiribati", 811, emptyList()), + PRK("Korea (Democratic People's Republic of)", 120538, emptyList()), + KOR("Korea, Republic of", 100210, emptyList()), + XKO("Kosovo", 10887, emptyList()), + KWT("Kuwait", 17818, emptyList()), + KGZ("Kyrgyzstan", 199900, emptyList()), + LAO("Lao People's Democratic Republic", 236800, emptyList()), + LVA("Latvia", 64559, emptyList()), + LBN("Lebanon", 10452, emptyList()), + LSO("Lesotho", 30355, emptyList()), + LBR("Liberia", 111369, emptyList()), + LBY("Libya", 1759540, emptyList()), + LIE("Liechtenstein", 160, emptyList()), + LTU("Lithuania", 65300, emptyList()), + LUX("Luxembourg", 2586, emptyList()), + MAC("Macao", 32, emptyList()), + MDG("Madagascar", 587041, emptyList()), + MWI("Malawi", 118484, emptyList()), + MYS("Malaysia", 330803, emptyList()), + MDV("Maldives", 300, emptyList()), + MLI("Mali", 1240192, emptyList()), + MLT("Malta", 316, emptyList()), + MHL("Marshall Islands", 181, emptyList()), + MTQ("Martinique", 1128, emptyList()), + MRT("Mauritania", 1030700, emptyList()), + MUS("Mauritius", 2040, emptyList()), + MYT("Mayotte", 374, emptyList()), + MEX("Mexico", 1964375, emptyList()), + FSM("Micronesia (Federated States of)", 702, emptyList()), + MDA("Moldova, Republic of", 33846, emptyList()), + MCO("Monaco", 2, emptyList()), + MNG("Mongolia", 1564116, emptyList()), + MNE("Montenegro", 13812, emptyList()), + MSR("Montserrat", 102, emptyList()), + MAR("Morocco", 446550, emptyList()), + MOZ("Mozambique", 799380, emptyList()), + MMR("Myanmar", 676578, emptyList()), + NAM("Namibia", 824292, emptyList()), + NRU("Nauru", 21, emptyList()), + NPL("Nepal", 147181, emptyList()), + NLD("Netherlands", 41526, emptyList()), + NCL("New Caledonia", 18575, emptyList()), + NZL("New Zealand", 270467, emptyList()), + NIC("Nicaragua", 130373, emptyList()), + NER("Niger", 1267000, emptyList()), + NGA("Nigeria", 923768, emptyList()), + NIU("Niue", 261, emptyList()), + NFK("Norfolk Island", 35, emptyList()), + MNP("Northern Mariana Islands", 457, emptyList()), + NOR("Norway", 385207, emptyList()), + OMN("Oman", 309500, emptyList()), + PAK("Pakistan", 881913, emptyList()), + PLW("Palau", 459, emptyList()), + PSE("Palestine, State of", 6220, emptyList()), + PAN("Panama", 75417, emptyList()), + PNG("Papua New Guinea", 462840, emptyList()), + PRY("Paraguay", 406752, emptyList()), + PER("Peru", 1285216, emptyList()), + PHL("Philippines", 300000, emptyList()), + PCN("Pitcairn", 47, emptyList()), + POL("Poland", 312696, emptyList()), + PRT("Portugal", 92090, emptyList()), + PRI("Puerto Rico", 9104, emptyList()), + QAT("Qatar", 11586, emptyList()), + MKD("Republic of North Macedonia", 25713, emptyList()), + ROU("Romania", 238391, emptyList()), + RUS("Russian Federation", 17125242, emptyList()), + RWA("Rwanda", 26338, emptyList()), + REU("Réunion", 2511, emptyList()), + BLM("Saint Barthélemy", 21, emptyList()), + SHN("Saint Helena, Ascension and Tristan da Cunha", 394, emptyList()), + KNA("Saint Kitts and Nevis", 270, emptyList()), + LCA("Saint Lucia", 617, emptyList()), + MAF("Saint Martin (French part)", 53, emptyList()), + SPM("Saint Pierre and Miquelon", 242, emptyList()), + VCT("Saint Vincent and the Grenadines", 389, emptyList()), + WSM("Samoa", 2831, emptyList()), + SMR("San Marino", 61, emptyList()), + STP("Sao Tome and Principe", 1001, emptyList()), + SAU("Saudi Arabia", 2149690, emptyList()), + SEN("Senegal", 196722, emptyList()), + SRB("Serbia", 88361, emptyList()), + SYC("Seychelles", 459, emptyList()), + SLE("Sierra Leone", 71740, emptyList()), + SGP("Singapore", 725, emptyList()), + SXM("Sint Maarten (Dutch part)", 34, emptyList()), + SVK("Slovakia", 49036, emptyList()), + SVN("Slovenia", 20273, emptyList()), + SLB("Solomon Islands", 28896, emptyList()), + SOM("Somalia", 637657, emptyList()), + ZAF("South Africa", 1221037, emptyList()), + SGS("South Georgia and the South Sandwich Islands", 3903, emptyList()), + SSD("South Sudan", 619745, emptyList()), + ESP("Spain", 505990, emptyList()), + LKA("Sri Lanka", 65610, emptyList()), + SDN("Sudan", 1839542, emptyList()), + SUR("Suriname", 163820, emptyList()), + SJM("Svalbard and Jan Mayen", 61399, emptyList()), + SWE("Sweden", 450295, emptyList()), + CHE("Switzerland", 41284, listOf(CHE_AG, CHE_AR, CHE_AI, CHE_BL, CHE_BS, CHE_BE, CHE_FR, CHE_GE, CHE_GL, CHE_GR, CHE_JU, CHE_LU, CHE_NE, CHE_NW, CHE_OW, CHE_SH, CHE_SZ, CHE_SO, CHE_SG, CHE_TG, CHE_TI, CHE_UR, CHE_VS, CHE_VD, CHE_ZG, CHE_ZH)), + SYR("Syrian Arab Republic", 185180, emptyList()), + TWN("Taiwan, Province of China", 36193, emptyList()), + TJK("Tajikistan", 143100, emptyList()), + TZA("Tanzania, United Republic of", 947300, emptyList()), + THA("Thailand", 513120, emptyList()), + TLS("Timor-Leste", 14919, emptyList()), + TGO("Togo", 56785, emptyList()), + TKL("Tokelau", 12, emptyList()), + TON("Tonga", 747, emptyList()), + TTO("Trinidad and Tobago", 5128, emptyList()), + TUN("Tunisia", 163610, emptyList()), + TUR("Turkey", 783562, emptyList()), + TKM("Turkmenistan", 488100, emptyList()), + TCA("Turks and Caicos Islands", 948, emptyList()), + TUV("Tuvalu", 26, emptyList()), + UGA("Uganda", 241551, emptyList()), + UKR("Ukraine", 603700, emptyList()), + ARE("United Arab Emirates", 83600, emptyList()), + GBR("United Kingdom of Great Britain and Northern Ireland", 242910, emptyList()), + USA("United States of America", 9833517, emptyList()), + UMI("United States Minor Outlying Islands", 34, emptyList()), + URY("Uruguay", 176215, emptyList()), + UZB("Uzbekistan", 447400, emptyList()), + VUT("Vanuatu", 12189, emptyList()), + VEN("Venezuela (Bolivarian Republic of)", 912050, emptyList()), + VNM("Viet Nam", 331212, emptyList()), + VGB("Virgin Islands (British", 153, emptyList()), + VIR("Virgin Islands (U.S.)", 347, emptyList()), + WLF("Wallis and Futuna", 142, emptyList()), + ESH("Western Sahara", 266000, emptyList()), + YEM("Yemen", 527968, emptyList()), + ZMB("Zambia", 752612, emptyList()), + ZWE("Zimbabwe", 390757, emptyList()), + DOM("Dominican Republic", 48671, emptyList()), + ANT("Netherlands Antilles", 800, emptyList()), + XAD("Akrotiri and Dhekelia", 254, emptyList()), + XCL("Clipperton Island", 6, emptyList()), + ZNC("Nothern Cyprus", 3355, emptyList()), ; + override val code = this.name override val type = LocType.COUNTRY - override val children = emptyList() } diff --git a/app/src/main/java/net/helcel/beendroid/countries/Group.kt b/app/src/main/java/net/helcel/beendroid/countries/Group.kt index aef08f1..149678b 100644 --- a/app/src/main/java/net/helcel/beendroid/countries/Group.kt +++ b/app/src/main/java/net/helcel/beendroid/countries/Group.kt @@ -20,6 +20,7 @@ enum class Group(override val fullName: String, override val children: List() diff --git a/app/src/main/java/net/helcel/beendroid/countries/Visited.kt b/app/src/main/java/net/helcel/beendroid/countries/Visited.kt index b7513fa..4436fb4 100644 --- a/app/src/main/java/net/helcel/beendroid/countries/Visited.kt +++ b/app/src/main/java/net/helcel/beendroid/countries/Visited.kt @@ -1,6 +1,9 @@ package net.helcel.beendroid.countries import android.content.Context +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch class Visited(ctx: Context) { @@ -24,8 +27,10 @@ class Visited(ctx: Context) { fun setVisited(key: GeoLoc, b: Boolean){ locs[key] = b - editor.putBoolean(key.code, b) - editor.apply() + CoroutineScope(Dispatchers.Main).launch { + editor.putBoolean(key.code, b) + editor.apply() + } } fun visited(key: GeoLoc): Boolean { diff --git a/app/src/main/java/net/helcel/beendroid/helper/Theme.kt b/app/src/main/java/net/helcel/beendroid/helper/Theme.kt new file mode 100644 index 0000000..b836acb --- /dev/null +++ b/app/src/main/java/net/helcel/beendroid/helper/Theme.kt @@ -0,0 +1,13 @@ +package net.helcel.beendroid.helper + +import android.content.Context +import android.graphics.drawable.ColorDrawable +import android.util.TypedValue + + + +fun colorPrimary(ctx : Context): ColorDrawable { + val colorPrimaryTyped = TypedValue() + ctx.theme.resolveAttribute(android.R.attr.colorPrimary, colorPrimaryTyped, true) + return ColorDrawable(colorPrimaryTyped.data) +} diff --git a/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt b/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt index 46bc8ee..ed80d45 100644 --- a/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt +++ b/app/src/main/java/net/helcel/beendroid/svg/PSVGWrapper.kt @@ -34,7 +34,7 @@ class PSVGWrapper(ctx: Context) { cm[el]?.changeLevel(level) } - fun build(){ + private fun build(){ fm = World.WWW.children.map { gr -> gr.children.map {c -> val cc = cm[c] diff --git a/app/src/main/res/drawable/info.xml b/app/src/main/res/drawable/about.xml similarity index 100% rename from app/src/main/res/drawable/info.xml rename to app/src/main/res/drawable/about.xml diff --git a/app/src/main/res/drawable/checklist.xml b/app/src/main/res/drawable/licenses.xml similarity index 100% rename from app/src/main/res/drawable/checklist.xml rename to app/src/main/res/drawable/licenses.xml diff --git a/app/src/main/res/layout/activity_edit.xml b/app/src/main/res/layout/activity_edit.xml new file mode 100644 index 0000000..e1560d5 --- /dev/null +++ b/app/src/main/res/layout/activity_edit.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index bd4166a..f8d81bb 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,27 +6,9 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - - - - - - - + android:layout_height="match_parent"/> \ No newline at end of file diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index acaa063..3d0490d 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -1,6 +1,5 @@ + tools:context=".activity.fragment.AboutFragment" > + tools:context=".activity.fragment.LicenseFragment" > @@ -12,39 +13,35 @@ android:id="@+id/textView" android:layout_width="0dp" android:layout_height="50dp" - app:cornerRadius="0dp" - android:gravity="start|center_vertical" - android:textColor="?attr/colorOnBackground" - android:textAllCaps="false" - android:textAppearance="?attr/textAppearanceBody2" android:clickable="true" android:focusable="true" - android:paddingStart="20dp" - android:paddingEnd="20dp" + android:gravity="start|center_vertical" android:insetTop="4dp" android:insetBottom="4dp" - app:layout_constraintBottom_toBottomOf="@id/text2checkbox" - app:layout_constraintEnd_toStartOf="@id/text2checkbox" - app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" - app:layout_constraintVertical_bias="1.0" /> - - + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + + - - diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index db354af..377d487 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,9 +1,16 @@ - + + + \ No newline at end of file diff --git a/app/src/main/res/xml/fragment_settings.xml b/app/src/main/res/xml/fragment_settings.xml index 2f6b780..f13adda 100644 --- a/app/src/main/res/xml/fragment_settings.xml +++ b/app/src/main/res/xml/fragment_settings.xml @@ -16,14 +16,14 @@ diff --git a/gradle.properties b/gradle.properties index 3c5031e..1a982b5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,6 +15,7 @@ org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 # 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=true # 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 From 3d34359ea511ef47ec6941ec83217e6545db8386 Mon Sep 17 00:00:00 2001 From: soraefir Date: Wed, 7 Feb 2024 16:59:54 +0100 Subject: [PATCH 2/2] Added states for more countries --- .../net/helcel/beendroid/countries/Country.kt | 28 +- .../net/helcel/beendroid/countries/State.kt | 444 +++++++++++++++++- gen_svg.js | 8 +- 3 files changed, 436 insertions(+), 44 deletions(-) diff --git a/app/src/main/java/net/helcel/beendroid/countries/Country.kt b/app/src/main/java/net/helcel/beendroid/countries/Country.kt index 777278a..dcb31be 100644 --- a/app/src/main/java/net/helcel/beendroid/countries/Country.kt +++ b/app/src/main/java/net/helcel/beendroid/countries/Country.kt @@ -4,28 +4,28 @@ import net.helcel.beendroid.countries.Country.* import net.helcel.beendroid.countries.State.* enum class Country(override val fullName: String, override val area : Int, override val children : List) : GeoLoc { - AFG("Afghanistan", 652864, emptyList()), + AFG("Afghanistan", 652864, listOf(AFG_BD, AFG_BDG, AFG_BGL, AFG_BAL, AFG_BAM, AFG_DAY, AFG_FRA, AFG_FYB, AFG_GHA, AFG_GHO, AFG_HEL, AFG_HER, AFG_JOW, AFG_KAB, AFG_KAN, AFG_KAP, AFG_KHO, AFG_KNR, AFG_KDZ, AFG_LAG, AFG_LOG, AFG_NAN, AFG_NIM, AFG_NUR, AFG_PAN, AFG_PAR, AFG_PIA, AFG_PRI, AFG_SAM, AFG_SAR, AFG_SHA, AFG_SOL, AFG_URO, AFG_WAR, AFG_ZAB)), ALA("Åland Islands", 1580, emptyList()), - ALB("Albania", 28748, emptyList()), - DZA("Algeria", 2381741, emptyList()), + ALB("Albania", 28748, listOf(ALB_BR, ALB_BU, ALB_DI, ALB_EL, ALB_FR, ALB_GJ, ALB_KO, ALB_KU, ALB_LE, ALB_SH, ALB_TR, ALB_VL)), + DZA("Algeria", 2381741, listOf(DZA_01, DZA_44, DZA_46, DZA_16, DZA_23, DZA_05, DZA_07, DZA_02, DZA_06, DZA_08, DZA_09, DZA_10, DZA_34, DZA_35, DZA_25, DZA_17, DZA_32, DZA_39, DZA_36, DZA_47, DZA_24, DZA_33, DZA_18, DZA_40, DZA_03, DZA_29, DZA_26, DZA_43, DZA_27, DZA_28, DZA_45, DZA_31, DZA_30, DZA_04, DZA_48, DZA_20, DZA_19, DZA_22, DZA_21, DZA_41, DZA_12, DZA_14, DZA_37, DZA_42, DZA_38, DZA_15)), ASM("American Samoa", 199000, emptyList()), AND("Andorra", 468765, emptyList()), - AGO("Angola", 1246700, emptyList()), + AGO("Angola", 1246700, listOf(AGO_BGO, AGO_BGU, AGO_BIE, AGO_CAB, AGO_CCU, AGO_CNO, AGO_CUS, AGO_CNN, AGO_HUA, AGO_HUI, AGO_LNO, AGO_LSU, AGO_LUA, AGO_MAL, AGO_MOX, AGO_NAM, AGO_UIG, AGO_ZAI)), AIA("Anguilla", 96, emptyList()), ATA("Antarctica", 14000000, emptyList()), ATG("Antigua and Barbuda", 442, emptyList()), - ARG("Argentina", 2780400, emptyList()), - ARM("Armenia", 29743, emptyList()), + ARG("Argentina", 2780400, listOf(ARG_BA, ARG_C, ARG_K, ARG_H, ARG_U, ARG_X, ARG_W, ARG_E, ARG_P, ARG_Y, ARG_L, ARG_F, ARG_M, ARG_N, ARG_Q, ARG_R, ARG_A, ARG_J, ARG_D, ARG_Z, ARG_S, ARG_G, ARG_V, ARG_T)), + ARM("Armenia", 29743, listOf(ARM_AR, ARM_ARA, ARM_AV, ARM_G, ARM_LO, ARM_KOT, ARM_SH, ARM_SU, ARM_TV, ARM_VA, ARM_ER)), ABW("Aruba", 180, emptyList()), - AUS("Australia", 7692024, emptyList()), - AUT("Austria", 83879, emptyList()), - AZE("Azerbaijan", 86600, emptyList()), + AUS("Australia", 7692024, listOf(AUS_ACT, AUS_NSW, AUS_NT, AUS_QLD, AUS_SA, AUS_TAS, AUS_VIC, AUS_WA)), + AUT("Austria", 83879, listOf(AUT_B, AUT_K, AUT_NO, AUT_OO, AUT_S, AUT_ST, AUT_T, AUT_V, AUT_W)), + AZE("Azerbaijan", 86600, listOf()), BHS("Bahamas", 13878, emptyList()), BHR("Bahrain", 778, emptyList()), BGD("Bangladesh", 143998, emptyList()), BRB("Barbados", 430, emptyList()), BLR("Belarus", 207595, emptyList()), - BEL("Belgium", 30528, emptyList()), + BEL("Belgium", 30528, listOf(BEL_BRU, BEL_VAN, BEL_WAL)), BLZ("Belize", 22965, emptyList()), BEN("Benin", 114763, emptyList()), BMU("Bermuda", 54, emptyList()), @@ -79,14 +79,14 @@ enum class Country(override val fullName: String, override val area : Int, overr FRO("Faroe Islands", 1399, emptyList()), FJI("Fiji", 18333, emptyList()), FIN("Finland", 338424, emptyList()), - FRA("France", 643801, emptyList()), + FRA("France", 643801, listOf(FRA_01, FRA_02, FRA_03, FRA_04, FRA_05, FRA_06, FRA_07, FRA_08, FRA_09, FRA_10, FRA_11, FRA_12, FRA_13, FRA_14, FRA_15, FRA_16, FRA_17, FRA_18, FRA_19, FRA_21, FRA_22, FRA_23, FRA_24, FRA_25, FRA_26, FRA_27, FRA_28, FRA_29, FRA_2A, FRA_2B, FRA_30, FRA_31, FRA_32, FRA_33, FRA_34, FRA_35, FRA_36, FRA_37, FRA_38, FRA_39, FRA_40, FRA_41, FRA_42, FRA_43, FRA_44, FRA_45, FRA_46, FRA_47, FRA_48, FRA_49, FRA_50, FRA_51, FRA_52, FRA_53, FRA_54, FRA_55, FRA_56, FRA_57, FRA_58, FRA_59, FRA_60, FRA_61, FRA_62, FRA_63, FRA_64, FRA_65, FRA_66, FRA_67, FRA_68, FRA_69, FRA_70, FRA_71, FRA_72, FRA_73, FRA_74, FRA_75, FRA_76, FRA_77, FRA_78, FRA_79, FRA_80, FRA_81, FRA_82, FRA_83, FRA_84, FRA_85, FRA_86, FRA_87, FRA_88, FRA_89, FRA_90, FRA_91, FRA_92, FRA_93, FRA_94, FRA_95, FRA_971, FRA_972, FRA_973, FRA_974, FRA_976)), GUF("French Guiana", 83534, emptyList()), PYF("French Polynesia", 4167, emptyList()), ATF("French Southern Territories", 7747, emptyList()), GAB("Gabon", 267667, emptyList()), GMB("Gambia", 11295, emptyList()), GEO("Georgia", 69700, emptyList()), - DEU("Germany", 357408, listOf(DEU_BY, DEU_BE, DEU_BB, DEU_HB, DEU_HH, DEU_HE, DEU_MV, DEU_NI, DEU_NW, DEU_RP, DEU_SL, DEU_SN, DEU_ST, DEU_SH, DEU_TH)), + DEU("Germany", 357408, listOf(DEU_BW, DEU_BY, DEU_BE, DEU_BB, DEU_HB, DEU_HH, DEU_HE, DEU_MV, DEU_NI, DEU_NW, DEU_RP, DEU_SL, DEU_SN, DEU_ST, DEU_SH, DEU_TH)), GHA("Ghana", 238533, emptyList()), GIB("Gibraltar", 6, emptyList()), GRC("Greece", 131957, emptyList()), @@ -113,7 +113,7 @@ enum class Country(override val fullName: String, override val area : Int, overr IRL("Ireland", 70273, emptyList()), IMN("Isle of Man", 572, emptyList()), ISR("Israel", 22072, emptyList()), - ITA("Italy", 301340, emptyList()), + ITA("Italy", 301340, listOf(ITA_AG, ITA_AL, ITA_AN, ITA_AO, ITA_AR, ITA_AP, ITA_AT, ITA_AV, ITA_BA, ITA_BT, ITA_BL, ITA_BN, ITA_BG, ITA_BI, ITA_BO, ITA_BZ, ITA_BS, ITA_BR, ITA_CA, ITA_CL, ITA_CB, ITA_CI, ITA_CE, ITA_CT, ITA_CZ, ITA_CH, ITA_CO, ITA_CS, ITA_CR, ITA_KR, ITA_CN, ITA_EN, ITA_FM, ITA_FE, ITA_FI, ITA_FG, ITA_FC, ITA_FR, ITA_GE, ITA_GO, ITA_GR, ITA_IM, ITA_IS, ITA_SP, ITA_AQ, ITA_LT, ITA_LE, ITA_LC, ITA_LI, ITA_LO, ITA_LU, ITA_MC, ITA_MN, ITA_MS, ITA_MT, ITA_ME, ITA_MI, ITA_MO, ITA_MB, ITA_NA, ITA_NO, ITA_NU, ITA_OT, ITA_OR, ITA_PD, ITA_PA, ITA_PR, ITA_PV, ITA_PG, ITA_PS, ITA_PE, ITA_PC, ITA_PI, ITA_PT, ITA_PN, ITA_PZ, ITA_PO, ITA_RG, ITA_RA, ITA_RC, ITA_RE, ITA_RI, ITA_RN, ITA_RO, ITA_SA, ITA_SS, ITA_SV, ITA_SI, ITA_SR, ITA_SO, ITA_TA, ITA_TE, ITA_TR, ITA_TO, ITA_TP, ITA_TN, ITA_TV, ITA_TS, ITA_UD, ITA_VA, ITA_VE, ITA_VB, ITA_VC, ITA_VI, ITA_VT)), JAM("Jamaica", 10991, emptyList()), JPN("Japan", 377915, listOf(JPN_HO, JPN_AO, JPN_IW, JPN_MI, JPN_AK, JPN_YA, JPN_FU, JPN_IB, JPN_TO, JPN_GU, JPN_SA, JPN_CH, JPN_TY, JPN_KA, JPN_NI, JPN_TOY, JPN_ISH, JPN_FK, JPN_YAM, JPN_NG, JPN_GI, JPN_SHI, JPN_AI, JPN_ME, JPN_SG, JPN_KY, JPN_OS, JPN_HY, JPN_NA, JPN_WK, JPN_TO, JPN_SM, JPN_OK, JPN_HR, JPN_YG, JPN_TS, JPN_KG, JPN_EH, JPN_KC, JPN_FK, JPN_SG, JPN_NG, JPN_KM, JPN_OT, JPN_MY, JPN_KG, JPN_OK)), JEY("Jersey", 118, emptyList()), @@ -239,7 +239,7 @@ enum class Country(override val fullName: String, override val area : Int, overr UKR("Ukraine", 603700, emptyList()), ARE("United Arab Emirates", 83600, emptyList()), GBR("United Kingdom of Great Britain and Northern Ireland", 242910, emptyList()), - USA("United States of America", 9833517, emptyList()), + USA("United States of America", 9833517, listOf(USA_AL, USA_AK, USA_AZ, USA_AR, USA_CA, USA_CO, USA_CT, USA_DE, USA_FL, USA_GA, USA_HI, USA_ID, USA_IL, USA_IN, USA_IA, USA_KS, USA_KY, USA_LA, USA_ME, USA_MD, USA_MA, USA_MI, USA_MN, USA_MS, USA_MO, USA_MT, USA_NE, USA_NV, USA_NH, USA_NJ, USA_NM, USA_NY, USA_NC, USA_ND, USA_OH, USA_OK, USA_OR, USA_PA, USA_RI, USA_SC, USA_SD, USA_TN, USA_TX, USA_UT, USA_VT, USA_VA, USA_WA, USA_WV, USA_WI, USA_WY)), UMI("United States Minor Outlying Islands", 34, emptyList()), URY("Uruguay", 176215, emptyList()), UZB("Uzbekistan", 447400, emptyList()), diff --git a/app/src/main/java/net/helcel/beendroid/countries/State.kt b/app/src/main/java/net/helcel/beendroid/countries/State.kt index fb7d2fa..70a2d03 100644 --- a/app/src/main/java/net/helcel/beendroid/countries/State.kt +++ b/app/src/main/java/net/helcel/beendroid/countries/State.kt @@ -1,17 +1,16 @@ package net.helcel.beendroid.countries enum class State(override val fullName: String, override val area: Int,) : GeoLoc { - - AFG_BD("Badakhshan", 44851), - AFG_BDG("Badghis", 22447), + AFG_BD("Badakhshan", 44851), + AFG_BDG("Badghis", 22447), AFG_BGL("Baghlan", 21397), - AFG_BAL("Balkh", 17430), - AFG_BAM("Bamyan", 14056), - AFG_DAY("Daykundi", 18279), - AFG_FRA("Farah", 48402), - AFG_FYB("Faryab", 20517), - AFG_GHA("Ghazni", 22440), - AFG_GHO("Ghor", 36294), + AFG_BAL("Balkh", 17430), + AFG_BAM("Bamyan", 14056), + AFG_DAY("Daykundi", 18279), + AFG_FRA("Farah", 48402), + AFG_FYB("Faryab", 20517), + AFG_GHA("Ghazni", 22440), + AFG_GHO("Ghor", 36294), AFG_HEL("Helmand", 58971), AFG_HER("Herat", 54588), AFG_JOW("Jowzjan", 12172), @@ -37,23 +36,138 @@ enum class State(override val fullName: String, override val area: Int,) : GeoLo AFG_URO("Urozgan", 12238), AFG_WAR("Wardak", 8894), AFG_ZAB("Zabul", 17296), + ALB_BR("Berat", 1792), + ALB_BU("Dibër", 2581), + ALB_DI("Durrës", 766), + ALB_EL("Elbasan", 3196), + ALB_FR("Fier", 1904), + ALB_GJ("Gjirokastër", 2886), + ALB_KO("Korçë", 3710), + ALB_KU("Kukës", 2373), + ALB_LE("Lezhë", 1555), + ALB_SH("Shkodër", 3677), + ALB_TR("Tirana", 1014), + ALB_VL("Vlorë", 1609), + DZA_01("Adrar", 402160), + DZA_44("Aïn Defla", 72028), + DZA_46("Aïn Témouchent", 2739), + DZA_16("Algiers", 2735), + DZA_23("Annaba", 1497), + DZA_05("Batna", 11920), + DZA_07("Béchar", 161400), + DZA_02("Béjaïa", 6476), + DZA_06("Biskra", 20848), + DZA_08("Blida", 1447), + DZA_09("Bordj Bou Arréridj", 4185), + DZA_10("Bouira", 4479), + DZA_34("Boumerdès", 1510), + DZA_35("Chlef", 7323), + DZA_25("Constantine", 2082), + DZA_17("Djelfa", 66411), + DZA_32("El Bayadh", 78300), + DZA_39("El Oued", 54400), + DZA_36("El Tarf", 3500), + DZA_47("Ghardaïa", 86400), + DZA_24("Guelma", 4196), + DZA_33("Illizi", 284936), + DZA_18("Jijel", 2577), + DZA_40("Khenchela", 9161), + DZA_03("Laghouat", 25733), + DZA_29("Mascara", 5635), + DZA_26("Médéa", 8739), + DZA_43("Mila", 7904), + DZA_27("Mostaganem", 2132), + DZA_28("Msila", 18432), + DZA_45("Naama", 32530), + DZA_31("Oran", 2249), + DZA_30("Ouargla", 541310), + DZA_04("Oum El Bouaghi", 7267), + DZA_48("Relizane", 4921), + DZA_20("Saïda", 6168), + DZA_19("Sétif", 6984), + DZA_22("Skikda", 4751), + DZA_21("Souk Ahras", 4321), + DZA_41("Tamanghasset", 556200), + DZA_12("Tébessa", 14297), + DZA_14("Tiaret", 21214), + DZA_37("Tindouf", 159000), + DZA_42("Tissemsilt", 3798), + DZA_38("Tizi Ouzou", 3798), + DZA_15("Tlemcen", 7970), + AGO_BGO("Bengo", 31648), + AGO_BGU("Benguela", 31931), + AGO_BIE("Bié", 70156), + AGO_CAB("Cabinda", 7289), + AGO_CCU("Cuando Cubango", 199049), + AGO_CNO("Cuanza Norte", 24398), + AGO_CUS("Cuanza Sul", 55500), + AGO_CNN("Cunene", 77614), + AGO_HUA("Huambo", 34049), + AGO_HUI("Huíla", 79091), + AGO_LNO("Lunda Norte", 103760), + AGO_LSU("Lunda Sul", 77475), + AGO_LUA("Luanda", 18113), + AGO_MAL("Malanje", 97225), + AGO_MOX("Moxico", 223023), + AGO_NAM("Namibe", 58477), + AGO_UIG("Uíge", 58698), + AGO_ZAI("Zaire", 40170), + ARG_BA("Buenos Aires", 307571), + ARG_C("Ciudad Autónoma de Buenos Aires", 203), + ARG_K("Catamarca", 102606), + ARG_H("Chaco", 99633), + ARG_U("Chubut", 224686), + ARG_X("Córdoba", 165321), + ARG_W("Corrientes", 88199), + ARG_E("Entre Ríos", 78781), + ARG_P("Formosa", 72066), + ARG_Y("Jujuy", 53219), + ARG_L("La Pampa", 143440), + ARG_F("La Rioja", 89680), + ARG_M("Mendoza", 148827), + ARG_N("Misiones", 29801), + ARG_Q("Neuquén", 94078), + ARG_R("Río Negro", 203013), + ARG_A("Salta", 155488), + ARG_J("San Juan", 89651), + ARG_D("San Luis", 76748), + ARG_Z("Santa Cruz", 243943), + ARG_S("Santa Fe", 133007), + ARG_G("Santiago del Estero", 136351), + ARG_V("Tierra del Fuego", 21363), + ARG_T("Tucumán", 222524), + ARM_AR("Aragatsotn", 2096), + ARM_ARA("Ararat", 2096), + ARM_AV("Armavir", 1242), + ARM_G("Gegharkunik", 5346), + ARM_LO("Lori", 3775), + ARM_KOT("Kotayk", 2086), + ARM_SH("Shirak", 2684), + ARM_SU("Syunik", 4505), + ARM_TV("Tavush", 2700), + ARM_VA("Vayots Dzor", 2308), + ARM_ER("Yerevan", 223), + AUS_ACT("Australian Capital Territory", 2358), + AUS_NSW("New South Wales", 800642), + AUS_NT("Northern Territory", 1348646), + AUS_QLD("Queensland", 1859900), + AUS_SA("South Australia", 984377), + AUS_TAS("Tasmania", 68401), + AUS_VIC("Victoria", 227416), + AUS_WA("Western Australia", 2525275), + AUT_B("Burgenland", 3960), + AUT_K("Carinthia", 9539), + AUT_NO("Lower Austria", 19186), + AUT_OO("Upper Austria", 11983), + AUT_S("Salzburg", 7169), + AUT_ST("Styria", 16420), + AUT_T("Tyrol", 12639), + AUT_V("Vorarlberg", 2601), + AUT_W("Vienna", 415), - DEU_BW("Baden-Württemberg", 35752), - DEU_BY("Bavaria", 70552), - DEU_BE("Berlin", 891), - DEU_BB("Brandenburg", 29654), - DEU_HB("Bremen", 419), - DEU_HH("Hamburg", 755), - DEU_HE("Hesse", 21115), - DEU_MV("Mecklenburg-Vorpommern", 23215), - DEU_NI("Lower Saxony", 47709), - DEU_NW("North Rhine-Westphalia", 34085), - DEU_RP("Rhineland-Palatinate", 19854), - DEU_SL("Saarland", 2569), - DEU_SN("Saxony", 18417), - DEU_ST("Saxony-Anhalt", 20452), - DEU_SH("Schleswig-Holstein", 15799), - DEU_TH("Thuringia", 16202), + BEL_BRU("Brussels-Capital Region", 162), + BEL_VAN("Flemish Region", 13790), + BEL_WAL("Walloon Region", 16640), CHE_AG("Aargau", 1404), CHE_AR("Appenzell Ausserrhoden", 243), @@ -82,6 +196,232 @@ enum class State(override val fullName: String, override val area: Int,) : GeoLo CHE_ZG("Zug", 239), CHE_ZH("Zurich", 1729), + DEU_BW("Baden-Württemberg", 35752), + DEU_BY("Bavaria", 70552), + DEU_BE("Berlin", 891), + DEU_BB("Brandenburg", 29654), + DEU_HB("Bremen", 419), + DEU_HH("Hamburg", 755), + DEU_HE("Hesse", 21115), + DEU_MV("Mecklenburg-Vorpommern", 23215), + DEU_NI("Lower Saxony", 47709), + DEU_NW("North Rhine-Westphalia", 34085), + DEU_RP("Rhineland-Palatinate", 19854), + DEU_SL("Saarland", 2569), + DEU_SN("Saxony", 18417), + DEU_ST("Saxony-Anhalt", 20452), + DEU_SH("Schleswig-Holstein", 15799), + DEU_TH("Thuringia", 16202), + + FRA_01("Ain", 5762), + FRA_02("Aisne", 7369), + FRA_03("Allier", 7379), + FRA_04("Alpes-de-Haute-Provence", 6925), + FRA_05("Hautes-Alpes", 5549), + FRA_06("Alpes-Maritimes", 4299), + FRA_07("Ardèche", 5529), + FRA_08("Ardennes", 5227), + FRA_09("Ariège", 4890), + FRA_10("Aube", 6060), + FRA_11("Aude", 6139), + FRA_12("Aveyron", 8733), + FRA_13("Bouches-du-Rhône", 5087), + FRA_14("Calvados", 5546), + FRA_15("Cantal", 5774), + FRA_16("Charente", 5974), + FRA_17("Charente-Maritime", 6864), + FRA_18("Cher", 7234), + FRA_19("Corrèze", 5857), + FRA_21("Côte-d'Or", 8763), + FRA_22("Côtes-d'Armor", 6873), + FRA_23("Creuse", 5561), + FRA_24("Dordogne", 9060), + FRA_25("Doubs", 5230), + FRA_26("Drôme", 6535), + FRA_27("Eure", 6040), + FRA_28("Eure-et-Loir", 5886), + FRA_29("Finistère", 6733), + FRA_2A("Corse-du-Sud", 4014), + FRA_2B("Haute-Corse", 4666), + FRA_30("Gard", 5855), + FRA_31("Haute-Garonne", 6306), + FRA_32("Gers", 6257), + FRA_33("Gironde", 9975), + FRA_34("Hérault", 6224), + FRA_35("Ille-et-Vilaine", 6775), + FRA_36("Indre", 6903), + FRA_37("Indre-et-Loire", 6106), + FRA_38("Isère", 7436), + FRA_39("Jura", 4999), + FRA_40("Landes", 9243), + FRA_41("Loir-et-Cher", 6343), + FRA_42("Loire", 4783), + FRA_43("Haute-Loire", 4978), + FRA_44("Loire-Atlantique", 6811), + FRA_45("Loiret", 6777), + FRA_46("Lot", 5225), + FRA_47("Lot-et-Garonne", 5385), + FRA_48("Lozère", 5167), + FRA_49("Maine-et-Loire", 7080), + FRA_50("Manche", 5987), + FRA_51("Marne", 8212), + FRA_52("Haute-Marne", 6223), + FRA_53("Mayenne", 5166), + FRA_54("Meurthe-et-Moselle", 5224), + FRA_55("Meuse", 6240), + FRA_56("Morbihan", 6820), + FRA_57("Moselle", 6170), + FRA_58("Nièvre", 6819), + FRA_59("Nord", 5743), + FRA_60("Oise", 5860), + FRA_61("Orne", 6100), + FRA_62("Pas-de-Calais", 6657), + FRA_63("Puy-de-Dôme", 7970), + FRA_64("Pyrénées-Atlantiques", 7660), + FRA_65("Hautes-Pyrénées", 4464), + FRA_66("Pyrénées-Orientales", 4114), + FRA_67("Bas-Rhin", 4758), + FRA_68("Haut-Rhin", 3525), + FRA_69("Rhône", 3242), + FRA_70("Haute-Saône", 5361), + FRA_71("Saône-et-Loire", 8577), + FRA_72("Sarthe", 6205), + FRA_73("Savoie", 6012), + FRA_74("Haute-Savoie", 4389), + FRA_75("Paris", 105), + FRA_76("Seine-Maritime", 6279), + FRA_77("Seine-et-Marne", 5913), + FRA_78("Yvelines", 2284), + FRA_79("Deux-Sèvres", 5998), + FRA_80("Somme", 6174), + FRA_81("Tarn", 5758), + FRA_82("Tarn-et-Garonne", 3718), + FRA_83("Var", 6015), + FRA_84("Vaucluse", 3567), + FRA_85("Vendée", 6726), + FRA_86("Vienne", 6990), + FRA_87("Haute-Vienne", 5563), + FRA_88("Vosges", 5888), + FRA_89("Yonne", 7427), + FRA_90("Territoire de Belfort", 609), + FRA_91("Essonne", 1804), + FRA_92("Hauts-de-Seine", 176), + FRA_93("Seine-Saint-Denis", 236), + FRA_94("Val-de-Marne", 245), + FRA_95("Val-d'Oise", 1246), + FRA_971("Guadeloupe", 1628), + FRA_972("Martinique", 1128), + FRA_973("French Guiana", 83534), + FRA_974("Réunion", 2504), + FRA_976("Mayotte", 376), + + ITA_AG("Agrigento", 3041), + ITA_AL("Alessandria", 3528), + ITA_AN("Ancona", 1947), + ITA_AO("Aosta", 3263), + ITA_AR("Arezzo", 3234), + ITA_AP("Ascoli Piceno", 1550), + ITA_AT("Asti", 1480), + ITA_AV("Avellino", 2846), + ITA_BA("Bari", 3567), + ITA_BT("Barletta-Andria-Trani", 1543), + ITA_BL("Belluno", 3677), + ITA_BN("Benevento", 2296), + ITA_BG("Bergamo", 2755), + ITA_BI("Biella", 913), + ITA_BO("Bologna", 3702), + ITA_BZ("Bolzano", 7400), + ITA_BS("Brescia", 4762), + ITA_BR("Brindisi", 1360), + ITA_CA("Cagliari", 8503), + ITA_CL("Caltanissetta", 2566), + ITA_CB("Campobasso", 2166), + ITA_CI("Carbonia-Iglesias", 4002), + ITA_CE("Caserta", 2171), + ITA_CT("Catania", 3575), + ITA_CZ("Catanzaro", 2492), + ITA_CH("Chieti", 3646), + ITA_CO("Como", 1232), + ITA_CS("Cosenza", 6825), + ITA_CR("Cremona", 1776), + ITA_KR("Crotone", 1744), + ITA_CN("Cuneo", 6900), + ITA_EN("Enna", 2644), + ITA_FM("Fermo", 862), + ITA_FE("Ferrara", 2631), + ITA_FI("Florence", 3539), + ITA_FG("Foggia", 7003), + ITA_FC("Forlì-Cesena", 2374), + ITA_FR("Frosinone", 3241), + ITA_GE("Genoa", 1837), + ITA_GO("Gorizia", 466), + ITA_GR("Grosseto", 4502), + ITA_IM("Imperia", 1102), + ITA_IS("Isernia", 1687), + ITA_SP("La Spezia", 882), + ITA_AQ("L'Aquila", 5336), + ITA_LT("Latina", 2259), + ITA_LE("Lecce", 2561), + ITA_LC("Lecco", 816), + ITA_LI("Livorno", 1141), + ITA_LO("Lodi", 782), + ITA_LU("Lucca", 1771), + ITA_MC("Macerata", 2720), + ITA_MN("Mantua", 2250), + ITA_MS("Massa and Carrara", 1153), + ITA_MT("Matera", 3507), + ITA_ME("Messina", 3241), + ITA_MI("Milan", 1821), + ITA_MO("Modena", 2168), + ITA_MB("Monza and Brianza", 405), + ITA_NA("Naples", 1171), + ITA_NO("Novara", 1030), + ITA_NU("Nuoro", 5418), + ITA_OT("Olbia-Tempio", 3331), + ITA_OR("Oristano", 3477), + ITA_PD("Padua", 2710), + ITA_PA("Palermo", 4993), + ITA_PR("Parma", 3466), + ITA_PV("Pavia", 2961), + ITA_PG("Perugia", 6175), + ITA_PS("Pesaro and Urbino", 2915), + ITA_PE("Pescara", 1260), + ITA_PC("Piacenza", 2586), + ITA_PI("Pisa", 2472), + ITA_PT("Pistoia", 965), + ITA_PN("Pordenone", 2534), + ITA_PZ("Potenza", 6588), + ITA_PO("Prato", 365), + ITA_RG("Ragusa", 1649), + ITA_RA("Ravenna", 1857), + ITA_RC("Reggio Calabria", 3034), + ITA_RE("Reggio Emilia", 2297), + ITA_RI("Rieti", 2745), + ITA_RN("Rimini", 864), + ITA_RO("Rovigo", 1780), + ITA_SA("Salerno", 4060), + ITA_SS("Sassari", 4990), + ITA_SV("Savona", 1554), + ITA_SI("Siena", 3807), + ITA_SR("Siracusa", 2108), + ITA_SO("Sondrio", 3232), + ITA_TA("Taranto", 2496), + ITA_TE("Teramo", 1953), + ITA_TR("Terni", 2124), + ITA_TO("Turin", 6824), + ITA_TP("Trapani", 2461), + ITA_TN("Trento", 6212), + ITA_TV("Treviso", 2455), + ITA_TS("Trieste", 212), + ITA_UD("Udine", 4850), + ITA_VA("Varese", 1193), + ITA_VE("Venice", 2464), + ITA_VB("Verbano-Cusio-Ossola", 2252), + ITA_VC("Vercelli", 2100), + ITA_VI("Vicenza", 2712), + ITA_VT("Viterbo", 3617), + + JPN_HO("Hokkaido", 83424), JPN_AO("Aomori", 12891), JPN_IW("Iwate", 15275), @@ -130,6 +470,58 @@ enum class State(override val fullName: String, override val area: Int,) : GeoLo JPN_KGS("Kagoshima", 9186), JPN_OK("Okinawa", 2281), + USA_AL("Alabama", 135767), + USA_AK("Alaska", 1723337), + USA_AZ("Arizona", 295234), + USA_AR("Arkansas", 137732), + USA_CA("California", 423967), + USA_CO("Colorado", 269601), + USA_CT("Connecticut", 14356), + USA_DE("Delaware", 6446), + USA_FL("Florida", 170312), + USA_GA("Georgia", 153910), + USA_HI("Hawaii", 28314), + USA_ID("Idaho", 216443), + USA_IL("Illinois", 149995), + USA_IN("Indiana", 94327), + USA_IA("Iowa", 145746), + USA_KS("Kansas", 213100), + USA_KY("Kentucky", 104656), + USA_LA("Louisiana", 135659), + USA_ME("Maine", 91634), + USA_MD("Maryland", 32131), + USA_MA("Massachusetts", 27336), + USA_MI("Michigan", 250487), + USA_MN("Minnesota", 225163), + USA_MS("Mississippi", 125438), + USA_MO("Missouri", 180540), + USA_MT("Montana", 380831), + USA_NE("Nebraska", 200330), + USA_NV("Nevada", 286380), + USA_NH("New Hampshire", 24214), + USA_NJ("New Jersey", 22591), + USA_NM("New Mexico", 314917), + USA_NY("New York", 141297), + USA_NC("North Carolina", 139390), + USA_ND("North Dakota", 183107), + USA_OH("Ohio", 116098), + USA_OK("Oklahoma", 181037), + USA_OR("Oregon", 254799), + USA_PA("Pennsylvania", 119280), + USA_RI("Rhode Island", 4002), + USA_SC("South Carolina", 82933), + USA_SD("South Dakota", 199730), + USA_TN("Tennessee", 109153), + USA_TX("Texas", 695662), + USA_UT("Utah", 219882), + USA_VT("Vermont", 24906), + USA_VA("Virginia", 110787), + USA_WA("Washington", 184661), + USA_WV("West Virginia", 62755), + USA_WI("Wisconsin", 169634), + USA_WY("Wyoming", 253335), + + UNDEFINED("?",0), ; diff --git a/gen_svg.js b/gen_svg.js index 4902ff9..3dc13ab 100644 --- a/gen_svg.js +++ b/gen_svg.js @@ -1,4 +1,5 @@ #!/bin/node +#!/bin/node import {readFileSync,createWriteStream,writeFileSync} from 'fs'; import {get as httpsGet} from 'https' import {execSync} from 'child_process' @@ -17,9 +18,8 @@ const LOCAL_SVG_PATH = "./app/src/main/assets/" const GADM_VERSION="4.1" const GADM_BASEPATH="https://geodata.ucdavis.edu/gadm" -//"HKG", "MAC" -const countries = //["CHN"]//["CHE","GBR","USA","DEU","AUT","AUS","JPN"] -// const a = + +const countries = [ "AFG","XAD","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATG","ARG","ARM","ABW","AUS","AUT","AZE", "BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA", "IOT","VGB","BRN","BGR","BFA","BDI","KHM", @@ -112,4 +112,4 @@ async function run(){ }) } -run() \ No newline at end of file +run()