//
//  EGProgressView.swift

//
//  Created by Leon on 2025/7/26.
//

import UIKit

class PhotoBrowseProgressView: UIView {
    var progress: CGFloat = 0 {
        didSet {
            setNeedsDisplay()
            isHidden = progress >= 1
        }
    }
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        backgroundColor = .clear
        layer.cornerRadius = 5
        clipsToBounds = true
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func draw(_ rect: CGRect) {
        guard let context = UIGraphicsGetCurrentContext() else { return }
        let xCenter = rect.width * 0.5
        let yCenter = rect.height * 0.5
        backgroundColor?.setFill()
        UIColor.white.setStroke()
        context.setLineWidth(5)
        context.setLineCap(.round)
        let to = -CGFloat.pi * 0.5 + progress * CGFloat.pi * 2 + 0.05
        let radius = min(rect.width, rect.height) * 0.5 - 10
        context.addArc(center: CGPoint(x: xCenter, y: yCenter), radius: radius, startAngle: -CGFloat.pi * 0.5, endAngle: to, clockwise: false)
        context.strokePath()
    }
}
