From 094a09ebfe142334f7b89ad2f03f17ed4dc1180e Mon Sep 17 00:00:00 2001 From: bt Date: Tue, 26 May 2026 23:58:55 +0200 Subject: Add map view --- app/build.gradle.kts | 1 + app/src/main/AndroidManifest.xml | 2 ++ app/src/main/java/net/rctt/netmon/CellView.kt | 16 +++++++++- app/src/main/java/net/rctt/netmon/MainActivity.kt | 38 +++++++++++++++++------ app/src/main/res/layout/activity_main.xml | 4 ++- 5 files changed, 49 insertions(+), 12 deletions(-) (limited to 'app') diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c04b900..ad8390f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -52,4 +52,5 @@ dependencies { androidTestImplementation(libs.androidx.espresso.core) implementation("com.androidplot:androidplot-core:1.5.11") implementation("com.jsoizo:kotlin-csv:2.0.0") + implementation("org.osmdroid:osmdroid-android:6.1.20") } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 32d8332..b2c816e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -8,6 +8,8 @@ + + val cellDb = HashMap>() + lateinit var map: MapView override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -48,6 +49,19 @@ class MainActivity : AppCompatActivity() { insets } + Configuration.getInstance().userAgentValue = + "Netmon/0.1 (+https://rctt.net; contact: bt@rctt.net)" + + map = findViewById(R.id.map) + map.setTileSource(TileSourceFactory.MAPNIK) + map.setMultiTouchControls(true) + map.controller.setZoom(15) + map.controller.setCenter(GeoPoint(51.10, 17.04)); + + val locationOverlay = MyLocationNewOverlay(GpsMyLocationProvider(this), map) + locationOverlay.enableMyLocation() + this.map.overlays.add(locationOverlay) + loadDb() cellsList = HashMap() @@ -103,7 +117,7 @@ class MainActivity : AppCompatActivity() { } } - fun findInDb(lac: Int, cid: Long): CellDbItem? { + fun findInDb(lac: Int, cid: Long): CellDbItem? { return cellDb[lac]?.get(cid) } @@ -131,15 +145,17 @@ class MainActivity : AppCompatActivity() { } val lac = getCellLac(cell) - val findInDb = findInDb(lac.toInt(), id.toLong()) - val desc = findInDb?.Description ?: "" + val dbItem = findInDb(lac.toInt(), id.toLong()) + val desc = dbItem?.Description ?: "" var cellView = cellsList[id] if (cellView == null) { cellView = CellView(this, id) cellsList[id] = cellView + cellView.setMarker(Marker(map)) } else { cellsListView.removeView(cellView) + map.overlays.remove(cellView.mapMarker) } when (cell) { @@ -152,7 +168,9 @@ class MainActivity : AppCompatActivity() { cellView.refresh() cellView.setDesc(desc) + cellView.setLocation(dbItem?.Latitude ?: 0.0, dbItem?.Longitude ?: 0.0) cellsListView.addView(cellView) + map.overlays.add(cellView.mapMarker) } } diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 993e933..76aa1e4 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -34,7 +34,9 @@ android:layout_height="wrap_content" android:orientation="vertical" /> - + \ No newline at end of file -- cgit v1.2.3