Compare commits
	
		
			11 Commits
		
	
	
		
			0.1a-rc3
			...
			01dab6aa30
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 01dab6aa30 | ||
|  | bafd3cea14 | ||
|  | ec52574ae3 | ||
|  | 923404ebc5 | ||
|  | 32ba5e0b07 | ||
|  | 72b2148e4b | ||
|  | 513660b3a4 | ||
|  | 443d62b6df | ||
|  | a360c7496b | ||
|  | 3fe83cff2e | ||
|  | 71acf04f20 | 
							
								
								
									
										16
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -48,17 +48,17 @@ jobs: | ||||
|           cache: 'gradle' | ||||
|  | ||||
|       - name: Build APK | ||||
|         run: ./gradlew assemble | ||||
|  | ||||
|       # - name: Upload APK | ||||
|       #   uses: actions/upload-artifact@v4 | ||||
|       #   with: | ||||
|       #     name: app.apk | ||||
|       #     path: app/build/outputs/apk/release/app-release.apk | ||||
|         run: ./gradlew assembleSignedRelease | ||||
|  | ||||
|       - name: Release | ||||
|         uses: softprops/action-gh-release@v2 | ||||
|         if: startsWith(github.ref, 'refs/tags/') | ||||
|         with: | ||||
|           files: | | ||||
|             app/build/outputs/apk/release/app-release.apk    | ||||
|             app/build/outputs/apk/signedRelease/app-signedRelease.apk | ||||
|           prerelease: | | ||||
|             if [[ ${{ github.ref }} =~ ^refs/tags/[0-9]+\.[0-9]+[a-z]+$ ]]; then | ||||
|               echo "false" | ||||
|             else | ||||
|               echo "true" | ||||
|             fi | ||||
| @@ -5,9 +5,6 @@ plugins { | ||||
|     id 'com.mikepenz.aboutlibraries.plugin' version '11.1.1' | ||||
| } | ||||
|  | ||||
| def keystorePropertiesFile = rootProject.file("app/keystore.properties") | ||||
| def keystoreProperties = new Properties() | ||||
| keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) | ||||
|  | ||||
| android { | ||||
|     namespace 'net.helcel.beans' | ||||
| @@ -20,22 +17,37 @@ android { | ||||
|         versionCode 1 | ||||
|         versionName "0.1a" | ||||
|     } | ||||
|  | ||||
|     signingConfigs { | ||||
|         create("release") { | ||||
|             keyAlias keystoreProperties['keyAlias'] | ||||
|             keyPassword keystoreProperties['keyPassword'] | ||||
|             storeFile file(keystoreProperties['storeFile']) | ||||
|             storePassword keystoreProperties['storePassword'] | ||||
|             try { | ||||
|                 def keystorePropertiesFile = rootProject.file("app/keystore.properties") | ||||
|                 def keystoreProperties = new Properties() | ||||
|                 keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) | ||||
|  | ||||
|                 keyAlias keystoreProperties['keyAlias'] | ||||
|                 keyPassword keystoreProperties['keyPassword'] | ||||
|                 storeFile file(keystoreProperties['storeFile']) | ||||
|                 storePassword keystoreProperties['storePassword'] | ||||
|             } catch (FileNotFoundException e) { | ||||
|                 println("File not found: ${e.message}") | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
|  | ||||
|     buildTypes { | ||||
|         debug { | ||||
|             debuggable true | ||||
|         } | ||||
|         release { | ||||
|             minifyEnabled true | ||||
|             shrinkResources false | ||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||
|         } | ||||
|         signedRelease { | ||||
|             minifyEnabled true | ||||
|             shrinkResources false | ||||
|             proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' | ||||
|             signingConfig = signingConfigs.getByName("release") | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -49,8 +49,8 @@ ALB_SD|ALB|Shkodër|3507 | ||||
| ALB_TI|ALB|Tiranë|1638 | ||||
| ALB_VR|ALB|Vlorë|2648 | ||||
| DZA_AR|DZA|Adrar|433285 | ||||
| DZA_AD|DZA|AïnDefla|4557 | ||||
| DZA_AT|DZA|AïnTémouchent|2405 | ||||
| DZA_AD|DZA|Aïn Defla|4557 | ||||
| DZA_AT|DZA|Aïn Témouchent|2405 | ||||
| DZA_AL|DZA|Alger|769 | ||||
| DZA_AN|DZA|Annaba|1413 | ||||
| DZA_BT|DZA|Batna|12167 | ||||
| @@ -106,7 +106,7 @@ AND_EN|AND|Encamp|68 | ||||
| AND_EE|AND|Escaldes-Engordany|47 | ||||
| AND_MA|AND|La Massana|68 | ||||
| AND_OR|AND|Ordino|79 | ||||
| AND_JL|AND|Sant Juliàde Lòria|65 | ||||
| AND_JL|AND|Sant Julià de Lòria|65 | ||||
| AGO_BO|AGO|Bengo|34586 | ||||
| AGO_BG|AGO|Benguela|39748 | ||||
| AGO_BI|AGO|Bié|72491 | ||||
| @@ -152,7 +152,7 @@ ARG_BA|ARG|Buenos Aires|307606 | ||||
| ARG_CT|ARG|Catamarca|101718 | ||||
| ARG_CC|ARG|Chaco|100177 | ||||
| ARG_CH|ARG|Chubut|224436 | ||||
| ARG_DF|ARG|Ciudadde Buenos Aires|212 | ||||
| ARG_DF|ARG|Ciudad de Buenos Aires|212 | ||||
| ARG_CB|ARG|Córdoba|165143 | ||||
| ARG_CN|ARG|Corrientes|89281 | ||||
| ARG_ER|ARG|Entre Ríos|78238 | ||||
| @@ -163,14 +163,14 @@ ARG_LR|ARG|La Rioja|91415 | ||||
| ARG_MZ|ARG|Mendoza|149125 | ||||
| ARG_MN|ARG|Misiones|30098 | ||||
| ARG_NQ|ARG|Neuquén|94649 | ||||
| ARG_RN|ARG|RíoNegro|202737 | ||||
| ARG_RN|ARG|Río Negro|202737 | ||||
| ARG_SA|ARG|Salta|155883 | ||||
| ARG_SJ|ARG|San Juan|89103 | ||||
| ARG_SL|ARG|San Luis|76041 | ||||
| ARG_SC|ARG|Santa Cruz|242689 | ||||
| ARG_SF|ARG|Santa Fe|133534 | ||||
| ARG_SE|ARG|Santiagodel Estero|137431 | ||||
| ARG_TF|ARG|Tierradel Fuego|20841 | ||||
| ARG_TF|ARG|Tierra del Fuego|20841 | ||||
| ARG_TM|ARG|Tucumán|22628 | ||||
| ARM_AG|ARM|Aragatsotn|2884 | ||||
| ARM_AR|ARM|Ararat|2227 | ||||
| @@ -213,7 +213,7 @@ BHS_CI|BHS|Cat Island|371 | ||||
| BHS_CB|BHS|Central Abaco|712 | ||||
| BHS_CN|BHS|Central Andros|1216 | ||||
| BHS_CE|BHS|Central Eleuthera|70 | ||||
| BHS_FP|BHS|Cityof Freeport|25 | ||||
| BHS_FP|BHS|City of Freeport|25 | ||||
| BHS_CK|BHS|Crooked Island|334 | ||||
| BHS_EB|BHS|East Grand Bahama|580 | ||||
| BHS_EM|BHS|Exuma|348 | ||||
| @@ -224,7 +224,7 @@ BHS_IN|BHS|Inagua|1688 | ||||
| BHS_LI|BHS|Long Island|481 | ||||
| BHS_MC|BHS|Mangrove Cay|489 | ||||
| BHS_MG|BHS|Mayaguana|290 | ||||
| BHS_MI|BHS|Moore'sIsland|21 | ||||
| BHS_MI|BHS|Moore's Island|21 | ||||
| BHS_NW|BHS|New Providence|231 | ||||
| BHS_NB|BHS|North Abaco|219 | ||||
| BHS_NN|BHS|North Andros|2876 | ||||
| @@ -291,7 +291,7 @@ BMU_HC|BMU|Hamilton Municipality|1 | ||||
| BMU_PA|BMU|Paget|6 | ||||
| BMU_PE|BMU|Pembroke|7 | ||||
| BMU_SC|BMU|Saint George's|10 | ||||
| BMU_SG|BMU|Saint Georgemunicipality|2 | ||||
| BMU_SG|BMU|Saint George municipality|2 | ||||
| BMU_SA|BMU|Sandys|9 | ||||
| BMU_SM|BMU|Smiths|5 | ||||
| BMU_SO|BMU|Southampton|6 | ||||
| @@ -365,13 +365,13 @@ BRA_PB|BRA|Paraíba|56838 | ||||
| BRA_PR|BRA|Paraná|200198 | ||||
| BRA_PE|BRA|Pernambuco|98705 | ||||
| BRA_PI|BRA|Piauí|253394 | ||||
| BRA_RJ|BRA|Riode Janeiro|43962 | ||||
| BRA_RJ|BRA|Rio de Janeiro|43962 | ||||
| BRA_RN|BRA|Rio Grandedo Norte|53165 | ||||
| BRA_RS|BRA|Rio Grandedo Sul|282688 | ||||
| BRA_RO|BRA|Rondônia|238929 | ||||
| BRA_RR|BRA|Roraima|225857 | ||||
| BRA_SC|BRA|Santa Catarina|96032 | ||||
| BRA_SP|BRA|SãoPaulo|249417 | ||||
| BRA_SP|BRA|São Paulo|249417 | ||||
| BRA_SE|BRA|Sergipe|22079 | ||||
| BRA_TO|BRA|Tocantins|279170 | ||||
| VGB_NA|VGB|Virgin Gorda|28 | ||||
| @@ -445,11 +445,11 @@ KHM_KS|KHM|Kâmpóng Spœ|7014 | ||||
| KHM_KT|KHM|Kâmpóng Thum|12907 | ||||
| KHM_KP|KHM|Kâmpôt|4752 | ||||
| KHM_KN|KHM|Kândal|3274 | ||||
| KHM_KK|KHM|KaôhKong|11076 | ||||
| KHM_KK|KHM|Kaôh Kong|11076 | ||||
| KHM_KH|KHM|Krâchéh|12057 | ||||
| KHM_PL|KHM|Krong Pailin|1082 | ||||
| KHM_KA|KHM|Krong Preah Sihanouk|2651 | ||||
| KHM_MK|KHM|MôndólKiri|13747 | ||||
| KHM_MK|KHM|Môndól Kiri|13747 | ||||
| KHM_OC|KHM|Otdar Mean Chey|6672 | ||||
| KHM_PP|KHM|Phnom Penh|689 | ||||
| KHM_PO|KHM|Pouthisat|12588 | ||||
| @@ -493,18 +493,18 @@ CPV_PN|CPV|Porto Novo|581 | ||||
| CPV_PC|CPV|Praia|103 | ||||
| CPV_RB|CPV|Ribeira Brava|237 | ||||
| CPV_RG|CPV|Ribeira Grande|168 | ||||
| CPV_RS|CPV|Ribeira Grandede Santiago|142 | ||||
| CPV_RS|CPV|Ribeira Grande de Santiago|142 | ||||
| CPV_SL|CPV|Sal|225 | ||||
| CPV_CT|CPV|Santa Catarinado Fogo|55 | ||||
| CPV_CZ|CPV|Santa Cruz|116 | ||||
| CPV_SD|CPV|SãoDomingos|159 | ||||
| CPV_FP|CPV|SãoFilipe|340 | ||||
| CPV_LO|CPV|SãoLourençodosÓrgãos|36 | ||||
| CPV_SM|CPV|SãoMiguel|81 | ||||
| CPV_SS|CPV|SãoSalvadordo Mundo|31 | ||||
| CPV_SV|CPV|SãoVicente|271 | ||||
| CPV_SD|CPV|São Domingos|159 | ||||
| CPV_FP|CPV|São Filipe|340 | ||||
| CPV_LO|CPV|São Lourenço dos Órgãos|36 | ||||
| CPV_SM|CPV|São Miguel|81 | ||||
| CPV_SS|CPV|São Salvadordo Mundo|31 | ||||
| CPV_SV|CPV|São Vicente|271 | ||||
| CPV_TF|CPV|Tarrafal|120 | ||||
| CPV_TS|CPV|Tarrafalde SãoNicolau|115 | ||||
| CPV_TS|CPV|Tarrafal de São Nicolau|115 | ||||
| CYM_BT|CYM|Bodden Town|8 | ||||
| CYM_EE|CYM|East End|56 | ||||
| CYM_GT|CYM|George Town|29 | ||||
| @@ -549,13 +549,13 @@ TCD_SA|TCD|Salamat|68389 | ||||
| TCD_SI|TCD|Sila|35924 | ||||
| TCD_TA|TCD|Tandjilé|17645 | ||||
| TCD_TI|TCD|Tibesti|126795 | ||||
| TCD_NJ|TCD|Villede N'Djamena|399 | ||||
| TCD_NJ|TCD|Ville de N'Djamena|399 | ||||
| TCD_BI|TCD|Wadi Fira|54434 | ||||
| CHL_AN|CHL|Antofagasta|126678 | ||||
| CHL_AR|CHL|Araucanía|31844 | ||||
| CHL_AP|CHL|Aricay Parinacota|16931 | ||||
| CHL_AT|CHL|Atacama|75995 | ||||
| CHL_AI|CHL|Ayséndel General Ibañezdel Cam|106476 | ||||
| CHL_AI|CHL|Ayséndel General Ibañez del Cam|106476 | ||||
| CHL_BI|CHL|Bío-Bío|24032 | ||||
| CHL_CO|CHL|Coquimbo|40711 | ||||
| CHL_LI|CHL|Libertador General Bernardo O'Hi|16389 | ||||
| @@ -604,7 +604,7 @@ COL_AM|COL|Amazonas|109901 | ||||
| COL_AN|COL|Antioquia|63337 | ||||
| COL_AR|COL|Arauca|23888 | ||||
| COL_AT|COL|Atlántico|3336 | ||||
| COL_DC|COL|BogotáD.C.|1646 | ||||
| COL_DC|COL|Bogotá D.C.|1646 | ||||
| COL_BL|COL|Bolívar|26790 | ||||
| COL_BY|COL|Boyacá|23235 | ||||
| COL_CL|COL|Caldas|7454 | ||||
| @@ -622,15 +622,15 @@ COL_LG|COL|La Guajira|20580 | ||||
| COL_MA|COL|Magdalena|22912 | ||||
| COL_ME|COL|Meta|85947 | ||||
| COL_NA|COL|Nariño|31546 | ||||
| COL_NS|COL|Nortede Santander|22077 | ||||
| COL_NS|COL|Norte de Santander|22077 | ||||
| COL_PU|COL|Putumayo|26063 | ||||
| COL_QD|COL|Quindío|1947 | ||||
| COL_RI|COL|Risaralda|3562 | ||||
| COL_SA|COL|San Andrésy Providencia|52 | ||||
| COL_SA|COL|San Andrés y Providencia|52 | ||||
| COL_ST|COL|Santander|30788 | ||||
| COL_SU|COL|Sucre|10787 | ||||
| COL_TO|COL|Tolima|24131 | ||||
| COL_VC|COL|Valledel Cauca|21034 | ||||
| COL_VC|COL|Valle del Cauca|21034 | ||||
| COL_VP|COL|Vaupés|53546 | ||||
| COL_VD|COL|Vichada|100014 | ||||
| COM_MO|COM|Mwali|220 | ||||
| @@ -693,7 +693,7 @@ CUB_MA|CUB|Matanzas|11741 | ||||
| CUB_MQ|CUB|Mayabeque|3692 | ||||
| CUB_PR|CUB|Pinardel Río|11079 | ||||
| CUB_SS|CUB|Sancti Spíritus|6401 | ||||
| CUB_SC|CUB|Santiagode Cuba|6441 | ||||
| CUB_SC|CUB|Santiago de Cuba|6441 | ||||
| CUB_VC|CUB|Villa Clara|9161 | ||||
| CYP_FA|CYP|Famagusta|204 | ||||
| CYP_LA|CYP|Larnaca|915 | ||||
| @@ -774,7 +774,7 @@ DOM_AL|DOM|La Altagracia|3119 | ||||
| DOM_EP|DOM|La Estrelleta|1432 | ||||
| DOM_RO|DOM|La Romana|561 | ||||
| DOM_VE|DOM|La Vega|2257 | ||||
| DOM_MT|DOM|MaríaTrinidad Sánchez|1238 | ||||
| DOM_MT|DOM|María Trinidad Sánchez|1238 | ||||
| DOM_MN|DOM|Monseñor Nouel|977 | ||||
| DOM_MC|DOM|Monte Cristi|1956 | ||||
| DOM_MP|DOM|Monte Plata|2604 | ||||
| @@ -784,9 +784,9 @@ DOM_PP|DOM|Puerto Plata|1900 | ||||
| DOM_SC|DOM|Salcedo|426 | ||||
| DOM_SM|DOM|Samaná|864 | ||||
| DOM_CR|DOM|San Cristóbal|1217 | ||||
| DOM_JO|DOM|San Joséde Ocoa|853 | ||||
| DOM_JO|DOM|San José de Ocoa|853 | ||||
| DOM_JU|DOM|San Juan|3347 | ||||
| DOM_PM|DOM|San Pedrode Macorís|1270 | ||||
| DOM_PM|DOM|San Pedro de Macorís|1270 | ||||
| DOM_SZ|DOM|Sánchez Ramírez|1183 | ||||
| DOM_ST|DOM|Santiago|2786 | ||||
| DOM_SR|DOM|Santiago Rodríguez|1150 | ||||
| @@ -812,7 +812,7 @@ ECU_OR|ECU|Orellana|21738 | ||||
| ECU_PA|ECU|Pastaza|29671 | ||||
| ECU_PI|ECU|Pichincha|9512 | ||||
| ECU_SE|ECU|Santa Elena|3720 | ||||
| ECU_SD|ECU|Santo Domingodelos Tsachilas|3803 | ||||
| ECU_SD|ECU|Santo Domingo de los Tsachilas|3803 | ||||
| ECU_SU|ECU|Sucumbios|18069 | ||||
| ECU_TU|ECU|Tungurahua|3405 | ||||
| ECU_ZC|ECU|Zamora Chinchipe|10605 | ||||
| @@ -916,7 +916,7 @@ FIN_LS|FIN|Western Finland|89423 | ||||
| FRA_AR|FRA|Auvergne-Rhône-Alpes|71204 | ||||
| FRA_BF|FRA|Bourgogne-Franche-Comté|48033 | ||||
| FRA_BT|FRA|Bretagne|27609 | ||||
| FRA_CN|FRA|Centre-Valde Loire|39509 | ||||
| FRA_CN|FRA|Centre-Val de Loire|39509 | ||||
| FRA_CE|FRA|Corse|8750 | ||||
| FRA_AO|FRA|Grand Est|57666 | ||||
| FRA_NC|FRA|Hauts-de-France|31945 | ||||
| @@ -924,17 +924,17 @@ FRA_IF|FRA|Île-de-France|12058 | ||||
| FRA_ND|FRA|Normandie|30143 | ||||
| FRA_AC|FRA|Nouvelle-Aquitaine|84800 | ||||
| FRA_LP|FRA|Occitanie|73302 | ||||
| FRA_PL|FRA|Paysdela Loire|32365 | ||||
| FRA_PR|FRA|Provence-Alpes-Côted'Azur|31952 | ||||
| FRA_PL|FRA|Pays de la Loire|32365 | ||||
| FRA_PR|FRA|Provence-Alpes-Côte d'Azur|31952 | ||||
| GUF_CY|GUF|Cayenne|42886 | ||||
| GUF_SL|GUF|Saint-Laurent-du-Maroni|40970 | ||||
| PYF_TI|PYF|Îles Australes|373 | ||||
| PYF_WI|PYF|Îlesdu Vent|1216 | ||||
| PYF_WI|PYF|Îles du Vent|1216 | ||||
| PYF_MI|PYF|Îles Marquises|996 | ||||
| PYF_LI|PYF|Îles Sous-le-Vent|429 | ||||
| PYF_TG|PYF|Îles Tuamotu-Gambier|1039 | ||||
| ATF_CR|ATF|Îles Crozet|372 | ||||
| ATF_NA|ATF|ÎlesÉparses|44 | ||||
| ATF_NA|ATF|Îles Éparses|44 | ||||
| ATF_AS|ATF|Îles Saint Paulet Amsterdam|64 | ||||
| ATF_KG|ATF|Kerguelen|7372 | ||||
| GAB_ES|GAB|Estuaire|20024 | ||||
| @@ -1171,7 +1171,7 @@ IND_MN|IND|Manipur|22420 | ||||
| IND_ML|IND|Meghalaya|22612 | ||||
| IND_MZ|IND|Mizoram|21350 | ||||
| IND_NL|IND|Nagaland|16668 | ||||
| IND_DL|IND|NC Tof Delhi|1508 | ||||
| IND_DL|IND|NCT of Delhi|1508 | ||||
| IND_OR|IND|Odisha|156427 | ||||
| IND_PY|IND|Puducherry|550 | ||||
| IND_PB|IND|Punjab|50386 | ||||
| @@ -1518,9 +1518,9 @@ LSO_BB|LSO|Butha-Buthe|1796 | ||||
| LSO_LE|LSO|Leribe|2829 | ||||
| LSO_MF|LSO|Mafeteng|2659 | ||||
| LSO_MS|LSO|Maseru|3781 | ||||
| LSO_MH|LSO|Mohale'sHoek|3451 | ||||
| LSO_MH|LSO|Mohale's Hoek|3451 | ||||
| LSO_MK|LSO|Mokhotlong|4184 | ||||
| LSO_QN|LSO|Qacha'sNek|2131 | ||||
| LSO_QN|LSO|Qacha's Nek|2131 | ||||
| LSO_QT|LSO|Quthing|2974 | ||||
| LSO_TT|LSO|Thaba-Tseka|4849 | ||||
| LBR_BM|LBR|Bomi|2122 | ||||
| @@ -1607,7 +1607,7 @@ MKD_DK|MKD|Demir Kapija|314 | ||||
| MKD_DE|MKD|Dolneni|410 | ||||
| MKD_GB|MKD|Gazi Baba|102 | ||||
| MKD_GV|MKD|Gevgelija|438 | ||||
| MKD_GP|MKD|GjorčePetrov|70 | ||||
| MKD_GP|MKD|Gjorče Petrov|70 | ||||
| MKD_GT|MKD|Gostivar|524 | ||||
| MKD_GR|MKD|Gradsko|282 | ||||
| MKD_IL|MKD|Ilinden|95 | ||||
| @@ -1896,7 +1896,7 @@ MAR_FB|MAR|Fès-Boulemane|19366 | ||||
| MAR_GB|MAR|Gharb-Chrarda-Béni Hssen|8782 | ||||
| MAR_GC|MAR|Grand Casablanca|879 | ||||
| MAR_GE|MAR|Guelmim-Es-Semara|64701 | ||||
| MAR_LB|MAR|Laâyoune-Boujdour-Sakia El H|5763 | ||||
| MAR_LB|MAR|Laâyoune-Boujdour-Sakia El Hamra|5763 | ||||
| MAR_MK|MAR|Marrakech-Tensift-Al Haouz|32483 | ||||
| MAR_MT|MAR|Meknès-Tafilalet|60303 | ||||
| MAR_OR|MAR|Oriental|59914 | ||||
| @@ -1979,11 +1979,11 @@ NCL_IL|NCL|Îles Loyauté|1988 | ||||
| NCL_NO|NCL|Nord|9520 | ||||
| NCL_SU|NCL|Sud|7408 | ||||
| NZL_AU|NZL|Auckland|4958 | ||||
| NZL_BP|NZL|Bayof Plenty|12293 | ||||
| NZL_BP|NZL|Bay of Plenty|12293 | ||||
| NZL_CA|NZL|Canterbury|48152 | ||||
| NZL_CI|NZL|Chatham Islands|798 | ||||
| NZL_GI|NZL|Gisborne|8369 | ||||
| NZL_HB|NZL|Hawke'sBay|12790 | ||||
| NZL_HB|NZL|Hawke's Bay|12790 | ||||
| NZL_MW|NZL|Manawatu-Wanganui|21998 | ||||
| NZL_MA|NZL|Marlborough|10491 | ||||
| NZL_NE|NZL|Nelson|425 | ||||
| @@ -2013,7 +2013,7 @@ NIC_MN|NIC|Managua|4628 | ||||
| NIC_MS|NIC|Masaya|607 | ||||
| NIC_MT|NIC|Matagalpa|8856 | ||||
| NIC_NS|NIC|Nueva Segovia|3142 | ||||
| NIC_SJ|NIC|RíoSan Juan|7345 | ||||
| NIC_SJ|NIC|Río San Juan|7345 | ||||
| NIC_RI|NIC|Rivas|1909 | ||||
| NER_AG|NER|Agadez|626771 | ||||
| NER_DF|NER|Diffa|147076 | ||||
| @@ -2131,7 +2131,7 @@ PLW_NW|PLW|Ngiwal|18 | ||||
| PLW_SO|PLW|Sonsorol|3 | ||||
| PSE_GZ|PSE|Gaza|344 | ||||
| PSE_WE|PSE|West Bank|5895 | ||||
| PAN_BC|PAN|Bocasdel Toro|4718 | ||||
| PAN_BC|PAN|Bocas del Toro|4718 | ||||
| PAN_CH|PAN|Chiriquí|6676 | ||||
| PAN_CC|PAN|Coclé|4939 | ||||
| PAN_CL|PAN|Colón|4711 | ||||
| @@ -2142,7 +2142,7 @@ PAN_SB|PAN|Kuna Yala|2554 | ||||
| PAN_LS|PAN|Los Santos|3819 | ||||
| PAN_NB|PAN|Ngöbe Buglé|6649 | ||||
| PAN_PN|PAN|Panamá|8843 | ||||
| PAN_PO|PAN|PanamáOeste|3066 | ||||
| PAN_PO|PAN|Panamá Oeste|3066 | ||||
| PAN_VR|PAN|Veraguas|10980 | ||||
| PNG_NS|PNG|Bougainville|9470 | ||||
| PNG_CE|PNG|Central|29630 | ||||
| @@ -2201,7 +2201,7 @@ PER_LB|PER|Lambayeque|14380 | ||||
| PER_LR|PER|Lima|32537 | ||||
| PER_LP|PER|Lima Province|2722 | ||||
| PER_LO|PER|Loreto|377948 | ||||
| PER_MD|PER|Madrede Dios|84858 | ||||
| PER_MD|PER|Madre de Dios|84858 | ||||
| PER_MQ|PER|Moquegua|15844 | ||||
| PER_PA|PER|Pasco|24123 | ||||
| PER_PI|PER|Piura|36095 | ||||
| @@ -2386,7 +2386,7 @@ PRI_PN|PRI|Peñuelas|118 | ||||
| PRI_PO|PRI|Ponce|307 | ||||
| PRI_QB|PRI|Quebradillas|60 | ||||
| PRI_RC|PRI|Rincón|37 | ||||
| PRI_RG|PRI|RíoGrande|158 | ||||
| PRI_RG|PRI|Río Grande|158 | ||||
| PRI_SB|PRI|Sabana Grande|94 | ||||
| PRI_SA|PRI|Salinas|185 | ||||
| PRI_SG|PRI|San Germán|140 | ||||
| @@ -2482,7 +2482,7 @@ RUS_CN|RUS|Chechnya|15154 | ||||
| RUS_CL|RUS|Chelyabinsk|88739 | ||||
| RUS_CK|RUS|Chukot|716435 | ||||
| RUS_CV|RUS|Chuvash|18377 | ||||
| RUS_SP|RUS|Cityof St.Petersburg|2039 | ||||
| RUS_SP|RUS|City of St.Petersburg|2039 | ||||
| RUS_DA|RUS|Dagestan|49446 | ||||
| RUS_GA|RUS|Gorno-Altay|92910 | ||||
| RUS_IN|RUS|Ingush|3228 | ||||
| @@ -2614,7 +2614,7 @@ SMR_MG|SMR|Montegiardino|3 | ||||
| SMR_SM|SMR|San Marino|7 | ||||
| SMR_SE|SMR|Serravalle|10 | ||||
| STP_PR|STP|Príncipe|145 | ||||
| STP_ST|STP|SãoTomé|864 | ||||
| STP_ST|STP|São Tomé|864 | ||||
| SAU_AS|SAU|'Asir|77398 | ||||
| SAU_BA|SAU|Al Bahah|10566 | ||||
| SAU_HS|SAU|Al Hududash Shamaliyah|104147 | ||||
| @@ -2789,17 +2789,17 @@ ESP_CM|ESP|Castilla-La Mancha|79561 | ||||
| ESP_CL|ESP|Castillay León|94291 | ||||
| ESP_CT|ESP|Cataluña|32133 | ||||
| ESP_ML|ESP|Ceutay Melilla|29 | ||||
| ESP_MD|ESP|Comunidadde Madrid|8036 | ||||
| ESP_NA|ESP|Comunidad Foralde Navarra|10362 | ||||
| ESP_MD|ESP|Comunidad de Madrid|8036 | ||||
| ESP_NA|ESP|Comunidad Foral de Navarra|10362 | ||||
| ESP_VC|ESP|Comunidad Valenciana|23290 | ||||
| ESP_EX|ESP|Extremadura|41695 | ||||
| ESP_GA|ESP|Galicia|29622 | ||||
| ESP_PM|ESP|Islas Baleares|5036 | ||||
| ESP_CN|ESP|Islas Canarias|7540 | ||||
| ESP_LO|ESP|La Rioja|5053 | ||||
| ESP_PV|ESP|PaísVasco|7237 | ||||
| ESP_AS|ESP|Principadode Asturias|10607 | ||||
| ESP_MU|ESP|Regiónde Murcia|11337 | ||||
| ESP_PV|ESP|País Vasco|7237 | ||||
| ESP_AS|ESP|Principado de Asturias|10607 | ||||
| ESP_MU|ESP|Región de Murcia|11337 | ||||
| LKA_AP|LKA|Ampara|4513 | ||||
| LKA_AD|LKA|Anuradhapura|7253 | ||||
| LKA_BD|LKA|Badulla|2887 | ||||
| @@ -2926,7 +2926,7 @@ TWN_TG|TWN|Taichung|2254 | ||||
| TWN_TN|TWN|Tainan|2236 | ||||
| TWN_TP|TWN|Taipei|279 | ||||
| TWN_TA|TWN|Taiwan|26568 | ||||
| TJK_RR|TJK|Districtsof Republican Subordin|28383 | ||||
| TJK_RR|TJK|Districts of Republican Subordin|28383 | ||||
| TJK_DU|TJK|Dushanbe|169 | ||||
| TJK_BK|TJK|Gorno-Badakhshan|63429 | ||||
| TJK_KL|TJK|Khatlon|23925 | ||||
| @@ -3072,7 +3072,7 @@ TTO_DM|TTO|Diego Martin|142 | ||||
| TTO_MR|TTO|Mayaro/Rio Claro|792 | ||||
| TTO_PD|TTO|Penal-Debe|246 | ||||
| TTO_PF|TTO|Point Fortin|29 | ||||
| TTO_PS|TTO|Portof Spain|14 | ||||
| TTO_PS|TTO|Port of Spain|14 | ||||
| TTO_PT|TTO|Princes Town|619 | ||||
| TTO_SF|TTO|San Fernando|20 | ||||
| TTO_SL|TTO|San Juan-Laventille|216 | ||||
| @@ -3293,9 +3293,9 @@ ARE_RK|ARE|Ras Al-Khaimah|2442 | ||||
| ARE_SH|ARE|Sharjah|2529 | ||||
| ARE_UQ|ARE|Ummal-Qaywayn|746 | ||||
| GBR_NIR|GBR|Northern Ireland|14134 | ||||
| GBR_SCT|GBR|Scotland|78704 | ||||
| GBR_SCT|GBR|Scotland|79121 | ||||
| GBR_WLS|GBR|Wales|20818 | ||||
| GBR_NA|GBR|NA|130659 | ||||
| GBR_NA|GBR|England|130659 | ||||
| USA_AL|USA|Alabama|133995 | ||||
| USA_AK|USA|Alaska|1501231 | ||||
| USA_AZ|USA|Arizona|296082 | ||||
| @@ -3304,7 +3304,7 @@ USA_CA|USA|California|410314 | ||||
| USA_CO|USA|Colorado|270116 | ||||
| USA_CT|USA|Connecticut|12902 | ||||
| USA_DE|USA|Delaware|5304 | ||||
| USA_DC|USA|Districtof Columbia|166 | ||||
| USA_DC|USA|District of Columbia|166 | ||||
| USA_FL|USA|Florida|147978 | ||||
| USA_GA|USA|Georgia|152863 | ||||
| USA_HI|USA|Hawaii|16809 | ||||
| @@ -3359,7 +3359,7 @@ URY_LA|URY|Lavalleja|10055 | ||||
| URY_MA|URY|Maldonado|4819 | ||||
| URY_MO|URY|Montevideo|533 | ||||
| URY_PA|URY|Paysandú|14141 | ||||
| URY_RN|URY|RíoNegro|9727 | ||||
| URY_RN|URY|Río Negro|9727 | ||||
| URY_RV|URY|Rivera|9358 | ||||
| URY_RO|URY|Rocha|10965 | ||||
| URY_SA|URY|Salto|14226 | ||||
| @@ -3407,68 +3407,68 @@ VEN_T|VEN|Trujillo|8129 | ||||
| VEN_U|VEN|Yaracuy|6259 | ||||
| VEN_V|VEN|Zulia|44191 | ||||
| VNM_AG|VNM|An Giang|3547 | ||||
| VNM_BV|VNM|BàRịa-Vũng Tàu|1918 | ||||
| VNM_BG|VNM|BắcGiang|3913 | ||||
| VNM_BK|VNM|BắcKạn|4885 | ||||
| VNM_BL|VNM|BạcLiêu|2495 | ||||
| VNM_BN|VNM|BắcNinh|825 | ||||
| VNM_BR|VNM|BếnTre|2354 | ||||
| VNM_BD|VNM|BìnhĐịnh|6102 | ||||
| VNM_BV|VNM|Bà Rịa-Vũng Tàu|1918 | ||||
| VNM_BG|VNM|Bắc Giang|3913 | ||||
| VNM_BK|VNM|Bắc Kạn|4885 | ||||
| VNM_BL|VNM|Bạc Liêu|2495 | ||||
| VNM_BN|VNM|Bắc Ninh|825 | ||||
| VNM_BR|VNM|Bến Tre|2354 | ||||
| VNM_BD|VNM|Bình Định|6102 | ||||
| VNM_BI|VNM|Bình Dương|2709 | ||||
| VNM_BP|VNM|Bình Phước|6909 | ||||
| VNM_BU|VNM|Bình Thuận|7994 | ||||
| VNM_CM|VNM|CàMau|5201 | ||||
| VNM_CN|VNM|CầnThơ|1448 | ||||
| VNM_CM|VNM|Cà Mau|5201 | ||||
| VNM_CN|VNM|Cần Thơ|1448 | ||||
| VNM_CB|VNM|Cao Bằng|6729 | ||||
| VNM_DA|VNM|ĐàNẵng|988 | ||||
| VNM_DC|VNM|ĐắkLắk|13105 | ||||
| VNM_DO|VNM|ĐắkNông|6550 | ||||
| VNM_DB|VNM|ĐiệnBiên|9549 | ||||
| VNM_DA|VNM|Đà Nẵng|988 | ||||
| VNM_DC|VNM|Đắk Lắk|13105 | ||||
| VNM_DO|VNM|Đắk Nông|6550 | ||||
| VNM_DB|VNM|Điện Biên|9549 | ||||
| VNM_DN|VNM|Đồng Nai|5899 | ||||
| VNM_DT|VNM|Đồng Tháp|3410 | ||||
| VNM_GL|VNM|Gia Lai|15610 | ||||
| VNM_HG|VNM|HàGiang|7958 | ||||
| VNM_HM|VNM|HàNam|867 | ||||
| VNM_HI|VNM|HàNội|3374 | ||||
| VNM_HT|VNM|HàTĩnh|6016 | ||||
| VNM_HD|VNM|HảiDương|1679 | ||||
| VNM_HP|VNM|HảiPhòng|1407 | ||||
| VNM_HU|VNM|HậuGiang|1633 | ||||
| VNM_HC|VNM|HồChíMinh|2122 | ||||
| VNM_HO|VNM|HoàBình|4602 | ||||
| VNM_HG|VNM|Hà Giang|7958 | ||||
| VNM_HM|VNM|Hà Nam|867 | ||||
| VNM_HI|VNM|Hà Nội|3374 | ||||
| VNM_HT|VNM|Hà Tĩnh|6016 | ||||
| VNM_HD|VNM|Hải Dương|1679 | ||||
| VNM_HP|VNM|Hải Phòng|1407 | ||||
| VNM_HU|VNM|Hậu Giang|1633 | ||||
| VNM_HC|VNM|Hồ Chí Minh|2122 | ||||
| VNM_HO|VNM|Hoà Bình|4602 | ||||
| VNM_HY|VNM|Hưng Yên|931 | ||||
| VNM_KH|VNM|Khánh Hòa|4870 | ||||
| VNM_KG|VNM|KiênGiang|6327 | ||||
| VNM_KG|VNM|Kiên Giang|6327 | ||||
| VNM_KT|VNM|Kon Tum|9706 | ||||
| VNM_LI|VNM|Lai Châu|9106 | ||||
| VNM_LD|VNM|LâmĐồng|9846 | ||||
| VNM_LD|VNM|Lâm Đồng|9846 | ||||
| VNM_LS|VNM|Lạng Sơn|8344 | ||||
| VNM_LO|VNM|LàoCai|6390 | ||||
| VNM_LO|VNM|Lào Cai|6390 | ||||
| VNM_LA|VNM|Long An|4518 | ||||
| VNM_ND|VNM|NamĐịnh|1595 | ||||
| VNM_NA|VNM|NghệAn|16562 | ||||
| VNM_ND|VNM|Nam Định|1595 | ||||
| VNM_NA|VNM|Nghệ An|16562 | ||||
| VNM_NB|VNM|Ninh Bình|1351 | ||||
| VNM_NT|VNM|Ninh Thuận|3382 | ||||
| VNM_PT|VNM|PhúThọ|3555 | ||||
| VNM_PY|VNM|PhúYên|5061 | ||||
| VNM_PT|VNM|Phú Thọ|3555 | ||||
| VNM_PY|VNM|Phú Yên|5061 | ||||
| VNM_QB|VNM|Quảng Bình|8023 | ||||
| VNM_QM|VNM|Quảng Nam|10634 | ||||
| VNM_QG|VNM|Quảng Ngãi|5194 | ||||
| VNM_QN|VNM|Quảng Ninh|6017 | ||||
| VNM_QT|VNM|Quảng Trị|4639 | ||||
| VNM_ST|VNM|SócTrăng|3303 | ||||
| VNM_SL|VNM|SơnLa|14185 | ||||
| VNM_TN|VNM|TâyNinh|4060 | ||||
| VNM_TB|VNM|TháiBình|1620 | ||||
| VNM_TY|VNM|TháiNguyên|3540 | ||||
| VNM_ST|VNM|Sóc Trăng|3303 | ||||
| VNM_SL|VNM|Sơn La|14185 | ||||
| VNM_TN|VNM|Tây Ninh|4060 | ||||
| VNM_TB|VNM|Thái Bình|1620 | ||||
| VNM_TY|VNM|Thái Nguyên|3540 | ||||
| VNM_TH|VNM|Thanh Hóa|11163 | ||||
| VNM_TT|VNM|ThừaThiênHuế|5053 | ||||
| VNM_TG|VNM|TiềnGiang|2421 | ||||
| VNM_TV|VNM|TràVinh|2339 | ||||
| VNM_TQ|VNM|TuyênQuang|5895 | ||||
| VNM_TT|VNM|Thừa Thiên Huế|5053 | ||||
| VNM_TG|VNM|Tiền Giang|2421 | ||||
| VNM_TV|VNM|Trà Vinh|2339 | ||||
| VNM_TQ|VNM|Tuyên Quang|5895 | ||||
| VNM_VL|VNM|Vĩnh Long|1534 | ||||
| VNM_VC|VNM|Vĩnh Phúc|1237 | ||||
| VNM_YB|VNM|YênBái|6921 | ||||
| VNM_YB|VNM|Yên Bái|6921 | ||||
| VIR_SC|VIR|Saint Croix|222 | ||||
| VIR_SJ|VIR|Saint John|53 | ||||
| VIR_ST|VIR|Saint Thomas|89 | ||||
| @@ -3532,4 +3532,3 @@ Z05_UT|IND|Uttarakhand|259 | ||||
| Z09_UT|IND|Uttarakhand|987 | ||||
| Z06_JK|PAK|Azad Kashmir|13931 | ||||
| Z06_NA|PAK|Gilgit-Baltistan|68053 | ||||
| GBR_EN|GBR|England|417 | ||||
|   | ||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| Before Width: | Height: | Size: 6.5 MiB After Width: | Height: | Size: 6.5 MiB | 
| @@ -13,12 +13,15 @@ import net.helcel.beans.activity.fragment.EditPlaceColorFragment | ||||
| import net.helcel.beans.activity.fragment.EditPlaceFragment | ||||
| import net.helcel.beans.countries.GeoLoc | ||||
| import net.helcel.beans.databinding.ItemListGeolocBinding | ||||
| import net.helcel.beans.helper.AUTO_GROUP | ||||
| import net.helcel.beans.helper.Data | ||||
| import net.helcel.beans.helper.NO_GROUP | ||||
| import net.helcel.beans.helper.Settings | ||||
| import net.helcel.beans.helper.Theme.colorWrapper | ||||
|  | ||||
| class GeolocListAdapter( | ||||
|     private val ctx: EditPlaceFragment, private val l: GeoLoc, private val pager: ViewPagerAdapter | ||||
|     private val ctx: EditPlaceFragment, private val l: GeoLoc, private val pager: ViewPagerAdapter, | ||||
|     private val parentHolder: FoldingListViewHolder? | ||||
| ) : RecyclerView.Adapter<GeolocListAdapter.FoldingListViewHolder>() { | ||||
|  | ||||
|     override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): FoldingListViewHolder { | ||||
| @@ -27,7 +30,7 @@ class GeolocListAdapter( | ||||
|             viewGroup, | ||||
|             false | ||||
|         ) | ||||
|         return FoldingListViewHolder(ctx.requireActivity(), binding) | ||||
|         return FoldingListViewHolder(ctx.requireActivity(), binding, parentHolder, l) | ||||
|     } | ||||
|  | ||||
|     override fun onBindViewHolder(holder: FoldingListViewHolder, position: Int) { | ||||
| @@ -35,7 +38,7 @@ class GeolocListAdapter( | ||||
|         holder.bind(el) | ||||
|         holder.addListeners(el) { | ||||
|             if (el.children.isNotEmpty()) | ||||
|                 pager.addFragment(ctx, EditPlaceFragment(el, pager)) | ||||
|                 pager.addFragment(ctx, EditPlaceFragment(el, pager, holder)) | ||||
|             true | ||||
|         } | ||||
|     } | ||||
| @@ -46,21 +49,13 @@ class GeolocListAdapter( | ||||
|  | ||||
|     class FoldingListViewHolder( | ||||
|         private val ctx: FragmentActivity, | ||||
|         private val _binding: ItemListGeolocBinding | ||||
|         private val _binding: ItemListGeolocBinding, | ||||
|         private val _parentHolder: FoldingListViewHolder? = null, | ||||
|         private val _parentGeoLoc: GeoLoc, | ||||
|     ) : RecyclerView.ViewHolder(_binding.root) { | ||||
|  | ||||
|         private fun bindGroup(el: GeoLoc) { | ||||
|             val numerator = el.children.map { Data.visits.getVisited(it) != 0 }.count { it } | ||||
|             val denominator = el.children.size | ||||
|  | ||||
|             _binding.count.text = when (Settings.getStatPref(ctx)) { | ||||
|                 ctx.getString(R.string.percentages) -> ctx.getString( | ||||
|                     R.string.percentage, | ||||
|                     (100 * (numerator.toFloat() / denominator.toFloat())).toInt() | ||||
|                 ) | ||||
|  | ||||
|                 else -> ctx.getString(R.string.rate, numerator, denominator) | ||||
|             } | ||||
|             refreshCount(el) | ||||
|             _binding.textView.setTypeface(null, Typeface.BOLD) | ||||
|             _binding.textView.backgroundTintList = ColorStateList.valueOf( | ||||
|                 colorWrapper( | ||||
| @@ -104,16 +99,17 @@ class GeolocListAdapter( | ||||
|                         "AddColorDialogFragment" | ||||
|                     ) | ||||
|                 } | ||||
|                 _parentHolder?.refresh(_parentGeoLoc) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         fun onColorDialogDismiss(clear: Boolean) { | ||||
|             if (clear) { | ||||
|                 Data.visits.setVisited(Data.selected_geoloc, 0) | ||||
|                 Data.visits.setVisited(Data.selected_geoloc, NO_GROUP) | ||||
|                 Data.saveData() | ||||
|             } | ||||
|             if (Data.selected_group != null && Data.selected_geoloc != null) { | ||||
|                 Data.visits.setVisited(Data.selected_geoloc, Data.selected_group?.key ?: 0) | ||||
|                 Data.visits.setVisited(Data.selected_geoloc, Data.selected_group?.key ?: NO_GROUP) | ||||
|                 Data.saveData() | ||||
|             } | ||||
|             Data.selected_geoloc?.let { refreshCheck(it) } | ||||
| @@ -122,6 +118,24 @@ class GeolocListAdapter( | ||||
|         } | ||||
|  | ||||
|         private fun refreshCheck(geoLoc: GeoLoc) { | ||||
|             _binding.checkBox.checkedState = | ||||
|                 if (Data.visits.getVisited(geoLoc) !in listOf(NO_GROUP, AUTO_GROUP)) { | ||||
|                     MaterialCheckBox.STATE_CHECKED | ||||
|                 } | ||||
|                 else if (geoLoc.children.isNotEmpty() && geoLoc.children.all { Data.visits.getVisited(it) != NO_GROUP }) { | ||||
|                     Data.visits.setVisited(geoLoc, AUTO_GROUP) | ||||
|                     MaterialCheckBox.STATE_CHECKED | ||||
|                 } | ||||
|                 else if (geoLoc.children.any { Data.visits.getVisited(it) != NO_GROUP }) { | ||||
|                     Data.visits.setVisited(geoLoc, AUTO_GROUP) | ||||
|                     MaterialCheckBox.STATE_INDETERMINATE | ||||
|                 } | ||||
|                 else { | ||||
|                     Data.visits.setVisited(geoLoc, NO_GROUP) | ||||
|                     MaterialCheckBox.STATE_UNCHECKED | ||||
|                 } | ||||
|             Data.saveData() | ||||
|  | ||||
|             var col = Data.groups.getGroupFromKey(Data.visits.getVisited(geoLoc)).color | ||||
|             if (col.color == Color.TRANSPARENT) { | ||||
|                 col = colorWrapper( | ||||
| @@ -130,13 +144,29 @@ class GeolocListAdapter( | ||||
|                 ) | ||||
|                 col.alpha = 64 | ||||
|             } | ||||
|             _binding.checkBox.checkedState = | ||||
|                 if (Data.visits.getVisited(geoLoc) != 0) MaterialCheckBox.STATE_CHECKED | ||||
|                 else if (geoLoc.children.any { Data.visits.getVisited(it) != 0 }) MaterialCheckBox.STATE_INDETERMINATE | ||||
|                 else MaterialCheckBox.STATE_UNCHECKED | ||||
|  | ||||
|             _binding.checkBox.buttonTintList = ColorStateList.valueOf(col.color) | ||||
|         } | ||||
|  | ||||
|         private fun refreshCount(geoLoc: GeoLoc) { | ||||
|             val numerator = geoLoc.children.map { Data.visits.getVisited(it) != NO_GROUP }.count { it } | ||||
|             val denominator = geoLoc.children.size | ||||
|             _binding.count.text = when (Settings.getStatPref(ctx)) { | ||||
|                 ctx.getString(R.string.percentages) -> ctx.getString( | ||||
|                     R.string.percentage, | ||||
|                     (100 * (numerator.toFloat() / denominator.toFloat())).toInt() | ||||
|                 ) | ||||
|                 else -> ctx.getString(R.string.rate, numerator, denominator) | ||||
|             } | ||||
|         } | ||||
|  | ||||
|         private fun refresh(geoLoc: GeoLoc) { | ||||
|             // Refresh | ||||
|             refreshCheck(geoLoc) | ||||
|             refreshCount(geoLoc) | ||||
|  | ||||
|             // Recursively refresh parent | ||||
|             _parentHolder?.refresh(_parentGeoLoc) | ||||
|         } | ||||
|  | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -8,11 +8,12 @@ import androidx.fragment.app.Fragment | ||||
| import androidx.recyclerview.widget.LinearLayoutManager | ||||
| import androidx.recyclerview.widget.RecyclerView | ||||
| import net.helcel.beans.activity.adapter.GeolocListAdapter | ||||
| import net.helcel.beans.activity.adapter.GeolocListAdapter.FoldingListViewHolder | ||||
| import net.helcel.beans.activity.adapter.ViewPagerAdapter | ||||
| import net.helcel.beans.countries.GeoLoc | ||||
| import net.helcel.beans.databinding.FragmentEditPlacesBinding | ||||
|  | ||||
| class EditPlaceFragment(val loc: GeoLoc, private val pager: ViewPagerAdapter) : Fragment() { | ||||
| class EditPlaceFragment(val loc: GeoLoc, private val pager: ViewPagerAdapter, private val holder: FoldingListViewHolder? = null) : Fragment() { | ||||
|     private lateinit var _binding: FragmentEditPlacesBinding | ||||
|  | ||||
|     override fun onCreateView( | ||||
| @@ -26,7 +27,7 @@ class EditPlaceFragment(val loc: GeoLoc, private val pager: ViewPagerAdapter) : | ||||
|         _binding.list.setHasFixedSize(true) | ||||
|         _binding.list.layoutManager = | ||||
|             LinearLayoutManager(requireContext(), RecyclerView.VERTICAL, false) | ||||
|         _binding.list.adapter = GeolocListAdapter(this, loc, pager) | ||||
|         _binding.list.adapter = GeolocListAdapter(this, loc, pager, holder) | ||||
|         return _binding.root | ||||
|     } | ||||
| } | ||||
| @@ -17,8 +17,7 @@ class SettingsFragment : PreferenceFragmentCompat() { | ||||
|         findPreference<Preference>(getString(R.string.key_regional))?.setOnPreferenceChangeListener { _, key -> | ||||
|             when (key as String) { | ||||
|                 ctx.getString(R.string.off) -> GeoLocImporter.clearStates() | ||||
|                 ctx.getString(R.string.on) -> GeoLocImporter.importStates(ctx) | ||||
|                 else -> GeoLocImporter.clearStates() | ||||
|                 ctx.getString(R.string.on) -> GeoLocImporter.importStates(ctx, true) | ||||
|             } | ||||
|             true | ||||
|         } | ||||
|   | ||||
| @@ -8,8 +8,6 @@ enum class Country( | ||||
|     HKG("Hong Kong", 1104), | ||||
|     MAC("Macao", 32), | ||||
|     ANT("Netherlands Antilles", 800), | ||||
|  | ||||
|  | ||||
|     AFG("Afghanistan", 645487), | ||||
|     XAD("Akrotiri and Dhekelia", 234), | ||||
|     ALA("Åland", 1483), | ||||
| @@ -217,7 +215,7 @@ enum class Country( | ||||
|     SLB("Solomon Islands", 28686), | ||||
|     SOM("Somalia", 637672), | ||||
|     ZAF("South Africa", 1224059), | ||||
|     SGS("South Georgia and the South Sand", 4085), | ||||
|     SGS("South Georgia and the South Sandwich Islands", 4085), | ||||
|     KOR("South Korea", 100721), | ||||
|     SSD("South Sudan", 632186), | ||||
|     ESP("Spain", 506617), | ||||
| @@ -248,7 +246,7 @@ enum class Country( | ||||
|     ARE("United Arab Emirates", 71429), | ||||
|     GBR("United Kingdom", 244732), | ||||
|     USA("United States", 9477483), | ||||
|     UMI("United States Minor Outlying Isl", 47), | ||||
|     UMI("United States Minor Outlying Islands", 47), | ||||
|     URY("Uruguay", 178103), | ||||
|     UZB("Uzbekistan", 447894), | ||||
|     VUT("Vanuatu", 12384), | ||||
|   | ||||
| @@ -7,8 +7,8 @@ import java.io.InputStreamReader | ||||
|  | ||||
| object GeoLocImporter { | ||||
|  | ||||
|     fun importStates(ctx: Context) { | ||||
|         if (!Settings.isRegional(ctx)) { | ||||
|     fun importStates(ctx: Context, force: Boolean = false) { | ||||
|         if (!Settings.isRegional(ctx) and !force) { | ||||
|             return | ||||
|         } | ||||
|         val fs = BufferedReader(InputStreamReader(ctx.assets.open("geoloc_state.txt"))) | ||||
|   | ||||
| @@ -6,6 +6,8 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|  | ||||
|     EEE( | ||||
|         "Europe", listOf( | ||||
|             XAD, | ||||
|             ALA,// Åland Islands: an autonomous region of Finland, but not a member of the EU or UN | ||||
|             ALB, | ||||
|             AND, | ||||
|             AUT, | ||||
| @@ -18,14 +20,19 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             CZE, | ||||
|             DNK, | ||||
|             EST, | ||||
|             FRO, // Faroe Islands: an autonomous region of Denmark | ||||
|             FIN, | ||||
|             FRA, | ||||
|             DEU, | ||||
|             GIB, // Gibraltar: a British overseas territory located at the southern tip of the Iberian Peninsula | ||||
|             GRC, | ||||
|             GGY, // Guernsey: a British Crown dependency in the English Channel | ||||
|             HUN, | ||||
|             ISL, | ||||
|             IRL, | ||||
|             IMN, // Isle of Man: a British Crown dependency located in the Irish Sea | ||||
|             ITA, | ||||
|             JEY, // Jersey: a British Crown dependency located in the English Channel | ||||
|             KAZ, | ||||
|             XKO, | ||||
|             LVA, | ||||
| @@ -48,12 +55,12 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             SVK, | ||||
|             SVN, | ||||
|             ESP, | ||||
|             SJM, // Svalbard and Jan Mayen: an archipelago administered by Norway | ||||
|             SWE, | ||||
|             CHE, | ||||
|             UKR, | ||||
|             GBR, | ||||
|             VAT, | ||||
|             XAD, | ||||
|         ) | ||||
|     ), | ||||
|     ABB( | ||||
| @@ -64,9 +71,12 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             BHR, | ||||
|             BGD, | ||||
|             BTN, | ||||
|             IOT, // British Indian Ocean Territory: a British overseas territory in the Indian Ocean | ||||
|             BRN, | ||||
|             KHM, | ||||
|             CCK, // Cocos (Keeling) Islands: an Australian external territory in the Indian Ocean | ||||
|             CHN, | ||||
|             CXR, // Christmas Island: an Australian external territory in the Indian Ocean | ||||
|             GEO, | ||||
|             HKG, | ||||
|             IND, | ||||
| @@ -131,8 +141,8 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             EGY, | ||||
|             GNQ, | ||||
|             ERI, | ||||
|             SWZ, | ||||
|             ETH, | ||||
|             ATF, // French Southern and Antarctic Lands: a territory of France located in the southern Indian Ocean | ||||
|             GAB, | ||||
|             GMB, | ||||
|             GHA, | ||||
| @@ -165,6 +175,7 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             SSD, | ||||
|             SHN, | ||||
|             SDN, | ||||
|             SWZ, | ||||
|             TZA, | ||||
|             TGO, | ||||
|             TUN, | ||||
| @@ -184,9 +195,11 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             BRB, | ||||
|             BLZ, | ||||
|             BMU, | ||||
|             BES, // Bonaire, Sint Eustatius and Saba: special municipalities of the Netherlands in the Caribbean | ||||
|             VGB, | ||||
|             CAN, | ||||
|             CYM, | ||||
|             XCL, | ||||
|             CRI, | ||||
|             CUB, | ||||
|             CUW, | ||||
| @@ -208,15 +221,18 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             NIC, | ||||
|             PAN, | ||||
|             PRI, | ||||
|             BLM, // Saint Barthélemy: an overseas collectivity of France in the Caribbean | ||||
|             KNA, | ||||
|             LCA, | ||||
|             MAF, | ||||
|             SPM, | ||||
|             VCT, | ||||
|             SXM, // Sint Maarten: a constituent country of the Kingdom of the Netherlands in the Caribbean | ||||
|             TTO, | ||||
|             TCA, | ||||
|             USA, | ||||
|             XCL, | ||||
|             UMI, // United States Minor Outlying Islands: a collection of nine insular areas of the United States | ||||
|             VIR, // United States Virgin Islands: an unincorporated territory of the United States in the Caribbean | ||||
|         ) | ||||
|     ), | ||||
|     SRR( | ||||
| @@ -257,6 +273,7 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|             PLW, | ||||
|             PNG, | ||||
|             PCN, | ||||
|             WSM, // Samoa: an independent island nation in the South Pacific | ||||
|             SLB, | ||||
|             TKL, | ||||
|             TON, | ||||
| @@ -269,26 +286,9 @@ enum class Group(override val fullName: String, override val children: List<GeoL | ||||
|     XXX( | ||||
|         "Others", listOf( | ||||
|             ATA, // Antarctica: not in any other region | ||||
|             ALA,// Åland Islands: an autonomous region of Finland, but not a member of the EU or UN | ||||
|             BES,// Bonaire, Sint Eustatius and Saba: special municipalities of the Netherlands in the Caribbean | ||||
|             BVT,// Bouvet Island: an uninhabited territory of Norway in the South Atlantic | ||||
|             IOT,// British Indian Ocean Territory: a British overseas territory in the Indian Ocean | ||||
|             CXR,// Christmas Island: an Australian external territory in the Indian Ocean | ||||
|             CCK,// Cocos (Keeling) Islands: an Australian external territory in the Indian Ocean | ||||
|             FRO,// Faroe Islands: an autonomous region of Denmark | ||||
|             ATF,// French Southern and Antarctic Lands: a territory of France located in the southern Indian Ocean | ||||
|             GIB,// Gibraltar: a British overseas territory located at the southern tip of the Iberian Peninsula | ||||
|             GGY,// Guernsey: a British Crown dependency in the English Channel | ||||
|             HMD,// Heard Island and McDonald Islands: an uninhabited Australian external territory in the southern Indian Ocean | ||||
|             IMN,// Isle of Man: a British Crown dependency located in the Irish Sea | ||||
|             JEY,// Jersey: a British Crown dependency located in the English Channel | ||||
|             BLM,// Saint Barthélemy: an overseas collectivity of France in the Caribbean | ||||
|             WSM, // Samoa: an independent island nation in the South Pacific | ||||
|             SXM, // Sint Maarten: a constituent country of the Kingdom of the Netherlands in the Caribbean | ||||
|             BVT, // Bouvet Island: an uninhabited territory of Norway in the South Atlantic | ||||
|             HMD, // Heard Island and McDonald Islands: an uninhabited Australian external territory in the southern Indian Ocean | ||||
|             SGS, // South Georgia and the South Sandwich Islands: a British overseas territory in the southern Atlantic Ocean | ||||
|             SJM, // Svalbard and Jan Mayen: an archipelago administered by Norway | ||||
|             UMI, // United States Minor Outlying Islands: a collection of nine insular areas of the United States | ||||
|             VIR, // United States Virgin Islands: an unincorporated territory of the United States in the Caribbean | ||||
|         ) | ||||
|     ), | ||||
|  | ||||
|   | ||||
| @@ -34,7 +34,7 @@ fun loadData(ctx: Context, id:Int) { | ||||
|  | ||||
|     // Add default group "Visited" with app's color if there is no group already | ||||
|     if (groups.size() == 0) { | ||||
|         groups.setGroup(1, "Visited", ColorDrawable(ContextCompat.getColor(ctx, R.color.blue))) | ||||
|         groups.setGroup(DEFAULT_GROUP, "Visited", ColorDrawable(ContextCompat.getColor(ctx, R.color.blue))) | ||||
|         saveData() | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -13,6 +13,10 @@ import kotlin.random.Random | ||||
| private const val randSeed = 0 | ||||
| private val rnd = Random(randSeed) | ||||
|  | ||||
| const val NO_GROUP = 0 | ||||
| const val DEFAULT_GROUP = 1 | ||||
| const val AUTO_GROUP = -1 | ||||
|  | ||||
| @Serializable | ||||
| class Groups(val id: Int, private val grps: HashMap<Int, Group>) { | ||||
|  | ||||
| @@ -30,7 +34,7 @@ class Groups(val id: Int, private val grps: HashMap<Int, Group>) { | ||||
|  | ||||
|     fun genKey(): Int { | ||||
|         val key = rnd.nextInt() | ||||
|         if (grps.containsKey(key) || key == 0) return genKey() | ||||
|         if (grps.containsKey(key) || key in listOf(NO_GROUP, DEFAULT_GROUP, AUTO_GROUP)) return genKey() | ||||
|         return key | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -27,7 +27,7 @@ class Visits(val id: Int, private val locs: HashMap<String, Int>) { | ||||
|     } | ||||
|  | ||||
|     fun getVisited(key: GeoLoc): Int { | ||||
|         return locs.getOrDefault(key.code, 0) | ||||
|         return getVisited(key.code) | ||||
|     } | ||||
|  | ||||
|     private fun getVisited(key: String): Int { | ||||
|   | ||||
| @@ -4,47 +4,55 @@ import android.content.Context | ||||
| import net.helcel.beans.countries.World | ||||
| import net.helcel.beans.helper.Data.groups | ||||
| import net.helcel.beans.helper.Data.visits | ||||
| import net.helcel.beans.helper.Settings | ||||
| import net.helcel.beans.helper.Theme.colorToHex6 | ||||
| import net.helcel.beans.helper.Theme.colorWrapper | ||||
|  | ||||
| class CSSWrapper(ctx: Context) { | ||||
| class CSSWrapper(private val ctx: Context) { | ||||
|  | ||||
|     private val colorForeground: String = | ||||
|         colorToHex6(colorWrapper(ctx, android.R.attr.panelColorBackground)) | ||||
|     private val colorBackground: String = | ||||
|         colorToHex6(colorWrapper(ctx, android.R.attr.colorBackground)) | ||||
|  | ||||
|     private val baseCSS: String | ||||
|     private val continents: String = World.WWW.children.joinToString(",") { "#${it.code}2" } | ||||
|     private val countries: String = World.WWW.children.joinToString(",") { itt -> | ||||
|         itt.children.joinToString(",") { "#${it.code}2" } | ||||
|     } | ||||
|     private val regional: String = World.WWW.children.joinToString(",") { itt -> | ||||
|         itt.children.joinToString(",") { "#${it.code}1" } | ||||
|     } | ||||
|     private val countryOnlyCSS: String = | ||||
|         "svg{fill:$colorForeground;stroke:$colorBackground;stroke-width:0.1;}" + | ||||
|                 "${regional}{display:none;}" | ||||
|     private val countryRegionalCSS: String = | ||||
|         "svg{fill:$colorForeground;stroke:$colorBackground;stroke-width:0.01;}" + | ||||
|                 "$continents,$countries{fill:none;stroke:$colorBackground;stroke-width:0.1;}" | ||||
|     private var customCSS: String = "" | ||||
|  | ||||
|     init { | ||||
|         val www = World.WWW.children.joinToString(",") { "#${it.code}2" } | ||||
|         val ccc = World.WWW.children.joinToString(",") { itt -> | ||||
|             itt.children.joinToString(",") { "#${it.code}2" } | ||||
|         } | ||||
|         baseCSS = "svg{fill:$colorForeground;stroke:$colorBackground;stroke-width:0.01;}" + | ||||
|                 "$www,$ccc{stroke:$colorBackground;stroke-width:0.1;fill:none}" | ||||
|         refresh() | ||||
|     } | ||||
|  | ||||
|     fun refresh() { | ||||
|     private fun refresh() { | ||||
|         val id = if (Settings.isRegional(ctx)) "1" else "2" | ||||
|         customCSS = visits.getVisitedByValue().map { (k, v) -> | ||||
|             if (groups.getGroupFromKey(k).key == 0) | ||||
|                 "" | ||||
|             else | ||||
|                 v.joinToString(",") { "#${it}1,#${it}" } + "{fill:${ | ||||
|                     colorToHex6( | ||||
|                         groups.getGroupFromKey( | ||||
|                             k | ||||
|                         ).color | ||||
|                     ) | ||||
|                 v.joinToString(",") { "#${it}$id,#${it}" } + "{fill:${ | ||||
|                     colorToHex6(groups.getGroupFromKey(k).color) | ||||
|                 };}" | ||||
|         }.joinToString("") | ||||
|     } | ||||
|  | ||||
|     fun get(): String { | ||||
|         refresh() | ||||
|         return baseCSS + customCSS | ||||
|         return if (Settings.isRegional(ctx)) { | ||||
|             countryRegionalCSS + customCSS | ||||
|         } else { | ||||
|             countryOnlyCSS + customCSS | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
		Reference in New Issue
	
	Block a user