Skip to content

Commit

Permalink
fix: fix merge conflict and style
Browse files Browse the repository at this point in the history
  • Loading branch information
Bambooin committed Sep 8, 2021
1 parent fc3c75f commit a971088
Show file tree
Hide file tree
Showing 4 changed files with 49 additions and 144 deletions.
2 changes: 1 addition & 1 deletion app/src/main/java/com/osfans/trime/ime/core/Trime.java
Original file line number Diff line number Diff line change
Expand Up @@ -1139,7 +1139,7 @@ private void sendDownUpKeyEvents(int keyCode, int mask) {
boolean send_key_down_up = true;
if (mask == 0 && mAsciiMode) {
// 使用ASCII键盘输入英文字符时,直接上屏,跳过复杂的调用,从表面上解决issue #301 知乎输入英语后输入法失去焦点的问题
String keyText = StringUitls.toCharString(keyCode);
String keyText = StringUtils.INSTANCE.toCharString(keyCode);
if (keyText.length() > 0) {
ic.commitText(keyText, 1);
send_key_down_up = false;
Expand Down
12 changes: 6 additions & 6 deletions app/src/main/java/com/osfans/trime/ime/keyboard/Keyboard.java
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,8 @@ public Keyboard(Context context, CharSequence characters, int columns, int horiz

public Keyboard(Context context, String name) {
this(context);
final Map<String, ?> m = Config.get(context).getKeyboard(name);
Config config = Config.get(context);
final Map<String, ?> m = config.getKeyboard(name);
mLabelTransform = YamlUtils.INSTANCE.getString(m, "label_transform", "none");
mAsciiMode = YamlUtils.INSTANCE.getInt(m, "ascii_mode", 1);
if (mAsciiMode == 0) mAsciiKeyboard = YamlUtils.INSTANCE.getString(m, "ascii_keyboard", "");
Expand All @@ -186,14 +187,13 @@ public Keyboard(Context context, String name) {
int rowHeight = defaultHeight;
List<Map<String, Object>> lm = (List<Map<String, Object>>) m.get("keys");


mDefaultHorizontalGap = YamlUtils.INSTANCE.getPixel(m, "horizontal_gap", 3);
mDefaultVerticalGap = YamlUtils.INSTANCE.getPixel(m, "vertical_gap", 5);
mRoundCorner = YamlUtils.INSTANCE.getFloat(m, "round_corner", 5);
if (m.containsKey("keyboard_back_color")) {
Drawable background = Config.getColorDrawable(context, m, "keyboard_back_color");
if (background != null) mBackground = background;
}

Drawable background = config.getDrawable(m, "keyboard_back_color");
if (background != null) mBackground = background;

int x = mDefaultHorizontalGap / 2;
int y = mDefaultVerticalGap;
int row = 0;
Expand Down
137 changes: 0 additions & 137 deletions app/src/main/java/com/osfans/trime/util/StringUtils.java

This file was deleted.

42 changes: 42 additions & 0 deletions app/src/main/java/com/osfans/trime/util/StringUtils.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.osfans.trime.util

import android.view.KeyEvent
import kotlin.math.max
import kotlin.math.min

Expand Down Expand Up @@ -56,4 +57,45 @@ object StringUtils {
}
return true
}

// 考虑到可能存在魔改机型的keycode有差异,而KeyEvent.keyCodeToString(keyCode)无法从keyCode获得按键字符,故重写这个从keyCode获取Char的方法。
fun toCharString(keyCode: Int): String? {
when (keyCode) {
KeyEvent.KEYCODE_TAB -> return "\t"
KeyEvent.KEYCODE_SPACE -> return " "
KeyEvent.KEYCODE_PLUS -> return "+"
KeyEvent.KEYCODE_MINUS -> return "-"
KeyEvent.KEYCODE_STAR -> return "*"
KeyEvent.KEYCODE_SLASH -> return "/"
KeyEvent.KEYCODE_EQUALS -> return "="
KeyEvent.KEYCODE_AT -> return "@"
KeyEvent.KEYCODE_POUND -> return "#"
KeyEvent.KEYCODE_APOSTROPHE -> return "'"
KeyEvent.KEYCODE_BACKSLASH -> return "\\"
KeyEvent.KEYCODE_COMMA -> return ","
KeyEvent.KEYCODE_PERIOD -> return "."
KeyEvent.KEYCODE_LEFT_BRACKET -> return "["
KeyEvent.KEYCODE_RIGHT_BRACKET -> return "]"
KeyEvent.KEYCODE_SEMICOLON -> return ";"
KeyEvent.KEYCODE_GRAVE -> return "`"
KeyEvent.KEYCODE_NUMPAD_ADD -> return "+"
KeyEvent.KEYCODE_NUMPAD_SUBTRACT -> return "-"
KeyEvent.KEYCODE_NUMPAD_MULTIPLY -> return "*"
KeyEvent.KEYCODE_NUMPAD_DIVIDE -> return "/"
KeyEvent.KEYCODE_NUMPAD_EQUALS -> return "="
KeyEvent.KEYCODE_NUMPAD_COMMA -> return ","
KeyEvent.KEYCODE_NUMPAD_DOT -> return "."
KeyEvent.KEYCODE_NUMPAD_LEFT_PAREN -> return "("
KeyEvent.KEYCODE_NUMPAD_RIGHT_PAREN -> return ")"
}
var c = 0
if (keyCode >= KeyEvent.KEYCODE_0 && keyCode <= KeyEvent.KEYCODE_9) {
c = '0'.code + keyCode - KeyEvent.KEYCODE_0
} else if (keyCode >= KeyEvent.KEYCODE_NUMPAD_0 && keyCode <= KeyEvent.KEYCODE_NUMPAD_9) {
c = '0'.code + keyCode - KeyEvent.KEYCODE_NUMPAD_0
} else if (keyCode >= KeyEvent.KEYCODE_A && keyCode <= KeyEvent.KEYCODE_Z) {
c = 'a'.code + keyCode - KeyEvent.KEYCODE_A
}
return if (c > 0) c.toChar().toString() else ""
}
}

0 comments on commit a971088

Please sign in to comment.