From b70b98feb62d522866d782f8adcd1eb794137d9b Mon Sep 17 00:00:00 2001 From: 2ndbeam <2ndbeam@disroot.org> Date: Tue, 30 Sep 2025 14:44:28 +0300 Subject: [PATCH] fixed no data crashes --- app/src/main/java/com/mirenkov/ktheightmap/KhmParser.kt | 4 +++- app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt | 3 --- app/src/main/java/com/mirenkov/ktheightmap/TileRepository.kt | 2 +- app/src/main/java/com/mirenkov/ktheightmap/TileViewModel.kt | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/mirenkov/ktheightmap/KhmParser.kt b/app/src/main/java/com/mirenkov/ktheightmap/KhmParser.kt index eae616e..6081679 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/KhmParser.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/KhmParser.kt @@ -63,6 +63,8 @@ class KhmParser { } fun getHeight(lon: Float, lat: Float, ctx: Context): UShort { + if (!ctx.getFileStreamPath(HEIGHT_FILE).exists()) + return 0u.toUShort() val dis = DataInputStream(ctx.openFileInput(HEIGHT_FILE)) dis.use { val header = readHeader(dis) @@ -80,7 +82,7 @@ class KhmParser { @OptIn(ExperimentalUnsignedTypes::class) fun getHeightsMul(ctx: Context, coords: Array>): Pair>> { - if (coords.isEmpty()) return Pair(ushortArrayOf(), coords) + if (coords.isEmpty() || !ctx.getFileStreamPath(HEIGHT_FILE).exists()) return Pair(ushortArrayOf(), coords) val dis = DataInputStream(ctx.openFileInput(HEIGHT_FILE)) dis.use { val header = readHeader(dis) diff --git a/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt b/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt index f8494bf..22d8f9c 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/MapCanvas.kt @@ -26,11 +26,8 @@ import androidx.compose.ui.text.drawText import androidx.compose.ui.text.rememberTextMeasurer import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.withStyle -import kotlin.math.abs import kotlin.math.absoluteValue import kotlin.math.floor -import kotlin.math.max -import kotlin.math.min import kotlin.math.pow import kotlin.math.sqrt diff --git a/app/src/main/java/com/mirenkov/ktheightmap/TileRepository.kt b/app/src/main/java/com/mirenkov/ktheightmap/TileRepository.kt index a5eaf79..028d931 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/TileRepository.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/TileRepository.kt @@ -23,6 +23,6 @@ class TileRepository(private val tileDao: TileDao) { } fun getMaxLevel(): Int { - return coroutineScope.future(Dispatchers.IO){ tileDao.maxLevel() }.join() ?: 1 + return coroutineScope.future(Dispatchers.IO){ tileDao.maxLevel() }.join() ?: 2 } } \ No newline at end of file diff --git a/app/src/main/java/com/mirenkov/ktheightmap/TileViewModel.kt b/app/src/main/java/com/mirenkov/ktheightmap/TileViewModel.kt index 971e59b..b1dcaf5 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/TileViewModel.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/TileViewModel.kt @@ -19,7 +19,7 @@ class TileViewModel(application: Application): ViewModel() { val mapOffsetX = mutableFloatStateOf(-646.65625F) val mapOffsetY = mutableFloatStateOf(-1157.2814F) val scale = mutableFloatStateOf(2F) - var maxLevel = mutableIntStateOf(1) + var maxLevel = mutableIntStateOf(2) var halvedOffsetX: Float? = null var halvedOffsetY: Float? = null