lab6
This commit is contained in:
@@ -1,57 +1,52 @@
|
||||
package com.example.myapplication
|
||||
|
||||
import android.Manifest
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Bitmap
|
||||
import android.os.Bundle
|
||||
import android.widget.Button
|
||||
import android.widget.ImageView
|
||||
import android.widget.Toast
|
||||
import android.widget.EditText
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
|
||||
private lateinit var btnCamera: Button
|
||||
private lateinit var imageView: ImageView
|
||||
private lateinit var etInput: EditText
|
||||
private lateinit var btnAdd: Button
|
||||
private lateinit var recyclerView: RecyclerView
|
||||
private lateinit var adapter: NoteAdapter
|
||||
|
||||
// Новый контракт
|
||||
private val takePicturePreview = registerForActivityResult(
|
||||
ActivityResultContracts.TakePicturePreview()
|
||||
) { bitmap: Bitmap? ->
|
||||
if (bitmap != null) {
|
||||
imageView.setImageBitmap(bitmap)
|
||||
} else {
|
||||
Toast.makeText(this, "Фото не получено", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
|
||||
// Запрос разрешения на камеру
|
||||
private val requestCameraPermission = registerForActivityResult(
|
||||
ActivityResultContracts.RequestPermission()
|
||||
) { granted ->
|
||||
if (granted) {
|
||||
takePicturePreview.launch(null)
|
||||
} else {
|
||||
Toast.makeText(this, "Разрешение на камеру не выдано", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
private lateinit var db: AppDatabase
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
btnCamera = findViewById(R.id.btnCamera)
|
||||
imageView = findViewById(R.id.imageView)
|
||||
etInput = findViewById(R.id.etInput)
|
||||
btnAdd = findViewById(R.id.btnAdd)
|
||||
recyclerView = findViewById(R.id.recyclerView)
|
||||
|
||||
btnCamera.setOnClickListener {
|
||||
if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA)
|
||||
== PackageManager.PERMISSION_GRANTED
|
||||
) {
|
||||
takePicturePreview.launch(null)
|
||||
} else {
|
||||
requestCameraPermission.launch(Manifest.permission.CAMERA)
|
||||
adapter = NoteAdapter(emptyList())
|
||||
recyclerView.layoutManager = LinearLayoutManager(this)
|
||||
recyclerView.adapter = adapter
|
||||
|
||||
db = AppDatabase.getDatabase(this)
|
||||
|
||||
// Добавляем заметку
|
||||
btnAdd.setOnClickListener {
|
||||
val text = etInput.text.toString()
|
||||
if (text.isNotEmpty()) {
|
||||
lifecycleScope.launch {
|
||||
db.noteDao().insert(NoteEntity(text = text))
|
||||
}
|
||||
etInput.text.clear()
|
||||
}
|
||||
}
|
||||
|
||||
// Подписываемся на изменения
|
||||
lifecycleScope.launch {
|
||||
db.noteDao().getAll().collect { notes ->
|
||||
adapter.update(notes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user