package de.hacksaar.andtuer;

import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Environment;
import android.preference.Preference;
import android.preference.PreferenceActivity;

public class DoorSettings extends PreferenceActivity implements Preference.OnPreferenceChangeListener {
	public static final int DEFAULT_PORT = 22;
	public static final String DEFAULT_HOST = "192.168.178.222";
	public static final String DEFAULT_KEYFILE = Environment.getExternalStorageDirectory().getPath() + "/.ssh/id_rsa";
	private static final String UNSET = "<unset>";
	public static final String PREF_SERVER_PORT = "pref_server_port";
	public static final String PREF_USER_USERNAME = "pref_user_username";
	public static final String PREF_USER_KEYFILE = "pref_user_keyfile";
	public static final String PREF_SERVER_HOSTNAME = "pref_server_hostname";

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.xml.preferences);
		Preference hostnamePreference = findPreference(PREF_SERVER_HOSTNAME);
		hostnamePreference.setOnPreferenceChangeListener(this);
		SharedPreferences sharedPreferences = getPreferenceManager().getSharedPreferences();
		hostnamePreference.setSummary(sharedPreferences.getString(PREF_SERVER_HOSTNAME, DEFAULT_HOST));
		Preference portPreference = findPreference(PREF_SERVER_PORT);
		portPreference.setOnPreferenceChangeListener(this);
		portPreference.setSummary(Integer.toString(sharedPreferences.getInt(PREF_SERVER_PORT, DEFAULT_PORT)));
		Preference usernamePreference = findPreference(PREF_USER_USERNAME);
		usernamePreference.setOnPreferenceChangeListener(this);
		usernamePreference.setSummary(sharedPreferences.getString(PREF_USER_USERNAME, UNSET));
		Preference keyfilePreference = findPreference(PREF_USER_KEYFILE);
		keyfilePreference.setOnPreferenceChangeListener(this);
		keyfilePreference.setSummary(sharedPreferences.getString(PREF_USER_KEYFILE, DEFAULT_KEYFILE));
	}

	@Override
	public boolean onPreferenceChange(Preference preference, Object o) {
		SharedPreferences sharedPreferences = getPreferenceManager().getSharedPreferences();
		if (preference.getKey().equals(PREF_SERVER_PORT)) {
			preference.setSummary(
					Integer.toString(sharedPreferences.getInt(preference.getKey(), DEFAULT_PORT)));
		} else {
			preference.setSummary(sharedPreferences.getString(preference.getKey(), UNSET));
		}
		return true;
	}
}