Back to project page ZShaolin.
The source code is released under:
GNU General Public License
If you think the Android project ZShaolin listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
/* * Copyright (C) 2007 The Android Open Source Project *// w w w .j a va 2 s. c o m * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.spartacusrex.spartacuside.util; import android.content.SharedPreferences; import android.view.KeyEvent; /** * Terminal emulator settings */ public class TermSettings { private SharedPreferences mPrefs; private int mStatusBar = 1; private int mCursorStyle = 0; private int mCursorBlink = 0; private int mFontSize = 12; private int mColorId = 1; private int mControlKeyId = 5; // Default to Volume Down private int mFnKeyId = 4; // Default to Volume Up private int mUseCookedIME = 0; private String mShell; private String mInitialCommand; private static final String STATUSBAR_KEY = "statusbar"; private static final String CURSORSTYLE_KEY = "cursorstyle"; private static final String CURSORBLINK_KEY = "cursorblink"; private static final String FONTSIZE_KEY = "fontsize"; private static final String COLOR_KEY = "color"; private static final String CONTROLKEY_KEY = "controlkey"; private static final String FNKEY_KEY = "fnkey"; private static final String IME_KEY = "ime"; private static final String SHELL_KEY = "shell"; private static final String INITIALCOMMAND_KEY = "initialcommand"; public static final int WHITE = 0xffffffff; public static final int BLACK = 0xff000000; public static final int BLUE = 0xff344ebd; public static final int GREEN = 0xff00ff00; public static final int AMBER = 0xffffb651; public static final int RED = 0xffff0113; public static final int[][] COLOR_SCHEMES = {{BLACK, WHITE}, {WHITE, BLACK}, {WHITE, BLUE}, {GREEN, BLACK}, {AMBER, BLACK}, {RED, BLACK}}; /** An integer not in the range of real key codes. */ public static final int KEYCODE_NONE = -1; public static final int CONTROL_KEY_ID_NONE = 7; public static final int[] CONTROL_KEY_SCHEMES = { KeyEvent.KEYCODE_DPAD_CENTER, KeyEvent.KEYCODE_AT, KeyEvent.KEYCODE_ALT_LEFT, KeyEvent.KEYCODE_ALT_RIGHT, KeyEvent.KEYCODE_VOLUME_UP, KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_CAMERA, KEYCODE_NONE }; public static final int FN_KEY_ID_NONE = 7; public static final int[] FN_KEY_SCHEMES = { KeyEvent.KEYCODE_DPAD_CENTER, KeyEvent.KEYCODE_AT, KeyEvent.KEYCODE_ALT_LEFT, KeyEvent.KEYCODE_ALT_RIGHT, KeyEvent.KEYCODE_VOLUME_UP, KeyEvent.KEYCODE_VOLUME_DOWN, KeyEvent.KEYCODE_CAMERA, KEYCODE_NONE }; public TermSettings(SharedPreferences prefs) { readPrefs(prefs); } public void readPrefs(SharedPreferences prefs) { mPrefs = prefs; mStatusBar = readIntPref(STATUSBAR_KEY, mStatusBar, 1); // mCursorStyle = readIntPref(CURSORSTYLE_KEY, mCursorStyle, 2); // mCursorBlink = readIntPref(CURSORBLINK_KEY, mCursorBlink, 1); mFontSize = readIntPref(FONTSIZE_KEY, mFontSize, 20); mColorId = readIntPref(COLOR_KEY, mColorId, COLOR_SCHEMES.length - 1); mControlKeyId = readIntPref(CONTROLKEY_KEY, mControlKeyId, CONTROL_KEY_SCHEMES.length - 1); mFnKeyId = readIntPref(FNKEY_KEY, mFnKeyId, FN_KEY_SCHEMES.length - 1); mUseCookedIME = readIntPref(IME_KEY, mUseCookedIME, 1); mShell = readStringPref(SHELL_KEY, mShell); mInitialCommand = readStringPref(INITIALCOMMAND_KEY, mInitialCommand); mPrefs = null; // we leak a Context if we hold on to this } private int readIntPref(String key, int defaultValue, int maxValue) { int val; try { val = Integer.parseInt( mPrefs.getString(key, Integer.toString(defaultValue))); } catch (NumberFormatException e) { val = defaultValue; } val = Math.max(0, Math.min(val, maxValue)); return val; } private String readStringPref(String key, String defaultValue) { return mPrefs.getString(key, defaultValue); } public boolean showStatusBar() { return (mStatusBar != 0); } public int getCursorStyle() { return mCursorStyle; } public int getCursorBlink() { return mCursorBlink; } public int getFontSize() { return mFontSize; } public int[] getColorScheme() { return COLOR_SCHEMES[mColorId]; } public int getControlKeyId() { return mControlKeyId; } public int getFnKeyId() { return mFnKeyId; } public int getControlKeyCode() { return CONTROL_KEY_SCHEMES[mControlKeyId]; } public int getFnKeyCode() { return FN_KEY_SCHEMES[mFnKeyId]; } public boolean useCookedIME() { return (mUseCookedIME != 0); } public String getShell() { return mShell; } public String getInitialCommand() { return mInitialCommand; } }