[M] Rename, SVG Import/Optimise/Export/Load

This commit is contained in:
2023-03-24 19:32:52 +01:00
parent 37645da270
commit 981107de36
277 changed files with 664 additions and 154 deletions

View File

@@ -1,58 +0,0 @@
package net.helcel.been
import android.os.Bundle
import androidx.preference.PreferenceManager
import androidx.appcompat.app.AppCompatActivity
import androidx.core.app.ActivityCompat
import org.osmdroid.config.Configuration.*
import org.osmdroid.tileprovider.tilesource.TileSourceFactory
import org.osmdroid.views.MapView
import java.util.ArrayList
class MainActivity : AppCompatActivity() {
private val REQUEST_PERMISSIONS_REQUEST_CODE = 1
private lateinit var map : MapView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
getInstance().load(this, PreferenceManager.getDefaultSharedPreferences(this))
setContentView(R.layout.activity_main)
map = findViewById(R.id.map)
map.setTileSource(TileSourceFactory.MAPNIK)
val mapController = map.controller
mapController.setZoom(1.0)
map.maxZoomLevel = 2.0
}
override fun onResume() {
super.onResume()
map.onResume()
}
override fun onPause() {
super.onPause()
map.onPause()
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
val permissionsToRequest = ArrayList<String>()
var i = 0
while (i < grantResults.size) {
permissionsToRequest.add(permissions[i])
i++
}
if (permissionsToRequest.size > 0) {
ActivityCompat.requestPermissions(
this,
permissionsToRequest.toTypedArray(),
REQUEST_PERMISSIONS_REQUEST_CODE)
}
}
}

View File

@@ -0,0 +1,22 @@
package net.helcel.beendroid
enum class Country {
ANT,
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,
CMR,CAN,CPV,XCA,CYM,CAF,TCD,CHL,CHN,CXR,XCL,CCK,COL,COM,COK,CRI,CIV,HRV,CUB,CUW,CYP,CZE,COD,
DNK,DJI,DMA,DOM,ECU,EGY,SLV,GNQ,ERI,EST,ETH,FLK,FRO,FJI,FIN,FRA,GUF,PYF,ATF,
GAB,GMB,GEO,DEU,GHA,GIB,GRC,GRL,GRD,GLP,GUM,GTM,GGY,GIN,GNB,GUY,HTI,HMD,HND,HKG,HUN,
ISL,IND,IDN,IRN,IRQ,IRL,IMN,ISR,ITA,JAM,JPN,JEY,JOR,KAZ,KEN,KIR,XKO,KWT,KGZ,
LAO,LVA,LBN,LSO,LBR,LBY,LIE,LTU,LUX,
MAC,MKD,MDG,MWI,MYS,MDV,MLI,MLT,MHL,MTQ,MRT,MUS,MYT,MEX,FSM,MDA,MCO,MNG,MNE,MSR,MAR,MOZ,MMR,
NAM,NRU,NPL,NLD,NCL,NZL,NIC,NER,NGA,NIU,NFK,PRK,XNC,MNP,NOR,OMN,
PAK,PLW,PSE,PAN,PNG,PRY,PER,PHL,PCN,POL,PRT,PRI,QAT,COG,REU,ROU,RUS,RWA,BLM,MAF,
SHN,KNA,LCA,SPM,VCT,WSM,SMR,STP,SAU,SEN,SRB,SYC,SLE,SGP,SVK,SVN,SLB,SOM,ZAF,SGS,KOR,SSD,ESP,
LKA,SDN,SUR,SJM,SWZ,SWE,CHE,SYR,TWN,TJK,TZA,THA,TLS,TGO,TKL,TON,TTO,TUN,TUR,TKM,TCA,TUV,UGA,
UKR,ARE,GBR,USA,UMI,URY,UZB,VUT,VAT,VEN,VNM,VIR,WLF,ESH,YEM,ZMB,ZWE;
val code = this.name;
}

View File

@@ -0,0 +1,7 @@
package net.helcel.beendroid
enum class Level(id: Int) {
ZERO(0), ONE(1);
val id = id
}

View File

@@ -0,0 +1,41 @@
package net.helcel.beendroid
import android.graphics.Bitmap
import android.graphics.Canvas
import android.os.Bundle
import android.view.View
import androidx.annotation.Nullable
import androidx.appcompat.app.AppCompatActivity
import com.caverock.androidsvg.SVG
import com.caverock.androidsvg.SVGImageView
import java.nio.charset.StandardCharsets
class MainActivity : AppCompatActivity() {
private var map : SVGImageView? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
map = findViewById(R.id.map)
val cm = HashMap<Country,SVGWrapper>()
Country.values().forEach { c->
cm[c] = SVGWrapper(applicationContext,c,Level.ZERO).load()
}
val fm = cm.values.fold("") { acc, e -> acc + e.data }
val svg = SVG.getFromString("<svg id=\"map\" xmlns=\"http://www.w3.org/2000/svg\" width=\"1200\" height=\"1200\" x=\"0\" y=\"0\" >"+fm+"</svg>")
val bitmap = Bitmap.createBitmap(1200,1200, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
canvas.drawRGB(255, 255, 255)
svg.renderToCanvas(canvas)
map?.setImageBitmap(bitmap)
}
}

View File

@@ -0,0 +1,27 @@
package net.helcel.beendroid
import android.content.Context
import java.nio.charset.StandardCharsets
class SVGWrapper(private val c: Context, private val country: Country, private var level: Level) {
var data = ""
fun load(): SVGWrapper {
data = try {
String(
c.assets.open(country.code + "_" + level.id + ".psvg").readBytes(),
StandardCharsets.UTF_8
)
}catch(e: Exception){
""
}
return this;
}
fun changeLevel(level: Level): SVGWrapper {
this.level = level
this.load()
return this;
}
}