package com.example.defenseapplication.base

import android.content.Context
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import com.example.defenseapplication.utils.LanguageUtil

/**
 * 支持语言切换的 Activity 基类
 * 所有需要支持多语言的 Activity 都应该继承此类
 */
abstract class BaseActivity : AppCompatActivity() {

    override fun attachBaseContext(newBase: Context) {
        // 在 Activity 创建前应用语言设置
        val context = LanguageUtil.attachBaseContext(newBase)
        super.attachBaseContext(context)
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 确保语言设置被应用
        LanguageUtil.updateResources(this)
    }

    /**
     * 切换语言
     * 调用后会重新创建 Activity 以应用新语言
     */
    protected fun switchLanguage(language: String) {
        val currentLang = LanguageUtil.getCurrentLanguage(this)
        if (currentLang != language) {
            LanguageUtil.switchLanguage(this, language)
            // 重新创建 Activity 以应用新语言
            recreate()
        }
    }
}
