fixups and code clean up for 'Ctrl+Enter'

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java | 14 
src/main/java/eu/siacs/conversations/ui/widget/EditMessage.java   |  9 
src/main/res/values/strings.xml                                   |  2 
3 files changed, 14 insertions(+), 11 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/ui/ConversationFragment.java 🔗

@@ -2735,15 +2735,17 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
     }
 
     @Override
-    public boolean onEnterPressed(KeyEvent event) {
-        SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(getActivity());
-        final boolean enterIsSend = p.getBoolean("enter_is_send", getResources().getBoolean(R.bool.enter_is_send));
-        if (enterIsSend || event.isCtrlPressed()) {
+    public boolean onEnterPressed(final boolean isCtrlPressed) {
+        if (isCtrlPressed || enterIsSend()) {
             sendMessage();
             return true;
-        } else {
-            return false;
         }
+        return false;
+    }
+
+    private boolean enterIsSend() {
+        final SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(getActivity());
+        return p.getBoolean("enter_is_send", getResources().getBoolean(R.bool.enter_is_send));
     }
 
     @Override

src/main/java/eu/siacs/conversations/ui/widget/EditMessage.java 🔗

@@ -54,13 +54,14 @@ public class EditMessage extends EmojiWrapperEditText {
     }
 
     @Override
-    public boolean onKeyDown(int keyCode, KeyEvent e) {
+    public boolean onKeyDown(final int keyCode, final KeyEvent e) {
+        final boolean isCtrlPressed = e.isCtrlPressed();
         if (keyCode == KeyEvent.KEYCODE_ENTER && !e.isShiftPressed()) {
             lastInputWasTab = false;
-            if (keyboardListener != null && keyboardListener.onEnterPressed(e)) {
+            if (keyboardListener != null && keyboardListener.onEnterPressed(isCtrlPressed)) {
                 return true;
             }
-        } else if (keyCode == KeyEvent.KEYCODE_TAB && !e.isAltPressed() && !e.isCtrlPressed()) {
+        } else if (keyCode == KeyEvent.KEYCODE_TAB && !e.isAltPressed() && !isCtrlPressed) {
             if (keyboardListener != null && keyboardListener.onTabPressed(this.lastInputWasTab)) {
                 lastInputWasTab = true;
                 return true;
@@ -191,7 +192,7 @@ public class EditMessage extends EmojiWrapperEditText {
     }
 
     public interface KeyboardListener {
-        boolean onEnterPressed(KeyEvent event);
+        boolean onEnterPressed(boolean isCtrlPressed);
 
         void onTypingStarted();
 

src/main/res/values/strings.xml 🔗

@@ -401,7 +401,7 @@
     <string name="mark_as_read">Mark as read</string>
     <string name="pref_input_options">Input</string>
     <string name="pref_enter_is_send">Enter is send</string>
-    <string name="pref_enter_is_send_summary">Use enter key to send message. You can always use ctrl+enter to send message, even if this option is disabled.</string>
+    <string name="pref_enter_is_send_summary">Use Enter key to send message. You can always use Ctrl+Enter to send message, even if this option is disabled.</string>
     <string name="pref_display_enter_key">Show enter key</string>
     <string name="pref_display_enter_key_summary">Change the emoticons key to an enter key</string>
     <string name="audio">audio</string>