Second Activity and bitmap

This commit is contained in:
Alexey 2025-07-30 09:40:25 +03:00
commit 1f22b5c8c8
7 changed files with 66 additions and 6 deletions

View file

@ -11,7 +11,7 @@ android {
defaultConfig {
applicationId = "com.mirenkov.ktheightmap"
minSdk = 24
minSdk = 26
targetSdk = 35
versionCode = 1
versionName = "1.0"
@ -44,6 +44,9 @@ dependencies {
implementation(libs.androidx.room.common.jvm)
implementation(libs.androidx.room.runtime.android)
implementation(libs.androidx.lifecycle.viewmodel.compose.android)
implementation(libs.androidx.appcompat)
implementation(libs.material)
implementation(libs.androidx.activity)
val room_version = "2.7.2"
ksp("androidx.room:room-compiler:$room_version")

View file

@ -12,6 +12,9 @@
android:supportsRtl="true"
android:theme="@style/Theme.KtHeightMap"
tools:targetApi="31">
<activity
android:name=".SettingsActivity"
android:exported="false" />
<activity
android:name=".MainActivity"
android:exported="true"

View file

@ -0,0 +1,12 @@
package com.mirenkov.ktheightmap
class Config {
companion object {
private var INSTANCE: Config = Config()
fun getInstance(): Config {
synchronized(this) {
return INSTANCE
}
}
}
}

View file

@ -1,6 +1,7 @@
package com.mirenkov.ktheightmap
import android.app.Application
import android.content.Intent
import android.os.Bundle
import android.util.Log
import androidx.activity.ComponentActivity
@ -80,9 +81,11 @@ fun Main(vm: TileViewModel = viewModel()) {
@Composable
fun ToolButton() {
val context = LocalContext.current
FloatingActionButton(
onClick = {
Log.i(TAG, "Hello, gryadki!")
val intent = Intent(context, SettingsActivity::class.java)
context.startActivity(intent)
}
) { Icon(Icons.Filled.Build, contentDescription = "Tools") }
}

View file

@ -0,0 +1,18 @@
package com.mirenkov.ktheightmap
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import com.mirenkov.ktheightmap.ui.theme.KtHeightMapTheme
class SettingsActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContent {
KtHeightMapTheme {
}
}
}
}

View file

@ -1,8 +1,10 @@
package com.mirenkov.ktheightmap
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import androidx.room.ColumnInfo
import androidx.room.Entity
import androidx.room.PrimaryKey
import java.util.Base64
@Entity(tableName = "tiles", primaryKeys = [ "x", "y", "level" ])
class Tile {
@ -18,13 +20,26 @@ class Tile {
@ColumnInfo(name = "data")
var base64: String? = null
constructor() {}
constructor()
constructor(x: Int, y: Int, level: Int) {
this.x = x
this.y = y
this.level = level
}
constructor(x: Int, y: Int, level: Int, base64: String) {
this.x = x
this.y = y
this.level = level
this.base64 = base64
}
fun getBitmap(): Bitmap? {
if (this.base64 == null)
return null
val ba = Base64.getDecoder().decode(this.base64)
val bmp = BitmapFactory.decodeByteArray(ba, 0, ba.size)
return bmp
}
}