@Override
 protected void onSetInitialValue(boolean restore, Object defaultValue) {
   super.onSetInitialValue(restore, defaultValue);
   if (restore) {
     mValue = shouldPersist() ? getPersistedInt(mDefault) : 0;
   } else {
     mValue = (Integer) defaultValue;
   }
 }
 protected void onSetInitialValue(boolean restore, java.lang.Object defaultValue) {
   super.onSetInitialValue(restore, defaultValue);
   if (restore) {
     try {
       mValue = shouldPersist() ? getPersistedInt(mDefault) : 0;
     } catch (java.lang.Exception ex) {
       mValue = mDefault;
     }
   } else {
     mValue = (java.lang.Integer) defaultValue;
   }
 }
 @Override
 protected void onSetInitialValue(boolean restore, Object defaultValue) {
   super.onSetInitialValue(restore, defaultValue);
   if (restore) {
     mValue = shouldPersist() ? getPersistedInt(mDefault) : 0;
     mRed = (mValue & 0x00ff0000) >> 16;
     mGreen = (mValue & 0x0000ff00) >> 8;
     mBlue = mValue & 0x000000ff;
   } else {
     mValue = (Integer) defaultValue;
     mRed = (mValue & 0x00ff0000) >> 16;
     mGreen = (mValue & 0x0000ff00) >> 8;
     mBlue = mValue & 0x000000ff;
   }
   return;
 }