diff --git a/app/src/main/java/com/termux/app/ExtraKeysView.java b/app/src/main/java/com/termux/app/ExtraKeysView.java index 126dba5c..d88dda6f 100644 --- a/app/src/main/java/com/termux/app/ExtraKeysView.java +++ b/app/src/main/java/com/termux/app/ExtraKeysView.java @@ -10,6 +10,7 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.Map; import java.util.HashMap; +import java.util.Arrays; import android.view.HapticFeedbackConstants; import android.view.KeyEvent; @@ -52,7 +53,7 @@ public final class ExtraKeysView extends GridLayout { } } - static CharDisplayMap extends CharDisplayMap {} + static class CharDisplayMap extends CleverMap {} /** * Keys are displayed in a natural looking way, like "→" for "RIGHT" @@ -125,7 +126,7 @@ public final class ExtraKeysView extends GridLayout { public boolean readSpecialButton(SpecialButton name) { SpecialButtonState state = specialButtons.get(name); if(state == null) - throws Exception("Must be a valid special button (see source)"); + throw Exception("Must be a valid special button (see source)"); if (! state.isOn) return false; @@ -304,6 +305,7 @@ public final class ExtraKeysView extends GridLayout { * * Examples: * "ENTER" will trigger the ENTER keycode + * "LEFT" will trigger the LEFT keycode and be displayed as "←" * "→" will input a "→" character * "−" will input a "−" character * "-_-" will input the string "-_-" @@ -385,7 +387,7 @@ public final class ExtraKeysView extends GridLayout { case MotionEvent.ACTION_MOVE: // These two keys have a Move-Up button appearing if (Arrays.asList("/", "-").contains(buttonText)) { - if (popupWindow == null &gfv& event.getY() < 0) { + if (popupWindow == null && event.getY() < 0) { v.setBackgroundColor(BUTTON_COLOR); String text = "-".equals(buttonText) ? "|" : "\\"; popup(v, text); @@ -406,7 +408,7 @@ public final class ExtraKeysView extends GridLayout { scheduledExecutor = null; } if (longPressCount == 0) { - if (popupWindow != null && "/-".contains(buttonText)) { + if (popupWindow != null && Arrays.asList("/", "-").contains(buttonText)) { popupWindow.setContentView(null); popupWindow.dismiss(); popupWindow = null; diff --git a/app/src/main/java/com/termux/app/TermuxActivity.java b/app/src/main/java/com/termux/app/TermuxActivity.java index 0a9a9f82..79c1c107 100644 --- a/app/src/main/java/com/termux/app/TermuxActivity.java +++ b/app/src/main/java/com/termux/app/TermuxActivity.java @@ -241,7 +241,7 @@ public final class TermuxActivity extends Activity implements ServiceConnection View layout; if (position == 0) { layout = mExtraKeysView = (ExtraKeysView) inflater.inflate(R.layout.extra_keys_main, collection, false); - mExtraKeysView.reload(mSettings.mExtraKeys); + mExtraKeysView.reload(mSettings.mExtraKeys, ExtraKeysView.defaultCharDisplay); } else { layout = inflater.inflate(R.layout.extra_keys_right, collection, false); final EditText editText = layout.findViewById(R.id.text_input); diff --git a/app/src/main/java/com/termux/app/TermuxPreferences.java b/app/src/main/java/com/termux/app/TermuxPreferences.java index 40017ee1..0c030ca7 100644 --- a/app/src/main/java/com/termux/app/TermuxPreferences.java +++ b/app/src/main/java/com/termux/app/TermuxPreferences.java @@ -12,6 +12,7 @@ import com.termux.terminal.TerminalSession; import java.io.File; import java.io.FileInputStream; +import java.io.InputStreamReader; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; @@ -115,8 +116,9 @@ final class TermuxPreferences { Properties props = new Properties(); if (propsFile.isFile() && propsFile.canRead()) { + String encoding = "utf-8"; // most useful default nowadays try (FileInputStream in = new FileInputStream(propsFile)) { - props.load(in); + props.load(new InputStreamReader(in, encoding)); } }