Show explicit geofence permission status

This commit is contained in:
Artem Kokos
2026-05-15 10:32:23 +07:00
parent d796537917
commit 8b9a25e746
5 changed files with 294 additions and 1 deletions

View File

@@ -1,5 +1,12 @@
package ru.akokos.ignis_app
import android.Manifest
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Build
import android.provider.Settings
import androidx.core.app.NotificationManagerCompat
import androidx.core.content.ContextCompat
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.embedding.android.FlutterActivity
import io.flutter.plugin.common.MethodChannel
@@ -59,8 +66,33 @@ class MainActivity : FlutterActivity() {
result.success(null)
}
}
"getNotificationPermissionStatus" -> {
result.success(
if (isNotificationPermissionEnabled()) "enabled" else "disabled",
)
}
"openNotificationSettings" -> {
val intent =
Intent(Settings.ACTION_APP_NOTIFICATION_SETTINGS).apply {
putExtra(Settings.EXTRA_APP_PACKAGE, packageName)
putExtra("android.provider.extra.APP_PACKAGE", packageName)
}
startActivity(intent)
result.success(null)
}
else -> result.notImplemented()
}
}
}
private fun isNotificationPermissionEnabled(): Boolean {
val runtimePermissionGranted =
Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU ||
ContextCompat.checkSelfPermission(
this,
Manifest.permission.POST_NOTIFICATIONS,
) == PackageManager.PERMISSION_GRANTED
return runtimePermissionGranted &&
NotificationManagerCompat.from(this).areNotificationsEnabled()
}
}