import SwiftUI

/// 包裹 `RootView` 的薄薄一层:监听 scenePhase,按需在内容之上盖锁屏 / 隐私遮罩。
/// RootView 本身零改动(对齐红线 §10.7「不重构现有 Tab 骨架」)。
///
/// 用法(KangkangApp):`AppLockContainer { RootView() }`。
struct AppLockContainer<Content: View>: View {
    @ViewBuilder var content: () -> Content

    @Environment(\.scenePhase) private var scenePhase
    @State private var appLock = AppLock.shared

    var body: some View {
        content()
            .overlay {
                if appLock.isLocked {
                    LockScreenView()
                        .transition(.opacity)
                } else if appLock.showsPrivacyCover {
                    // 不加动画:瞬间出现,抢在系统多任务快照之前盖住内容。
                    PrivacyCoverView()
                }
            }
            // 只给锁屏淡入淡出;隐私遮罩保持瞬时。
            .animation(.easeInOut(duration: 0.2), value: appLock.isLocked)
            .onAppear { appLock.handleAppear() }
            .onChange(of: scenePhase) { _, newPhase in
                appLock.handleScenePhase(newPhase)
            }
    }
}
