diff --git a/res/drawable/button_border_selected.xml b/res/drawable/button_border_selected.xml
deleted file mode 100644
index 3757517..0000000
--- a/res/drawable/button_border_selected.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  Copyright (C) 2019 The Android Open Source Project
-
-  Licensed under the Apache License, Version 2.0 (the "License");
-  you may not use this file except in compliance with the License.
-  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-  Unless required by applicable law or agreed to in writing, software
-  distributed under the License is distributed on an "AS IS" BASIS,
-  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-  See the License for the specific language governing permissions and
-  limitations under the License.
-  -->
-<shape xmlns:android="http://schemas.android.com/apk/res/android"
-       xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
-       android:shape="rectangle">
-    <solid
-        android:color="?androidprv:attr/materialColorSecondaryContainer" />
-    <stroke
-        android:width="1dp"
-        android:color="?androidprv:attr/materialColorOnSecondaryContainer"/>
-    <corners android:radius="@dimen/rect_button_radius" />
-</shape>
diff --git a/res/drawable/button_border_unselected.xml b/res/drawable/notification_importance_button_background_selected.xml
similarity index 81%
copy from res/drawable/button_border_unselected.xml
copy to res/drawable/notification_importance_button_background_selected.xml
index c97a5ba..3c513cd 100644
--- a/res/drawable/button_border_unselected.xml
+++ b/res/drawable/notification_importance_button_background_selected.xml
@@ -15,10 +15,11 @@
   limitations under the License.
   -->
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
-       xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
        android:shape="rectangle">
+    <solid
+        android:color="?attr/notification_importance_button_background_color_selected"/>
     <stroke
         android:width="1dp"
-        android:color="?androidprv:attr/materialColorOutlineVariant"/>
+        android:color="?attr/notification_importance_button_border_color_selected"/>
     <corners android:radius="@dimen/rect_button_radius" />
 </shape>
diff --git a/res/drawable/button_border_unselected.xml b/res/drawable/notification_importance_button_background_unselected.xml
similarity index 81%
rename from res/drawable/button_border_unselected.xml
rename to res/drawable/notification_importance_button_background_unselected.xml
index c97a5ba..beccfd4 100644
--- a/res/drawable/button_border_unselected.xml
+++ b/res/drawable/notification_importance_button_background_unselected.xml
@@ -15,10 +15,11 @@
   limitations under the License.
   -->
 <shape xmlns:android="http://schemas.android.com/apk/res/android"
-       xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
        android:shape="rectangle">
+    <solid
+        android:color="?attr/notification_importance_button_background_color_unselected"/>
     <stroke
         android:width="1dp"
-        android:color="?androidprv:attr/materialColorOutlineVariant"/>
+        android:color="?attr/notification_importance_button_border_color_unselected"/>
     <corners android:radius="@dimen/rect_button_radius" />
 </shape>
diff --git a/res/values-night/themes.xml b/res/values-night/themes.xml
index 946cd91..c28bfbb 100644
--- a/res/values-night/themes.xml
+++ b/res/values-night/themes.xml
@@ -34,6 +34,16 @@
         <item name="android:colorBackground">@*android:color/surface_dark</item>
     </style>
 
+    <style name="Theme.Panel.Material" parent="Theme.Panel" >
+        <item name="notification_importance_button_background_color_unselected">@android:color/transparent</item>
+        <item name="notification_importance_button_border_color_unselected">@android:color/system_outline_variant_dark</item>
+        <item name="notification_importance_button_foreground_color_unselected">@android:color/system_on_surface_variant_dark</item>
+
+        <item name="notification_importance_button_background_color_selected">@android:color/system_secondary_container_dark</item>
+        <item name="notification_importance_button_border_color_selected">@android:color/system_on_secondary_container_dark</item>
+        <item name="notification_importance_button_foreground_color_selected">@android:color/system_on_secondary_container_dark</item>
+    </style>
+
     <!-- Material theme for the pages containing TabLayout and ViewPager -->
     <style name="Theme.TabTheme" parent="@style/Theme.MaterialComponents.DayNight">
         <item name="colorPrimary">@*android:color/edge_effect_device_default_dark</item>
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 90a308e..6f024a3 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -194,4 +194,12 @@
         <attr name="biometricsEnrollProgressHelp" format="reference|color" />
         <attr name="biometricsEnrollProgressHelpWithTalkback" format="reference|color" />
     </declare-styleable>
+
+    <attr name="notification_importance_button_background_color_unselected" format="color" />
+    <attr name="notification_importance_button_border_color_unselected" format="color" />
+    <attr name="notification_importance_button_foreground_color_unselected" format="color" />
+
+    <attr name="notification_importance_button_background_color_selected" format="color" />
+    <attr name="notification_importance_button_border_color_selected" format="color" />
+    <attr name="notification_importance_button_foreground_color_selected" format="color" />
 </resources>
diff --git a/res/values/themes.xml b/res/values/themes.xml
index 5cf4532..3e6192b 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -14,7 +14,8 @@
      limitations under the License.
 -->
 
