//Created by plusminus on 18:11:58 - 07.03.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.app.AlertDialog;
import android.content.DialogInterface;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
public class SettingsCenterMode extends AndNavBaseActivity {
// ===========================================================
// Final Fields
// ===========================================================
protected static final int REQUESTCODE_NAVSETTINGS = 0;
// ===========================================================
// Fields
// ===========================================================
protected ImageView mTvCenterModePreview;
protected TextView mTvCenterModeQuickinfo;
// ===========================================================
// Constructors
// ===========================================================
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
Preferences.applySharedSettings(this);
this.setContentView(R.layout.settings_centermode);
/* Get the centermodePreview ImageView from xml. */
this.mTvCenterModePreview = (ImageView)this.findViewById(R.id.iv_settings_centermode_sample);
this.mTvCenterModeQuickinfo = (TextView)this.findViewById(R.id.tv_settings_centermode_quickinfo);
final int activecentermode = Preferences.getCenterMode(this);
this.refreshCenterModeImageAndTextByMode(activecentermode, false);
if(activecentermode == PREF_CENTERMODE_CENTERUSER) {
this.findViewById(R.id.ibtn_settings_centermode_centeruser).requestFocus();
} else if(activecentermode == PREF_CENTERMODE_UPTO_NEXTTURN) {
this.findViewById(R.id.ibtn_settings_centermode_upto_nextturn).requestFocus();
}
this.applyViewListeners();
}
private void refreshCenterModeImageAndTextByMode(final int centermode, final boolean saved){
final int activecentermode = Preferences.getCenterMode(this);
switch (centermode){
case PREF_CENTERMODE_CENTERUSER:
this.mTvCenterModePreview.setImageResource(R.drawable.centermode_user_full);
if(saved) {
this.mTvCenterModeQuickinfo.setText(R.string.tv_settings_centermode_quickinfo_centeruser_saved);
} else{
if(activecentermode == centermode) {
this.mTvCenterModeQuickinfo.setText(getString(R.string.tv_settings_centermode_quickinfo_centeruser) + " "+ getString(R.string.tv_settings_center_and_rotate_mode_quickinfo_current));
} else {
this.mTvCenterModeQuickinfo.setText(R.string.tv_settings_centermode_quickinfo_centeruser);
}
}
break;
case PREF_CENTERMODE_UPTO_NEXTTURN:
this.mTvCenterModePreview.setImageResource(R.drawable.centermode_uptonextturn_full);
if(saved) {
this.mTvCenterModeQuickinfo.setText(R.string.tv_settings_centermode_quickinfo_upto_nextturn_saved);
} else{
if(activecentermode == centermode) {
this.mTvCenterModeQuickinfo.setText(getString(R.string.tv_settings_centermode_quickinfo_upto_nextturn) + " "+ getString(R.string.tv_settings_center_and_rotate_mode_quickinfo_current));
} else {
this.mTvCenterModeQuickinfo.setText(R.string.tv_settings_centermode_quickinfo_upto_nextturn);
}
}
break;
}
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
// ===========================================================
// Methods
// ===========================================================
protected void applyViewListeners() {
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.ibtn_settings_centermode_centeruser)){
@Override
public void onFocusChanged(final View me, final boolean focus) {
if(focus) {
SettingsCenterMode.this.refreshCenterModeImageAndTextByMode(PREF_CENTERMODE_CENTERUSER, false);
}
}
@Override
public void onClicked(final View me) {
Preferences.saveCenterMode(SettingsCenterMode.this, PREF_CENTERMODE_CENTERUSER);
SettingsCenterMode.this.refreshCenterModeImageAndTextByMode(PREF_CENTERMODE_CENTERUSER, true);
if(SettingsCenterMode.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsCenterMode.this, R.raw.save).start();
}
}
};
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.ibtn_settings_centermode_upto_nextturn)){
@Override
public void onFocusChanged(final View me, final boolean focus) {
if(focus) {
SettingsCenterMode.this.refreshCenterModeImageAndTextByMode(PREF_CENTERMODE_UPTO_NEXTTURN, false);
}
}
@Override
public void onClicked(final View me) {
/* ROTATEMODE_DRIVINGDIRECTION_UP and centermode_UPTO_NEXTTURN are 'mutex' */
if(Preferences.getRotateMode(SettingsCenterMode.this) == PREF_ROTATEMODE_DRIVINGDIRECTION_UP){
final AlertDialog.Builder aBuilder = new AlertDialog.Builder(SettingsCenterMode.this);
aBuilder.setIcon(R.drawable.questionmark_small);
aBuilder.setTitle(R.string.rotatemode_dd_up_centermode_upto_nextturn_mutex_title);
aBuilder.setMessage(R.string.rotatemode_dd_up_centermode_upto_nextturn_mutex_message);
aBuilder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface arg0, final int arg1) {
Preferences.saveRotateMode(SettingsCenterMode.this, PREF_ROTATEMODE_NORTH_UP);
Preferences.saveCenterMode(SettingsCenterMode.this, PREF_CENTERMODE_UPTO_NEXTTURN);
SettingsCenterMode.this.refreshCenterModeImageAndTextByMode(PREF_CENTERMODE_UPTO_NEXTTURN, true);
if(SettingsCenterMode.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsCenterMode.this, R.raw.save).start();
}
}
});
aBuilder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener(){
@Override
public void onClick(final DialogInterface arg0, final int arg1) {
// Nothing to react on here!
}
});
aBuilder.create().show();
}else{
Preferences.saveCenterMode(SettingsCenterMode.this, PREF_CENTERMODE_UPTO_NEXTTURN);
SettingsCenterMode.this.refreshCenterModeImageAndTextByMode(PREF_CENTERMODE_UPTO_NEXTTURN, true);
if(SettingsCenterMode.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsCenterMode.this, R.raw.save).start();
}
}
}
};
new OnClickOnFocusChangedListenerAdapter(this.findViewById(R.id.ibtn_settings_centermode_close)){
@Override
public void onBoth(final View me, final boolean focused) {
if(focused && SettingsCenterMode.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsCenterMode.this, R.raw.close).start();
}
}
@Override
public void onFocusChanged(final View me, final boolean focus) {
if(focus) {
SettingsCenterMode.this.mTvCenterModeQuickinfo.setText(R.string.tv_settings_quickinfo_close_focused);
}
}
@Override
public void onClicked(final View me) {
SettingsCenterMode.this.finish();
}
};
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}