diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 17a80af..497108e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -29,11 +29,8 @@ android { } } compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - kotlinOptions { - jvmTarget = "11" + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 } buildFeatures { compose = true @@ -51,6 +48,8 @@ dependencies { ksp("androidx.room:room-compiler:$room_version") + implementation("io.github.chochanaresh:filepicker:0.6.0") + implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) diff --git a/app/src/main/java/com/mirenkov/ktheightmap/MainActivity.kt b/app/src/main/java/com/mirenkov/ktheightmap/MainActivity.kt index 89784cd..eaf5142 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/MainActivity.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/MainActivity.kt @@ -92,8 +92,8 @@ fun Main(vm: TileViewModel = viewModel()) { Box(modifier = Modifier.safeDrawingPadding() .align(Alignment.CenterEnd) .rotate(-90F) - .size(240.dp, 40.dp) - .offset(0.dp, 80.dp) + .size(200.dp, 40.dp) + .offset(0.dp, 60.dp) ) { Slider( value = sliderValue.floatValue, diff --git a/app/src/main/java/com/mirenkov/ktheightmap/SettingsActivity.kt b/app/src/main/java/com/mirenkov/ktheightmap/SettingsActivity.kt index dd15f19..c298239 100644 --- a/app/src/main/java/com/mirenkov/ktheightmap/SettingsActivity.kt +++ b/app/src/main/java/com/mirenkov/ktheightmap/SettingsActivity.kt @@ -1,18 +1,66 @@ package com.mirenkov.ktheightmap import android.os.Bundle +import android.util.Log import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.safeDrawingPadding +import androidx.compose.material3.Button +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier import com.mirenkov.ktheightmap.ui.theme.KtHeightMapTheme +import com.nareshchocha.filepickerlibrary.FilePickerResultContracts +import com.nareshchocha.filepickerlibrary.models.PickerData +import com.nareshchocha.filepickerlibrary.models.PopUpConfig +import java.io.FileInputStream +import java.util.zip.ZipEntry +import java.util.zip.ZipInputStream class SettingsActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) + val launcher = registerForActivityResult(FilePickerResultContracts.PickDocumentFile()) { result -> + if (result.errorMessage != null) { + Log.e("Picker", result.errorMessage ?: "") + } else { + val filePath = result.selectedFilePath + filePath?.let { + if (!it.endsWith(".zip")) + return@let + ZipInputStream(FileInputStream(it)).use { zipInputStream -> + var entry = zipInputStream.nextEntry + while (entry != null) { + with(entry.name) { + if (count { it == '/' } == 4 && endsWith(".jpg")) + processEntry(entry) + } + entry = zipInputStream.nextEntry + } + } + } + } + } enableEdgeToEdge() setContent { KtHeightMapTheme { + Column(Modifier.fillMaxSize() + .safeDrawingPadding()) { + Button(onClick = { + launcher.launch(null) + }) { Text(text = "Load database") } + } + } } } } +} + +fun processEntry(entry: ZipEntry) { + Log.i(TAG, entry.name) } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index b162aa1..2774e43 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,8 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. + plugins { alias(libs.plugins.android.application) apply false alias(libs.plugins.kotlin.android) apply false alias(libs.plugins.kotlin.compose) apply false - id("com.google.devtools.ksp") version "2.0.21-1.0.27" apply false + id("com.google.devtools.ksp") version "2.2.0-2.0.2" apply false } \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3642cb8..975c757 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] -agp = "8.10.1" -kotlin = "2.0.21" +agp = "8.12.0" +kotlin = "2.2.0" coreKtx = "1.16.0" junit = "4.13.2" junitVersion = "1.2.1" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5dbea34..eac15ee 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ #Thu Jul 24 13:19:06 MSK 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists