package org.sparkleshare.android;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.preference.CheckBoxPreference;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceChangeListener;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceActivity;
public class SettingsActivity extends PreferenceActivity {
private Preference releaseAccount;
private CheckBoxPreference hideFilesFolders;
private Context context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
context = this;
addPreferencesFromResource(R.xml.settings);
hideFilesFolders = (CheckBoxPreference) findPreference(getString(R.string.settings_hide_files_folders));
hideFilesFolders.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
SharedPreferences prefs = getSettings((ContextWrapper) context);
Editor editor = prefs.edit();
if (hideFilesFolders.isChecked()) {
editor.putBoolean("hideFilesFolders", true);
} else {
editor.putBoolean("hideFilesFolders", false);
}
return editor.commit();
}
});
releaseAccount = (Preference) findPreference(getString(R.string.settings_release_account));
releaseAccount.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setMessage(getString(R.string.release_account_hint))
.setTitle(getString(R.string.are_you_sure))
.setCancelable(false)
.setPositiveButton(getString(R.string.release), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
SharedPreferences prefs = SettingsActivity.getSettings((ContextWrapper) context);
Editor editor = prefs.edit();
editor.remove("ident");
editor.remove("authCode");
editor.commit();
Intent backToSetup = new Intent(context, SetupActivity.class);
backToSetup.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(backToSetup);
((Activity) context).finish();
}
}).setNegativeButton(getString(R.string.cancel), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
return true;
}
});
}
public static final SharedPreferences getSettings(final ContextWrapper context) {
String name = context.getPackageName() + "_preferences";
return context.getSharedPreferences(name, MODE_PRIVATE);
}
}