From eafc544da8f23b34c79f1126280ff8e2f08399a2 Mon Sep 17 00:00:00 2001 From: ajp_anton Date: Mon, 31 Aug 2026 02:39:02 +0000 Subject: [PATCH] Disable OneUI-only settings on other devices --- .../CardsLayoutFragment.kt | 6 +++ .../notificationsmaster/DeviceCapabilities.kt | 17 ++++++ .../MiscellaneousFragment.kt | 6 +++ .../main/res/layout/fragment_cards_layout.xml | 52 ++++++++++++------- .../res/layout/fragment_miscellaneous.xml | 42 ++++++++++----- 5 files changed, 92 insertions(+), 31 deletions(-) create mode 100644 app/src/main/java/se/ajpanton/notificationsmaster/DeviceCapabilities.kt diff --git a/app/src/main/java/se/ajpanton/notificationsmaster/CardsLayoutFragment.kt b/app/src/main/java/se/ajpanton/notificationsmaster/CardsLayoutFragment.kt index 6abeca6..c4040ac 100644 --- a/app/src/main/java/se/ajpanton/notificationsmaster/CardsLayoutFragment.kt +++ b/app/src/main/java/se/ajpanton/notificationsmaster/CardsLayoutFragment.kt @@ -30,6 +30,11 @@ class CardsLayoutFragment : Fragment(R.layout.fragment_cards_layout) { policy.aodCards, VisibilityPolicy::aodCards, ) { current, settings -> current.copy(aodCards = settings) } + if (!DeviceCapabilities.isOneUi) { + binding!!.oneUiOnlyNotice.visibility = View.VISIBLE + binding!!.oneUiCardsControls.alpha = DISABLED_CONTROL_ALPHA + binding!!.oneUiCardsControls.disableRecursively() + } } override fun onResume() { @@ -141,4 +146,5 @@ class CardsLayoutFragment : Fragment(R.layout.fragment_cards_layout) { ) private data class NumberStepper(val minus: Button, val value: TextView, val plus: Button) + } diff --git a/app/src/main/java/se/ajpanton/notificationsmaster/DeviceCapabilities.kt b/app/src/main/java/se/ajpanton/notificationsmaster/DeviceCapabilities.kt new file mode 100644 index 0000000..d4a7e29 --- /dev/null +++ b/app/src/main/java/se/ajpanton/notificationsmaster/DeviceCapabilities.kt @@ -0,0 +1,17 @@ +package se.ajpanton.notificationsmaster + +import android.os.Build +import android.view.View +import android.view.ViewGroup + +object DeviceCapabilities { + val isOneUi: Boolean + get() = Build.MANUFACTURER.equals("samsung", ignoreCase = true) +} + +internal fun View.disableRecursively() { + isEnabled = false + if (this is ViewGroup) repeat(childCount) { getChildAt(it).disableRecursively() } +} + +internal const val DISABLED_CONTROL_ALPHA = 0.45f diff --git a/app/src/main/java/se/ajpanton/notificationsmaster/MiscellaneousFragment.kt b/app/src/main/java/se/ajpanton/notificationsmaster/MiscellaneousFragment.kt index fa790ca..59a37dc 100644 --- a/app/src/main/java/se/ajpanton/notificationsmaster/MiscellaneousFragment.kt +++ b/app/src/main/java/se/ajpanton/notificationsmaster/MiscellaneousFragment.kt @@ -45,6 +45,11 @@ class MiscellaneousFragment : Fragment(R.layout.fragment_miscellaneous) { bind(binding!!.showAodBatteryPercent, settings.showAodBatteryPercentWhenUnplugged) { current, checked -> current.copy(showAodBatteryPercentWhenUnplugged = checked) } + if (!DeviceCapabilities.isOneUi) { + binding!!.oneUiOnlyNotice.visibility = View.VISIBLE + binding!!.oneUiMiscControls.alpha = DISABLED_CONTROL_ALPHA + binding!!.oneUiMiscControls.disableRecursively() + } binding!!.debugMinus10.setOnClickListener { changeDebugCount(-10) } binding!!.debugMinus1.setOnClickListener { changeDebugCount(-1) } binding!!.debugPlus1.setOnClickListener { changeDebugCount(1) } @@ -106,4 +111,5 @@ class MiscellaneousFragment : Fragment(R.layout.fragment_miscellaneous) { binding?.debugCycle?.isChecked = DebugNotifications.isCycling(context) updatingCycle = false } + } diff --git a/app/src/main/res/layout/fragment_cards_layout.xml b/app/src/main/res/layout/fragment_cards_layout.xml index 79fbe7d..f5ae070 100644 --- a/app/src/main/res/layout/fragment_cards_layout.xml +++ b/app/src/main/res/layout/fragment_cards_layout.xml @@ -10,31 +10,47 @@ android:padding="@dimen/page_padding"> + android:text="Cards layout is available only on Samsung OneUI devices." + android:textAppearance="?attr/textAppearanceBody1" + android:textStyle="bold" + android:visibility="gone" /> - + android:orientation="vertical"> - + - + - + + + + + + diff --git a/app/src/main/res/layout/fragment_miscellaneous.xml b/app/src/main/res/layout/fragment_miscellaneous.xml index 7bd61fb..cbd3736 100644 --- a/app/src/main/res/layout/fragment_miscellaneous.xml +++ b/app/src/main/res/layout/fragment_miscellaneous.xml @@ -9,25 +9,41 @@ android:orientation="vertical" android:padding="@dimen/page_padding"> - + android:text="The following display options are available only on Samsung OneUI devices." + android:textAppearance="?attr/textAppearanceBody1" + android:textStyle="bold" + android:visibility="gone" /> - + android:orientation="vertical"> - + + + + + +