Grey out settings icon when it is in disabled state

If engine is not active, its settings icon is disabled in
Settings > Language & input > Text-to-speech output screen.
Currently, settings icons for all TTS engines are shown at
the same opacity. This fix dims settings icons of not-selected
engines.
Make sure that more than one TTS engine are installed on the
target, for e.g., Google Text-to-speech Engine and Classic
Text To Speech Engine (SVOX Classic TTS).

Additionally, since setAlpha() is used in multiple places within
Settings package, moved DISABLED_ALPHA declaration to Utils.java
in order to have single point of reference.

Change-Id: Ifa7de79814a2f4a4aa021cd8621cbfab41655680
Signed-off-by: Shuhrat Dehkanov <uzbmaster@gmail.com>
This commit is contained in:
Shuhrat Dehkanov
2012-10-03 12:24:07 +09:00
parent 19f09fb127
commit 96577681a2
6 changed files with 23 additions and 9 deletions

View File

@@ -30,6 +30,7 @@ import android.widget.RadioButton;
import com.android.settings.R;
import com.android.settings.Utils;
public class TtsEnginePreference extends Preference {
@@ -136,6 +137,9 @@ public class TtsEnginePreference extends Preference {
// Will be enabled only the engine has passed the voice check, and
// is currently enabled.
mSettingsIcon.setEnabled(isChecked && mVoiceCheckData != null);
if (!isChecked) {
mSettingsIcon.setAlpha(Utils.DISABLED_ALPHA);
}
mSettingsIcon.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
@@ -169,7 +173,12 @@ public class TtsEnginePreference extends Preference {
// case mSettingsIcon && mRadioButton will be null. In this case
// getView will set the right values.
if (mSettingsIcon != null && mRadioButton != null) {
mSettingsIcon.setEnabled(mRadioButton.isChecked());
if (mRadioButton.isChecked()) {
mSettingsIcon.setEnabled(true);
} else {
mSettingsIcon.setEnabled(false);
mSettingsIcon.setAlpha(Utils.DISABLED_ALPHA);
}
}
}