-<resources>
+<resources
+    xmlns:androidprv="http://schemas.android.com/apk/prv/res/android">
 
     <style name="Transparent">
         <item name="alertDialogTheme">@style/Theme.AlertDialog</item>
@@ -66,6 +67,14 @@
 
         <!-- For slice view in settings -->
         <item name="sliceViewStyle">@style/Widget.SliceView.Settings</item>
+
+        <item name="notification_importance_button_background_color_unselected">@android:color/transparent</item>
+        <item name="notification_importance_button_border_color_unselected">?androidprv:attr/materialColorOutlineVariant</item>
+        <item name="notification_importance_button_foreground_color_unselected">?androidprv:attr/materialColorOnSurfaceVariant</item>
+
+        <item name="notification_importance_button_background_color_selected">?androidprv:attr/materialColorSecondaryContainer</item>
+        <item name="notification_importance_button_border_color_selected">?androidprv:attr/materialColorOnSecondaryContainer</item>
+        <item name="notification_importance_button_foreground_color_selected">?androidprv:attr/materialColorOnSecondaryContainer</item>
     </style>
 
     <!-- Variant of the settings theme with no action bar. -->
@@ -229,9 +238,18 @@
         <item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
     </style>
 
-    <style name="Theme.Panel.Material" parent="Theme.Panel" >
+    <style name="Theme.Panel.Material" parent="Theme.Panel">
         <item name="android:switchStyle">@style/Switch.SettingsLib</item>
+
+        <item name="notification_importance_button_background_color_unselected">@android:color/transparent</item>
+        <item name="notification_importance_button_border_color_unselected">@android:color/system_outline_variant_light</item>
+        <item name="notification_importance_button_foreground_color_unselected">@android:color/system_on_surface_variant_light</item>
+
+        <item name="notification_importance_button_background_color_selected">@android:color/system_secondary_container_light</item>
+        <item name="notification_importance_button_border_color_selected">@android:color/system_on_secondary_container_light</item>
+        <item name="notification_importance_button_foreground_color_selected">@android:color/system_on_secondary_container_light</item>
     </style>
+
     <!-- Material theme for the pages containing TabLayout and ViewPager -->
     <style name="Theme.TabTheme" parent="@style/Theme.MaterialComponents.DayNight">
         <item name="colorPrimary">@*android:color/edge_effect_device_default_light</item>
diff --git a/src/com/android/settings/notification/app/BubblePreference.java b/src/com/android/settings/notification/app/BubblePreference.java
index 44b8d17..ab5fc39 100644
--- a/src/com/android/settings/notification/app/BubblePreference.java
+++ b/src/com/android/settings/notification/app/BubblePreference.java
@@ -163,13 +163,13 @@
 
         void setSelected(Context context, boolean selected) {
             mView.setBackground(mContext.getDrawable(selected
-                ? R.drawable.button_border_selected
-                : R.drawable.button_border_unselected));
+                ? R.drawable.notification_importance_button_background_selected
+                : R.drawable.notification_importance_button_background_unselected));
             mView.setSelected(selected);
 
             int colorResId = selected
-                    ? com.android.internal.R.attr.materialColorOnSecondaryContainer
-                    : com.android.internal.R.attr.materialColorOnSurfaceVariant;
+                    ? R.attr.notification_importance_button_foreground_color_selected
+                    : R.attr.notification_importance_button_foreground_color_unselected;
             ColorStateList stateList = Utils.getColorAttr(context, colorResId);
             mImageView.setImageTintList(stateList);
             mTextView.setTextColor(stateList);
diff --git a/src/com/android/settings/notification/app/ConversationPriorityPreference.java b/src/com/android/settings/notification/app/ConversationPriorityPreference.java
index 3e503a3..e1e7960 100644
--- a/src/com/android/settings/notification/app/ConversationPriorityPreference.java
+++ b/src/com/android/settings/notification/app/ConversationPriorityPreference.java
@@ -127,12 +127,14 @@
         });
     }
 
