Skip to content

Commit

Permalink
[FEAT/#119] 알림 권한 받는 기능 구현
Browse files Browse the repository at this point in the history
  • Loading branch information
Marchbreeze committed Sep 7, 2024
1 parent 53e1da2 commit e8b9634
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 16 deletions.
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
package co.orange.presentation.push

import android.Manifest
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import androidx.activity.viewModels
import android.provider.Settings
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import co.orange.core.base.BaseActivity
import co.orange.core.extension.initOnBackPressedListener
import co.orange.core.extension.setOnSingleClickListener
Expand All @@ -15,14 +23,21 @@ import kr.genti.presentation.databinding.ActivityPushBinding

@AndroidEntryPoint
class PushActivity : BaseActivity<ActivityPushBinding>(R.layout.activity_push) {
private val viewModel by viewModels<PushViewModel>()
private lateinit var requestPermissionLauncher: ActivityResultLauncher<String>

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)

initOnBackPressedListener(binding.root)
initExitBtnListener()
initAlarmBtnListener()
setRequestPermissionLauncher()
}

override fun onResume() {
super.onResume()

checkReturnedWIthAlarm()
}

private fun initExitBtnListener() {
Expand All @@ -38,7 +53,45 @@ class PushActivity : BaseActivity<ActivityPushBinding>(R.layout.activity_push) {

private fun initAlarmBtnListener() {
binding.btnAlarm.setOnSingleClickListener {
// TODO 푸시알람
requestAlarmPermission()
}
}

private fun setRequestPermissionLauncher() {
requestPermissionLauncher =
registerForActivityResult(ActivityResultContracts.RequestPermission()) { isGranted ->
// TODO 앰플리튜드 적용
checkIsBuyOrSell()
}
}

private fun requestAlarmPermission() {
if (isAlreadyRejectedPermission()) {
// 이미 권한을 거절한 경우 권한 설정 화면으로 이동
Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
data = Uri.parse("package:" + this@PushActivity.packageName)
startActivity(this)
}
} else {
// 처음 권한 요청을 할 경우 권한 동의 팝업 표시
requestPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS)
}
}

private fun isAlreadyRejectedPermission(): Boolean =
ActivityCompat.shouldShowRequestPermissionRationale(
this,
Manifest.permission.POST_NOTIFICATIONS,
)

private fun checkReturnedWIthAlarm() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
ContextCompat.checkSelfPermission(
this.applicationContext,
Manifest.permission.POST_NOTIFICATIONS,
) == PackageManager.PERMISSION_GRANTED
) {
checkIsBuyOrSell()
}
}

Expand Down

This file was deleted.

0 comments on commit e8b9634

Please sign in to comment.