package com.lukouguoji.aerologic.page.uld.edit

import android.content.Context
import android.content.Intent
import android.os.Bundle
import com.lukouguoji.aerologic.R
import com.lukouguoji.aerologic.databinding.ActivityUldEditBinding
import com.lukouguoji.module_base.base.BaseBindingActivity
import com.lukouguoji.module_base.common.Constant
import com.lukouguoji.module_base.common.DetailsPageType
import com.lxj.xpopup.XPopup

/**
 * ULD 新增 / 修改 / 详情（一页三态，标题按 pageType 切换）。
 *
 * 布局 id 不区分设备，平板/手机由资源限定符自动选择：
 *   layout-sw600dp/activity_uld_edit.xml（平板） / layout/activity_uld_edit.xml（手机）
 */
class UldEditActivity : BaseBindingActivity<ActivityUldEditBinding, UldEditViewModel>() {

    override fun layoutId() = R.layout.activity_uld_edit

    override fun viewModelClass() = UldEditViewModel::class.java

    override fun initOnCreate(savedInstanceState: Bundle?) {
        viewModel.initOnCreate(intent)
        setBackArrow("ULD${viewModel.pageType.value!!.title}")
        binding.viewModel = viewModel
        binding.activity = this
    }

    // ==================== 手机版专用交互（纯 UI） ====================

    /** 详情态右上铅笔 → 关闭详情并进入修改页 */
    fun onEditClick() {
        start(this, viewModel.id, modify = true)
        finish()
    }

    /** 状态行点击 → 底部选择面板（详情态只读不弹） */
    fun onStatusRowClick() {
        if (viewModel.pageType.value == DetailsPageType.Details) return
        val options = viewModel.statusPhoneList
        XPopup.Builder(this)
            .asBottomList("请选择状态", options.map { it.key }.toTypedArray()) { position, _ ->
                options.getOrNull(position)?.let { viewModel.onStatusSelected(it.value) }
            }
            .show()
    }

    companion object {
        @JvmStatic
        fun start(context: Context, id: String = "", modify: Boolean = id.isEmpty()) {
            val starter = Intent(context, UldEditActivity::class.java)
                .putExtra(Constant.Key.ID, id)
                .putExtra(Constant.Key.DATA, modify)
            context.startActivity(starter)
        }
    }
}
