添加夜间模式主题设置功能:跟随系统/浅色/深色模式
This commit is contained in:
@@ -17,8 +17,11 @@ 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
|
||||
@@ -57,6 +60,12 @@ class SecondActivity : AppCompatActivity() {
|
||||
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<HeaderConfig>()
|
||||
@@ -68,6 +77,7 @@ class SecondActivity : AppCompatActivity() {
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
ThemeManager.applySavedTheme(this)
|
||||
Log.d("SecondActivity", "onCreate: Starting SecondActivity")
|
||||
try {
|
||||
setContentView(R.layout.activity_second)
|
||||
@@ -148,6 +158,12 @@ class SecondActivity : AppCompatActivity() {
|
||||
ivPromptArrow = findViewById(R.id.ivPromptArrow)
|
||||
layoutPromptToggle = findViewById(R.id.layoutPromptToggle)
|
||||
|
||||
// Theme Section
|
||||
rgThemeMode = findViewById(R.id.rgThemeMode)
|
||||
rbThemeFollowSystem = findViewById(R.id.rbThemeFollowSystem)
|
||||
rbThemeLight = findViewById(R.id.rbThemeLight)
|
||||
rbThemeDark = findViewById(R.id.rbThemeDark)
|
||||
|
||||
Log.d("SecondActivity", "initViews: All views found")
|
||||
|
||||
// Setup API key toggle
|
||||
@@ -283,6 +299,39 @@ class SecondActivity : AppCompatActivity() {
|
||||
addPromptEntry(prompt.title, prompt.content)
|
||||
}
|
||||
}
|
||||
|
||||
// Setup theme
|
||||
setupTheme()
|
||||
}
|
||||
|
||||
private fun setupTheme() {
|
||||
// Get saved theme mode
|
||||
val themeMode = ThemeManager.getThemeMode(this)
|
||||
|
||||
// Set the correct radio button
|
||||
when (themeMode) {
|
||||
ThemeManager.THEME_FOLLOW_SYSTEM -> rbThemeFollowSystem.isChecked = true
|
||||
ThemeManager.THEME_LIGHT -> rbThemeLight.isChecked = true
|
||||
ThemeManager.THEME_DARK -> rbThemeDark.isChecked = true
|
||||
else -> rbThemeFollowSystem.isChecked = true
|
||||
}
|
||||
|
||||
// Set up radio group listener
|
||||
rgThemeMode.setOnCheckedChangeListener { _, checkedId ->
|
||||
val newMode = when (checkedId) {
|
||||
R.id.rbThemeFollowSystem -> ThemeManager.THEME_FOLLOW_SYSTEM
|
||||
R.id.rbThemeLight -> ThemeManager.THEME_LIGHT
|
||||
R.id.rbThemeDark -> ThemeManager.THEME_DARK
|
||||
else -> ThemeManager.THEME_FOLLOW_SYSTEM
|
||||
}
|
||||
|
||||
// Save and apply the new theme
|
||||
ThemeManager.setThemeMode(this, newMode)
|
||||
Log.d("SecondActivity", "Theme mode changed to: ${ThemeManager.getThemeModeName(newMode)}")
|
||||
|
||||
// Recreate activity to apply theme changes
|
||||
recreate()
|
||||
}
|
||||
}
|
||||
|
||||
private fun addHeaderEntry(key: String = "", value: String = "") {
|
||||
|
||||
Reference in New Issue
Block a user