package com.example.flomo_ai import android.annotation.SuppressLint import android.content.ClipData import android.content.ClipboardManager import android.content.Context import android.content.Intent import android.graphics.drawable.Drawable import android.os.Bundle import android.text.method.PasswordTransformationMethod import android.util.Log import android.view.View import android.widget.Button import android.widget.EditText import android.widget.ImageButton import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import android.widget.Toast import android.widget.RadioGroup import android.widget.RadioButton import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat import com.example.flomo_ai.ui.theme.ThemeManager import com.google.gson.Gson import com.google.gson.reflect.TypeToken import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import okhttp3.MediaType.Companion.toMediaType import okhttp3.OkHttpClient import okhttp3.Request import okhttp3.RequestBody.Companion.toRequestBody import okhttp3.Response import org.json.JSONObject import java.util.* // Data classes for the new settings structure data class HeaderConfig(val key: String, val value: String) data class PromptConfig(val id: String, val title: String, val content: String, val expanded: Boolean = false) data class ButtonConfig(val id: String, val label: String, val action: String, val apiUrl: String? = null, val apiMethod: String? = null, val apiBodyTemplate: String? = null, val expanded: Boolean = false) class SecondActivity : AppCompatActivity() { // View references private lateinit var etBaseUrl: EditText private lateinit var etApiKey: EditText private lateinit var btnToggleApiKey: ImageButton private lateinit var etModel: EditText private lateinit var llHeadersList: LinearLayout private lateinit var btnAddHeader: Button private lateinit var layoutHeaderContent: LinearLayout private lateinit var ivHeaderArrow: ImageView private lateinit var layoutHeaderToggle: LinearLayout // Prompt view references private lateinit var llPromptList: LinearLayout private lateinit var btnAddPrompt: Button private lateinit var layoutPromptContent: LinearLayout private lateinit var ivPromptArrow: ImageView private lateinit var layoutPromptToggle: LinearLayout // Theme view references private lateinit var rgThemeMode: RadioGroup private lateinit var rbThemeFollowSystem: RadioButton private lateinit var rbThemeLight: RadioButton private lateinit var rbThemeDark: RadioButton // Data storage private var headerConfigs = mutableListOf() private var promptConfigs = mutableListOf() private var buttonConfigs = mutableListOf() // API config (for backward compatibility with existing API calls) private lateinit var apiConfig: APIConfig override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ThemeManager.applySavedTheme(this) Log.d("SecondActivity", "onCreate: Starting SecondActivity") try { setContentView(R.layout.activity_second) Log.d("SecondActivity", "onCreate: Layout set") } catch (e: Exception) { Log.e("SecondActivity", "onCreate: Error setting layout", e) throw e } try { // Initialize views initViews() Log.d("SecondActivity", "onCreate: Views initialized") // Load existing configurations loadConfigurations() Log.d("SecondActivity", "onCreate: Configurations loaded") // Setup UI based on loaded data setupUI() Log.d("SecondActivity", "onCreate: UI setup completed") // Back button functionality findViewById(R.id.btnBack).setOnClickListener { Log.d("SecondActivity", "Back button clicked") finish() } // Home button functionality findViewById