[M] Rename, SVG Import/Optimise/Export/Load
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
22
app/src/main/java/net/helcel/beendroid/Country.kt
Normal file
22
app/src/main/java/net/helcel/beendroid/Country.kt
Normal 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;
|
||||
}
|
||||
|
7
app/src/main/java/net/helcel/beendroid/Level.kt
Normal file
7
app/src/main/java/net/helcel/beendroid/Level.kt
Normal file
@@ -0,0 +1,7 @@
|
||||
package net.helcel.beendroid
|
||||
|
||||
enum class Level(id: Int) {
|
||||
ZERO(0), ONE(1);
|
||||
|
||||
val id = id
|
||||
}
|
41
app/src/main/java/net/helcel/beendroid/MainActivity.kt
Normal file
41
app/src/main/java/net/helcel/beendroid/MainActivity.kt
Normal 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)
|
||||
|
||||
}
|
||||
}
|
27
app/src/main/java/net/helcel/beendroid/SVGWrapper.kt
Normal file
27
app/src/main/java/net/helcel/beendroid/SVGWrapper.kt
Normal 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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user