// Created by plusminus on 19:38:55 - 07.08.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.CommonCallbackAdapter;
import org.androad.ui.common.CommonDialogFactory;
import org.androad.ui.common.OnClickOnFocusChangedListenerAdapter;
import android.app.Dialog;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.CompoundButton.OnCheckedChangeListener;
public class SettingsTracePolicy extends AndNavBaseActivity{
// ===========================================================
// Constants
// ===========================================================
protected static final int DIALOG_INPUT_OSM_ACCOUNT_INFO = 0;
protected static final int DIALOG_INPUT_TRAILMAPPING_ACCOUNT_INFO = 1;
// ===========================================================
// Fields
// ===========================================================
protected boolean mDialogMode = false;
protected ImageButton mIbtnToSDCard;
protected ImageButton mIbtnToOSMAccountUploader;
protected ImageButton mIbtnToTrailmappingAccountUploader;
protected ImageView mIvToSDCardSelector;
protected ImageView mIvToOSMAccountUploaderSelector;
protected ImageView mIvToTrailmappingAccountUploaderSelector;
protected CheckBox mChkFilterMinimalTraces;
// ===========================================================
// Constructors
// ===========================================================
@Override
public void onCreate(final Bundle icicle) {
super.onCreate(icicle);
Preferences.applySharedSettings(this);
this.setContentView(R.layout.settings_tracepolicy);
this.mIbtnToSDCard = (ImageButton)this.findViewById(R.id.ibtn_settings_tracepolicy_sdcard);
this.mIbtnToOSMAccountUploader = (ImageButton)this.findViewById(R.id.ibtn_settings_tracepolicy_uploadtoosmaccount);
this.mIbtnToTrailmappingAccountUploader = (ImageButton)this.findViewById(R.id.ibtn_settings_tracepolicy_uploadtotrailmappingaccount);
this.mIvToSDCardSelector = (ImageView)this.findViewById(R.id.iv_settings_tracepolicy_sdcard_selector);
this.mIvToOSMAccountUploaderSelector = (ImageView)this.findViewById(R.id.iv_settings_tracepolicy_uploadtoosmaccount_selector);
this.mIvToTrailmappingAccountUploaderSelector = (ImageView)this.findViewById(R.id.iv_settings_tracepolicy_uploadtotrailmappingaccount_selector);
this.mChkFilterMinimalTraces = (CheckBox)this.findViewById(R.id.chk_settings_tracepolicy_filter_minimal_requirements);
this.applyViewListeners();
this.loadSettingsToViews();
}
private void applyViewListeners() {
this.mChkFilterMinimalTraces.setOnCheckedChangeListener(new OnCheckedChangeListener(){
@Override
public void onCheckedChanged(final CompoundButton me, final boolean isChecked) {
Preferences.saveMinimalTraceFilteringEnabled(SettingsTracePolicy.this, isChecked);
}
});
new OnClickOnFocusChangedListenerAdapter(this, R.id.ibtn_settings_tracepolicy_close){
@Override
public void onClicked(final View me) {
if(SettingsTracePolicy.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsTracePolicy.this, R.raw.close).start();
}
SettingsTracePolicy.this.finish();
}
};
new OnClickOnFocusChangedListenerAdapter(this, R.id.ibtn_settings_tracepolicy_sdcard){
@Override
public void onClicked(final View me) {
final boolean oldValue = Preferences.getTracePolicyExternal(SettingsTracePolicy.this);
final boolean newValue = !oldValue;
if(SettingsTracePolicy.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsTracePolicy.this, R.raw.save).start();
}
if(newValue) {
SettingsTracePolicy.this.mIvToSDCardSelector.setImageResource(R.drawable.checked);
} else {
SettingsTracePolicy.this.mIvToSDCardSelector.setImageResource(R.drawable.crossed);
}
Preferences.saveTracePolicyExternal(SettingsTracePolicy.this, newValue);
}
};
new OnClickOnFocusChangedListenerAdapter(this, R.id.ibtn_settings_tracepolicy_uploadtoosmaccount){
@Override
public void onClicked(final View me) {
if(Preferences.getTracePolicyOSM(SettingsTracePolicy.this)){
SettingsTracePolicy.this.mIvToOSMAccountUploaderSelector.setImageResource(R.drawable.crossed);
Preferences.saveTracePolicyOSM(SettingsTracePolicy.this, false);
}else{
showDialog(DIALOG_INPUT_OSM_ACCOUNT_INFO);
}
}
};
new OnClickOnFocusChangedListenerAdapter(this, R.id.ibtn_settings_tracepolicy_uploadtotrailmappingaccount){
@Override
public void onClicked(final View me) {
if(Preferences.getTracePolicyTrailmapping(SettingsTracePolicy.this)){
SettingsTracePolicy.this.mIvToTrailmappingAccountUploaderSelector.setImageResource(R.drawable.crossed);
Preferences.saveTracePolicyTrailmapping(SettingsTracePolicy.this, false);
}else{
showDialog(DIALOG_INPUT_TRAILMAPPING_ACCOUNT_INFO);
}
}
};
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods from SuperClass/Interfaces
// ===========================================================
@Override
protected Dialog onCreateDialog(final int id) {
switch(id){
case DIALOG_INPUT_OSM_ACCOUNT_INFO:
return CommonDialogFactory.createOSMAccountInfoDialog(this, new CommonCallbackAdapter<Boolean>(){
@Override
public void onSuccess(final Boolean result) {
if(result){
final boolean oldValue = Preferences.getTracePolicyOSM(SettingsTracePolicy.this);
final boolean newValue = !oldValue;
if(SettingsTracePolicy.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsTracePolicy.this, R.raw.save).start();
}
if(newValue) {
SettingsTracePolicy.this.mIvToOSMAccountUploaderSelector.setImageResource(R.drawable.checked);
} else {
SettingsTracePolicy.this.mIvToOSMAccountUploaderSelector.setImageResource(R.drawable.crossed);
}
Preferences.saveTracePolicyOSM(SettingsTracePolicy.this, newValue);
}
}
});
case DIALOG_INPUT_TRAILMAPPING_ACCOUNT_INFO:
return CommonDialogFactory.createTrailmappingAccountInfoDialog(this, new CommonCallbackAdapter<Boolean>(){
@Override
public void onSuccess(final Boolean result) {
if(result){
final boolean oldValue = Preferences.getTracePolicyTrailmapping(SettingsTracePolicy.this);
final boolean newValue = !oldValue;
if(SettingsTracePolicy.super.mMenuVoiceEnabled) {
MediaPlayer.create(SettingsTracePolicy.this, R.raw.save).start();
}
if(newValue) {
SettingsTracePolicy.this.mIvToTrailmappingAccountUploaderSelector.setImageResource(R.drawable.checked);
} else {
SettingsTracePolicy.this.mIvToTrailmappingAccountUploaderSelector.setImageResource(R.drawable.crossed);
}
Preferences.saveTracePolicyTrailmapping(SettingsTracePolicy.this, newValue);
}
}
});
default:
return null;
}
}
// ===========================================================
// Methods
// ===========================================================
private void loadSettingsToViews() {
this.mChkFilterMinimalTraces.setChecked(Preferences.getMinimalTraceFilteringEnabled(this));
if(Preferences.getTracePolicyExternal(this)) {
this.mIvToSDCardSelector.setImageResource(R.drawable.checked);
} else {
this.mIvToSDCardSelector.setImageResource(R.drawable.crossed);
}
if(Preferences.getTracePolicyOSM(this)) {
this.mIvToOSMAccountUploaderSelector.setImageResource(R.drawable.checked);
} else {
this.mIvToOSMAccountUploaderSelector.setImageResource(R.drawable.crossed);
}
if(Preferences.getTracePolicyTrailmapping(this)) {
this.mIvToTrailmappingAccountUploaderSelector.setImageResource(R.drawable.checked);
} else {
this.mIvToTrailmappingAccountUploaderSelector.setImageResource(R.drawable.crossed);
}
}
// ===========================================================
// Inner and Anonymous Classes
// ===========================================================
}