diff options
author | Kenny Root <kenny@the-b.org> | 2009-12-08 15:08:42 +0000 |
---|---|---|
committer | Kenny Root <kenny@the-b.org> | 2009-12-08 15:08:42 +0000 |
commit | 0b2552bab623b12cf6bdd447dbfd137c375a6851 (patch) | |
tree | 075b50094cc25e4d7865b2e8f34cb4b690116dee | |
parent | a3ca36dcb24e5611e18123dc22bc632852ac217f (diff) | |
download | connectbot-0b2552bab623b12cf6bdd447dbfd137c375a6851.tar.gz connectbot-0b2552bab623b12cf6bdd447dbfd137c375a6851.tar.bz2 connectbot-0b2552bab623b12cf6bdd447dbfd137c375a6851.zip |
Switch ColorsActivity terminology to Schemes
Previously it was based on colors per-host, but colors schemes are
better because people can easily apply them to individual hosts.
git-svn-id: https://connectbot.googlecode.com/svn/trunk/connectbot@430 df292f66-193f-0410-a5fc-6d59da041ff2
-rw-r--r-- | AndroidManifest.xml | 2 | ||||
-rw-r--r-- | res/values/strings.xml | 3 | ||||
-rw-r--r-- | src/org/connectbot/ColorsActivity.java | 41 | ||||
-rw-r--r-- | src/org/connectbot/service/TerminalBridge.java | 5 | ||||
-rw-r--r-- | src/org/connectbot/util/HostDatabase.java | 73 |
5 files changed, 61 insertions, 63 deletions
diff --git a/AndroidManifest.xml b/AndroidManifest.xml index f3351e7..59ab4a0 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -2,7 +2,7 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.connectbot" android:versionName="1.6-dev" - android:versionCode="211"> + android:versionCode="212"> <application android:icon="@drawable/icon" diff --git a/res/values/strings.xml b/res/values/strings.xml index ef88fdf..e5153ca 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -425,6 +425,9 @@ <!-- String displayed to user when they're asked to submit exceptions to the ConnectBot developers --> <string name="exceptions_submit_message">It appears ConnectBot had a problem last time it ran. Submit error report to ConnectBot developers?</string> + <!-- Menu selection to reset colors to their defaults. --> + <string name="menu_colors_reset">Reset</string> + <string name="color_red">red</string> <string name="color_green">green</string> <string name="color_blue">blue</string> diff --git a/src/org/connectbot/ColorsActivity.java b/src/org/connectbot/ColorsActivity.java index bb6f5cc..37e2c35 100644 --- a/src/org/connectbot/ColorsActivity.java +++ b/src/org/connectbot/ColorsActivity.java @@ -21,7 +21,7 @@ package org.connectbot; import java.util.Arrays; import java.util.List; -import org.connectbot.bean.HostBean; +import org.connectbot.util.Colors; import org.connectbot.util.HostDatabase; import org.connectbot.util.UberColorPickerDialog; import org.connectbot.util.UberColorPickerDialog.OnColorChangedListener; @@ -31,8 +31,11 @@ import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.view.MenuItem.OnMenuItemClickListener; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.GridView; @@ -49,7 +52,7 @@ public class ColorsActivity extends Activity implements OnItemClickListener, OnC private Spinner mFgSpinner; private Spinner mBgSpinner; - private HostBean mHost; + private int mColorScheme; private List<Integer> mColorList; private HostDatabase hostdb; @@ -57,7 +60,6 @@ public class ColorsActivity extends Activity implements OnItemClickListener, OnC private int mCurrentColor = 0; private int[] mDefaultColors; - @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -68,16 +70,17 @@ public class ColorsActivity extends Activity implements OnItemClickListener, OnC getResources().getText(R.string.app_name), getResources().getText(R.string.title_colors))); - mHost = null; + mColorScheme = HostDatabase.DEFAULT_COLOR_SCHEME; hostdb = new HostDatabase(this); - mColorList = Arrays.asList(hostdb.getColorsForHost(mHost)); - mDefaultColors = hostdb.getDefaultColorsForHost(mHost); + mColorList = Arrays.asList(hostdb.getColorsForScheme(mColorScheme)); + mDefaultColors = hostdb.getDefaultColorsForScheme(mColorScheme); mColorGrid = (GridView) findViewById(R.id.color_grid); mColorGrid.setAdapter(new ColorsAdapter(true)); mColorGrid.setOnItemClickListener(this); + mColorGrid.setSelection(0); mFgSpinner = (Spinner) findViewById(R.id.fg); mFgSpinner.setAdapter(new ColorsAdapter(false)); @@ -292,6 +295,30 @@ public class ColorsActivity extends Activity implements OnItemClickListener, OnC } if (needUpdate) - hostdb.setDefaultColorsForHost(mHost, mDefaultColors[0], mDefaultColors[1]); + hostdb.setDefaultColorsForScheme(mColorScheme, mDefaultColors[0], mDefaultColors[1]); + } + + @Override + public boolean onCreateOptionsMenu(Menu menu) { + super.onCreateOptionsMenu(menu); + + MenuItem reset = menu.add(R.string.menu_colors_reset); + reset.setAlphabeticShortcut('r'); + reset.setNumericShortcut('1'); + reset.setIcon(android.R.drawable.ic_menu_revert); + reset.setOnMenuItemClickListener(new OnMenuItemClickListener() { + public boolean onMenuItemClick(MenuItem arg0) { + for (int i = 0; i < Colors.defaults.length; i++) { + if (mColorList.get(i) != Colors.defaults[i]) { + hostdb.setGlobalColor(i, Colors.defaults[i]); + mColorList.set(i, Colors.defaults[i]); + } + } + mColorGrid.invalidateViews(); + return true; + } + }); + + return true; } } diff --git a/src/org/connectbot/service/TerminalBridge.java b/src/org/connectbot/service/TerminalBridge.java index ffc8f7b..174f989 100644 --- a/src/org/connectbot/service/TerminalBridge.java +++ b/src/org/connectbot/service/TerminalBridge.java @@ -997,7 +997,6 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener { try { // request a terminal pty resize synchronized (buffer) { - int prevRow = buffer.getCursorRow(); buffer.setScreenSize(columns, rows, true); } @@ -1311,11 +1310,11 @@ public class TerminalBridge implements VDUDisplay, OnKeyListener { } public final void resetColors() { - int[] defaults = manager.hostdb.getDefaultColorsForHost(host); + int[] defaults = manager.hostdb.getDefaultColorsForScheme(HostDatabase.DEFAULT_COLOR_SCHEME); defaultFg = defaults[0]; defaultBg = defaults[1]; - color = manager.hostdb.getColorsForHost(host); + color = manager.hostdb.getColorsForScheme(HostDatabase.DEFAULT_COLOR_SCHEME); } // This was taken from http://geekswithblogs.net/casualjim/archive/2005/12/01/61722.aspx diff --git a/src/org/connectbot/util/HostDatabase.java b/src/org/connectbot/util/HostDatabase.java index 2428a55..080eb60 100644 --- a/src/org/connectbot/util/HostDatabase.java +++ b/src/org/connectbot/util/HostDatabase.java @@ -112,6 +112,8 @@ public class HostDatabase extends RobustSQLiteOpenHelper { public final static long PUBKEYID_NEVER = -2; public final static long PUBKEYID_ANY = -1; + public static final int DEFAULT_COLOR_SCHEME = 0; + static { addTableName(TABLE_HOSTS); addTableName(TABLE_PORTFORWARDS); @@ -634,7 +636,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper { } } - public Integer[] getColorsForHost(HostBean host) { + public Integer[] getColorsForScheme(int scheme) { Integer[] colors = Colors.defaults.clone(); synchronized (dbLock) { @@ -642,54 +644,29 @@ public class HostDatabase extends RobustSQLiteOpenHelper { Cursor c = db.query(TABLE_COLORS, new String[] { FIELD_COLOR_NUMBER, FIELD_COLOR_VALUE }, - FIELD_COLOR_SCHEME + " IS NULL", - null, null, null, null); + FIELD_COLOR_SCHEME + " = ?", + new String[] { String.valueOf(scheme) }, + null, null, null); while (c.moveToNext()) { - Log.d(TAG, "Setting default color " + c.getInt(0) + " to " + c.getInt(1)); colors[c.getInt(0)] = new Integer(c.getInt(1)); } c.close(); - - // TODO This could probably just be a join - if (host != null) { - c = db.query(TABLE_COLORS, new String[] { - FIELD_COLOR_NUMBER, FIELD_COLOR_VALUE }, - FIELD_COLOR_SCHEME + " = ?", - new String[] { String.valueOf(host.getId()) }, - null, null, null); - - while (c.moveToNext()) { - colors[c.getInt(0)] = new Integer(c.getInt(1)); - } - - c.close(); - } - db.close(); } return colors; } - public void setColorForHost(HostBean host, int number, int value) { + public void setColorForScheme(int scheme, int number, int value) { SQLiteDatabase db; - String hostWhere; - if (host == null) - hostWhere = FIELD_COLOR_SCHEME + " IS NULL"; - else - hostWhere = FIELD_COLOR_SCHEME + " = ?"; + String schemeWhere; + schemeWhere = FIELD_COLOR_SCHEME + " = ?"; if (value == Colors.defaults[number]) { - String[] whereArgs; - - if (host != null) { - whereArgs = new String[2]; - whereArgs[1] = String.valueOf(host.getId()); - } else - whereArgs = new String[1]; + String[] whereArgs = new String[1]; whereArgs[0] = String.valueOf(number); @@ -698,7 +675,7 @@ public class HostDatabase extends RobustSQLiteOpenHelper { db.delete(TABLE_COLORS, FIELD_COLOR_NUMBER + " = ? AND " - + hostWhere, + + schemeWhere, new String[] { String.valueOf(number) }); db.close(); @@ -710,13 +687,12 @@ public class HostDatabase extends RobustSQLiteOpenHelper { String[] whereArgs = null; - if (host != null) - whereArgs = new String[] { String.valueOf(host.getId()) }; + whereArgs = new String[] { String.valueOf(scheme) }; synchronized (dbLock) { db = getWritableDatabase(); int rowsAffected = db.update(TABLE_COLORS, values, - hostWhere, whereArgs); + schemeWhere, whereArgs); if (rowsAffected == 0) { db.insert(TABLE_COLORS, null, values); @@ -728,10 +704,10 @@ public class HostDatabase extends RobustSQLiteOpenHelper { } public void setGlobalColor(int number, int value) { - setColorForHost(null, number, value); + setColorForScheme(DEFAULT_COLOR_SCHEME, number, value); } - public int[] getDefaultColorsForHost(HostBean host) { + public int[] getDefaultColorsForScheme(int scheme) { int[] colors = new int[] { DEFAULT_FG_COLOR, DEFAULT_BG_COLOR }; synchronized (dbLock) { @@ -750,11 +726,11 @@ public class HostDatabase extends RobustSQLiteOpenHelper { c.close(); // TODO This could probably just be a join - if (host != null) { + if (scheme != DEFAULT_COLOR_SCHEME) { c = db.query(TABLE_COLOR_DEFAULTS, new String[] { FIELD_COLOR_FG, FIELD_COLOR_BG }, FIELD_COLOR_SCHEME + " = ?", - new String[] { String.valueOf(host.getId()) }, + new String[] { String.valueOf(scheme) }, null, null, null); if (c.moveToFirst()) { @@ -772,10 +748,10 @@ public class HostDatabase extends RobustSQLiteOpenHelper { } public int[] getGlobalDefaultColors() { - return getDefaultColorsForHost(null); + return getDefaultColorsForScheme(DEFAULT_COLOR_SCHEME); } - public void setDefaultColorsForHost(HostBean host, int fg, int bg) { + public void setDefaultColorsForScheme(int scheme, int fg, int bg) { int[] defaultColors = getGlobalDefaultColors(); SQLiteDatabase db; @@ -783,15 +759,8 @@ public class HostDatabase extends RobustSQLiteOpenHelper { String schemeWhere = null; String[] whereArgs; - // TODO change host.getId() into scheme numbers for colors - - if (host == null) { - schemeWhere = FIELD_COLOR_SCHEME + " IS NULL"; - whereArgs = null; - } else { - schemeWhere = FIELD_COLOR_SCHEME + " = ?"; - whereArgs = new String[] { String.valueOf(host.getId()) }; - } + schemeWhere = FIELD_COLOR_SCHEME + " = ?"; + whereArgs = new String[] { String.valueOf(scheme) }; if (fg == defaultColors[0] && bg == defaultColors[1]) { synchronized (dbLock) { |