diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 3c74b84..8d7665d 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -27,6 +27,8 @@
     <!-- Value to pass to callback when restore button is pressed -->
     <declare-styleable name="ColorPickerPreference">
         <attr name="alphaSlider" format="boolean" />
+        <attr name="showPreview" format="boolean" />
+        <attr name="showReset" format="boolean" />
     </declare-styleable>
 
 </resources>
diff --git a/src/com/bliss/support/colorpicker/ColorPickerPreference.java b/src/com/bliss/support/colorpicker/ColorPickerPreference.java
index c1d748c..2c63072 100644
--- a/src/com/bliss/support/colorpicker/ColorPickerPreference.java
+++ b/src/com/bliss/support/colorpicker/ColorPickerPreference.java
@@ -48,6 +48,7 @@
         Preference.OnPreferenceClickListener, ColorPickerDialog.OnColorChangedListener {
 
     private static final String ANDROIDNS = "http://schemas.android.com/apk/res/android";
+    private static final String SETTINGS_NS = "http://schemas.android.com/apk/res/com.android.settings";
 
     PreferenceViewHolder mView;
     LinearLayout mWidgetFrameView;
@@ -58,6 +59,8 @@
     private boolean mAlphaSliderEnabled = false;
     private boolean mIsLedColorPicker;
     private boolean mShowLedPreview;
+    private boolean mShowReset;
+    private boolean mShowPreview;
     private EditText mEditText;
 
     //private boolean mIsCrappyLedDevice;
@@ -105,6 +108,8 @@
         if (attrs != null) {
             mAlphaSliderEnabled = attrs.getAttributeBooleanValue(null, "alphaSlider", false);
             mDefaultValue = attrs.getAttributeIntValue(ANDROIDNS, "defaultValue", Color.BLACK);
+            mShowReset = attrs.getAttributeBooleanValue(SETTINGS_NS, "showReset", false);
+            mShowPreview = attrs.getAttributeBooleanValue(SETTINGS_NS, "showPreview", true);
         }
     }
 
@@ -141,7 +146,7 @@
      * @author Randall Rushing aka Bigrushdog
      */
     private void setDefaultButton() {
-        if (mView == null || mWidgetFrameView == null)
+        if (!mShowReset || mView == null || mWidgetFrameView == null)
             return;
 
         ImageView defView = new ImageView(getContext());
@@ -175,7 +180,7 @@
     }
 
     private void setPreviewColor() {
-        if (mView == null || mWidgetFrameView == null)
+        if (!mShowPreview || mView == null || mWidgetFrameView == null)
             return;
 
         ImageView iView = new ImageView(getContext());
