Skip to content

Commit

Permalink
Merge branch 'master' of git://github.com/irssiconnectbot/irssiconnec…
Browse files Browse the repository at this point in the history
…tbot
  • Loading branch information
Villae committed Dec 5, 2011
2 parents dc950d5 + 693310a commit 62cc307
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 20 deletions.
5 changes: 5 additions & 0 deletions res/values/strings.xml
Expand Up @@ -480,9 +480,14 @@
<!-- HTC Desire Z -->
<string name="pref_htcdesirez_title">HTC Desire Z fix</string>
<string name="pref_htcdesirez_summary">Forces scandinavian chars to lowercase</string>

<!-- Sony Ericsson Xperia pro and Xperia mini pro -->
<string name="pref_xperiapro_title">Sony Ericsson Xperia (mini) pro fix</string>
<string name="pref_xperiapro_summary">Hardware keyboard fixes</string>

<!-- Force size-->
<string name="pref_force_size">Force Size</string>
<string name="force_size_width">Width</string>
<string name="force_size_height">Height</string>

</resources>
7 changes: 7 additions & 0 deletions res/xml/preferences.xml
Expand Up @@ -176,6 +176,13 @@
android:defaultValue="false"
android:key="htcDesireZfix"/>

<CheckBoxPreference
android:key="xperiaProFix"
android:title="@string/pref_xperiapro_title"
android:summary="@string/pref_xperiapro_summary"
android:defaultValue="false"
/>

<PreferenceCategory
android:title="@string/pref_force_size">
<EditTextPreference
Expand Down
2 changes: 1 addition & 1 deletion src/org/woltage/irssiconnectbot/ConsoleActivity.java
Expand Up @@ -264,7 +264,7 @@ public void onCreate(Bundle icicle) {
Configuration.KEYBOARD_QWERTY;

this.setContentView(R.layout.act_console);
BugSenseHandler.setup(this, "f18d0d05");
BugSenseHandler.setup(this, "d27a12dc");
ExceptionHandler.register(this);

clipboard = (ClipboardManager)getSystemService(CLIPBOARD_SERVICE);
Expand Down
99 changes: 80 additions & 19 deletions src/org/woltage/irssiconnectbot/service/TerminalKeyListener.java
Expand Up @@ -228,7 +228,8 @@ public boolean onKey(View v, int keyCode, KeyEvent event) {
final boolean printing = (key != 0 && keyCode != KeyEvent.KEYCODE_ENTER);

//Show up the CharacterPickerDialog when the SYM key is pressed
if( (keyCode == KeyEvent.KEYCODE_SYM || key == KeyCharacterMap.PICKER_DIALOG_INPUT) && v != null) {
if( (keyCode == KeyEvent.KEYCODE_SYM || keyCode == KeyEvent.KEYCODE_PICTSYMBOLS ||
key == KeyCharacterMap.PICKER_DIALOG_INPUT) && v != null) {
showCharPickerDialog(v);
if(metaState == 4) { // reset fn-key state
metaState = 0;
Expand Down Expand Up @@ -455,8 +456,13 @@ else if(key == 0xC5 || key == 0XE5) //Å or å
selectionArea.decrementColumn();
bridge.redraw();
} else {
((vt320) buffer).keyPressed(vt320.KEY_LEFT, ' ',
getStateForBuffer());
if ((metaState & META_ALT_MASK) != 0) {
((vt320) buffer).keyPressed(vt320.KEY_HOME, ' ',
getStateForBuffer());
} else {
((vt320) buffer).keyPressed(vt320.KEY_LEFT, ' ',
getStateForBuffer());
}
metaState &= ~META_TRANSIENT;
bridge.tryKeyVibrate();
}
Expand All @@ -467,8 +473,13 @@ else if(key == 0xC5 || key == 0XE5) //Å or å
selectionArea.decrementRow();
bridge.redraw();
} else {
((vt320) buffer).keyPressed(vt320.KEY_UP, ' ',
getStateForBuffer());
if ((metaState & META_ALT_MASK) != 0) {
((vt320)buffer).keyPressed(vt320.KEY_PAGE_UP, ' ',
getStateForBuffer());
} else {
((vt320) buffer).keyPressed(vt320.KEY_UP, ' ',
getStateForBuffer());
}
metaState &= ~META_TRANSIENT;
bridge.tryKeyVibrate();
}
Expand All @@ -479,8 +490,13 @@ else if(key == 0xC5 || key == 0XE5) //Å or å
selectionArea.incrementRow();
bridge.redraw();
} else {
((vt320) buffer).keyPressed(vt320.KEY_DOWN, ' ',
getStateForBuffer());
if ((metaState & META_ALT_MASK) != 0) {
((vt320)buffer).keyPressed(vt320.KEY_PAGE_DOWN, ' ',
getStateForBuffer());
} else {
((vt320) buffer).keyPressed(vt320.KEY_DOWN, ' ',
getStateForBuffer());
}
metaState &= ~META_TRANSIENT;
bridge.tryKeyVibrate();
}
Expand All @@ -491,14 +507,22 @@ else if(key == 0xC5 || key == 0XE5) //Å or å
selectionArea.incrementColumn();
bridge.redraw();
} else {
((vt320) buffer).keyPressed(vt320.KEY_RIGHT, ' ',
getStateForBuffer());
if ((metaState & META_ALT_MASK) != 0) {
((vt320) buffer).keyPressed(vt320.KEY_END, ' ',
getStateForBuffer());
} else {
((vt320) buffer).keyPressed(vt320.KEY_RIGHT, ' ',
getStateForBuffer());
}
metaState &= ~META_TRANSIENT;
bridge.tryKeyVibrate();
}
return true;

case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_SWITCH_CHARSET:
if (keyCode == KeyEvent.KEYCODE_SWITCH_CHARSET && !prefs.getBoolean("xperiaProFix", false))
return true;
if (bridge.isSelectingForCopy()) {
if (selectionArea.isSelectingOrigin())
selectionArea.finishSelectingOrigin();
Expand All @@ -522,10 +546,27 @@ else if(key == 0xC5 || key == 0XE5) //Å or å
} else
metaPress(META_CTRL_ON);
}

