From 9c97507eeed48cfdba36b5a445d820ee7ca30c8f Mon Sep 17 00:00:00 2001 From: lowrt Date: Mon, 28 Sep 2026 11:46:49 +0800 Subject: [PATCH] fix(android): limit DND channel settings to native devices MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Platform: android Fix(zh-Hant): 限制零打擾通知類別設定至原生 Android 裝置 Fix(en-US): limit Do Not Disturb channel settings to native Android devices --- .../com/exptech/dpip/PermissionSettingsChannel.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/android/app/src/main/kotlin/com/exptech/dpip/PermissionSettingsChannel.kt b/android/app/src/main/kotlin/com/exptech/dpip/PermissionSettingsChannel.kt index d2f4766cb..b6e6cace3 100644 --- a/android/app/src/main/kotlin/com/exptech/dpip/PermissionSettingsChannel.kt +++ b/android/app/src/main/kotlin/com/exptech/dpip/PermissionSettingsChannel.kt @@ -24,6 +24,11 @@ class PermissionSettingsChannel(private val context: Context) : companion object { const val NAME = "com.exptech.dpip/permission_settings" private const val TAG = "PermissionSettings" + private val nativeDndChannelSettingsManufacturers = setOf( + "google", + "sony", + "motorola", + ) } override fun onMethodCall(call: MethodCall, result: MethodChannel.Result) { @@ -71,7 +76,13 @@ class PermissionSettingsChannel(private val context: Context) : result.success(openNotificationChannelSettings(channelId)) } + private fun usesNativeDndChannelSettings() = + Build.MANUFACTURER.lowercase() in nativeDndChannelSettingsManufacturers + private fun openNotificationChannelSettings(channelId: String): String { + if (!usesNativeDndChannelSettings()) { + return openNotificationSettings() + } try { context.startActivity( Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS)