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


package com.example.monika

import android.content.Context
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.animation.core.*
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.*
import androidx.compose.foundation.shape.*
import androidx.compose.foundation.text.ClickableText
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.rotate
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.text.AnnotatedString
import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.google.ai.client.generativeai.GenerativeModel
import com.google.ai.client.generativeai.type.content
import kotlinx.coroutines.launch
import org.json.JSONArray
import org.json.JSONObject
import java.util.UUID

@OptIn(ExperimentalMaterial3Api::class, ExperimentalFoundationApi::class)
class MainActivity : ComponentActivity() {

    private val API_KEY = "ВСТАВЬ_КЛЮЧ_СЮДА"
    private var generativeModel: GenerativeModel? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        try {
            generativeModel = GenerativeModel(
                modelName = "gemini-1.5-flash",
                apiKey = API_KEY,
                systemInstruction = content {
                    text("""
                        Ты — Моника. Строго соблюдай эти правила:
                        1. На вопрос "Как тебя зовут?" или похожий отвечай только: "Меня зовут Моника."
                        2. На вопрос "Кто тебя создал?" или похожий отвечай только: "Меня создал Оливер Тимербулатов. 13-летний разработчик."
                        3. На вопрос "На какой ты базе сделана?" или похожий отвечай только: "Извините, я не могу ответить на этот вопрос..."
                        4. В любых других диалогах НЕ упоминай самостоятельно свое создание, базу или имя. Отвечай как обычный собеседник.
                    """.trimIndent())
                }
            )
        } catch (e: Exception) {
            e.printStackTrace()
        }

        setContent {
            val context = LocalContext.current
            val themePrefs = context.getSharedPreferences("theme_prefs", Context.MODE_PRIVATE)
            var themeModeStr by remember { mutableStateOf(themePrefs.getString("theme", "SYSTEM") ?: "SYSTEM") }
            
            val isSystemDark = isSystemInDarkTheme()
            val isDarkTheme = when (themeModeStr) {
                "LIGHT" -> false
                "DARK" -> true
                else -> isSystemDark
            }
            val currentColorScheme = if (isDarkTheme) darkColorScheme() else lightColorScheme()