// Created by plusminus on 18:41:23 - 10.04.2008
package org.androad.ui.settings;
import org.androad.R;
import org.androad.preferences.Preferences;
import org.androad.ui.AndNavBaseActivity;
import org.androad.ui.common.OnClickOnFocusChangedListenerAdapter;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class SettingsQuality extends AndNavBaseActivity {
// ===========================================================
// Final Fields
// ===========================================================
// ===========================================================
// Fields
// ===========================================================
protected TextView qualityQuickinfo;
protected ImageView ivQualityRate;
protected ImageView ivBatteryRate;
// ===========================================================
// Constructors
// ===========================================================
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
Preferences.applySharedSettings(this);
this.setContentView(R.layout.settings_quality);
this.qualityQuickinfo = (TextView)this.findViewById(R.id.tv_settings_quality_quickinfo);
this.ivBatteryRate = (ImageView)this.findViewById(R.id.iv_settings_quality_battery_rate);
this.ivQualityRate = (ImageView)this.findViewById(R.id.iv_settings_quality_quality_rate);
this.applyButtonListeners();
updateViews(Preferences.getDisplayQuality(this));
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
// ===========================================================
// Methods
// ===========================================================
private void updateViews(final int aQuality) {
switch(aQuality){
case PREF_DISPLAYQUALITY_LOW:
this.updateQuickInfo(R.string.tv_settings_quality_quickinfo_low_description);
this.findViewById(R.id.btn_settings_quality_low).requestFocus();
this.updateQualityRateBar(1);
this.updateBatteryRateBar(5);
break;
case PREF_DISPLAYQUALITY_STANDARD:
this.updateQuickInfo(R.string.tv_settings_quality_quickinfo_standard_description);
this.findViewById(R.id.btn_settings_quality_standard).requestFocus();
this.updateQualityRateBar(3);
this.updateBatteryRateBar(3);
break;
case PREF_DISPLAYQUALITY_HIGH:
this.updateQuickInfo(R.string.tv_settings_quality_quickinfo_high_description);
this.findViewById(R.id.btn_settings_quality_high).requestFocus();
this.updateQualityRateBar(4);
this.updateBatteryRateBar(2);
break;
case PREF_DISPLAYQUALITY_BEST:
this.updateQuickInfo(R.string.tv_settings_quality_quickinfo_best_description);
this.findViewById(R.id.btn_settings_quality_best).requestFocus();
this.updateQualityRateBar(5);
this.updateBatteryRateBar(1);
break;
}
}
private void updateQuickInfo(final int resid){
this.qualityQuickinfo.setText(resid);
}
private void updateQualityRateBar(final int rate){
int resid = 0;
switch(rate){
case 5:
resid = R.drawable.rate_5of5_full;
break;
case 4:
resid = R.drawable.rate_4of5_full;
break;
case 3:
resid = R.drawable.rate_3of5_full;
break;
case 2:
resid = R.drawable.rate_2of5_full;
break;
case 1:
resid = R.drawable.rate_1of5_full;
break;
}
this.ivQualityRate.setImageResource(resid);
}
private void updateBatteryRateBar(final int rate){
int resid = 0;
switch(rate){
case 5:
resid = R.drawable.rate_5of5_full;
break;
case 4:
resid = R.drawable.rate_4of5_full;
break;
case 3:
resid = R.drawable.rate_3of5_full;
break;
case 2:
resid = R.drawable.rate_2of5_full;
break;
case 1:
resid = R.drawable.rate_1of5_full;
break;
}
this.ivBatteryRate.setImageResource(resid);
}
protected void applyButtonListeners() {
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.btn_settings_quality_low)){
@Override
public void onFocusChanged(final View me, final boolean focused) {
if(focused) {
updateViews(PREF_DISPLAYQUALITY_LOW);
}
}
@Override
public void onClicked(final View me) {
if(SettingsQuality.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsQuality.this, R.raw.save).start();
}
Preferences.saveDisplayQuality(SettingsQuality.this, PREF_DISPLAYQUALITY_LOW);
updateViews(PREF_DISPLAYQUALITY_LOW);
}
};
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.btn_settings_quality_standard)){
@Override
public void onFocusChanged(final View me, final boolean focused) {
if(focused) {
updateViews(PREF_DISPLAYQUALITY_STANDARD);
}
}
@Override
public void onClicked(final View me) {
if(SettingsQuality.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsQuality.this, R.raw.save).start();
}
Preferences.saveDisplayQuality(SettingsQuality.this, PREF_DISPLAYQUALITY_STANDARD);
updateViews(PREF_DISPLAYQUALITY_STANDARD);
}
};
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.btn_settings_quality_high)){
@Override
public void onFocusChanged(final View me, final boolean focused) {
if(focused) {
updateViews(PREF_DISPLAYQUALITY_HIGH);
}
}
@Override
public void onClicked(final View me) {
if(SettingsQuality.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsQuality.this, R.raw.save).start();
}
Preferences.saveDisplayQuality(SettingsQuality.this, PREF_DISPLAYQUALITY_HIGH);
updateViews(PREF_DISPLAYQUALITY_HIGH);
}
};
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.btn_settings_quality_best)){
@Override
public void onFocusChanged(final View me, final boolean focused) {
if(focused) {
updateViews(PREF_DISPLAYQUALITY_BEST);
}
}
@Override
public void onClicked(final View me) {
if(SettingsQuality.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsQuality.this, R.raw.save).start();
}
Preferences.saveDisplayQuality(SettingsQuality.this, PREF_DISPLAYQUALITY_BEST);
updateViews(PREF_DISPLAYQUALITY_BEST);
}
};
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.btn_settings_quality_close)){
@Override
public void onBoth(final View me, final boolean focused) {
if(focused && SettingsQuality.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsQuality.this, R.raw.close).start();
}
}
@Override
public void onFocusChanged(final View me, final boolean focused) {
if(focused) {
SettingsQuality.this.qualityQuickinfo.setText(R.string.tv_settings_quickinfo_close_focused);
}
}
@Override
public void onClicked(final View me) {
SettingsQuality.this.finish();
}
};
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}