bridge.redraw();

return true;

case KeyEvent.KEYCODE_S:
if(prefs.getBoolean("xperiaProFix", false)) {
bridge.transport.write('|');
metaState &= ~META_TRANSIENT;
bridge.redraw();
return true;
}

case KeyEvent.KEYCODE_Z:
if(prefs.getBoolean("xperiaProFix", false)) {
bridge.transport.write(0x5C);
metaState &= ~META_TRANSIENT;
bridge.redraw();
return true;
}

bridge.redraw();
return true;
}

} catch (IOException e) {
Expand Down Expand Up @@ -673,22 +714,42 @@ public boolean showCharPickerDialog(View v) {
CharSequence str = "";
Editable content = Editable.Factory.getInstance().newEditable(str);

String set = PICKER_SETS.get(KeyCharacterMap.PICKER_DIALOG_INPUT);
final String set = PICKER_SETS.get(KeyCharacterMap.PICKER_DIALOG_INPUT);
if (set == null) return false;

CharacterPickerDialog cpd = new CharacterPickerDialog(v.getContext(), v, content, set, true) {
@Override
public void onClick(View v) {
if (v instanceof Button) {
CharSequence result = ((Button) v).getText();
private void writeCharAndClose(CharSequence result) {
try {
bridge.transport.write(result.toString().getBytes());
} catch (IOException e) {
Log.e(TAG, "Problem with the CharacterPickerDialog", e);
}
}
dismiss(); //Closes the picker
}
dismiss();
}

@Override
public void onItemClick(AdapterView p, View v, int pos, long id) {
String result = String.valueOf(set.charAt(pos));
writeCharAndClose(result);
}

@Override
public void onClick(View v) {
if (v instanceof Button) {
CharSequence result = ((Button) v).getText();
writeCharAndClose(result);
}
dismiss(); //Closes the picker
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SYM || keyCode == KeyEvent.KEYCODE_PICTSYMBOLS) {
dismiss();
return true;
}
return super.onKeyDown(keyCode, event);
}
};
cpd.show();
return true;
Expand Down

0 comments on commit 62cc307

Please sign in to comment.