경험의 기록

 

class Utils {

    companion object{
        // 권한 요청
        fun requestPermission(context: Context, logic : () -> Unit){
            TedPermission.create()
                .setPermissionListener(object : PermissionListener {
                    override fun onPermissionGranted() {
                        logic()
                    }
                    override fun onPermissionDenied(deniedPermissions: List<String>) {
                        Toast.makeText(context,
                            "권한을 허가해주세요.",
                            Toast.LENGTH_SHORT)
                            .show()
                    }
                })
                .setDeniedMessage("권한을 허용해주세요. [설정] > [앱 및 알림] > [고급] > [앱 권한]")
                .setPermissions(
                    Manifest.permission.ACCESS_FINE_LOCATION,
                    Manifest.permission.WRITE_CONTACTS)
                .check()
        }

        // 포맷 변환
        fun dateFormatter(date: Long) : String{
            var dateFormatter = SimpleDateFormat("yy / MM / dd", Locale.KOREA)
            dateFormatter.timeZone = TimeZone.getTimeZone("Asia/Seoul")

            return dateFormatter.format(date)
        }
    }
}

평소에 위와 같이 별도의 클래스를 만들어

안에 companion object를 생성해 함수들을 관리하였는데

 

 

// 포맷 변환
fun Long.dateFormatter(): String{
    var dateFormatter = SimpleDateFormat("yy / MM / dd", Locale.KOREA)
    dateFormatter.timeZone = TimeZone.getTimeZone("Asia/Seoul")

    return dateFormatter.format(this)
}

// 권한 요청
fun requestPermission(context: Context, logic : () -> Unit){
    TedPermission.create()
        .setPermissionListener(object : PermissionListener {
            override fun onPermissionGranted() {
                logic()
            }
            override fun onPermissionDenied(deniedPermissions: List<String>) {
                Toast.makeText(context,
                    "권한을 허가해주세요.",
                    Toast.LENGTH_SHORT)
                    .show()
            }
        })
        .setDeniedMessage("권한을 허용해주세요. [설정] > [앱 및 알림] > [고급] > [앱 권한]")
        .setPermissions(
            Manifest.permission.ACCESS_FINE_LOCATION,
            Manifest.permission.WRITE_CONTACTS)
        .check()
}

companion object 쓸 필요 없이 별도의 Extension 관리를 위한 파일을 하나 만들고 안에 dateFormatter 처럼 확장 함수 형태로 관리하는 방식으로도 관리할 수 있다.

 

 

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading