Загрузка данных


package com.example.monika

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.*
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Menu
import androidx.compose.material.icons.filled.Send
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.google.ai.client.generativeai.GenerativeModel
import kotlinx.coroutines.launch

class MainActivity : ComponentActivity() {

    // Настройки модели
    private val modelName = "gemini-1.5-flash"
    private val apiKey = BuildConfig.GEMINI_API_KEY // Ключ подтянется из build.gradle

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        
        // Инициализация модели
        val generativeModel = GenerativeModel(
            modelName = modelName,
            apiKey = apiKey
        )

        setContent {
            MaterialTheme {
                val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed)
                val scope = rememberCoroutineScope()
                var mainInputText by remember { mutableStateOf("") }
                var statusText by remember { mutableStateOf("") } // Для надписи "пишу ответ..."

                ModalNavigationDrawer(
                    drawerState = drawerState,
                    drawerContent = {
                        ModalDrawerSheet {
                            Column(modifier = Modifier.padding(16.dp)) {
                                Text("Меню", fontSize = 20.sp, fontWeight = FontWeight.Bold)
                                Spacer(modifier = Modifier.height(16.dp))
                                NavigationDrawerItem(
                                    label = { Text("Создать новый чат") },
                                    selected = false,
                                    onClick = { 
                                        mainInputText = ""
                                        scope.launch { drawerState.close() } 
                                    }
                                )
                            }
                        }
                    }
                ) {
                    Scaffold(
                        topBar = {
                            Box(modifier = Modifier.fillMaxWidth().padding(16.dp)) {
                                IconButton(
                                    onClick = { scope.launch { drawerState.open() } },
                                    modifier = Modifier.align(Alignment.CenterStart)
                                ) {
                                    Icon(Icons.Default.Menu, contentDescription = "Меню")
                                }
                                Text(
                                    text = "Monika",
                                    fontSize = 20.sp,
                                    fontWeight = FontWeight.Bold,
                                    modifier = Modifier.align(Alignment.Center)
                                )
                            }
                        }
                    ) { paddingValues ->
                        Column(
                            modifier = Modifier
                                .fillMaxSize()
                                .padding(paddingValues)
                                .padding(16.dp)
                        ) {
                            Text(
                                text = "Здравствуйте!",
                                fontSize = 42.sp,
                                fontWeight = FontWeight.Bold,
                                color = Color(0xFF6200EE) // Фиолетовый
                            )
                            Text(
                                text = "Начнем общение?",
                                fontSize = 18.sp,
                                color = Color.Gray
                            )

                            // Область для отображения статуса
                            Text(text = statusText, color = Color.Gray, fontSize = 14.sp)
                            
                            Spacer(modifier = Modifier.weight(1f))

                            Row(
                                modifier = Modifier.fillMaxWidth(),
                                verticalAlignment = Alignment.CenterVertically
                            ) {
                                OutlinedTextField(
                                    value = mainInputText,
                                    onValueChange = { mainInputText = it },
                                    label = { Text("Спросить Монику") },
                                    modifier = Modifier.weight(1f)
                                )
                                Spacer(modifier = Modifier.width(8.dp))
                                IconButton(onClick = {
                                    scope.launch {
                                        statusText = "пишу ответ...."
                                        // Здесь будет вызов генерации:
                                        // val response = generativeModel.generateContent(mainInputText)
                                        statusText = ""
                                    }
                                }) {
                                    Icon(Icons.Default.Send, contentDescription = "Отправить")
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}