-    private ColorStateList getAccentTint() {
-        return Utils.getColorAccent(getContext());
+    private ColorStateList getSelectedColor() {
+        return Utils.getColorAttr(getContext(),
+                R.attr.notification_importance_button_foreground_color_selected);
     }
 
-    private ColorStateList getRegularTint() {
-        return Utils.getColorAttr(getContext(), android.R.attr.textColorPrimary);
+    private ColorStateList getUnselectedColor() {
+        return Utils.getColorAttr(getContext(),
+                R.attr.notification_importance_button_foreground_color_unselected);
     }
 
     void updateToggles(ViewGroup parent, int importance, boolean isPriority,
@@ -161,20 +163,21 @@
     }
 
     void setSelected(View view, boolean selected) {
-        ColorStateList colorAccent = getAccentTint();
-        ColorStateList colorNormal = getRegularTint();
+        ColorStateList colorSelected = getSelectedColor();
+        ColorStateList colorUnselected = getUnselectedColor();
 
         ImageView icon = view.findViewById(R.id.icon);
         TextView label = view.findViewById(R.id.label);
         TextView summary = view.findViewById(R.id.summary);
 
-        icon.setImageTintList(selected ? colorAccent : colorNormal);
-        label.setTextColor(selected ? colorAccent : colorNormal);
+        icon.setImageTintList(selected ? colorSelected : colorUnselected);
+        label.setTextColor(selected ? colorSelected : colorUnselected);
+        summary.setTextColor(selected ? colorSelected : colorUnselected);
         summary.setVisibility(selected ? VISIBLE : GONE);
 
         view.setBackground(mContext.getDrawable(selected
-                ? R.drawable.button_border_selected
-                : R.drawable.button_border_unselected));
+                ? R.drawable.notification_importance_button_background_selected
+                : R.drawable.notification_importance_button_background_unselected));
         // a11y service won't always read the newly appearing text in the right order if the
         // selection happens too soon (readback happens on a different thread as layout). post
         // the selection to make that conflict less likely
diff --git a/src/com/android/settings/notification/app/ImportancePreference.java b/src/com/android/settings/notification/app/ImportancePreference.java
index 857c94e..be53eda 100644
--- a/src/com/android/settings/notification/app/ImportancePreference.java
+++ b/src/com/android/settings/notification/app/ImportancePreference.java
@@ -77,8 +77,10 @@
 
     private void init(Context context) {
         mContext = context;
-        selectedBackground = mContext.getDrawable(R.drawable.button_border_selected);
-        unselectedBackground = mContext.getDrawable(R.drawable.button_border_unselected);
+        selectedBackground = mContext.getDrawable(
+                R.drawable.notification_importance_button_background_selected);
+        unselectedBackground = mContext.getDrawable(
+                R.drawable.notification_importance_button_background_unselected);
         setLayoutResource(R.layout.notif_importance_preference);
     }
 
@@ -152,12 +154,14 @@
         });
     }
 
-    private ColorStateList getAccentTint() {
-        return Utils.getColorAccent(getContext());
+    private ColorStateList getSelectedColor() {
+        return Utils.getColorAttr(getContext(),
+                R.attr.notification_importance_button_foreground_color_selected);
     }
 
-    private ColorStateList getRegularTint() {
-        return Utils.getColorAttr(getContext(), android.R.attr.textColorPrimary);
+    private ColorStateList getUnselectedColor() {
+        return Utils.getColorAttr(getContext(),
+                R.attr.notification_importance_button_foreground_color_unselected);
     }
 
     void setImportanceSummary(ViewGroup parent, int importance, boolean fromUser) {
@@ -167,25 +171,25 @@
             TransitionManager.beginDelayedTransition(parent, transition);
         }
 
-        ColorStateList colorAccent = getAccentTint();
-        ColorStateList colorNormal = getRegularTint();
+        ColorStateList colorSelected = getSelectedColor();
+        ColorStateList colorUnselected = getUnselectedColor();
 
         if (importance >= IMPORTANCE_DEFAULT) {
             parent.findViewById(R.id.silence_summary).setVisibility(GONE);
-            ((ImageView) parent.findViewById(R.id.silence_icon)).setImageTintList(colorNormal);
-            ((TextView) parent.findViewById(R.id.silence_label)).setTextColor(colorNormal);
+            ((ImageView) parent.findViewById(R.id.silence_icon)).setImageTintList(colorUnselected);
+            ((TextView) parent.findViewById(R.id.silence_label)).setTextColor(colorUnselected);
 
-            ((ImageView) parent.findViewById(R.id.alert_icon)).setImageTintList(colorAccent);
-            ((TextView) parent.findViewById(R.id.alert_label)).setTextColor(colorAccent);
+            ((ImageView) parent.findViewById(R.id.alert_icon)).setImageTintList(colorSelected);
+            ((TextView) parent.findViewById(R.id.alert_label)).setTextColor(colorSelected);
 
             parent.findViewById(R.id.alert_summary).setVisibility(VISIBLE);
         } else {
             parent.findViewById(R.id.alert_summary).setVisibility(GONE);
-            ((ImageView) parent.findViewById(R.id.alert_icon)).setImageTintList(colorNormal);
-            ((TextView) parent.findViewById(R.id.alert_label)).setTextColor(colorNormal);
+            ((ImageView) parent.findViewById(R.id.alert_icon)).setImageTintList(colorUnselected);
+            ((TextView) parent.findViewById(R.id.alert_label)).setTextColor(colorUnselected);
 
-            ((ImageView) parent.findViewById(R.id.silence_icon)).setImageTintList(colorAccent);
-            ((TextView) parent.findViewById(R.id.silence_label)).setTextColor(colorAccent);
+            ((ImageView) parent.findViewById(R.id.silence_icon)).setImageTintList(colorSelected);
+            ((TextView) parent.findViewById(R.id.silence_label)).setTextColor(colorSelected);
             parent.findViewById(R.id.silence_summary).setVisibility(VISIBLE);
         }
     }
