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 처럼 확장 함수 형태로 관리하는 방식으로도 관리할 수 있다.