Newer
Older
SmartKitchen / app / src / main / java / com / casic / br / view / PermissionActivity.kt
package com.casic.br.view

import com.casic.br.R
import com.casic.br.utils.LocaleConstant
import com.gyf.immersionbar.ImmersionBar
import com.pengxh.kt.lite.base.KotlinBaseActivity
import com.pengxh.kt.lite.extensions.convertColor
import com.pengxh.kt.lite.extensions.navigatePageTo
import com.pengxh.kt.lite.utils.ImmerseStatusBarUtil
import kotlinx.android.synthetic.main.activity_permssion.*
import pub.devrel.easypermissions.EasyPermissions
import pub.devrel.easypermissions.EasyPermissions.PermissionCallbacks

class PermissionActivity : KotlinBaseActivity(), PermissionCallbacks {

    override fun initLayoutView(): Int = R.layout.activity_permssion

    override fun setupTopBarLayout() {
        ImmersionBar.with(this).statusBarDarkFont(true).init()
        ImmerseStatusBarUtil.setColor(this, R.color.white.convertColor(this))
    }

    override fun initData() {
        //判断是否有权限,如果版本大于5.1才需要判断(即6.0以上),其他则不需要判断。
        if (EasyPermissions.hasPermissions(this, *LocaleConstant.USER_PERMISSIONS)) {
            startSplashScreenActivity()
        } else {
            enterMainButton.setOnClickListener {
                EasyPermissions.requestPermissions(
                    this@PermissionActivity,
                    resources.getString(R.string.app_name) + "需要获取存储相关权限",
                    LocaleConstant.PERMISSIONS_CODE,
                    *LocaleConstant.USER_PERMISSIONS
                )
            }
        }
    }

    override fun initEvent() {

    }

    private fun startSplashScreenActivity() {
        navigatePageTo<SplashScreenActivity>()
        finish()
    }

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

    override fun onPermissionsGranted(requestCode: Int, perms: List<String>) {
        startSplashScreenActivity()
    }

    override fun onPermissionsDenied(requestCode: Int, perms: List<String>) {

    }
}