package com.rdiot.yx485.ui.bind

import android.os.Bundle
import android.widget.ImageButton
import com.gyf.immersionbar.BarHide
import com.gyf.immersionbar.ktx.immersionBar
import com.king.zxing.CaptureActivity
import com.king.zxing.DecodeConfig
import com.king.zxing.DecodeFormatManager
import com.king.zxing.analyze.MultiFormatAnalyzer
import com.rdiot.yx485.R
import com.rdiot.yx485.util.setClickLimitListener


/**
 * 扫码
 * @author mR2hao
 * @date 2022/11/25
 */
class QRCodeActivity : CaptureActivity() {
    override fun getLayoutId() = R.layout.act_qr_code

    override fun initCameraScan() {
        super.initCameraScan()


        //初始化解码配置
        val decodeConfig = DecodeConfig().apply {
            //如果只有识别二维码的需求，这样设置效率会更高，不设置默认为DecodeFormatManager.DEFAULT_HINTS
            hints = DecodeFormatManager.QR_CODE_HINTS
            //设置是否全区域识别，默认false
            isFullAreaScan = false
            //设置识别区域比例，默认0.8，设置的比例最终会在预览区域裁剪基于此比例的一个矩形进行扫码识别
            areaRectRatio = 0.8f
            //设置识别区域水平方向偏移量，默认为0，为0表示居中，可以为负数
            setAreaRectVerticalOffset(0).areaRectHorizontalOffset = 0
        }


        //在启动预览之前，设置分析器，只识别二维码
        cameraScan
            .setVibrate(true) //设置是否震动，默认为false
            .setNeedAutoZoom(true) //二维码太小时可自动缩放，默认为false
            .setAnalyzer(MultiFormatAnalyzer(decodeConfig)) //设置分析器,如果内置实现的一些分析器不满足您的需求，你也可以自定义去实现

    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        immersionBar {
            statusBarView(findViewById(R.id.v))
            statusBarColor(R.color.transparent)
            statusBarDarkFont(false)
            hideBar(BarHide.FLAG_HIDE_NAVIGATION_BAR)
        }

        overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)

        findViewById<ImageButton>(R.id.ib_left).setClickLimitListener {
            finish()
        }
    }

    override fun finish() {
        super.finish()
        overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right)
    }
}