/** 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); } }