aboutsummaryrefslogtreecommitdiffstats
path: root/src/org/connectbot/SettingsActivity.java
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2009-06-16 05:45:43 +0000
committerKenny Root <kenny@the-b.org>2009-06-16 05:45:43 +0000
commitc4c00813d713c7e431b01fb522087fbac22cdf56 (patch)
treed07879c436b7d023d0c79b07d9b37526da8de39c /src/org/connectbot/SettingsActivity.java
parent43d6d98bcae350694f09d77e99ed5e9bb8deff91 (diff)
downloadconnectbot-c4c00813d713c7e431b01fb522087fbac22cdf56.tar.gz
connectbot-c4c00813d713c7e431b01fb522087fbac22cdf56.tar.bz2
connectbot-c4c00813d713c7e431b01fb522087fbac22cdf56.zip
When corrupted settings are encountered, reset to default values
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@308 df292f66-193f-0410-a5fc-6d59da041ff2
Diffstat (limited to 'src/org/connectbot/SettingsActivity.java')
-rw-r--r--src/org/connectbot/SettingsActivity.java28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/org/connectbot/SettingsActivity.java b/src/org/connectbot/SettingsActivity.java
index 422e1df..1d4991f 100644
--- a/src/org/connectbot/SettingsActivity.java
+++ b/src/org/connectbot/SettingsActivity.java
@@ -18,15 +18,41 @@
package org.connectbot;
+import org.connectbot.util.PreferenceConstants;
+
+import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceActivity;
+import android.preference.PreferenceManager;
+import android.util.Log;
public class SettingsActivity extends PreferenceActivity {
+ private static final String TAG = "ConnectBot.Settings";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.preferences);
+ try {
+ addPreferencesFromResource(R.xml.preferences);
+ } catch (ClassCastException e) {
+ Log.e(TAG, "Shared preferences are corrupt! Resetting to default values.");
+
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
+
+ // Blow away all the preferences
+ SharedPreferences.Editor editor = preferences.edit();
+ editor.clear();
+ editor.commit();
+
+ PreferenceManager.setDefaultValues(this, R.xml.preferences, true);
+
+ // Since they were able to get to the Settings activity, they already agreed to the EULA
+ editor = preferences.edit();
+ editor.putBoolean(PreferenceConstants.EULA, true);
+ editor.commit();
+
+ addPreferencesFromResource(R.xml.preferences);
+ }
// TODO: add parse checking here to make sure we have integer value for scrollback