From 9e5a4b871b393e09c6736882265e3468f8212b39 Mon Sep 17 00:00:00 2001 From: Steven Luo Date: Tue, 22 Nov 2011 20:18:10 -0800 Subject: [PATCH] Keep all default preferences in one place We keep forgetting to change bits and pieces which contain default preferences when we update them. That's nuts, so let's keep all the default preferences in one file (res/value/defaults.xml) in the resources, and fetch those preferences from the resources whenever we need them. Signed-off-by: Jack Palevich --- res/values/defaults.xml | 18 +++++++++ res/values/strings.xml | 14 ------- res/xml/preferences.xml | 28 +++++++------- src/jackpal/androidterm/Term.java | 2 +- src/jackpal/androidterm/session/TermSession.java | 13 ------- src/jackpal/androidterm/util/TermSettings.java | 47 +++++++++++++++++------- 6 files changed, 67 insertions(+), 55 deletions(-) create mode 100644 res/values/defaults.xml diff --git a/res/values/defaults.xml b/res/values/defaults.xml new file mode 100644 index 0000000..72619ba --- /dev/null +++ b/res/values/defaults.xml @@ -0,0 +1,18 @@ + + + + 0 + 0 + 0 + 10 + 2 + false + 2 + 5 + 4 + 0 + /system/bin/sh - + export PATH=/data/local/bin:$PATH + screen + true + diff --git a/res/values/strings.xml b/res/values/strings.xml index d8a2216..a8b023e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -105,20 +105,6 @@ Close window on exit Whether a window should close when its shell exits. - - 0 - 0 - 0 - 10 - 2 - 3 - 5 - 4 - 0 - /system/bin/sh - - export PATH=/data/local/bin:$PATH - screen - Control and Function Keys diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml index 787217c..55991c3 100644 --- a/res/xml/preferences.xml +++ b/res/xml/preferences.xml @@ -22,7 +22,7 @@ @@ -86,7 +86,7 @@ diff --git a/src/jackpal/androidterm/Term.java b/src/jackpal/androidterm/Term.java index 357549a..406851b 100644 --- a/src/jackpal/androidterm/Term.java +++ b/src/jackpal/androidterm/Term.java @@ -113,7 +113,7 @@ public class Term extends Activity implements UpdateCallback { super.onCreate(icicle); Log.e(TermDebug.LOG_TAG, "onCreate"); mPrefs = PreferenceManager.getDefaultSharedPreferences(this); - mSettings = new TermSettings(mPrefs); + mSettings = new TermSettings(getResources(), mPrefs); TSIntent = new Intent(this, TermService.class); startService(TSIntent); diff --git a/src/jackpal/androidterm/session/TermSession.java b/src/jackpal/androidterm/session/TermSession.java index 0c8e396..821bcd7 100644 --- a/src/jackpal/androidterm/session/TermSession.java +++ b/src/jackpal/androidterm/session/TermSession.java @@ -69,10 +69,6 @@ public class TermSession { private static final int DEFAULT_COLUMNS = 80; private static final int DEFAULT_ROWS = 24; - private static final String DEFAULT_SHELL = "/system/bin/sh -"; - private static final String DEFAULT_INITIAL_COMMAND = - "export PATH=/data/local/bin:$PATH"; - private static final String DEFAULT_TERMTYPE = "screen"; // Number of rows in the transcript private static final int TRANSCRIPT_ROWS = 10000; @@ -161,9 +157,6 @@ public class TermSession { } private void sendInitialCommand(String initialCommand) { - if (initialCommand == null || initialCommand.equals("")) { - initialCommand = DEFAULT_INITIAL_COMMAND; - } if (initialCommand.length() > 0) { write(initialCommand + '\r'); } @@ -200,17 +193,11 @@ public class TermSession { private void createSubprocess(int[] processId) { String shell = mSettings.getShell(); - if (shell == null || shell.equals("")) { - shell = DEFAULT_SHELL; - } ArrayList argList = parse(shell); String arg0 = argList.get(0); String[] args = argList.toArray(new String[1]); String termType = mSettings.getTermType(); - if (termType == null) { - termType = DEFAULT_TERMTYPE; - } String[] env = new String[1]; env[0] = "TERM=" + termType; diff --git a/src/jackpal/androidterm/util/TermSettings.java b/src/jackpal/androidterm/util/TermSettings.java index 0ee7bc9..e0230cc 100644 --- a/src/jackpal/androidterm/util/TermSettings.java +++ b/src/jackpal/androidterm/util/TermSettings.java @@ -16,29 +16,32 @@ package jackpal.androidterm.util; +import android.content.res.Resources; import android.content.SharedPreferences; import android.view.KeyEvent; +import jackpal.androidterm.R; + /** * Terminal emulator settings */ public class TermSettings { private SharedPreferences mPrefs; - private int mStatusBar = 0; - private int mCursorStyle = 0; - private int mCursorBlink = 0; - private int mFontSize = 9; - private int mColorId = 2; - private int mControlKeyId = 5; // Default to Volume Down - private int mFnKeyId = 4; // Default to Volume Up - private int mUseCookedIME = 0; + private int mStatusBar; + private int mCursorStyle; + private int mCursorBlink; + private int mFontSize; + private int mColorId; + private int mControlKeyId; + private int mFnKeyId; + private int mUseCookedIME; private String mShell; private String mInitialCommand; - private boolean mUTF8ByDefault = false; - private int mBackKeyAction = BACK_KEY_CLOSES_ACTIVITY; + private boolean mUTF8ByDefault; + private int mBackKeyAction; private String mTermType; - private boolean mCloseOnExit = true; + private boolean mCloseOnExit; private static final String STATUSBAR_KEY = "statusbar"; private static final String CURSORSTYLE_KEY = "cursorstyle"; @@ -98,10 +101,28 @@ public class TermSettings { public static final int BACK_KEY_SENDS_TAB = 4; private static final int BACK_KEY_MAX = 4; - public TermSettings(SharedPreferences prefs) { + public TermSettings(Resources res, SharedPreferences prefs) { + readDefaultPrefs(res); readPrefs(prefs); } + private void readDefaultPrefs(Resources res) { + mStatusBar = Integer.parseInt(res.getString(R.string.pref_statusbar_default)); + mCursorStyle = Integer.parseInt(res.getString(R.string.pref_cursorstyle_default)); + mCursorBlink = Integer.parseInt(res.getString(R.string.pref_cursorblink_default)); + mFontSize = Integer.parseInt(res.getString(R.string.pref_fontsize_default)); + mColorId = Integer.parseInt(res.getString(R.string.pref_color_default)); + mUTF8ByDefault = res.getBoolean(R.bool.pref_utf8_by_default_default); + mBackKeyAction = Integer.parseInt(res.getString(R.string.pref_backaction_default)); + mControlKeyId = Integer.parseInt(res.getString(R.string.pref_controlkey_default)); + mFnKeyId = Integer.parseInt(res.getString(R.string.pref_fnkey_default)); + mUseCookedIME = Integer.parseInt(res.getString(R.string.pref_ime_default)); + mShell = res.getString(R.string.pref_shell_default); + mInitialCommand = res.getString(R.string.pref_initialcommand_default); + mTermType = res.getString(R.string.pref_termtype_default); + mCloseOnExit = res.getBoolean(R.bool.pref_close_window_on_process_exit_default); + } + public void readPrefs(SharedPreferences prefs) { mPrefs = prefs; mStatusBar = readIntPref(STATUSBAR_KEY, mStatusBar, 1); @@ -116,7 +137,7 @@ public class TermSettings { mUseCookedIME = readIntPref(IME_KEY, mUseCookedIME, 1); mShell = readStringPref(SHELL_KEY, mShell); mInitialCommand = readStringPref(INITIALCOMMAND_KEY, mInitialCommand); - mUTF8ByDefault = readBooleanPref(UTF8_KEY, false); + mUTF8ByDefault = readBooleanPref(UTF8_KEY, mUTF8ByDefault); mBackKeyAction = readIntPref(BACKACTION_KEY, mBackKeyAction, BACK_KEY_MAX); mTermType = readStringPref(TERMTYPE_KEY, mTermType); mCloseOnExit = readBooleanPref(CLOSEONEXIT_KEY, mCloseOnExit); -- 2.11.0