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..dcb31be 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, 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, 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, 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, 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, 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, listOf(BEL_BRU, BEL_VAN, BEL_WAL)), + 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, 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_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()), + 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, 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()), + 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, 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()), + 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/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() 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