/** Rebuild main seekbars with values from the system files and preferences */
  public void rebuildSeekbar() {
    headphoneAmpControl.getLevelsFromFile();
    int currentLevelL = headphoneAmpControl.getCurrentLevelL();
    int currentLevelR = headphoneAmpControl.getCurrentLevelR();

    SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
    minLevel = sp.getInt(MainActivity.SEEKBAR_MIN_LEVEL, MIN_LEVEL);
    maxLevel = sp.getInt(MainActivity.SEEKBAR_MAX_LEVEL, MAX_LEVEL);

    seekBarMain.setMax(maxLevel - minLevel);
    seekBarMainRight.setMax(maxLevel - minLevel);

    // Enforce safety levels
    if (currentLevelL > maxLevel) {
      currentLevelL = maxLevel;
    } else if (currentLevelL < minLevel) {
      currentLevelL = minLevel;
    }
    if (currentLevelR > maxLevel) {
      currentLevelR = maxLevel;
    } else if (currentLevelR < minLevel) {
      currentLevelR = minLevel;
    }

    // Determine visibility of right level seekbar
    if (isBalanced) {
      seekBarMainRight.setVisibility(View.GONE);
      textViewLevelRight.setVisibility(View.GONE);

      currentLevelR = currentLevelL;
      headphoneAmpControl.setLevel(currentLevelL, currentLevelR);
      updateSeekbar(currentLevelL, currentLevelR);
      updateLabel(currentLevelL, currentLevelR);
    } else {
      seekBarMainRight.setVisibility(View.VISIBLE);
      textViewLevelRight.setVisibility(View.VISIBLE);

      headphoneAmpControl.setLevel(currentLevelL, currentLevelR);
      updateSeekbar(currentLevelL, currentLevelR);
      updateLabel(currentLevelL, currentLevelR);
    }
  }