diff --git a/res/layout/preference_importance_slider.xml b/res/layout/preference_importance_slider.xml
index dc7c9db..ddbcd30 100644
--- a/res/layout/preference_importance_slider.xml
+++ b/res/layout/preference_importance_slider.xml
@@ -58,8 +58,8 @@
                 android:focusable="true"
                 android:background="#00ffffff"
                 android:progressBackgroundTint="@color/importance_secondary_slider_color"
-                android:thumbTint="@color/importance_disabled_slider_color"
-                android:progressTint="@color/importance_disabled_slider_color"
+                android:thumbTint="@color/importance_slider_color"
+                android:progressTint="@color/importance_slider_color"
                 style="@android:style/Widget.Material.SeekBar.Discrete"
                 android:tickMarkTint="@android:color/black" />
 
diff --git a/src/com/android/settings/notification/ImportanceSeekBarPreference.java b/src/com/android/settings/notification/ImportanceSeekBarPreference.java
index fe97448..90a3a50 100644
--- a/src/com/android/settings/notification/ImportanceSeekBarPreference.java
+++ b/src/com/android/settings/notification/ImportanceSeekBarPreference.java
@@ -23,6 +23,7 @@
 
 import android.content.Context;
 import android.content.res.ColorStateList;
+import android.content.res.TypedArray;
 import android.graphics.drawable.Drawable;
 import android.os.Handler;
 import android.service.notification.NotificationListenerService;
@@ -47,6 +48,8 @@
     private SeekBar mSeekBar;
     private ColorStateList mActiveSliderTint;
     private ColorStateList mInactiveSliderTint;
+    private float mActiveSliderAlpha = 1.0f;
+    private float mInactiveSliderAlpha;
     private boolean mAutoOn;
     private Handler mHandler;
 
@@ -61,6 +64,11 @@
         mInactiveSliderTint = ColorStateList.valueOf(
                 context.getColor(R.color.importance_disabled_slider_color));
         mHandler = new Handler();
+        final TypedArray ta =
+                context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.Theme, 0, 0);
+        mInactiveSliderAlpha =
+                ta.getFloat(com.android.internal.R.styleable.Theme_disabledAlpha, 0.5f);
+        ta.recycle();
     }
 
     public ImportanceSeekBarPreference(Context context, AttributeSet attrs, int defStyleAttr) {
@@ -128,13 +136,12 @@
     private void applyAutoUi(ImageView autoButton) {
         mSeekBar.setEnabled(!mAutoOn);
 
-        final ColorStateList sliderTint = mAutoOn ? mInactiveSliderTint : mActiveSliderTint;
+        final float alpha = mAutoOn ? mInactiveSliderAlpha : mActiveSliderAlpha;
         final ColorStateList starTint = mAutoOn ?  mActiveSliderTint : mInactiveSliderTint;
         Drawable icon = autoButton.getDrawable().mutate();
         icon.setTintList(starTint);
         autoButton.setImageDrawable(icon);
-        mSeekBar.setProgressTintList(sliderTint);
-        mSeekBar.setThumbTintList(sliderTint);
+        mSeekBar.setAlpha(alpha);
 
         if (mAutoOn) {
             setProgress(NotificationListenerService.Ranking.IMPORTANCE_DEFAULT);
