Newer
Older
Endoscope / app / src / main / java / com / casic / endoscope / view / PermissionActivity.kt
package com.casic.endoscope.view

import android.os.Bundle
import com.casic.endoscope.R
import com.casic.endoscope.databinding.ActivityPermissionBinding
import com.casic.endoscope.utils.ProjectConstant
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.navigatePageTo
import pub.devrel.easypermissions.EasyPermissions

class PermissionActivity : KotlinBaseActivity<ActivityPermissionBinding>(),
    EasyPermissions.PermissionCallbacks {
    override fun initEvent() {

    }

    override fun initOnCreate(savedInstanceState: Bundle?) {
        if (EasyPermissions.hasPermissions(this, *ProjectConstant.USER_PERMISSIONS)) {
            navigatePageTo<MainActivity>()
            finish()
        } else {
            EasyPermissions.requestPermissions(
                this, resources.getString(R.string.app_name) + "需要获取必要权限",
                ProjectConstant.PERMISSIONS_CODE, *ProjectConstant.USER_PERMISSIONS
            )
        }
    }

    override fun initViewBinding(): ActivityPermissionBinding {
        return ActivityPermissionBinding.inflate(layoutInflater)
    }

    override fun observeRequestState() {

    }

    override fun setupTopBarLayout() {
        ImmersionBar.with(this).statusBarDarkFont(false).init()
    }

    override fun onRequestPermissionsResult(
        requestCode: Int, permissions: Array<out String>, grantResults: IntArray
    ) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults)
        EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this)
    }

    override fun onPermissionsGranted(requestCode: Int, perms: MutableList<String>) {
        navigatePageTo<MainActivity>()
        finish()
    }

    override fun onPermissionsDenied(requestCode: Int, perms: MutableList<String>) {
        finish()
    }
}