@Override
  public void reflectCurrentFilter() {
    if (useCompact(mContext)) {
      super.reflectCurrentFilter();

      FilterRepresentation rep = getLocalRepresentation();
      if (rep != null && getLocalRepresentation() instanceof FilterVignetteRepresentation) {
        FilterVignetteRepresentation drawRep = (FilterVignetteRepresentation) rep;
        mImageVignette.setRepresentation(drawRep);
      }
      updateText();
      return;
    }
    mLocalRepresentation = null;
    if (getLocalRepresentation() != null
        && getLocalRepresentation() instanceof FilterVignetteRepresentation) {
      FilterVignetteRepresentation rep = (FilterVignetteRepresentation) getLocalRepresentation();
      int min;
      int[] mode = {
        FilterVignetteRepresentation.MODE_VIGNETTE,
        FilterVignetteRepresentation.MODE_EXPOSURE,
        FilterVignetteRepresentation.MODE_SATURATION,
        FilterVignetteRepresentation.MODE_CONTRAST,
        FilterVignetteRepresentation.MODE_FALLOFF
      };
      SeekBar[] sliders = {mVignetteBar, mExposureBar, mSaturationBar, mContrastBar, mFalloffBar};
      TextView[] label = {
        mVignetteValue, mExposureValue, mSaturationValue, mContrastValue, mFalloffValue
      };
      for (int i = 0; i < mode.length; i++) {
        BasicParameterInt p = (BasicParameterInt) rep.getFilterParameter(mode[i]);
        int value = p.getValue();
        sliders[i].setMax(p.getMaximum() - p.getMinimum());
        sliders[i].setProgress(value - p.getMinimum());
        label[i].setText("" + value);
      }

      mImageVignette.setRepresentation(rep);
      String text = mContext.getString(rep.getTextId()).toUpperCase();
      mFilterTitle.setText(text);
      updateText();
    }
  }