@@ -35,9 +35,12 @@ class MainActivity: FlutterActivity() {
3535 " checkNotificationPermission" -> {
3636 result.success(checkNotificationPermission())
3737 }
38- " requestNotificationPermission" -> {
39- requestNotificationPermission()
40- result.success(null )
38+ " requestNotificationPermissionInApp" -> {
39+ result.success(requestNotificationPermissionInApp())
40+ }
41+ " openAppSettingsForNotifications" -> {
42+ openAppSettings()
43+ result.success(true )
4144 }
4245 else -> result.notImplemented()
4346 }
@@ -66,27 +69,20 @@ class MainActivity: FlutterActivity() {
6669 return NotificationManagerCompat .from(this ).areNotificationsEnabled()
6770 }
6871
69- // Request notification permission
70- private fun requestNotificationPermission () {
71- if (! checkNotificationPermission()) {
72- if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
73- showNotificationPermissionDialog()
74- } else {
75- showNotificationPermissionDialog()
76- }
72+ // Request notification permission in app (returns true if already granted or if requested successfully)
73+ private fun requestNotificationPermissionInApp (): Boolean {
74+ if (checkNotificationPermission()) {
75+ return true
76+ }
77+
78+ // For Android 13+ (Tiramisu), we need to request the permission
79+ if (Build .VERSION .SDK_INT >= Build .VERSION_CODES .TIRAMISU ) {
80+ // We can't request permission directly, need to open settings
81+ return false
82+ } else {
83+ // For older versions, permission is usually granted by default
84+ return true
7785 }
78- }
79-
80- // Show dialog to request notification permission
81- private fun showNotificationPermissionDialog () {
82- AlertDialog .Builder (this )
83- .setTitle(" Notification Permission Required" )
84- .setMessage(" This app needs notification permission to show VPN connection status. Please enable notifications in app settings." )
85- .setPositiveButton(" Open Settings" ) { _: DialogInterface , _: Int ->
86- openAppSettings()
87- }
88- .setNegativeButton(" Later" , null )
89- .show()
9086 }
9187
9288 // Open app settings
0 commit comments