From f3841627f5a01bcde2e51bd9a6ba3098db162e44 Mon Sep 17 00:00:00 2001 From: Arga Hutama Date: Thu, 11 Jun 2026 20:01:56 +0700 Subject: [PATCH] add POST_NOTIFICATIONS permission and request logic for debug builds --- app/src/debug/AndroidManifest.xml | 6 ++++++ .../submission/made/main/MainActivity.kt | 14 ++++++++++++++ 2 files changed, 20 insertions(+) create mode 100644 app/src/debug/AndroidManifest.xml diff --git a/app/src/debug/AndroidManifest.xml b/app/src/debug/AndroidManifest.xml new file mode 100644 index 0000000..312fcb1 --- /dev/null +++ b/app/src/debug/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/java/com/argahutama/submission/made/main/MainActivity.kt b/app/src/main/java/com/argahutama/submission/made/main/MainActivity.kt index ab0328f..3c10e64 100644 --- a/app/src/main/java/com/argahutama/submission/made/main/MainActivity.kt +++ b/app/src/main/java/com/argahutama/submission/made/main/MainActivity.kt @@ -1,7 +1,10 @@ package com.argahutama.submission.made.main +import android.Manifest +import android.os.Build import android.os.Bundle import androidx.activity.OnBackPressedCallback +import androidx.activity.result.contract.ActivityResultContracts import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat @@ -11,6 +14,7 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentTransaction import androidx.lifecycle.lifecycleScope import com.argahutama.submission.core.base.BaseActivity +import com.argahutama.submission.made.BuildConfig import com.argahutama.submission.custom_ui.CustomSnack import com.argahutama.submission.made.R import com.argahutama.submission.made.databinding.ActivityMainBinding @@ -26,6 +30,9 @@ import org.koin.androidx.viewmodel.ext.android.viewModel @FlowPreview @ExperimentalCoroutinesApi class MainActivity : BaseActivity() { + private val notificationPermissionLauncher = + registerForActivityResult(ActivityResultContracts.RequestPermission()) {} + private var backPressed = false private var backPressJob: Job? = null private var visibleMenuId: Int? = null @@ -39,6 +46,7 @@ class MainActivity : BaseActivity() { override fun setup() { super.setup() + requestNotificationPermission() initInitialMenu() ViewCompat.setOnApplyWindowInsetsListener(binding.root) { _, insets -> val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) @@ -83,6 +91,12 @@ class MainActivity : BaseActivity() { ) } + private fun requestNotificationPermission() { + if (BuildConfig.DEBUG && Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { + notificationPermissionLauncher.launch(Manifest.permission.POST_NOTIFICATIONS) + } + } + private fun changeNavigation(fragment: Fragment) { supportFragmentManager .beginTransaction()